نحوه نصب DVIA در Xcode | تست نفوذ iOS Application

در این محتوا قصد داریم به بررسی و چگونگی نصب محیط DVIA به منظور تست نفوذ نرم افزار های iOS بپردازیم نویسنده: امیرحسین تنگسیری نژادآیا تکون فکر کرده ایید اگر بخواهیم تست نفوذ سنجی برنامه های iOS را انجام دهیم باید از کجا شروع کنیم؟! و از همه مهم تر چه Solution و محیط های پیش روی ما می باشد؛ محیط DVIA یک محیط Virtual برای شبیه سازی تست نفوذ سنجی نرم افزار های سیستم عامل iOS می‌باشد که محبوبیت بسیاری در بین متخصصین امنیت نرم افزار دارد، در این آموزش به Complie سازی این محیط در سیستم عامل Mac OS و محیط Xcode می‌پردازیمپیش نیازات سیستمی:Mac OSXcode 8نصب قدم به قدم DVIA1: دانلود DVIAmkdir ~/dvia cd ~/dvia git clone https://github.com/prateek147/DVIA.gitدرصورتی که از Git نتوانستید آن را دانلود کنید به شکل زیر عمل کنید mkdir ~/git cd ~/git curl -L https://github.com/prateek147/DVIA/archive/master.zip | tar zx mv DVIA-master DVIA2: اجرای محیط در Xcodecd ~/git/DVIA/DVIA/DamnVulnerableIOSApp open DamnVulnerableIOSApp.xcworkspace3: غیرفعال سازی ATS یا همان Application Transport شرکت Apple در سیستم عامل های iOS سری 9 ویژگی تحت عنوان ATS یا همان Application Transport Security را ارائه داده است که به تصریح و قدرتمند سازی اتصالات Https در iOS کمک شایانی می‌کند این ویژگی در Xcode نیز فعال می‌باشد و به دلیل استفاده گسترده DVIA از Http اروری به شکل زیر دریافت ‌می‌کنید2016-09-10 15:37:04.340 DamnVulnerableIOSApp[4814:378583] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.برای غیرفعال سازی ویژگی ATS یا همان Application Transport Security می‌بایست فایل Plist را ویرایش کنید(در اینجا من از vim که یک Text-Editor تحت Console می‌باشد استفاده می‌کنم شماها می‌توانید از هر Text-Editor دیگری استفاده کنید)vim DamnVulnerableIOSApp/DamnVulnerableIOSApp-Info.plistبه انتهای پرونده بروید و کد زیر را به آن اضافه کنید<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>4: پیکربندی Simulator در Xcodeپیشنهاد میکنم از iPhone 7 استفاده کنید زیرا ابعاد صفحه بهتری دارد معمولا و سازگاری خوبی با اکثر سیستم هانکته: همچنین می‌توانید از یک گوشی iPhone فیزیکی نیز استفاده کنید.در قسمت Project پروژه خود را که DamnVulnerableIOSApp را انتخاب کنیدقسمت Bundle Identifier یک نام قرار دهید سپس در قسمت Signing بخش Automatically manage signing را انتخاب کنید و بر روی Enable Automatic قرار دهید.در قسمت Signing بخش Team می‌بایست اکانت توسعه دهنده خود را در منو Drop-Down قرار دهیدمراحل بالا را برای WatchKit نیز طی کنیددر این مرحله می‌بینید که Xcode تعدادی خطا به ما می‌دهد که زیاد اهمیتی ندارند فعلا5: انتخاب گروه AppleWatch و یک گروه خاص توسط خودمانبه قسمت Capabilities قسمت Apps Group بروید و مراحل زیر را طی کنیدگروه group.dvia.AppleWatch را علامت بزنیدیک گروه را وارد کنید(برای مثال من group.ahoog42.dvia را وارد کرده ام)6: اپدیت سازی WatchKit به منظور ایجاد تقییرات و گروه هاvim DamnVulnerableIOSApp\ WatchKit\ Extension/Info.plistکد زیر را در آخر فایل قرار دهید<key>WKAppBundleIdentifier</key> <string>com.ahoog42.dvia.watchkitapp</string>7: حذف WatchKit Binary در این بخش می‌خواهیم WatchKit Binary را حذف سازیم. به قسمت General بخش Embedded Binaries و انتخاب دکمه "-"در اینجا Xcode از شما سوال می‌پرسد آیا قسمت حذف این Binary را دارید8: نصب CocoaPodsیک فریمورک در Xcode که زبان Ruby نوشته شده است و وظایف مختلفی را نیز دارد ایفا می‌کند. از جمله این وظایف آپدیت خودکار Library ها و Framework ها می‌باشدشروع نصب# gem install cocoapods cd ~/git/DVIA/DVIA/DamnVulnerableIOSApp pod init vim Podfileایجاد تقییرات در فایل Podfile و قرار دادن پارامتر های زیر# Pods for DamnVulnerableIOSApp pod 'Parse' pod 'GoogleAnalytics' pod 'Realm' pod 'couchbase-lite-ios' pod 'Flurry-iOS-SDK/FlurrySDK'9: نصب CocoaPods انتخاب شدهاز محیط Xcode خارج شوید و دستور زیر را وارد کنیدpod installپس پایان نصب پیغام خطا زیر را دریافت خواهید کردPod installation complete! There are 6 dependencies from the Podfile and 6 totalpods installed.[!] The `DamnVulnerableIOSApp [Debug]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-DamnVulnerableIOSApp/Pods-DamnVulnerableIOSApp.debug.xcconfig'. This can lead to problems with the CocoaPods installation - Use the `$(inherited)` flag, or - Remove the build settings from the target.[!] The `DamnVulnerableIOSApp [Release]` target overrides the `OTHER_LDFLAGS` build setting defined in `Pods/Target Support Files/Pods-DamnVulnerableIOSApp/Pods-DamnVulnerableIOSApp.release.xcconfig'. This can lead to problems with the CocoaPods installation - Use the `$(inherited)` flag, or - Remove the build settings from the target.10: حذف ObjCفایل DamnVulnerableIOSApp.xcworkspace در Xcode باز کنیدپرچم ObjC را حذف کنیدبه قسمت DamnVulnerableIOSApp بروید وارد قسمت Build Settings شویددوبار بر روی Other Linker Flags کلیک کنیدحذف ObjCاضافه کردن $(inherited)11: حذف framework های غیرضروریحذف framework های غیرضروری همانند:libFlurry_6.4.0.aCouchbaseLite.frameworkParse.frameworklibGoogleAnalyticsServices.aRealm.framework12: نصب و Compile محیط DVIAبه منوی Product بروید و بروی گزینه Clean به منظور آماده سازی نهایی کلیک کنیداکنون آماده هستید که DVIA را نصب و Compile کنید. فقد کافیست دیوایس مورد نظر خود را انتخاب کنید و بر روی دکمه Play کلیک کنید