۱۶ ابزار مفید برای ضدضربه کردن برنامههای اندرویدی
یکی از مهمترین بحثها در توسعهی اپلیکیشنهای اندرویدی، امنیت برنامه است. ما وقت زیادی را صرف طراحی و توسعهی برنامه میکنیم ولی به ندرت برای افزایش امنیت آن زمان میگذاریم. بسیاری از برنامههای اندرویدی با اینکه اطلاعات حساس کاربران را نگهداری میکنند ولی عاری از هرگونه ملاحظات امنیتی حتی در پایینترین سطوح آن هستند. بسیاری از اپهای محبوب در پلیاستور، ضعفها و آسیبپذیریهای آشکاری دارند که با همت یک هکرِ کاربلد به سادگی و در زمان کمی امکان اکسپلویت کردن آنها وجود دارد.
اهمیت این موضوع باعث شد تا در این مقاله، لیستی از بهترین ابزارها برای آنالیز و افزایش امنیت برنامههای اندرویدی معرفی کنیم. اگر کارتان در حوزهی امنیت باشد و به دنبال یافتن آسیبپذیری در برنامههای مختلف هستید، ابزارهای معرفی شده در این پست بسیار به کارتان خواهد آمد. این مقاله را با دقت بخوانید و از ابزارهای معرفی شده جهت آنالیز نقاط ضعف برنامه و یافتن آسیبپذیریها و تهدیدهای بالقوهی آن استفاده کنید.
Androguard
ابزاری به زبان پایتون که قدرت بالایی در مهندسی معکوس اپلیکیشنهای اندرویدی دارد. با این برنامه کنترل کاملی بر روی فایلهای DEX خواهید داشت. این ابزار همچنین برای آنالیز استاتیک کد و یافتن بدافزارهای موجود در آن کاربرد دارد. برنامه قابلیتهای دیگری نیز همچون مقایسه دو فایل APK، سنجش کارایی مبهمسازها (obfuscators نظیر ProGuard و DexGuard) و بررسی تغییر یا عدم تغییر غیرقانونی کدهای برنامه را داراست.
ApkTool
این هم ابزار مهندسی معکوسی دیگری است که از محبوبیت بالایی برخوردار بوده و به صورت منظم بروز میشود. اولین انتشار آن سال ۲۰۱۰ بود که بعدها با تغییرات و آپدیتهای گستردهای روبرو شد. با این ابزار امکان مهندسی معکوس و استخراج کدهای هر اپلیکیشن اندرویدی، آنالیز، اعمال تغییرات و Build کردن مجدد آن وجود دارد. این برنامه با محیط گرافیکی و نمایش پروژهمحور فایلها، کار مهندسی معکوس اپهای اندرویدی را بسیار ساده کرده است. این ابزار با حذف فعالیتهای تکراری در فرایند مهندسی معکوس، کار رمزگشایی فایلهای APK را بسیار آسان نموده است.
Appknox
Appknox یکی از کاملترین ابزارهای تست امنیت برنامههای اندرویدی است. این ابزار با آنالیز استاتیک کدهای برنامه، مشکلات امنیتی و آسیبپذیریهای بالقوهی آن را پیدا میکند. تست خودکار یا Automated Testing تنها قادر است گوشهای از مشکلات برنامه را شناسایی کند اما Appknox تست برنامه را وارد فصل جدیدی کرده است. در این ابزار، هکرهای قانونمدار به صورت دستی، برنامهی شما را تست میکنند تا حفرههای امنیتی عمیق، نشتهای دادهای حساس و سایر نقاط ضعف احتمالی آن را پیدا کنند.
CharlesProxy
این ابزار قدرتمند و مفید، امکان دیباگ هر مشکلی مرتبط با HTTP را داراست. چارلزپراکسی تنها مختص اندروید نبوده بلکه برای سیستمعامل iOS نیز قابل استفاده است. این ابزار میان برنامهی شما و اینترنت قرار گرفته و امکان کاوش و تغییر راه ارتباطی با شبکه را میسر میکند. تمامی درخواستهای شبکه نشان داده میشود. این کار، تست و اشکالزدایی مسائل امنیتی این حوزه را آسان میکند.
ClassyShark
ClassyShark ابزاری ساده برای کاوش برنامههای اندرویدی است. به سادگی میتوانید همهی کلاسها، اعضای آن، وابستگیها و تعداد متدها را مشاهده کنید. ظاهر گرافیکی برنامه، مشاهده ساختار پکیجها را بسیار آسان کرده است و قابلیت Methods Count صرفهجویی زیادی در سنجش تعداد متدهای برنامه به عمل میآورد.
DeGuard
این ابزارِ آنلاین با استفاده از یادگیری ماشینی، کدها را از حالت مبهم خارج میکند. دیگارد با استفاده از قدرت هوش مصنوعی یکی از بهترین ابزارهای مهندسی معکوس است. گفتنی است که این ابزار با افزایش تعداد دفعات استفاده از آن، هوشمندتر شده و قادر است کدها را دقیقتر از قبل مهندسی معکوس کند.
DevKnox
این ابزار به صورت خودکار، آسیبهای امنیتی شناخته شده را در محیط اندروید استودیو برطرف میکند. برنامه، کدهای شما را در حین نوشتن درک کرده و با ارائهی پیشنهادهای امنیتی، اجازهی رفع مشکل و بهینهسازی کد با یک کلیک را فراهم نموده و میزان بهرهوریتان را افزایش میدهد.
Dex2Jar
ابزاری محبوب و شناختهشده است که مجموعهای از قابلیتهای مختلف برای مهندسی معکوس برنامههای اندرویدی را فراهم کرده است. برای نمونه، از این ابزار میتوانید جهت خواندن و نوشتن آسان فایلهای DEX و ترجمه و ویرایششان استفاده کنید. شما میتوانید همه فایلهای DEX را به Class File تبدیل کرده و همهی آنها را در یک آرشیو جاوا با فرمت JAR دریافت کنید. همچنین امکان استخراج فایلهای smail از فایلهای DEX و اسمبل مجدد آن به فایلهای DEX وجود دارد.
DexGuard
قبل از انتشار برنامهی اندرویدیتان حتما بایستی از یک مبهمساز (Obfuscator) برای به هم ریختن کد استفاده کنید. احتمالا تاکنون از ProGuard که ابزار پیشفرض اندروید استودیو بوده استفاده میکردید که از امنیت قابل قبولی هم برخوردار است اما توصیه میکنیم از ابزار قدرتمندتر DexGuard (ساخته شده توسط سازندهی پروگارد) استفاده کنید. DexGuard از قابلیتهای پیشرفتهای نظیر اینکریپت کردن کلاسها، اینکریپت کردن رشتهها (پنهانسازی کلیدها اکنون بسیار ساده شده است)، پنهانسازی فراخوانی متدها با استفاده از رفلکشن و مبهمسازی کدهای native برخوردار است. استفاده از این تکنیکها قطعا کار مهندسی معکوس برنامه را با سختیهای زیادی همراه میکند. این برنامه همچنین ابزارهای مختلفی برای تشخیص Apkهای کرک شده، فریمورک Xposed و دیوایسهای روت شده و … داراست.
Drozer
دروزر، یک پلتفرم جامع و توانمند جهت بررسی امنیت اپلیکیشنهای اندرویدی است. تفتیش برنامه با استفاده از این ابزار، خیال شما را از بابت باقی نماندن آسیبپذیریهای بالقوه در کدها راحت میکند. این برنامه، با خودکارسازی فعالیتهای خستهکننده و زمانبر، ارزیابی امنیت برنامه را بسیار آسان میکند. کارهایی مثل:
- تشخیص و مقابله با مسائل امنیتی موجود در برنامههای اندروید
- اجرای داینامیکِ کدهای جاوا بر روی دستگاه، عدم نیاز به کامپایل و نصب اسکریپتهای تست
- اجرای آزمون رگرسیون برای یافتن مشکلات امنیتی
- تست برنامه در مقابل اکسپلویتهای عمومی و رایج
Inspeckage
Inspeckage ابزار دیگری برای تست امنیت برنامه است. این برنامه، قابلیتهای متعددی برای آنالیز داینامیک (آنالیز بدافزارها یا تست نفوذ) برنامههای اندرویدی گردآورده است. برنامه همچنین یک اپلیکیشن تحت وب برای اجرای تستهای مختلف در محیطی ساده و جذاب فراهم نموده است. سادگی و قدرت این برنامه، آن را به یکی از ابزارهای ضروری برای هر توسعهدهندهی اندرویدی تبدیل کرده است.
Intent Sniffer
اینتنت اسنیفر اجازه میدهد تا وضعیت Intentها (مثلا شروع اکتیویتی یا سرویس) را در هر برنامهی اندرویدی مانیتور کنید. این ابزار همچنین آپدیت داینامیک Intent action و Category آن را امکانپذیر میکند. با این برنامه امکان تست دادههای مختلف که میخواهید از یک اکتیویتی به دیگری منتقل شود وجود دارد تا با نقاط ضعف برنامه آشنا شوید.
QARK
QARK سرنام عبارت Quick Android Review kit، ابزار امنیتی مفیدی است که توسط لیندکدین ساخته شده است. این ابزار کمک میکند تا نه تنها آسیبپذیریهای داخل کد بلکه آنهایی که در قسمتهای مختلف فایل APK وجود دارند را شناسایی کنید. از آنجایی که QARK از دیکامپایلرهای مختلفی استفاده میکند، نتایج آن بسیار کاملتر و متفاوت از سایر ابزارهای معرفی شده است.
Tracedroid
تریسدروید، ابزاری برای آنالیز خودکار و داینامیک برنامههای اندرویدی است. این ابزار در آنالیز جنبههای امنیتی مختلف برنامه مانند: ارتباطات شبکه، تعاملات واسط کاربری، عملکرد کدهای داخلی و … به شما کمک میکند. برای آنالیز خودکار، کافی است تا APK تحت آزمون را به سایت ارسال کرده و نتایج را مشاهده کنید.
VirtualAPK
فریمورکی قدرتمند برای اجرا و تست آسان فایلهای APK در دیوایس اندرویدی شماست. این ابزار با فراهم کردن قابلیت دسترسی به هر نوع اکتیویتی، سرویس، ریسیور، پرووایدر یا کلاسها، آنالیز کدها را بسیار آسان میکند. VirtualAPK قادر است تا مجموعهی وسیعی از قابلیتهای نسخههای مختلف اندروید (از API 15 به بالا) را تست کنید.
Xposed Framework
فریمورک Xposed، با کمک هوکها، اجرای آنالیز داینامیک را سهولت میبخشد. این ابزار با فاصلهی زیادی، یکی از محبوبترین چارچوبهای هوکینگ در دنیای اندروید است. این برنامه اجازه میدهد تا قابلیتهای مختلف سیستمعامل و یا هر برنامهای که دوست دارید را تغییر دهید. این ابزار همچنین اجازه ساخت افزونهها (یا همان ماژولها) را میدهد. در این روش با هوک کردن ماژول به متد مورد نظر میتوانید عملکرد آن را تغییر داده و برنامه را در زمان اجرا آنالیز و تست کنید.
امنیت برنامه را از صفر آغاز کنید…
امیدوارم با کمک ابزارهای معرفی شده، بهتر از قبل بتوانید آسیبپذیریها و نقاط ضعف امنیتی برنامه را تشخیص داده و با آنها مقابله کنید. زمانی را برای آموختن عملکرد این نرمافزارها در نظر بگیرید تا امنیت برنامهای که با هزاران زحمت نوشتهاید به راحتی در معرض تهدید قرار نگیرد. در صورت آشنایی با سایر ابزارهای امنیتی اندروید، آن را در بخش دیدگاهها به اشتراک بگذارید.
0 دیدگاه
نشانی ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *