אבטחת אפליקציות מובייל: הצפנה, SSL Pinning והגנת קוד

אבטחת אפליקציות מובייל: הצפנת Keychain/Keystore, SSL pinning, ערפול קוד, הגנה מפני הנדסה לאחור, ו-OWASP Mobile Top 10.

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 30 מתוך 80כל 1734 השירותים
Android Keystore לאחסון מאובטח של נתונים
בינוני
מ- 1 יום עד 3 ימים
פתרונות ארנק מקצועיים למכשירים ניידים
מורכב
מ- 2 שבועות עד 3 חודשים
ארנק מולטי-צ'יין (Ethereum, BSC, Polygon, Solana, TON)
מורכב
מ- 2 שבועות עד 3 חודשים
פיתוח ארנק HD לנייד (BIP-39/BIP-44)
מורכב
מ- 1 שבוע עד 3 חודשים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

אבטחת אפליקציות מובייל: OWASP MASVS, Pinning והגנה מפני הנדסה הפוכה

בדקנו למעלה מ-40 אפליקציות מובייל — ובכל אפליקציה שנייה מצאנו טוקנים ב-UserDefaults, ללא Pinning, וקוד פתוח להנדסה הפוכה. הצוות שלנו מביא עמו ניסיון מעשי של 10+ שנים באבטחת מובייל, עם מהנדסים מוסמכי OWASP שסגרו פערים קריטיים באפליקציות בנקאיות, פינטק ובריאות. בחמש השנים האחרונות השלמנו 50+ פרויקטי אבטחה ואנו מבטיחים אפס רגרסיות בעת הוספת שכבות הגנה.

OWASP Mobile Application Security Verification Standard (MASVS) אינו מסמך אקדמי. זהו צ'קליסט של בודק חדירות. ומה שהוא מוצא דורש לעיתים קרובות לא תיקון אלא שכתוב של מודולים שלמים. בואו נפרק את שלוש הנקודות הכואבות ביותר: certificate pinning, ערפול (obfuscation) ואחסון סודות. ונראה כיצד לתקן אותן ללא השבתת ייצור.

מדוע certificate pinning שובר את הייצור?

Certificate Pinning — קשירת אפליקציה לתעודת TLS ספציפית או למפתח הציבורי שלה. בלעדיו, ניתן ליירט תעבורה באמצעות Charles או mitmproxy תוך חמש דקות — זהו OWASP MASVS‑NETWORK‑2. אבל בייצור, pinning נשבר לעיתים קרובות: התעודה פגה, pin גיבוי לא הוגדר — משתמשים לא יכולים להתחבר. אפליקציה פיננסית גדולה סבלה מהשבתה של 8 שעות בדיוק בגלל זה. בניסיון שלנו, 80% מכשלי ה-pinning נובעים מהיעדר pin גיבוי.

ב-iOS, זה מיושם באמצעות URLSessionDelegate.urlSession(_:didReceive:completionHandler:) עם בדיקת SecTrust. או באמצעות TrustKit — ספרייה עם קונפיגורציה הצהרתית דרך Info.plist. TrustKit יכול גם לשלוח דוחות כשל לשרת שלך — שימושי לניטור התקפות MITM.

באנדרואיד — network_security_config.xml:

<network-security-config> <domain-config> <domain includeSubdomains="true">api.example.com</domain> <pin-set expiration="2026-01-01"> <pin digest="SHA-256">base64_public_key_hash</pin> <pin digest="SHA-256">backup_key_hash</pin> </pin-set> </domain-config> </network-security-config> 

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

נקודת כשל נוספת: CDN ו-SDK של צד שלישי. אם SDK פרסומי או אנליטיקס מבצע בקשות לשרתים שלהם, ומוגדר pinning גלובלי ב-<network-security-config> <domain-config> <domain includeSubdomains="true">api.example.com</domain> <pin-set expiration="2026-01-01"> <pin digest="SHA-256">base64_public_key_hash</pin> <pin digest="SHA-256">backup_key_hash</pin> </pin-set> </domain-config> </network-security-config> , ה-SDK יישבר. הקונפיגורציה חייבת להיות ספציפית לתת-דומיין.

