אבטחת מידע אינה רק עניין לצוותי ה-Security; בידי ה-QA כוח משמעותי לצמצם חולשות לפני שהן מגיעות ללקוחות. QA שמבצע בדיקות פונקציונליות בלבד עלול לפספס פרצות. להלן רשימה מעשית של בדיקות אבטחה שכדאי לשלב בתהליך הבדיקות לפני כל שחרור.
1. בדיקות אבטחה לאימות והרשאות (Authentication & Authorization)
- הימנעו מ-Basic Authentication - השתמשו במנגנוני OAuth או JWT, הגנו על מחסני זהויות והגבילו את תוקף הטוקן.
- מדיניות סיסמאות והרשאות - ודאו שנקבעה מדיניות סיסמאות חזקה, נעילת חשבון לאחר ניסיונות כושלים ותמיכה באימות רב-גורמי. מבחני QA צריכים לוודא שאין מנגנוני הרשאה שבורים (BOLA) ושאין הרשאות עודפות (least privilege).
- Rate limiting והצפנה - כל API צריך להגביל את כמות הבקשות כדי למנוע מתקפות מניעת שירות, ולהצפין מידע במעבר ובמנוחה.
2. בדיקות אבטחה להזרקות וקלט (SQL Injection, XSS, Command)
- אימות תכני בקשות - ודאו שהשרת מקבל רק סוגי תוכן מותרים (Content-Type) ושאינו מאפשר שימוש בשיטות HTTP לא רצויות (כגון TRACE).
- בדיקות הזרקה (SQL/XSS/Command) - בצעו ניסיונות הזרקה למסדי נתונים ולממשק המשתמש וודאו שהמערכת מסננת או מנטרלת נתונים זדוניים. אל תאפשרו החזרת מידע רגיש (כגון סיסמאות או מפתחות API) בתשובות השגיאה.
- הצגת הודעות שגיאה - התוכנה צריכה להחזיר קודי סטטוס נכונים (למשל 401 במקום 200) ולהציג הודעות כלליות שאינן חושפות מבנה פנימי של המערכת.
3. בדיקות אבטחת Session ועוגיות (Session Hijacking)
בדקו שמנגנון ניהול הסשן מנטרל session hijacking: הגדרת Timeout מתאים, שימוש בדגלי Secure ו-HttpOnly בעוגיות, רענון מזהה הסשן אחרי התחברות מחדש, ומניעת העברת טוקן באחסון מקומי. מומלץ גם לבדוק אירועי התחברות בו-זמנית ממשתמשים שונים ולהגביל אותם.
4. בדיקות אבטחת רשת, TLS ו-HTTPS (HSTS)
- TLS בכל מקום - ודאו שהאתר/ה-API עובדים ב-HTTPS בלבד. השתמשו בכותרת Strict-Transport-Security (HSTS) עם טווח זמן ארוך ו-includeSubDomains כדי למנוע הורדת החיבור ל-HTTP.
- הפרדת רשת - ברבדים פנימיים יש להפריד בין סביבות (פיתוח, בדיקה, פרודקשן) ולהפעיל חומות אש וסגמנטציה כדי למנוע תנועה רוחבית.
5. ניהול סודות ומפתחות API בתהליך ה-QA
סודות אינם אמורים להיות בקוד מקור או בקובצי תצורה פשוטים. נהלו אותם במערכת מרכזית (Vault או Secret Manager), הגבילו את ההרשאות למי שצריך בלבד, והקפידו על החלפת מפתחות תקופתית. גם משתני סביבה אינם מקום בטוח לחלוטין - הם זמינים לכל התהליכים במכונה ועלולים להופיע ביומני הפעלה.
6. סריקות אבטחה אוטומטיות (SAST/DAST) ובדיקות חדירה
הפעילו כלי סריקה אוטומטיים (SAST ו-DAST), בצעו בדיקות חדירה ידניות לפני כל גרסה משמעותית ונתחו תוצאות כדי לשפר את קוד המקור. השתמשו ב-CI/CD ליישום בדיקות אבטחה בשלבים מוקדמים ואל תסתמכו על בדיקות בסיום. ניטור אנומליות בייצור יעזור לגלות ניסיונות תקיפה מוקדם.
סיכום: צ׳קליסט בדיקות אבטחה ל-QA לפני כל שחרור
בדיקות פונקציונליות אינן מספיקות להגנה על המערכת. QA מודרני חייב לשלב בדיקות אבטחה מקיפות: החל מאימות והרשאות ועד ניהול סודות, שימוש בכותרות אבטחה וסריקות קוד. אימוץ צ'קליסט עקבי יפחית סיכונים ויחזק את אמון הלקוחות. כחלק מאסטרטגיית DevSecQA, יש לבנות תשתית שמדגישה "שמאל" - בדיקות מוקדמות, אוטומציה ותרבות בטיחותית.