OWASP Mobile Top 10 فهرستی از ده آسیبپذیری بحرانی برنامههای موبایل است که توسط سازمان غیرانتفاعی Open Web Application Security Project منتشر میشود. این سند هر چند سال یکبار بر اساس دادههای جامعه امنیتی و حوادث واقعی بهروزرسانی میشود. طبق گزارش OWASP Foundation (2024)، بیش از 75% از برنامههای تجاری موبایل حداقل یکی از آسیبپذیریهای این فهرست را دارند. مطالعه Mobile Top 10 به توسعهدهندگان و تستکنندگان کمک میکند تا در مرحله طراحی معماری، محافظت را ایجاد کنند. OWASP, 2024
نکات اصلی
OWASP Mobile Top 10 فهرست استاندارد شدهای از بحرانیترین ریسکهای امنیتی است که مخصوص برنامههای موبایل هستند. برخلاف OWASP Top 10 عمومی برای برنامههای وب، نسخه موبایل ویژگیهای خاص پلتفرمها را در نظر میگیرد: ذخیرهسازی محلی روی دستگاه، تعامل با سنسورها، حالتهای آفلاین و ویژگیهای فروشگاههای برنامه. این سند از سال 2010 منتشر میشود و هر 2–4 سال بازبینی میشود: نسخه فعلی برای سال 2024 شامل دستهبندیهایی مانند M1 — Improper Credential Usage و M8 — Security Misconfiguration است. این پروژه توسط جامعهای متشکل از بیش از 500 داوطلب در سراسر جهان پشتیبانی میشود.
در ابتدا OWASP Top 10 فقط برنامههای وب را پوشش میداد، اما رشد توسعه موبایل در دهه 2010 نیاز به سندی جداگانه ایجاد کرد. اولین نسخه Mobile Top 10 در سال 2011 منتشر شد و تنها شامل 7 مورد بود. تا سال 2024، فهرست به 10 دسته گسترش یافت که هر کدام شامل چندین سناریوی حمله خاص است. هدف اصلی سند ارائه زبانی مشترک به توسعهدهندگان و تیمهای امنیتی برای بحث درباره ریسکها و اولویتبندی رفع مشکلات است. بهروزرسانی منظم فهرست نشاندهنده تغییرات در چشمانداز تهدیدات است: ظهور APIهای جدید، تکامل سیستمهای عامل (Android، iOS) و تکنیکهای حمله جدید توصیفشده در گزارشهای Positive Technologies و سایر مراکز تحقیقاتی.
روششناسی تدوین Mobile Top 10 بر اساس دادههای پروژههای واقعی است: نتایج تست نفوذ برنامههای موبایل، گزارشهای حوادث و تحقیقات آسیبپذیری تحلیل میشوند. هر دسته بر اساس دو پارامتر ارزیابی میشود: میزان شیوع (Incidence Rate) و تأثیر فنی بالقوه (Technical Impact). ترکیب این شاخصها رتبهبندی نهایی را تشکیل میدهد. برخلاف فهرستهای ذهنی، OWASP از دادههای باز استفاده میکند: هر عضو جامعه میتواند از طریق مخزن GitHub پروژه، درخواست افزودن دسته جدید را ارائه دهد. برای نسخه فعلی 2024، بیش از 300 هزار تست امنیتی از 25 کشور جهان پردازش شده که آمار را برای اکوسیستم جهانی توسعه موبایل نماینده میکند. علاوه بر این، OWASP MASVS (Mobile Application Security Verification Standard) را منتشر میکند — مجموعهای از الزامات دقیق امنیتی که شامل بیش از 80 بررسی خاص در 8 دسته است. MASVS به عنوان پایهای برای صدور گواهی برنامهها و به عنوان چکلیست تست نفوذ استفاده میشود: هر الزام به دستهای از Mobile Top 10 ارجاع میدهد که ردیابی کامل بین استاندارد و فهرست ریسک را تضمین میکند.
سه دسته بحرانی از OWASP Mobile Top 10 2024 را بررسی میکنیم که بیش از 70% از تمام حوادث امنیتی در پروژههای موبایل را پوشش میدهند. هر دسته شامل سناریوهای بهرهبرداری خاص و توصیههای حفاظتی است.
این دسته (M1) موقعیتهایی را پوشش میدهد که توسعهدهندگان از APIها و مکانیسمهای پلتفرم برخلاف هدف استفاده میکنند. نمونههای معمول: Intent Injection در Android، کنترلکنندههای Deep Link باز در iOS، کار نادرست با Keychain و SharedPreferences. مهاجم میتواند Intent ویژهای ارسال کرده و به دادههای برنامه یا مؤلفه دیگری دسترسی یابد. طبق گزارش NowSecure (2023)، 22% از برنامههای Android تستشده دارای آسیبپذیریهای نوع Intent Redirection بودند. حفاظت شامل: اعتبارسنجی دقیق دادههای ورودی، بررسی منبع Intent و استفاده از مجوزها برای مؤلفههای صادرشده است.
ذخیرهسازی ناامن دادهها (M2) رایجترین مشکل در برنامههای موبایل است. زمانی رخ میدهد که دادههای محرمانه (توکنهای دسترسی، رمزهای عبور، اطلاعات شخصی) به صورت آشکار یا با حفاظت ناکافی ذخیره میشوند. منابع معمول آسیبپذیری: پایگاههای داده SQLite بدون رمزگذاری، SharedPreferences بدون EncryptedSharedPreferences، ثبت دادهها در حالت اشکالزدایی. طبق OWASP Foundation (2024)، بیش از 60% از برنامههای رایگان در Google Play حداقل یک نوع داده محرمانه را به صورت رمزگذارینشده ذخیره میکنند. راهحل — استفاده از Android EncryptedSharedPreferences، iOS Keychain و رمزگذاری دادهها قبل از نوشتن در حافظه محلی.
دسته M3 — ارتباط ناامن — آسیبپذیریهای کانالهای انتقال داده بین برنامه و سرور را شامل میشود. عدم وجود HTTPS، اعتبارسنجی نادرست گواهیهای SSL، استفاده از پروتکلهای قدیمی TLS 1.0/1.1 — همه این مشکلات به مهاجم اجازه میدهد ترافیک را از طریق حملات Man-in-the-Middle رهگیری کند. وضعیت زمانی که برنامه با دادههای حساس (تراکنشهای بانکی، اطلاعات پزشکی) از طریق کانال ناامن کار میکند، به ویژه خطرناک است. در سال 2023، محققان NCC Group کشف کردند که 12% از برنامههای مالی محبوب از پیکربندی نادرست TLS استفاده میکنند. توصیه: استفاده اجباری از HTTPS با Certificate Pinning و عدم استفاده از HTTP در بیلدهای تولیدی.
تست امنیت برنامه موبایل بر اساس روششناسی OWASP شامل چند مرحله است: تحلیل ایستای کد (SAST)، تحلیل پویا (DAST) و تست دستی (نفوذ). هر مرحله برای شناسایی دستههای خاصی از آسیبپذیریهای Mobile Top 10 هدفگذاری شده است.
برای تحلیل خودکار OWASP استفاده از MobSF (Mobile Security Framework) — یک ابزار متنباز را توصیه میکند. MobSF تحلیل ایستای کد منبع و فایلهای باینری را انجام میدهد، پیکربندی مانیفستها را بررسی میکند، مجوزها را تحلیل میکند و آسیبپذیریهای Mobile Top 10 را شناسایی میکند. برای تحلیل پویا از Burp Suite (پروکسی رهگیری ترافیک) و Frida (ابزار تحلیل زمان اجرا) استفاده میشود. ترکیب این ابزارها بیش از 80% از دستههای فهرست را پوشش میدهد. تست منظم در خط لوله CI/CD با MobSF امکان شناسایی آسیبپذیریها در مراحل اولیه توسعه را فراهم میکند و هزینه رفع آنها را 60–70% کاهش میدهد. ادغام ابزارهای SAST و DAST در خط لوله باید از طریق پلاگینهای Gradle/Maven یا مراحل Fastlane در بیلدهای iOS خودکار شود.
پس از اجرای MobSF، توسعهدهنده گزارشی با نشانگرهای رنگی دریافت میکند: قرمز — آسیبپذیری بحرانی، نارنجی — ریسک متوسط، زرد — پایین. هر هشدار شامل ارجاع به دسته مربوطه OWASP Mobile Top 10، شرح مشکل و توصیه رفع است. مهم است نه تنها هشدارهای قرمز را برطرف کنید، بلکه هشدارهای نارنجی را نیز تحلیل کنید: بسیاری از آنها (مثلاً Activity صادرشده بدون محافظت) در ترکیب میتوانند به مهاجم بردار حمله بدهند. توصیه میشود قبل از هر انتشار به تعداد صفر هشدار قرمز و حداکثر 2–3 هشدار نارنجی برسید. گزارش MobSF همچنین شامل تحلیل مجوزهای برنامه است: هرگونه مجوز اضافی (مثلاً دسترسی به دوربین در ماشین حساب) به عنوان نقض اصل حداقل امتیاز ثبت میشود و باید از مانیفست حذف شود. برای برنامههای iOS، MobSF تحلیل مشابهی از فایلهای .ipa انجام میدهد، از جمله بررسی Info.plist برای استثناهای ATS و تحلیل باینریهای Mach-O برای استفاده از APIهای ناامن مانند NSAllowsArbitraryLoads.
نمونه تحلیل ایستای برنامه Android با استفاده از MobSF برای شناسایی آسیبپذیریهای OWASP Mobile Top 10 را بررسی میکنیم. کد یک خطای معمول را نشان میدهد — ذخیرهسازی ناامن توکن در SharedPreferences.
class InsecureStorage {
private val prefs = context.getSharedPreferences("my_app", Context.MODE_PRIVATE)
fun saveToken(token: String) {
prefs.edit().putString("auth_token", token).apply()
}
fun getToken(): String? {
return prefs.getString("auth_token", null)
}
}
MobSF هنگام تحلیل چنین کدی هشداری درباره ذخیرهسازی ناامن دادهها (دسته M2 — Insecure Data Storage) صادر میکند. نسخه اصلاحشده از EncryptedSharedPreferences از کتابخانه AndroidX Security استفاده میکند. پیادهسازی صحیح رمزگذاری دادهها در سطح ذخیرهسازی با توصیههای OWASP مطابقت دارد و از نشت توکنها در صورت دسترسی فیزیکی به دستگاه جلوگیری میکند. پس از پیادهسازی EncryptedSharedPreferences، آسیبپذیری برطرف میشود که با عدم وجود هشدار مربوطه در گزارش MobSF تأیید میگردد.
class SecureStorage(context: Context) {
private val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
private val securePrefs = EncryptedSharedPreferences.create(
context,
"secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun saveToken(token: String) {
securePrefs.edit().putString("auth_token", token).apply()
}
}
سوالات متداول
OWASP Mobile Top 10 فهرستی از ده آسیبپذیری خطرناک است که بیشتر در برنامههای موبایل یافت میشوند. این سند به توسعهدهندگان کمک میکند بدانند هنگام ایجاد برنامههای امن به چه مواردی توجه کنند.
فهرست تقریباً هر 2–4 سال یکبار بهروزرسانی میشود. آخرین نسخه در سال 2024 منتشر شده است. بهروزرسانیها تغییرات در پلتفرمهای موبایل، ظهور APIهای جدید و تکامل روشهای حمله را در نظر میگیرند.
Mobile Top 10 ویژگیهای خاص پلتفرمهای موبایل را در نظر میگیرد: ذخیرهسازی محلی دادهها، کار با سنسورها، سیستم Intent اندروید، حالتهای آفلاین و ویژگیهای انتشار در فروشگاههای برنامه که در نسخه وب وجود ندارند.
طبق آمار OWASP Foundation، رایجترین مورد M2 — Insecure Data Storage (ذخیرهسازی ناامن دادهها) است. این آسیبپذیری در بیش از 60% از برنامههای موبایل تستشده از همه دستهها یافت میشود.
با نصب MobSF — ابزار رایگان تحلیل ایستا شروع کنید. APK یا کد منبع برنامه را بارگذاری کنید و MobSF به طور خودکار نشان میدهد کدام دستههای Mobile Top 10 در پروژه وجود دارند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید