پیشرفت در حوزه امنیت به دانش، تخصص و تجربه نیاز دارد. به طور خاص، آشنایی با ابزارهای امنیتی مختلف در زمینههای مختلف از اهمیت ویژهای برخوردار است. به عنوان یک متخصص امنیت، مسلط بودن به عملکرد و کاربرد ابزارهای مورد استفاده در پروژههای مختلف بسیار ضروری است. لیستی از ابزارهایی که من استفاده میکنم به شرح زیر است: شخصی که روی ابزارها فقط تخصص دارد هکر نیست. ابزارهای دیگری هستند که ممکن است جایگزین برخی از این ابزارها شوند. بعضی ابزارها بعد از مدتی دیگر آپدیت نمی شوند و امکان وجود دارد که دیگر کار نکنند و یا حتی 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
توسط 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
بله من در آخرین تست یه برنامه بانکی تست می کردم: اول برنامه دانلود کردم و وقت گذاشتم کلیه قابلیت های برنامه رو تست کردم به عنوان یک یوزر مکانیسم احراز هویت درآوردم بعد رفتم سراغ اینکه ببینم چطور میشه مکانیسم های احراز هویت، رمزنگاری، امکان شنود دور بزنم یا نه، مدیریت session ، قابلیت 2fa، چک برای بالا بردن سطح دسترسی، بدست آوردن API تست روی آن ها و … در طول تستم چندین مورد برخورد کردم و در گزارش تمامی تست ها و آسیب پذیری های کشف شده را همراه با مستند تکمیل کردم.
یکی از پروژه ها با برنامه مواجه شدم که پک شده بود و مدت زمانی صرف پیدا کردن روش unpack کردن کردم . سپس به کمک APKTool اقدام به static analysis کردم. برای dynamic analysis از Frida کمک گرفتم
ارزیابی برنامه های تلفن همراه با فناوری های جدید مستلزم درک مفاهیم امنیتی آنها، تحقیق در مورد آسیب پذیری های بالقوه و انطباق روش های آزمایش بر این اساس است.
در پروژه های تست نفوذ بدون شک نمی توان از استفاده از ابزار امتناع کرد ولی به صورت کلی من برای اسکن های اولیه از ابزار و بعد از آن حتما بررسی دستی را انجام می دهم تا با False positive مواجه نشوم!
برای اینکار روی ریسک های مالی با توجه به یافته های فنی ( آسیب پذیری ها) تمرکز میکنم و با نمودار برایشان شرح می دهم چه میزان ضرر خواهند دید مدیران هیچ دیدی نسبت به داده فنی ندارن از اصطلاحات فنی اکسپلویت آسیب پذیری در جلسه امتناع میکنم!
محیط های DevOps ممکن است به دلیل انتشار مکرر کد منجر به آسیب پذیری شوند.باید در فرآیند CI/CD چک امنیتی انجام شود که به آن DevSecOPS می گویند. حالا می تواند از ابزارهای خودکار در سطح کد یا حالت اجرایی برنامه باشد.
رد تیم شبیه سازی حملات APT باید تکنیک ها مربوطه شبیه سازی شود.
جنبههای امنیتی نادیده گرفته شده ممکن است شامل APIهای نادیده گرفته شده، اعتبارسنجی ضعیف دادهها و امنیت ناکافی در ویژگیهای کمتر مورد استفاده باشد. تاکید بر شیوه های کدگذاری ایمن و آزمایش جامع می تواند این مشکلات را برطرف کند.
یکی از رایج ترین اشتباهات در توسعه برنامه های موبایل استفاده از SDK third party که اصلا چک امنیتی نشده اند یا حتی ورژن قدیمی آن ها توسط Developer در پروژه استفاده شده که تاثیر مشکل امنیتی در خود برنامه وجود خواهد داشت.
تست نفوذ هر پلتفرم نیازمند دانش روی ویژگی های امنیتی، آسیب پذیری ها در آن پلتفورم خاص و روش تست مخصوص آن پلتفرم می باشد یعنی باید معماری iOS و Android را به خوبی بشناسیم تا بتوانیم در تست نفوذ برنامه های آن ها موفق باشیم.