ידע מעשי של CyberFixCrew

רשימת בדיקה לאבטחת API עסקי: מה לבקש ומה לאמת

רשימת בדיקה לאבטחת API עסקי צריכה לבדוק מי מתחבר, לאילו רשומות ופעולות יש לו הרשאה, אילו משאבים אפשר לצרוך ומה קורה בחיבור למערכת אחרת. מפתח תקין או תגובת HTTP מוצלחת אינם מספיקים. CyberFixCrew מציעה כאן מסגרת לשיחה עם המפתח והספק ולבדיקות קבלה מורשות עם נתונים מלאכותיים.

ממפים את החיבור לפני שבוחנים הגנה

API הוא ממשק שבאמצעותו מערכות מבקשות מידע או מבצעות פעולות. בעסק הוא עשוי לחבר חנות ל-CRM, מערכת משלוחים לאתר או טופס לשירות דיוור. פותחים רישום של בעל החיבור, הכתובות והגרסאות הפעילות, סוגי המידע והפעולות האפשריות. כוללים גם ממשקים ישנים וסביבות בדיקה שנשארו זמינות.

רשמו מה יקרה אם החיבור יופסק או יפעל פעמיים: הזמנה שלא תועבר, הודעת SMS בתשלום או שינוי מלאי כפול. כך אפשר להגדיר בדיקה עסקית ומגבלות שימוש. זהו מיפוי לצורך החלטה, לא הרשאה לסרוק שרת של ספק או לבדוק נתונים של לקוח אחר.

OWASP API Security Top 10: מהדורת 2023

אימות זהות אינו הרשאה לכל מידע

אימות שואל מי המשתמש או המערכת. הרשאה שואלת איזו רשומה, פעולה או תכונה מותר להם לקרוא ולשנות. משתמש מחובר יכול להיות מוגבל להזמנותיו בלבד; מפתח קריאה אינו אמור לאפשר החזר כספי. בדקו שההחלטה נעשית בצד השרת ולא רק באמצעות הסתרת כפתור בדפדפן.

מכינים יחד עם המפתח שני משתמשי בדיקה ונתונים מלאכותיים נפרדים, תפקיד תפעולי ותפקיד מנהל לפי הצורך. לכל בדיקה כותבים תוצאה צפויה וראיה מסוננת. בדיקת הפרדה בין חשבונות מתבצעת בסביבה ובתנאים שאושרו, ולא על ידי ניסיון לגשת לרשומות אמיתיות של אחרים.

מטריצת קבלה להרשאות, עם נתוני בדיקה בלבד
זהות בדיקההפעולההתוצאה המוסכמת
משתמש ללא התחברותגישה לפעולה שאינה ציבוריתדחייה בלי חשיפת מידע מוגן
לקוח בדיקה אקריאת רשומה שלורק השדות המותרים לו
לקוח בדיקה בבקשה לרשומה של אדחייה ללא תוכן הרשומה
מפתח קריאהפעולת שינוידחייה גם אם המפתח מזוהה
תפקיד תפעוליפעולה ניהולית מוגבלתדחייה בהתאם להגדרת התפקיד

שדות, מסמכים ופלט: מאשרים רק מה שנחוץ

גם כאשר הרשומה הנכונה נשלחת, היא עלולה לכלול שדות שהצרכן אינו צריך: הערות פנימיות, נתוני תשלום או מזהים של מערכת אחרת. בקשו רשימת שדות שמותר להחזיר ולשנות. נתון שהדפדפן אינו מציג עדיין יכול להיכלל בתגובה ולהיחשף למי שקיבל אותה.

קלט צריך לעבור בדיקת סוג, אורך וערכים מורשים, אך בדיקת קלט אינה מחליפה הרשאה, קידוד פלט או שאילתות בטוחות. לגבי העלאות וקישורי קבצים מגדירים גודל, סוג, אחסון וגישה בהתאם לצורך. כתובת שהמערכת מתבקשת לפתוח מחייבת בקרה מתאימה כדי למנוע גישה ליעדים פנימיים או לא מאושרים.

OWASP API Security Top 10: מהדורת 2023

מגבלות שימוש מגינות גם על התקציב

מספר בקשות הוא רק חלק מצריכת המשאבים. פעולה אחת יכולה להפעיל חיפוש יקר, ייצוא, הודעת SMS או שירות בתשלום. מגדירים עם הספק מגבלה לפי המשתמש, הפעולה והעלות, יחד עם ניטור והתנהגות ברורה כשהמכסה נחצית. אין מספר בקשות אוניברסלי שמתאים לכל עסק.

בבדיקה מורשית מאמתים תרחיש מצומצם שתוכנן מראש או בוחנים תצורה וראיות מהספק. לא מייצרים עומס על ייצור כדי למצוא את גבולו. בקשו לדעת מי מקבל התראה, אם קיימת תקרת חיוב ואיך עוצרים חיבור חריג בלי להשבית באופן גורף את השירות העסקי.