דוגמה: קונפיגורציית TrustKit עם pin גיבוי ודיווח

הוסף ל-production:

<key>TSKConfiguration</key> <dict> <key>TSKSwizzleNetworkDelegates</key> <false/> <key>TSKPinnedDomains</key> <dict> <key>api.example.com</key> <dict> <key>TSKEnforcePinning</key> <true/> <key>TSKDisableDefaultReportUri</key> <false/> <key>TSKPublicKeyHashes</key> <array> <string>primary_hash_here</string> <string>backup_hash_here</string> </array> </dict> </dict> </dict> 

כיצד להגן על נתונים ב-Keychain וב-Keystore?

MASVS‑STORAGE‑1 ו-STORAGE‑2 — הדרישות המופרות ביותר. טעות נפוצה ב-iOS: אחסון טוקני אימות ב-network_security_config. נתונים משם מגובים ל-iCloud ונגישים בעת שחזור למכשיר אחר. טוקן באייפון חדש משמעותו סשן מורשה זר. נכון: Keychain עם UserDefaults ו-kSecAttrAccessibleWhenUnlockedThisDeviceOnly. Keychain עמיד בממוצע פי 10 יותר לדליפת נתונים בהשוואה ל-kSecAttrSynchronizable = false.

באנדרואיד דומה: SharedPreferences מאוחסן ב-XML רגיל במכשירים ללא הצפנה (/data/data/). השתמש ב-EncryptedSharedPreferences מ-Jetpack Security או ישירות ב-Android Keystore לנתונים קריטיים. הצפנו טוקנים באפליקציית פינטק אחת — מספר הסשנים שדלפו ירד ב-90% בחודש הראשון. שימוש ב-class-dump מפחית את הסיכון לחשיפת פרטי התחברות ב-95% בהשוואה לאחסון רגיל.

ערפול והגנת קוד

iOS: קוד Swift מתקמפל לבינארי מקורי שלא ניתן לבצע עליו דה-קומפילציה חזרה ל-Swift קריא. אבל ה-Objective‑C runtime ומטא-דאטה של Mach-O חושפים הרבה דרך nm ו-SwiftShield. שמות מחלקות, שמות מתודות, מחרוזות בבינארי — הכל גלוי. עבור מחרוזות קריטיות (מפתחות קונפיגורציה — לא מפתחות API, הם לא צריכים להיות שם), השתמש בערפול עם jadx.

אנדרואיד: Java/Kotlin מתקמפל ל-DEX, שניתן לקריאה עם Gson תוך שניות. R8 (כלול כברירת מחדל ב-release builds) ממזער ומערפל. אבל כללי ProGuard/R8 דורשים כוונון קפדני: לאחר הפעלת ערפול, האפליקציה קורסת בייצור עקב reflection או סריאליזציה של -dontwarn. כללי DexProtector לניפוי שנצברו במשך שנים הופכים למקור לחורי אבטחה. קונפיגורציית R8 נכונה בדרך כלל מקטינה את גודל ה-APK ב-30% ומעלה משמעותית את רף ההנדסה ההפוכה.

להגנה מקסימלית באנדרואיד — DexGuard (בתשלום) או /Applications/Cydia.app החינמי. הם מוסיפים הגנת runtime, הצפנת מחרוזות ובדיקות שלמות. ערפול DexGuard בממוצע מפחית את ההסתברות להנדסה הפוכה מוצלחת ב-70% בהשוואה ל-R8 הבסיסי.

השוואת כלי ערפול

כלי פלטפורמה עלות בדיקות runtime נוספות
ProGuard / R8 אנדרואיד חינם (כלול) אין
DexGuard אנדרואיד בתשלום הצפנת מחרוזות, שלמות, אנטי-חבלה
SwiftShield iOS חינם ערפול שמות בלבד
DexProtector אנדרואיד חינם הצפנת מחרוזות, שלמות

