תשובה קצרה: סודות ולוגיקה עסקית נשארים בשרת, טוקנים נשמרים רק ב-Keychain של iOS או ב-Keystore של אנדרואיד, כל קריאת API נבדקת בצד השרת, ובכל build רצות סריקות של תלויות, סודות וקוד. רשימת הבדיקה המקובלת היא OWASP MASVS, ואפליקציה שמחזיקה מידע אישי של משתמשים בישראל כפופה גם לחוק הגנת הפרטיות ולתקנות אבטחת המידע מ-2017.
עיקרי הדברים
- MASVS כנקודת פתיחה: גרסה 2 של התקן מחלקת את הדרישות לשמונה תחומים, מאחסון והצפנה ועד תקשורת, פרטיות ועמידות בפני שינוי קוד.
- פרטי גישה בראש הרשימה: שימוש לא תקין בפרטי גישה (Improper Credential Usage) הוא M1 ב-OWASP Mobile Top 10 של 2024, ואחריו אבטחה לקויה של שרשרת האספקה.
- Pinning דורש תוכנית גיבוי: התיעוד של אנדרואיד ממליץ לכלול תמיד מפתח גיבוי, אחרת החלפת תעודה מחייבת עדכון אפליקציה כדי להחזיר את החיבור.
- האכיפה בישראל התחזקה: תיקון 13 לחוק הגנת הפרטיות נכנס לתוקף ב-14 באוגוסט 2025 ומאפשר לרשות להגנת הפרטיות להטיל עיצומים כספיים.
מה התקנים של OWASP מכסים
MASVS הוא רשימת הדרישות, ו-Mobile Top 10 הוא דירוג הסיכונים. בתקן שמונה קבוצות בקרה: STORAGE, CRYPTO, AUTH, NETWORK, PLATFORM, CODE, RESILIENCE ו-PRIVACY. באפליקציה עסקית סבירה לעמוד במלואן בארבע הראשונות, ולהוסיף RESILIENCE (זיהוי root ו-jailbreak, בדיקות שינוי קוד) כשהאפליקציה מעבירה כסף או מחזיקה מסמכי זיהוי, כמו ברוב פרויקטי התוכנה בפינטק.
אחסון, תקשורת והזדהות מול ה-API
| בקרה | מה עושים | הטעות הנפוצה |
|---|---|---|
| אחסון | טוקנים ב-Keychain או ב-Keystore (למשל expo-secure-store ב-React Native) | טוקנים ב-AsyncStorage או ב-SharedPreferences כטקסט גלוי |
| תקשורת | TLS בכל מקום; מאנדרואיד 9 תעבורה לא מוצפנת חסומה כברירת מחדל | הגדרת debug שמתירה HTTP בגרסה המשוחררת |
| Certificate pinning | הצמדה למפתח ציבורי, עם pin גיבוי ותוכנית החלפה | הצמדה לתעודה בודדת שעתידה לפוג |
| הזדהות | טוקנים קצרי חיים, בדיקת הרשאות בשרת בכל בקשה | אמון במזהה משתמש או בתפקיד שהאפליקציה שולחת |
| סודות | מפתחות של ספקים חיצוניים נשמרים בשרת ביניים | מפתח של ספק תשלומים או AI בתוך קובץ האפליקציה |
כל מה שנמצא בקובץ האפליקציה ניתן לחילוץ, ו-obfuscation רק מאט את התוקף. גם לוגיקת ההרשאות שייכת לשרת, כפי שמוסבר במדריך תפקידים והרשאות במערכות SaaS.