שאלות תקציב ופעילות לפי סוג ממשק
פעולההחשיפה העסקיתשאלה לספק
שליחת הודעהעלות חיצונית ושימוש לרעהאיזו מכסה ומי מקבל התראה?
ייצוא נתוניםחשיפת מידע ועומסמי מורשה ומהו היקף הייצוא?
יצירת הזמנהכפילויות ומלאיאיך מזהים בקשה שכבר טופלה?
עיבוד קובץמשאבי מחשוב ואחסוןמהם גבולות הגודל והזמן?
חיפוש ציבוריצריכה אוטומטיתמה מגביל שימוש חריג ומה נרשם?

מפתחות, OAuth ו-webhooks: מתעדים את מחזור החיים

לכל סוד צריך להיות בעלים, סביבה, הרשאות ותהליך ביטול. שומרים סודות בצד המתאים למימוש ולא בקוד לקוח ציבורי או במאגר משותף. מפתח שנחשף מחייב הערכת היקף ושינוי מתואם; מחיקתו מצילום או מהגרסה האחרונה אינה מבטלת עותקים שכבר נחשפו.

בחיבור נכנס מבררים איך מאמתים את השולח ואיך מטפלים בהודעה חוזרת או מאוחרת. בחיבור יוצא בודקים את היעד ואת המידע הנשלח. הפרטים תלויים בפרוטוקול ובספק: אין מנגנון חתימה יחיד שמתאים לכל API, ואין להסיק משם הטכנולוגיה בלבד שהרשאות ומועדי ביטול הוגדרו נכון.

תקלות ויומנים בלי להפוך את התיעוד למאגר סודות

יומן שימושי כולל זמן, מזהה בקשה, פעולה ותוצאה שמתאימים לבירור. הוא אינו צריך להכיל אסימון מלא או גוף בקשה עם כל פרטי הלקוח. מסכמים גישה ליומן, צמצום ושמירה לפי הצורך והחובות החלות. הודעת שגיאה למשתמש אינה המקום לפרטי תצורת שרת או חיבור פנימי.

תוצאה חסרה אינה תמיד כשל: ייתכן שהמערכת המרוחקת ביצעה את הפעולה והתשובה לא הגיעה. לפני ניסיון חוזר מבררים לפי מזהה העסקה או התיעוד הרלוונטי. ההחלטה אם לחזור על פעולה צריכה להיות חלק מתכנון החיבור, כדי לצמצם הזמנות, חיובים או הודעות כפולים.

איך משתמשים ברשימה מול ספק

פתחו מסמך קצר לכל חיבור: מטרתו, בעליו, התפקידים, סוגי המידע, העלות והחרגות הבדיקה. בקשו מהמפתח להסביר איך כל דרישה נאכפת ולמסור ראיה מתאימה, לא רק לסמן כן. OWASP API Security Top 10 במהדורת 2023 הוא מסמך מודעות לסיכונים, לא אישור תאימות ולא רשימת בדיקה מלאה לכל מימוש.

לכל פער קובעים בעלים, עדיפות עסקית ובדיקה חוזרת. סקירת תצורה ובדיקות קבלה אינן מחליפות ביקורת קוד או מבדק חדירה כאשר הם נחוצים. אם אין גישה או הרשאה לאימות, רשמו לא נבדק ומה דרוש כדי להשלים; אל תהפכו תשובת ספק לממצא שנבדק בעצמכם.

מקור מקצועי: OWASP API Security Top 10: מהדורת 2023מקור מקצועי: WooCommerce: חיבורי webhook ותיעוד משלוחיםמקור מקצועי: NIST SP 1300: מסגרת עבודה לעסק קטן

תשובות ברורות

שאלות שעולות בנושא

אם הממשק דורש מפתח API, הוא כבר מאובטח?

המפתח הוא אמצעי זיהוי או הרשאה לפי המימוש. עדיין צריך לבדוק אילו פעולות ושדות הוא מאפשר, איך שומרים ומבטלים אותו ואיך מגבילים שימוש.

WAF יכול להחליף בדיקת הרשאות ב-API?

WAF יכול לסייע בסינון תעבורה מסוימת. הוא אינו מחליף החלטות עסקיות בצד השרת לגבי מי רשאי לקרוא רשומה או לבצע פעולה.

אפשר לבצע את כל הרשימה לבד ללא מפתח?

בעל העסק יכול למפות אחריות, לשאול על הרשאות ולבקש תיעוד. בדיקות טכניות צריכות תוכנית, הרשאה וסביבה מתאימה; כשאין אפשרות לאמת, מתעדים את הפער ולא מנסים על נתוני ייצור.

מתקדמים לפי הצורך

נמפה את החיבור ואת הבדיקות הנחוצות

תארו אילו מערכות מתחברות ומה הפעולה העסקית. אין לצרף מפתחות, אסימונים או נתוני לקוחות לפנייה.

לבירור בדיקת אינטגרציה