خطرات واتساپ که باید بدانید!
نوامبر 30, 2021هک برنامه چگونه انجام می شود؟
دسامبر 2, 2021بسیاری از افراد از برنامه های مختلف استفاده می کنند و می خواهند بدانند که چگونه می توان هک برنامه را انجام داد. هک برنامه می تواند شامل از بین بردن رمز های عبور یا شکستن مراحل مختلف برای ورود به مراحل جدیدتر باشد. اما بیشترین چیزیکه در مورد هک برنامه ها به شدت استفاده می شود تبدیل کردن نسخه های معمولی به نسخه های پریمیوم است. به هر صورت در این مقاله قصد داریم راه های مهم تست نفوذ برای مقابله این کار را به شما معرفی کنیم.
چرا به تست نفوذ انواع برنامه ها نیاز داریم؟
برنامه های تلفن همراه اینجا هستند تا بمانند. با افزایش وابستگی ما به تلفن های هوشمند، آنها به بخشی ضروری از زندگی ما تبدیل شده اند. اما وقتی صحبت از امنیت می شود، کاربران به فکر گوشی خود هستند.
حقیقت این است که اگر ما ندانیم برنامههای ما چگونه توسعه یافته و نفوذ تست شده است، امنیت میتواند یک تصور نادرست باشد. واقعیت این است که دانلود و استفاده از این برنامهها میتواند یک خطر بالقوه برای شما و سازمانتان باشد، با توجه به اینکه برنامههای آزمایش نشده ممکن است حاوی اشکالات امنیتی باشند که میتواند دادههای شما را آسیبپذیر کند. متأسفانه، گزارش ها اشاره می کند که اکثر برنامه های موبایل و سلامت دارای آسیب پذیری های امنیتی جدی هستند.
یکی از راههای جلوگیری از این خطر این است که مطمئن شوید برنامههای تلفن همراه به درستی در برابر آسیبپذیریهای امنیتی آزمایش شدهاند. تست نفوذ میتواند سطح خاصی از اطمینان را برای ما به ارمغان بیاورد، اما هک کردن برنامههای موبایل نیازمند رویکرد و راهاندازی متفاوتی نسبت به برنامههای کاربردی وب است.
مثال های تست نفوذ
مانند برنامه های کاربردی وب، برنامه های تلفن همراه از اشکال مختلف آسیب پذیری امنیتی رنج می برند. با این حال، این آسیبپذیریها تفاوت چندانی با نوع وب ندارند.
تزریق SQL یک آسیب پذیری شناخته شده است که در برنامه های کاربردی وب وجود دارد . بسیاری از خطرات واتساپ و یا انواع سایت هک با همین SQL انجام می شود.سپس بر برنامه های تلفن همراه تأثیر می گذارد. هنگامی که این داده ها از طریق یک کلاینت نازک متصل به یک سرویس XML وب ارائه می شود، امنیت ارائه شده از طریق کلاینت و سرور بیشتر به میزان توسعه و آزمایش آن بستگی دارد. در مقابل، با برنامههای تلفن همراه، که دادههای آنها عمدتاً در سمت مشتری ذخیره میشود، باید رویکرد امنیتی متفاوتی برای محافظت از آنها در نظر بگیرید.
در هر صورت اپلیکیشن موبایلی که بر روی دستگاه میزبان یا نصب شده و امنیت آن تحت تاثیر نحوه اجراها قرار می گیرد. هنگامی که ما در مورد ارزیابی خطرات صحبت می کنیم، ده برتر موبایل OWASP یک نمای کلی از تهدیدات امنیتی که اکثر برنامه های تلفن همراه از آن رنج می برند به ما ارائه می دهد. در اینجا هشت مورد از بهترین روش برای کمک به شما در مقابله با هک های تلفن همراه با تست نفوذ وجود دارد.
1. تهیه طرح تست امنیتی
یکی از چالشهای تست قلم اپلیکیشنهای موبایل، استفاده از روششناسی صحیح است. برگه تقلب OWASP iOS یک نمای کلی از بردارهای حمله ارائه می دهد که می توانند در برنامه آزمایشی شما در نظر گرفته شوند. این یکی، به طور خاص برای دستگاه های iOS ایجاد شده است، اگرچه روش اعمال شده می تواند برای پلتفرم های دیگر استفاده شود.
همانطور که در درخت بالا نشان داده شده است، هر سطح حمله اصلی شامل مناطق خاصی است که برای ارزیابی اعمال می شود. برای هر حمله بزرگ، یک تکنیک مناسب را در نظر بگیرید:
نقشه برداری برنامه ⇒ جمع آوری اطلاعات
حملات مشتری ⇒ زمان اجرا، باینری و تجزیه و تحلیل سیستم فایل
حملات شبکه و سرور ⇒ تجزیه و تحلیل شبکه و ذخیره سازی ناامن داده ها
برای هر بخش، مجموعه ای مشخص از ابزارها و مهارت ها لازم است. علاوه بر درک سیستم عامل مورد حمله، باید به نوع اپلیکیشن موبایل نیز برای تست نفوذ توجه زیادی داشته باشید. هر کدام یک بردار حمله متفاوت دارند. در مورد یک برنامه بومی iOS، احتمالاً به زبان Objective-C یا Swift نوشته شده است، اما برنامه های مبتنی بر مرورگر یا ترکیبی با استفاده از فناوری های کاربردی وب سنتی ساخته شده اند که برای اجرا در مرورگر وب دستگاه ایجاد شده اند.
علاوه بر این، در مقایسه با برنامه های کاربردی وب، تجزیه و تحلیل برنامه های کاربردی تلفن همراه دارای یک تفاوت عمده است: تجزیه و تحلیل باینری و سیستم فایل. این مرحله نیاز به مهارت های مهندسی معکوس و استفاده از تکنیک های اشکال زدایی با برنامه هایی مانند IDA Pro و همچنین جداسازی فایل ها با GCC دارد. در مقابل، مهندسی معکوس نشاندهنده بخش کوچکی از تکنیکهای سنتی نفوذ برنامههای وب است که به دلیل معماری و استقرار تین کلاینت است.
2. آماده سازی محیط تست
برنامه های کاربردی وب بر روی انواع پلتفرم ها و مرورگرها اجرا می شوند، اما در مورد برنامه های موبایل اینطور نیست. بنابراین، یک محیط تست مبتنی بر دستگاه خاص باید پیکربندی شود. به عنوان مثال، در مورد دستگاه iOS، با توجه به امنیت اعمال شده توسط اپل ، که به شما اجازه مشاهده و تجزیه و تحلیل یا پاسخ به حمله را نمی دهد، باید دستگاه را جیلبریک کنید؟ استفاده از جیلبریک evasi0n7 به شما امکان می دهد دستگاه را بوت کنید و به سیستم عامل دسترسی root/admin داشته باشید. در مورد اندروید، روت کردن دستگاه با نصب One Click Root چنین دسترسی را فراهم می کند.
3. ساخت زرادخانه حمله
هنگامی که دستگاه آماده شد، برای اهداف تجزیه و تحلیل و جمعآوری اطلاعات به ابزارهای اضافی نیاز دارد. اینها باید در محیط تست و دستگاه مستقر شوند. Cydia اپ استور iOS جیلبریک شده است و از طریق آن می توان ابزارهای لازم برای هک را دانلود کرد. دیباگرها و رمزگشاها می توانند به شما در درک مکانیک برنامه کمک کنند.
برای تجزیه و تحلیل باینری، از Android Apktool یا یک Android Reverse Engineeri قوی تر استفاده کنید
ماشین مجازی ng به شدت توصیه می شود. اگر برنامه رمزگذاری شده است، رمزگشایی آن با استفاده از ابزارهایی مانند AppCrack یا DumpDecrypted ضروری است. علاوه بر این، Burp Proxy، Android Proxy، OWASP ZAP، Wireshark و Tcpdump تنها تعدادی از ابزارهای موجود برای تجزیه و تحلیل شبکه هستند.
4. آماده سازی موارد تست نفوذ: نقشه برداری برنامه
در این مرحله تست نفوذ، مشاهده برنامه در سطح عملکردی و تجزیه و تحلیل رفتار آن، از جمله رمزگشایی آن در صورتی که برنامه مبهم شده است، ضروری است. استخراج انواع چارچوبهایی که استفاده شدهاند، یادداشتبرداری در مورد موارد زیر، به ایجاد یک مدلسازی تهدید مناسب کمک میکند، و از همان اصولی که در راهنمای تست OWASP توضیح داده شده برای ایجاد یک مجموعه آزمایشی استفاده میکند:
هویت، احراز هویت و کنترل دسترسی برای تست نفوذ => زنجیره های کلیدی، حملات brute-force، تعدیل پارامترها
اعتبار سنجی و رمزگذاری ورودی => ورودی مخرب، مبهم
رمزگذاری => فیلدهای رمز پایگاه داده SQLite، رمزگذاری فایل پیکربندی
مدیریت کاربر و جلسه => شناسه های جلسه، قفل زمانی
رسیدگی به خطا و استثنا
حسابرسی و ثبت => سیاههها، کنترل دسترسی به سیاهه های مربوط.
5. حمله به مشتری: تجزیه و تحلیل باینری و فایل
در طول این مرحله، هدف اصلی کشف تماسهای API ناامن و فایلهایی است که بهدرستی با کنترلهای دسترسی کافی ایمن نشدهاند. این را می توان با اشکال زدایی و تجزیه و تحلیل کد با استفاده از IDA Pro یا Hopper App به دست آورد. سرریزهای بافر نباید دور ریخته شوند. برای کشف آسیبپذیریهایی مانند تزریق SQL، میتوانید از تکنیکهایی مانند فازی کردن برنامه یا استفاده از ورودیهای مخرب استفاده کنید.
تکنیکهایی که برای کشف آسیبپذیریها در یک برنامه بومی استفاده میشوند، مشابه برنامههای آزمایشی قلم هستند با این تفاوت: به جای استفاده از پروکسی برای درک عملکرد درونی برنامه، از نرمافزار اشکالزدایی استفاده میشود.
مهم:
برخی از این تکنیکها شامل رویکردهای آزمایشی مشابه روشهایی هستند که در راهنمای تست OWASP استفاده میشوند. در طول تست نفوذ، مطمئناً با استفاده از یک پراکسی حمله برای تزریق ورودی مخرب به ما کمک میشود. در مورد یک برنامه موبایل بومی، ابزاری مانند iOKit می تواند از این کار پشتیبانی کند. برای ارزیابی خطرات مربوط به ذخیرهسازی دادههای محلی، مرور پایگاه داده با مرورگر پایگاه داده SQLite در مورد Android و iOS اعمال میشود تا بررسی شود که چگونه دادهها ایمن شدهاند.
در نهایت، در صورت رمزگذاری، می توانید نوع رمزگذاری مورد استفاده در فیلدهای داده حساس را تأیید کنید. تجزیه و تحلیل ذخیره سازی مناسب مکان زنجیره های کلید API و کنترل دسترسی به آنها، از جمله برخی از تست های اعمال شده برای حملات مشتری.
6. حملات شبکه: ترافیک را نصب کنید، ترافیک را اجرا کنید
هنگامی که برنامه تلفن همراه با معماری لایه مشتری-سرور روشن طراحی شده است، حملات شبکه یکی از نگرانی های اصلی است. استفاده از sniffers که یکی از بخش های تست نفوذ است. برای ضبط ترافیک شبکه و بررسی حفاظت لایه انتقال ضروری است. پراکسی های حمله مانند ZAP می توانند در این زمینه کمک کنند. تست های دیگری که باید در این مرحله گنجانده شوند عبارتند از:
احراز هویت. با مشاهده درخواست و پاسخ های بین مشتری و سرور، می توان آسیب پذیری های مربوط به احراز هویت را کشف کرد. در مواردی که برنامه از احراز هویت اولیه HTTP استفاده می کند، این یک خطر است. در صورت استفاده، همیشه باید از طریق SSL انجام شود. البته احراز هویت دو عاملی می تواند امنیت بیشتری به سیستم های شما بدهد.
مجوز ها
مجوز، نقش ها و کنترل های دسترسی بین آنها را می توان از طریق دستکاری پارامترها در تست نفوذ کشف کرد. ایمن کردن کلید API به درستی در یک پوشه غیرقابل دسترسی را می توان با تجزیه و تحلیل فایل (برنامه های بومی) یا spider کردن برنامه (برنامه های مبتنی بر وب) کشف کرد.
مدیریت جلسه. نشانههای Session ID که از طریق روشهای GET ارسال میشوند و در URL قرار میگیرند، هنگام پروکسی کردن برنامه یا sniffing شبکه قابل مشاهده هستند.
رمزگذاری و پروتکل های ضعیف اپلیکیشن های موبایل در این مناطق آسیب پذیرتر هستند. آسیبپذیریهای بیسیم که حول پروتکلهای رمزگذاری مورد استفاده دستگاه میچرخند، باید دستهبندی شوند.
7. مرحله بندی حملات سرور
آزمایش زیرساخت، بهویژه سرور میزبان برنامه وب تلفن همراه، به ابزارهایی مانند Nmap و زرههای آزمایش قلم مشابه نیاز دارد که برای نقشهبرداری و کشف آسیبپذیریهای احتمالی و تهدیدهای سوءاستفاده طراحی شدهاند. همچنین، آپلود نامحدود فایل، تغییر مسیر باز، و اشتراکگذاری منابع متقاطع باید به عنوان بخشی از آزمایشها گنجانده شود.
آزمایش و تست نفوذ بر روی برنامههای تلفن همراه ترکیبی و مبتنی بر وب باید بر انجام حملاتی متمرکز شود که سعی میکنند مکانیسمهای احراز هویت بین تین کلاینت و سرور را دور بزنند. برای مثال، پیادهسازی امنیت سرویسهای وب میتواند آسیبپذیریهایی مانند XML و XPath Injections ایجاد کند. یک مثال واضح از حمله سمت سرور در سال 2013 رخ داد، زمانی که حسابهای iCloud Apple ID به راحتی با تنظیم مجدد رمز عبور، تنها ایمیل و تاریخ تولد صاحب حساب را ارائه میکردند. ضعف کنترل های مجوز عامل اصلی این آسیب پذیری امنیتی بود.
8. اطلاعات بیشتر در مورد آسیب پذیری های تلفن همراه
تمرین کامل می کند. یکی از منابعی که در دسترس آزمایش کنندگانی است که مایل به کسب اطلاعات بیشتر در مورد نحوه بروز آسیب پذیری های امنیتی در برنامه های تلفن همراه هستند، برنامه های موبایل آسیب پذیری هستند که با این هدف طراحی شده اند.
برنامه Damn Vulnerable iOS مستندات کاملی را ارائه می دهد، از جمله برخی از مقالات دستورالعمل که در مورد راه اندازی یک محیط آزمایشی، تجزیه و تحلیل زمان اجرا، و ترافیک شبکه، و بسیاری از نمونه های دقیق دیگر بحث می کنند.
احساس نادرست امنیت تلفن همراه فراگیر است.
نتیجه
واضح است که احساس امنیت کاذبی در بین کاربران تلفن همراه وجود دارد. برنامههای تلفن همراه با آسیبپذیریهایی مواجه هستند که به روشهایی مشابه یا یکسان با برنامههای کاربردی وب روی آنها تأثیر میگذارد. چالش های واقعی در ایمن سازی آنها وجود دارد که مستلزم درک کنترل های امنیتی مناسب است تا برنامه ها با در نظر گرفتن امنیت توسعه داده شوند. آزمایش برنامه ها شامل زمینه هایی مانند مهندسی معکوس، رمزگشایی و تجزیه و تحلیل فایل است که به مهارت هایی نیاز دارد که یافتن آنها چندان ساده نیست.
توسعه دهندگان موبایل نیز باید از این تکنیک ها برای ساختن برنامه های کاربردی ایمن تر آگاه شوند. برخی از اسناد جالب و همچنین منابع دیگری با تمرکز بر ایجاد آگاهی در مورد خطرات برنامه های کاربردی موبایل آسیب پذیر در دسترس است. علاوه بر این، یادگیری و تمرین مداوم می تواند به شما در درک بهتر خطرات امنیتی مرتبط با آنها کمک کند.
در ضمن، فقط کلیک و دانلود نکنید. در عوض، با درک اینکه چه کسی یک برنامه کاربردی را توسعه داده است و چه نوع اطلاعاتی در مورد کنترلهای امنیتی از جمله احراز هویت دو مرحلهای مناسب ارائه شده است، بررسی لازم را انجام دهید.