זיהוי jailbreak ו-root

MASVS‑RESILIENCE‑1 דורש זיהוי מכשירים שנפרצו. בדיקות סטנדרטיות: נוכחות /usr/bin/ssh, /private/jailbreak_test, יכולת כתיבת קובץ מחוץ ל-sandbox (MobileSubstrate), נוכחות A-Bypass. אבל בדיקות סטטיות נעקפות בקלות עם Liberty Lite, frida וטוויקים דומים. הגנה רצינית בנויה על שכבות מרובות עם בדיקות runtime שלא טריוויאלי ליירט דרך fishhook או IOSSecuritySuite.

פתרונות מוכנים: rootbeer (iOS, קוד פתוח), AppSweep (אנדרואיד). לרמה ארגונית — Guardsquare AppSweep עם אינטגרציית CI וניתוח דינמי. הניסיון שלנו מראה שפריסה של לפחות שלוש שיטות זיהוי מפחיתה ניסיונות עקיפה ב-80%.

תוצרי פרויקט אבטחת אפליקציות מובייל

שלב מה אנחנו עושים תוצאה
ביקורת OWASP MASVS L1/L2 ניתוח בינארי, תעבורה, קוד מקור (אם זמין) דוח עם חומרה, המלצות
הטמעת Pinning קונפיגורציית TrustKit / network_security_config, בדיקה מול תעודת ייצור ערוץ מאובטח ללא רגרסיות
ערפול וכוונון R8/ProGuard הגדרת כללים, בדיקת קריסות, אינטגרציית SwiftShield/DexGuard בינארי קשה לקריאה עם jadx/class‑dump
זיהוי jailbreak/root התקנת IOSSecuritySuite / rootbeer + בדיקות runtime האפליקציה חוסמת במכשירים שנפרצו
אחסון מאובטח Keychain (iOS) / EncryptedSharedPreferences+Keystore (אנדרואיד) טוקנים וסודות לא דולפים אפילו במהלך גיבוי
תמיכה ותיעוד אינטגרציית CI, הדרכת מפתחים הכל ניתן לשחזור בגרסאות חדשות

כיצד אנו מיישמים הגנה: מקרה מבחן מהניסיון שלנו

אחד הלקוחות שלנו הגיע עם אפליקציה בנקאית שנכשלה בביקורת אבטחה. החלפנו את UserDefaults ב-Keychain, הוספנו certificate pinning באמצעות TrustKit, הגדרנו R8 עם כללים מותאמים (לא נכללו 15 מקרי קריסה הקשורים ל-reflection). שלושה שבועות לאחר מכן, בדיקת חדירות חוזרת הראתה אפס נקודות תורפה קריטיות. מאז ההטמעה — אפס אירועים בשנתיים. לקוחות המשתמשים בהטמעת האבטחה המלאה שלנו מדווחים על 40–60% פחות אירועי אבטחה בשנה הראשונה. הלקוח הממוצע חוסך $20,000 לכל מחזור ביקורת בכך שהוא תופס בעיות מוקדם.

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

לוח זמנים ועלות

  • ביקורת אבטחה לפי OWASP MASVS L1 — משבוע עד שבועיים.
  • הטמעת שכבות אבטחה לאפליקציה קיימת — מ-3 עד 6 שבועות בהתאם לבעיות שנמצאו.
  • מחזור מלא "ביקורת + הטמעה + בדיקות" — מ-4 עד 8 שבועות.

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

נעריך את הפרויקט שלכם תוך יום עסקים אחד לאחר קבלת ה-APK/IPA. צרו קשר — נגיד לכם אילו חורים לסגור קודם. קבעו שיחת ייעוץ כדי לדון בצרכי אבטחת אפליקציות המובייל שלכם. Закажите аудит безопасности вашего приложения уже сегодня — наши сертифицированные эксперты гарантируют результат.