پیشرفت در حوزه امنیت به دانش، تخصص و تجربه نیاز دارد. به طور خاص، آشنایی با ابزارهای امنیتی مختلف در زمینههای مختلف از اهمیت ویژهای برخوردار است. به عنوان یک متخصص امنیت، مسلط بودن به عملکرد و کاربرد ابزارهای مورد استفاده در پروژههای مختلف بسیار ضروری است. لیستی از ابزارهایی که من استفاده میکنم به شرح زیر است:
شخصی که روی ابزارها فقط تخصص دارد هکر نیست.
ابزارهای دیگری هستند که ممکن است جایگزین برخی از این ابزارها شوند.
بعضی ابزارها بعد از مدتی دیگر آپدیت نمی شوند و امکان وجود دارد که دیگر کار نکنند و یا حتی False positive بدهند
من به تفکیک ابزارهایی که در پروژه ها از آن استفاده می کنم و همچنین در مصاحبه ها استخدامی سوال می شود جدا کرده ام
به صورت کلی تست نفوذ موبایل شامل تست بر روی برنامه های (APK(Android Application Package و (IPA (iOS App Store Package می باشد. فرآیند تست نفوذ برنامه های APK و IPA تقریبا شبیه هم هستند ولی تفاوت هایی ما بین آن ها وجود دارد.
مراحل تست نفوذ در برنامه های موبایل شامل 9 مرحله می باشد.
Information Gathering
Threat Modeling
Static Analysis
Dynamic Analysis
Reverse Engineering
Security Assessment
Code Review
Vulnerability Exploitation
Reporting
🔸🔸🔸🔸🔸🔸🔸🔸
سوالات سطح متوسط
1. تست نفوذ اپلیکیشن موبایل تعریف کنید.
تست نفوذ اپلیکیشن موبایل به معنای ارزیابی برنامه های موبایل در جهت شناسایی و رفع آسیب پذیری ها است یکی از متداول ترین مشکلات امنیتی در برنامه های موبایل خطر افشا شدن داده های کاربر می باشد.
2. محدوده در تست نفوذ برنامه های موبایل به چه صورت است؟
محدوده شامل هدف ها یا آسیب پذیری ها و محدودیت های در تست می باشد. مشخص کردن محدوده کمک می کند ارزیابی یا آزمایش بدون هدف نداشته باشیم.
3. تفاوت اصلی بین تست نفوذ اپلیکیشن اندروید و iOS چیست؟
برنامه های APK دسترسی به سورس در بسیاری از موارد میسر هست در حالی که در IPA از این خبرها نیست.
4. فرآیند تحلیل استاتیک در تست امنیت اپلیکیشن موبایل را توضیح دهید.
تجزیه و تحلیل استاتیک شامل بررسی کد APK یا باینری برنامه برای شناسایی آسیبپذیریهای احتمالی بدون اجرای برنامه است.
5. مراحل مربوط به تجزیه و تحلیل پویا برای برنامه های تلفن همراه را شرح دهید.
تجزیه و تحلیل پویا شامل اجرای برنامه در یک محیط کنترل شده برای مشاهده رفتار آن و شناسایی آسیب پذیری های زمان اجرا است.
6.حمله مردی در میان یا MITM چیست و چگونه می توانید از آن در برنامه های تلفن همراه جلوگیری کنید؟
حمله Man-in-the-Middle ارتباط بین یک برنامه و سرور آن را شنود کرده و آن را تغییر می دهد. اقدامات پیشگیرانه شامل رمزگذاری SSL/TLS و ssl pinning است.
7. چگونه آسیب پذیری های امنیتی در اپلیکیشن های موبایل را شناسایی و ارزیابی می کنید؟
مراحل زیر را انجام می دهم:
Information Gathering
Threat Modeling
Static Analysis
Dynamic Analysis
Reverse Engineering
Security Assessment
Code Review
Vulnerability Exploitation
Reporting
8. در مورد OWASP Mobile Top 10 توضیخ دهید و چرا برای امنیت اپلیکیشن موبایل مهم است؟
توسط OWASP Mobile Top 10 فهرستی از ده خطر مهم امنیتی است که برنامه های موبایل با آن مواجه هستند. درک این آسیب پذیری ها کمک می کند تا بتوانیم در برنامه های مختلف آن ها را کشف کنیم
Insecure Data Storage
Unintended Data Leakage
Insecure Communication
Client-Side Injection
Code Tampering
Unauthorized Access & User Authentication
Jailbreaking/Rooting Detection
Push Notification and Data Leakage
Cryptographic Issues
Privacy Concerns
9. مکانیسم های احراز هویت و مجوز یک برنامه موبایل چیست ؟
احراز هویت مکانیسم های ورود به برنامه است یا Authentication
ولی مجوز مربوط به دسترسی به قسمت های مختلف یا قابلیت های مختلف است یا Authorization
به معنای آنالیز باینری ( کدهای کامپایل شده است) جهت شناسایی آسیب پذیری است.
11. اهمیت ssl pinning در امنیت برنامه های موبایل چیست؟
توسط SSL pinning مانع از حمله ssl strip 2 است.
12. چگونه ذخیره ناامن داده یا insecure data storage را در برنامه های موبایل آزمایش می کنید؟
باید بررسی شود تا اطلاعات حساس مثل رمز عبور یا داده های شخصی به صورت ناامن یا غیر قابل محافظ ذخیره نشده باشد.
13. مراحلی که برای روش های جلوگیری مهندسی معکوس یا Reverse engineering تست می کنید را نام ببرید.
مهندسی معکوس با پیاده سازی مبهم سازی و پک کردن برنامه ها سخت می شود لذا برای اینکه ببینیم چقدر برنامه مقاوم است.
14. چالش های امنیتی رایج در API های اپلیکیشن موبایل چیست و چگونه آنها را آزمایش می کنید؟
تست نفوذ API شامل چک موارد زیر است :
authentication
input validation
access control mechanisms
15. چگونه می توانید حملات دستکاری یا manipulation زمان اجرا را در برنامه های موبایل شناسایی و از آن جلوگیری کنید؟
برای این کار باید integrity چک شود و همچنین تشخیص داده شود دیوایس root/jailbreak شده است یا نه.
16. معمولا از چه ابزارهایی برای تست نفوذ اپلیکیشن موبایل استفاده می کنید؟
ابزارهای بسیاری در طول پروژه استفاده می شود بعضی از آن ها : Burp Suite، Frida، MobSF و drozer.
17. آیا می توانید سناریویی را توضیح دهید که در آن با یک مشکل امنیتی چالش برانگیز برنامه تلفن همراه مواجه شده اید و چگونه آن را حل کرده اید؟
بله من در آخرین تست یه برنامه بانکی تست می کردم:
اول برنامه دانلود کردم و وقت گذاشتم کلیه قابلیت های برنامه رو تست کردم به عنوان یک یوزر مکانیسم احراز هویت درآوردم
بعد رفتم سراغ اینکه ببینم چطور میشه مکانیسم های احراز هویت، رمزنگاری، امکان شنود دور بزنم یا نه، مدیریت session ، قابلیت 2fa، چک برای بالا بردن سطح دسترسی، بدست آوردن API تست روی آن ها و … در طول تستم چندین مورد برخورد کردم و در گزارش تمامی تست ها و آسیب پذیری های کشف شده را همراه با مستند تکمیل کردم.
18. بهترین روش ها برای کدنویسی امن برنامه های موبایل چیست؟
شیوههای کدنویسی امن، مانند اعتبارسنجی ورودی، مدیریت صحیح خطا، و استفاده از کتابخانههای رمزنگاری امن، برای امنیت برنامههای تلفن همراه بسیار مهم هستند.
19. مشکل های امنیتی مرتبط با کتابخانه های شخص ثالث یا third party در برنامه های موبایل را چگونه ارزیابی می کنید؟
تست روی این لایبرری بیشتر سمت چک آسیب پذیری ها مرسوم + ورژن استفاده شده در برنامه می باشد.
20. آیا می توانید روند گزارش نویسی برنامه های موبایل را شرح دهید.
گزارش نویسی به شکل استاندارد است:
بخش غیر فنی برای مدیران شامل ریسک ها و تاثیر روی ذینفعان
بخش فنی آسیب پذیری های شناخته شده POC و لیست تست های انجام شده
بخش پیشنهادی برای رفع مشکل ورژن لایبرری بروز شده یا شیوه جلوگیری از سو استفاده
🔸🔸🔸🔸🔸🔸🔸🔸
سوالات سطح حرفه ای
1. بهعنوان یک سنیور تست نفوذ موبایل روش تست نفوذ برنامه های پیچیده موبایل را چگونه مدیریت می کنید؟
مراحل که من پیش می گیرم به ترتیب درک معماری سپس عملکردها و در گام آخر جریان داده برنامه ها را تست می کنم.
2. آیا می توانید یک سناریوی واقعی را توضیح دهید که در آن با یک مشکل امنیتی منحصر به فرد یا غیر معمول در یک برنامه تلفن همراه مواجه شده اید، و چگونه با آن مقابله کرده اید؟
یکی از پروژه ها با برنامه مواجه شدم که پک شده بود و مدت زمانی صرف پیدا کردن روش unpack کردن کردم .
سپس به کمک APKTool اقدام به static analysis کردم.
برای dynamic analysis از Frida کمک گرفتم
3. چگونه از آخرین روند ها، ابزارها و تکنیکها تست نفوذ برنامههای موبایل مطلع میشوید؟
شرکت در کنفرانس های امنیتی، خواندن مقالات تحقیقاتی، کامیونیتی ، و دنبال کردن کارشناسان امنیتی و وبلاگ ها است.
4. تجربه خود را در انجام ارزیابیهای امنیتی برای برنامههای تلفن همراه که بر اساس فناوریهای جدید ساخته شدهاند، مانند اینترنت اشیا یا بلاک چین، شرح دهید
ارزیابی برنامه های تلفن همراه با فناوری های جدید مستلزم درک مفاهیم امنیتی آنها، تحقیق در مورد آسیب پذیری های بالقوه و انطباق روش های آزمایش بر این اساس است.
5. شرایطی را که در آن یک تیم توسعه از رفع آسیب پذیری امنیتی مهم به دلیل محدودیت زمانی امتناع می ورزد، چگونه مدیریت می کنید؟
با مدیر بالادستی ارتباط می گیرم و در طی یک جلسه ارزیابی ریسک برای ذینفعان و مشکلات پیش روی مجموعه پرزنت میکنم.
6. آیا میتوانید چالشهای مرتبط با انجام تست نفوذ در یک برنامه موبایل را که شامل API توضیح دهید؟
وقتی یک برنامه ای از API استفاده می کند برای تست ابتدا باید documentation کامل مطالعه کرد تا با سازگار API آشنا شد و سپس روی آسیب پذیری ها وقت گذاشت بدون اطلاعات کافی این امر امکان ناپذیر است.
7. برای ارزیابی امنیت اپلیکیشن موبایلی که داده های حساس را در فضای ابری ذخیره می کند چه اقداماتی انجام می دهید؟
وقتی صحبت از فضای ابری یا cloud میشه چند مورد زیر را بررسی می کنم
Encryption
Access control
Communication protocols between app and cloud
8. به عنوان یک کارشناس ارشد امنیت اپلیکیشن موبایل، چگونه بین استفاده از ابزار و تست دستی تعادل برقرار می کنید؟
در پروژه های تست نفوذ بدون شک نمی توان از استفاده از ابزار امتناع کرد ولی به صورت کلی من برای اسکن های اولیه از ابزار و بعد از آن حتما بررسی دستی را انجام می دهم تا با False positive مواجه نشوم!
9. مراحلی را که برای انجام بازبینی امنیتی کد منبع یک برنامه موبایل در مقیاس بزرگ انجام می دهید، شرح دهید.
بررسی کد منبع یک اپلیکیشن موبایل در مقیاس بزرگ مستلزم استفاده از ابزارها هست.
من از ابزار SonarQube استفاده می کنم.
10. چگونه آسیب پذیری هایی که کشف کردید در طول پروژه برای مدیران پرزنت می کنید؟
برای اینکار روی ریسک های مالی با توجه به یافته های فنی ( آسیب پذیری ها) تمرکز میکنم و با نمودار برایشان شرح می دهم چه میزان ضرر خواهند دید مدیران هیچ دیدی نسبت به داده فنی ندارن از اصطلاحات فنی اکسپلویت آسیب پذیری در جلسه امتناع میکنم!
11. طبق تجربه شما، رایج ترین مشکل هنگام توسعه برنامه های موبایل در محیط DevOps چیست و چگونه آنها را برطرف می کنید؟
محیط های DevOps ممکن است به دلیل انتشار مکرر کد منجر به آسیب پذیری شوند.باید در فرآیند CI/CD چک امنیتی انجام شود که به آن DevSecOPS می گویند. حالا می تواند از ابزارهای خودکار در سطح کد یا حالت اجرایی برنامه باشد.
12. آیا می توانید در مورد تجربه خود در انجام Red Team برای یک برنامه تلفن همراه، از جمله استراتژی ها و تکنیک هایی که به کار گرفته اید صحبت کنید؟
رد تیم شبیه سازی حملات APT باید تکنیک ها مربوطه شبیه سازی شود.
13. چگونه میتوانید Threat modeling را در رویکرد تست نفوذ اپلیکیشن موبایل خود بگنجانید؟
برای شناسایی خطرات بالقوه استفاده از Threat modeling بسیار مهم است. این شامل درک معماری برنامه، شناسایی تهدیدها، و اجرای کنترل های امنیتی برای کاهش خطرات است.
14. فرایندی را که برای اطمینان از انطباق با مقررات مربوط به حفاظت از داده ها در طول ارزیابی امنیتی برنامه تلفن همراه دنبال می کنید، شرح دهید.
با توجه به قرارداد و قوانین وضع شده تست ها را انجام می دهم.
15. آیا می توانید توضیح دهید که چگونه امنیت برنامه های موبایل را که از روش های احراز هویت بیومتریک استفاده می کنند، ارزیابی می کنید؟
ارزیابی احراز هویت بیومتریک شامل ارزیابی اجرای برنامه، شناسایی آسیبپذیریهای احتمالی و تأیید امنیت ذخیرهسازی دادههای بیومتریک است.
16. به نظر شما، بیشترین جنبه های امنیتی که در طول توسعه اپلیکیشن موبایل نادیده گرفته شده اند، چیست و چگونه در ارزیابی های خود بر آنها تاکید می کنید؟
جنبههای امنیتی نادیده گرفته شده ممکن است شامل APIهای نادیده گرفته شده، اعتبارسنجی ضعیف دادهها و امنیت ناکافی در ویژگیهای کمتر مورد استفاده باشد. تاکید بر شیوه های کدگذاری ایمن و آزمایش جامع می تواند این مشکلات را برطرف کند.
17. موقعیتی را توصیف کنید که در آن با یک تکنیک obfuscation بسیار پیچیده در طول ارزیابی برنامه تلفن همراه مواجه شده اید و چگونه با موفقیت آن را دور زده اید.
وقتی نتوانم برنامه را unpack کنم وقت خودم را روی dynamic analysis و runtime analysis می گذارم.
18. خطرات امنیتی مرتبط با SDK ها و کتابخانه های third party مورد استفاده در برنامه های تلفن همراه را چگونه ارزیابی می کنید؟
یکی از رایج ترین اشتباهات در توسعه برنامه های موبایل استفاده از SDK third party که اصلا چک امنیتی نشده اند یا حتی ورژن قدیمی آن ها توسط Developer در پروژه استفاده شده که تاثیر مشکل امنیتی در خود برنامه وجود خواهد داشت.
19. آیا میتوانید تجربه خود را در آزمایش امنیت برنامههای تلفن همراه در چندین پلتفرم (مانند Android، iOS، cross platform frameworks) به اشتراک بگذارید؟
تست نفوذ هر پلتفرم نیازمند دانش روی ویژگی های امنیتی، آسیب پذیری ها در آن پلتفورم خاص و روش تست مخصوص آن پلتفرم می باشد یعنی باید معماری iOS و Android را به خوبی بشناسیم تا بتوانیم در تست نفوذ برنامه های آن ها موفق باشیم.
20. به عنوان یک کارشناس ارشد، چه توصیه ای به تسترهای امنیتی اپلیکیشن موبایل می دهید تا مهارت های خود را بهبود بخشند و در نقش خود موثرتر شوند؟
بدون شک تمرین شرکت در CTF و استفاده از تجربه اشخاصی که مدت زمان زیادی در این حوزه فعالیت کرده اند.
حمایت از ما
سادهترین راه حمایت از ما کلیک کردن روی ستاره (⭐) بالای همین صفحه است.