
წარმოიდგინეთ მობილური აპლიკაცია, როგორც ციფრული სარდაფი , რომელიც შეიცავს ყველაფერს მომხმარებლის პაროლებიდან გადახდის დეტალებამდე. როგორც შეღწევადობის ტესტერი, თქვენი ამოცანაა უზრუნველყოთ, რომ სარდაფი მჭიდროდ იყოს დალუქული - სანამ რეალური თავდამსხმელი შეეცდება შეჭრას. ამ სახელმძღვანელოში ჩვენ გაგივლით მობილური შემოწმების მთელ პროცესს , სწორი ხელსაწყოების შეგროვებიდან დაწყებული. კოდის და ტრაფიკის ანალიზი. მოდით გადახტებით!
ჩვენ ვცხოვრობთ სამყაროში, სადაც მობილური მოწყობილობები თითქმის ჩვენივე გაფართოებაა. იმის გამო, რომ ადამიანები აკეთებენ საბანკო საქმეს , საყიდლებს და ტელეფონებზე კომუნიკაციას , აპების უსაფრთხოების უზრუნველყოფა უმნიშვნელოვანესია. და ამიტომაც არის მნიშვნელოვანი მობილური პენტესტი: ჩვენ ვაკეთებთ აპლიკაციებზე თავდასხმების სიმულაციას, რათა გამოავლინოს სისუსტეები და დავეხმაროთ დეველოპერებს მათ გამოსწორებაში.
აი, რა არის მასში თქვენთვის:
თავის არსში, მობილური პენტესტი არის აპლიკაციის შეღწევის კრეატიული გზების პოვნა, ისევე, როგორც ამას ნამდვილი თავდამსხმელი აკეთებს, ასე რომ თქვენ შეგიძლიათ პირველ რიგში გამოასწოროთ სისუსტეები. ის განსხვავდება სტანდარტული ვებ-შემოწმებისგან, რადგან მობილური აპლიკაციები:
გაშვება უნიკალურ პლატფორმებზე : Android-სა და iOS-ს თითოეულს აქვს საკუთარი წესები, უსაფრთხოების მოდელები და თავისებურებები.
მონაცემთა შენახვა მოწყობილობებზე : სენსიტიური ინფორმაციის შენახვა შესაძლებელია ადგილობრივად, რაც გადამწყვეტს ხდის მოწყობილობის სპეციფიკური მეხსიერების შემოწმებას.
დიდად დაეყრდნობით API-ებს : მობილური აპლიკაციები ხშირად ესაუბრებიან backend სერვერებს API-ების მეშვეობით, რომლებიც შეიძლება იყოს არასწორად კონფიგურირებული ან დაუცველი, თუ სათანადოდ არ იქნება ტესტირება.
საერთო გამოწვევები მოიცავს Root/jailbreak-ის გამოვლენას , SSL პინინგის გვერდის ავლით და კლიენტის და სერვერის მხარის ლოგიკის ანალიზს.
წარმოიდგინეთ შუა საუკუნეების ციხე - ეს არის ტიპიური "სუსტი ადგილები" თავდამსხმელთა სამიზნე:
კოდი, რომელიც შეიძლება შეცვლილი იყოს საიდუმლოების გამოსავლენად, ან ლოგიკა, რომლის მანიპულირება შესაძლებელია გაშვების დროს.
შეამოწმეთ OWASP Mobile Top 10 და მობილური აპლიკაციების უსაფრთხოების ტესტირების სახელმძღვანელო (MASTG) ამ რისკების შესახებ მეტი ინფორმაციისთვის. ისინი ჰგავს რუქებს, რომლებიც ხაზს უსვამენ ყველა შესაძლო პრობლემას.
სანამ ციხესიმაგრეს შტურმს შეასრულებთ, გჭირდებათ სწორი ჯავშანი და იარაღი . საცდელი თვალსაზრისით, ეს ნიშნავს გარემოს შექმნას, სადაც უსაფრთხოდ შეძლებთ ექსპერიმენტებს რეალურ სამყაროში არსებული მონაცემების დაზიანების გარეშე. მოდით განვიხილოთ საფუძვლები როგორც Android-ისთვის, ასევე iOS-ისთვის.
Android აპების ტესტირებისას, შეგიძლიათ დაატრიალოთ ვირტუალური მოწყობილობები ისეთი ხელსაწყოების გამოყენებით, როგორიცაა Android Emulator ან Genymotion . ეს ემულატორები საშუალებას გაძლევთ სწრაფად დააინსტალიროთ და შეამოწმოთ აპლიკაციები ფიზიკური მოწყობილობის საჭიროების გარეშე. ერთის დაყენების დეტალური ნაბიჯები შეგიძლიათ იხილოთ ამ სახელმძღვანელოში .
ანდროიდის ემულატორი
თუმცა, ფიზიკური მოწყობილობის გამოყენება ხშირად იძლევა უფრო ზუსტ შედეგებს - განსაკუთრებით მაშინ, როდესაც გჭირდებათ რეალურ სამყაროში ქსელის პირობების, სენსორების ან ბიომეტრიული ავთენტიფიკაციის ტესტირება. თუ თქვენ გეგმავთ უფრო მოწინავე ტესტებს, როგორიცაა root შემოწმება ან მონაცემთა სიღრმისეული ექსპერტიზა, რეალური ტექნიკის არსებობა დიდი პლუსია.
თუ გადაწყვეტთ იყიდოთ ან ისესხოთ სპეციალური მოწყობილობა, გახსოვდეთ, რომ ზოგიერთი Android ტელეფონი უფრო ადვილია Root . Rooting გაძლევთ უფრო ღრმა წვდომას ოპერაციულ სისტემაზე, რაც საშუალებას გაძლევთ გაანალიზოთ ფარული ფაილები, გვერდის ავლით აპლიკაციის შეზღუდვები და გაუშვათ ძლიერი ხელსაწყოები, რომლებიც საჭიროებენ ამაღლებულ ნებართვებს.
Android Rooting ჰგავს თქვენი ტელეფონის ოპერაციული სისტემის ჩონჩხის გასაღების პოვნას. როგორც წესი, თქვენ:
ტელეფონისა და ოპერაციული სისტემის თითოეულ ვერსიას აქვს თავისი მახასიათებლები, ასე რომ, მზად იყავით რამდენიმე მცდელობისთვის. სასიხარულო ამბავი ის არის, რომ როგორც კი მოწყობილობა ძირფესვიანდება, ის ჩვეულებრივ ასე რჩება, თუ არ გადატვირთავთ ქარხნულ ფუნქციებს ან განაახლებთ პროგრამულ უზრუნველყოფას. გაითვალისწინეთ, რომ iOS jailbreak-ები შეიძლება დაიკარგოს გადატვირთვის შემდეგ — ამიტომ Android ზოგჯერ გთავაზობთ უფრო მდგრად პლატფორმას ტესტირებისთვის.
ყოველთვის მიჰყევით სანდო სახელმძღვანელოებს თქვენი კონკრეტული ტელეფონისთვის - არასწორმა rooting-მა შეიძლება გააფუჭოს პროგრამული უზრუნველყოფა ან შექმნას უსაფრთხოების ხვრელები. და, რა თქმა უნდა, შექმენით თქვენი მონაცემების სარეზერვო ასლები ჩაძირვამდე! Pixel 3a-ის დაფესვიანების მაგალითი
წარმოიდგინეთ მარიონეტული სერვისი , როგორიცაა Burp Suite, როგორც თქვენი "spyglass". ის საშუალებას გაძლევთ ნახოთ და შეცვალოთ აპლიკაციის შიგნით და მისასვლელი მთელი ტრაფიკი. თქვენ დაიჭერთ არასაიმედო კომუნიკაციას, დეფექტურ ავტორიზაციას ან ბუნდოვან მოთხოვნებს. პროქსის დაყენება მობილურისთვის მსგავსია iOS-სა და Android-ზე. თქვენ შეგიძლიათ იპოვოთ ოფიციალური ინსტრუქციები თითოეული პლატფორმისთვის აქ .
რაღაცეები რთულდება გარკვეული ჩარჩოებით:
Xamarin ზოგჯერ უგულებელყოფს სისტემის მასშტაბით პროქსის პარამეტრებს პერსონალური ქსელის ბიბლიოთეკების გამო.
Flutter-მა შეიძლება პატივი სცეს პროქსიებს, მაგრამ შეიძლება განახორციელოს სერტიფიკატის ჩამაგრება , რაც დაგიბლოკავთ ტრაფიკის ნახვას.
ამ დაბრკოლებების დასაძლევად, შეგიძლიათ შეცვალოთ კოდი, გამოიყენოთ ისეთი ინსტრუმენტები, როგორიცაა Frida ან Objection , ჩამაგრების გამორთვის ან საპირისპირო პროქსიების დაყენება (მაგ., mitmproxy ) ტრაფიკის დასაფიქსირებლად. თქვენი მიდგომის ადაპტაცია გართობის ნაწილია!
თუ აპი ჯერ არ არის Google Play Store-ში - გავრცელებულია პენტესტებისთვის - სავარაუდოდ გექნებათ APK ფაილი გვერდიდან ჩასატვირთად. შეგიძლიათ APK-ის გაზიარება Google Drive-ის ან პირდაპირი ჩამოტვირთვის ბმულის მეშვეობით. კიდევ ერთი მოსახერხებელი ვარიანტია Firebase App Distribution-ის გამოყენება, რომელიც აწყობს ტესტირებას დაინტერესებული მხარეებისთვის მოწვევის გაგზავნით.
iOS-ზე ფიზიკური მოწყობილობა ასევე გთავაზობთ ყველაზე ნამდვილ ტესტირების გამოცდილებას. თქვენ შეგიძლიათ ჩაძიროთ ტექნიკის სპეციფიკურ ფუნქციებში, როგორიცაა Face ID , Touch ID და სენსორები, და ასევე გადაიღოთ რეალისტური ქსელის ურთიერთქმედებები. თუ თქვენ ყიდულობთ ან იყენებთ პერსონალურ მოწყობილობას, განიხილეთ მოდელები, რომლებიც ცნობილია, რომ უფრო მარტივია ჯეილბრეიკისთვის (რადგან ყველა iPhone არ არის ერთნაირად მეგობრული ამ პროცესის მიმართ). თუ გჭირდებათ ვირტუალური iOS მოწყობილობები, Corellium გთავაზობთ ღრუბელზე დაფუძნებულ ძლიერ ტესტირებას, თუმცა ეს არ არის უფასო. ტესტერების უმეტესობა კვლავ ეყრდნობა ფიზიკურ მოწყობილობას საფუძვლიანი შემოწმებისთვის.
iOS-ის ჯეილბრეიკი ძალიან ჰგავს იმ ბოქლომების მოხსნას, რომლებსაც Apple აყენებს თავის მოწყობილობებზე. თქვენ იღებთ root პრივილეგიებს, საშუალებას გაძლევთ დააინსტალიროთ შესწორებები, შეისწავლოთ ფარული ფაილების დირექტორიები, ან გაუშვათ გაფართოებული ტესტირების სკრიპტები. პოპულარულ ინსტრუმენტებს შორისაა unc0ver და Checkra1n . საუკეთესო არჩევანი დამოკიდებულია თქვენს iOS ვერსიასა და მოწყობილობის მოდელზე.
გახსოვდეთ:
ასევე გაითვალისწინეთ, რომ უსაფრთხოების გარკვეული ფენები ავტომატურად ხელახლა აქტიურდება თქვენი მოწყობილობის გადატვირთვისას, ასე რომ თქვენ შეიძლება დაგჭირდეთ ხელახლა ჯეილბრეიკი ყოველ ჯერზე, როცა ჩართავთ.
iOS აპები მოდის IPA ფაილებში — Android-ის APK-ების მსგავსი. jailbroken ტელეფონზე შეგიძლიათ დააინსტალიროთ IPA ფაილების მენეჯერების გამოყენებით, როგორიცაა Filza ან აპები, როგორიცაა Sideloadly . უფრო ოფიციალური მარშრუტისთვის, დეველოპერები ხშირად ეყრდნობიან TestFlight-ს , რომელიც საშუალებას აძლევს მათ მოიწვიონ ტესტერები ელფოსტით — უბრალოდ შეეხეთ ბმულს და iOS ამუშავებს დანარჩენს.
თქვენი გარემოს სწორად დაყენება - სწორი მოწყობილობების არჩევა (ვირტუალური ან ფიზიკური), პროქსიების კონფიგურაცია და აპლიკაციების გვერდითი ჩატვირთვის გაგება - უზრუნველყოფს, რომ მზად იქნებით ღრმა ჩაძირვისთვის აპის შიდა სამუშაოებში. ამას შესაძლოა გარკვეული შეფერხება დასჭირდეს, მაგრამ როგორც კი ამ სრულყოფილ ინსტალაციას მიიღებთ, ნამდვილი შემოწმების დაწყება შეიძლება!
ახლა მოდით გადავიდეთ თავად აპლიკაციის შემოწმებაზე — მისი სრულად გაშვების გარეშე. ეს ჰგავს ციხის გეგმის წაკითხვას, სანამ შიგნით შეხვალთ. ჩვენ ვეძებთ მყარი კოდირებულ საიდუმლოებებს , არასაიმედო კონფიგურაციებს და სხვა საკითხებს კოდში ან კონფიგურაციის ფაილებში.
მყარი კოდირებული საიდუმლოებები
API გასაღებები, ჟეტონები, რწმუნებათა სიგელები და დაშიფვრის გასაღებები ზოგჯერ პირდაპირ მთავრდება წყაროს კოდში. თუ თავდამსხმელებმა აპს შეცვალონ ინჟინერი, მათ შეუძლიათ მინიმალური ძალისხმევით ამოიღონ ეს საიდუმლოებები და მოახდინონ მომხმარებლების ან სერვისების იმიტირება.
არასაიმედო კონფიგურაციები
ზედმეტად ნებადართული ნებართვები, გამართვის დროშები ჩართულია, ან არასათანადო ხელმოწერა, ყველაფერმა შეიძლება გახადოს ხვრელები თქვენი აპლიკაციის ჯავშანში. ერთ პარამეტრს, როგორიცაა NSAllowsArbitraryLoads iOS Info.plist-ში ან android:debuggable="true"-ში, შეუძლია კარი გაუღოს კაცის შუაგულში (MITM) შეტევებს ან დაუცველ გამართვას.
სენსიტიური მონაცემების ექსპოზიცია
სესიის ნიშნების ან პერსონალური ინფორმაციის უბრალო ტექსტში შენახვა მოწყობილობაზე (ლოგიები, გაზიარებული პრეფერენციები, ადგილობრივი ფაილები) კატასტროფის რეცეპტია. ნებისმიერს, რომელსაც აქვს ფიზიკური წვდომა ან Rooted/jailbroken ტელეფონი, შეუძლია თვალყური ადევნოს გარშემო და მოიპაროს ღირებული მონაცემები - არ არის საჭირო უხეში ძალა.
აპლიკაციის ლოგიკა და ხარვეზები
ხშირად, ძირითადი პრობლემები მოდის ფუნქციების დანერგვის გზით. როდესაც არსებითი შემოწმებები, როგორიცაა ავთენტიფიკაცია, აკლია ან მკაცრად არ არის შესრულებული, თავდამსხმელებს შეუძლიათ ადვილად გადალახონ თქვენი დაცვა. ანალოგიურად, სუსტმა კრიპტოგრაფიულმა ფუნქციებმა ან დაუცველმა აპლიკაციის კომპონენტებმა შეიძლება გაუადვილოს ცხოვრება ყველას, ვინც ამოწმებს თქვენს აპლიკაციას.
მობილური უსაფრთხოების ტესტირების სახელმძღვანელო (MSTG) გთავაზობთ სრულ სიას, რომელიც დაგეხმარებათ სტატიკური ანალიზის მეთოდურად დაძლევაში:
სხვადასხვა ხელსაწყოები დაგეხმარებათ თქვენი კოდის, კონფიგურაციისა და ბინარების ამოკვეთაში აპლიკაციის გაშვების გარეშე:
MobSF (მობილური უსაფრთხოების ჩარჩო)
გამოყენება : შეაერთეთ APK/IPA და MobSF გამოიმუშავებს დეტალურ ანგარიშს: ის ჩამოთვლის პოტენციურ არასწორ კონფიგურაციას, საეჭვო ნებართვებს ან მყარი კოდირებულ საიდუმლოებებს.
ბონუსი : მას ასევე აქვს გარკვეული დინამიური ფუნქციები, რაც მას უნივერსალურ გადაწყვეტად აქცევს.
APKTool (Android)
გამოყენება : დეკომპილი და შემდეგ გადააკეთეთ APK, რომ ნახოთ რა არის შიგნით. ეს შესანიშნავია AndroidManifest.xml-ის წასაკითხად, რესურსების შესასწავლად ან აპის კორექტირებისთვის.
apktool d app.apk -o output_director
JADX (Android)
გამოყენება : გადააკეთეთ Dalvik bytecode (.dex) წასაკითხად Java. შესანიშნავია კოდის ხაზების დასადგენად პოტენციური დაუცველობით, როგორიცაა API კლავიშები.
jadx app.apk -d output_directory
Class-Dump, Hopper, Ghidra (iOS)
გამოიყენეთ : ამოიღეთ Objective-C კლასის სათაურები (Class-Dump) ან დაშალეთ iOS ბინარები (Hopper/Ghidra). თუ აპი Swiftified იყო, თქვენ ასევე იხილავთ Swift მეტამონაცემებს.
Android აპლიკაციების დეკომპილაცია შესაძლებელია მათი APK ფაილებიდან ისეთი ინსტრუმენტების გამოყენებით, როგორიცაა APKTool , JADX ან MobSF .
ეს პროცესი ავლენს წყაროს კოდს, აპლიკაციის სტრუქტურას და სენსიტიურ კომპონენტებს, როგორიცაა AndroidManifest.xml ან .smali ფაილები, რომლებსაც შეუძლიათ აჩვენონ აპლიკაციის ლოგიკა და ნებართვები.
Cleartext Traffic-ის დაშვება
<application android:usesCleartextTraffic="true" />
თავდამსხმელებს შეუძლიათ გამოიყენონ დაშიფრული (HTTP) კომუნიკაცია მოსმენისთვის ან გაყალბებისთვის.
<application android:debuggable="true" />
ნებისმიერს, რომელსაც აქვს მოწყობილობა (ან ემულატორი) შეუძლია დაურთოს გამართვა და გადახედოს მგრძნობიარე მონაცემებს ან ლოგიკას.
public class ApiClient { private static final String API_KEY = "12345-abcdef-67890"; private static final String API_SECRET = "superSecretPassword123!"; }
სწრაფი დეკომპილი APKTool-ით ან JADX-ით ავლენს ამ გასაღებებს, რაც საშუალებას აძლევს თავდამსხმელებს აპლიკაციის თავისებურება ან წვდომა არაავტორიზებული Backend-ის სერვისებზე.
<map> <string name="session_token">abc123XYZ987</string> <string name="user_email">user@example.com</string> </map>
თუ ჟეტონები ან მომხმარებლის დეტალები ინახება უბრალო ტექსტში, root მოწყობილობას შეუძლია ადვილად ამოიღოს ისინი.
<key>NSAppTransportSecurity</key> <dict>
<key>NSAllowsArbitraryLoads</key> <true/> </dict>
Apple ნაგულისხმევად ახორციელებს უსაფრთხო კავშირებს, ასე რომ, ამის უგულებელყოფა ხსნის აპს MITM რისკებთან ან დაშიფრული ტრაფიკისთვის.
დეკომპილაციის ხელსაწყოები, როგორიცაა Class-Dump , Hopper Disassembler და Ghidra ამოაქვს აპლიკაციის IPA ფაილის შინაარსი, მათ შორის Objective-C კლასები, მეთოდების სახელები და ბინარული ფაილები.
თუ სტატიკური ანალიზი სწავლობს ციხის გეგმას, დინამიური ანალიზი არის ციხის შიგნით სიარული და ყველა კარისა და ფანჯრის შემოწმებისას. ჩვენ ვმართავთ აპს, ვუყურებთ როგორ იქცევა ის და ვნახოთ, შეგვიძლია თუ არა რაიმე სისუსტე რეალურ დროში გამოვიყენოთ.
ქსელური კომუნიკაცია
დარწმუნდით, რომ თქვენი აპის მონაცემები არ გაჟონავს ტრანსპორტის დროს. თუ თქვენი აპი ეყრდნობა HTTP-ს ან არასწორად კონფიგურირებულ HTTPS-ს, თავდამსხმელს შეუძლია შეაღწიოს, ჩაჭრას ან თუნდაც შეცვალოს მონაცემები. იგივე ეხება დაკარგული ან სუსტი SSL/TLS სერთიფიკატის ჩამაგრებას , რაც თქვენს აპს ავლენს ადამიანის შუაგულში (MITM) შეტევებს.
ავტორიზაცია და ავტორიზაცია
მაშინაც კი, თუ თქვენი შესვლის ეკრანები და მომხმარებლის როლები ჟღერად გამოიყურება ქაღალდზე, რეალური გამოცდა არის თუ არა ვინმემ მათი გვერდის ავლით მუშაობის დროს. მაგალითად, შეუძლია თუ არა თავდამსხმელს ხელახლა გამოიყენოს სესიის ნიშნები ან გამოიცნოს ისინი? სწორად იწურება აპის დრო, თუ ის სამუდამოდ ღიად ინახავს სესიებს?
გაშვების მთლიანობისა და უსაფრთხოების შემოწმებები
ბევრი აპი ცდილობს დაადგინოს, არის თუ არა მოწყობილობა root (Android) ან jailbroken (iOS) და შემდეგ უარს ამბობს გარკვეული ფუნქციების გაშვებაზე ან დაბლოკვაზე. დინამიური ანალიზის დროს გსურთ ნახოთ, შეძლებთ თუ არა ამ შემოწმებებს გადალახოთ აპლიკაციის კოდში მიმაგრებით, ასე რომ თქვენ შეგიძლიათ განაგრძოთ ტესტირება მაინც. თუ თქვენ შეგიძლიათ მარტივად გადალახოთ ეს ზომები, თავდამსხმელებსაც შეუძლიათ.
მონაცემთა გაჟონვა შესრულების დროს
აღრიცხავს თუ არა აპლიკაცია სენსიტიურ ინფორმაციას (როგორიცაა პაროლები ან ჟეტონები) უბრალო ტექსტში? როდესაც გადართავთ აპებს ან მოწყობილობის ფონს, კვლავ გამოჩნდება კონფიდენციალური მონაცემებით გადაღებული ეკრანი? ამ სახის უნებლიე „პურის ნამსხვრევის“ ბილიკს შეუძლია თავდამსხმელები პირდაპირ საგანძურამდე მიიყვანოს.
API და სერვერის მხარის შემოწმება
აპი შეიძლება უსაფრთხოდ გამოიყურებოდეს კლიენტის პერსპექტივიდან, მაგრამ თუ backend API არ ამოწმებს მომხმარებლის ნებართვებს ან შეყვანას, თავდამსხმელს შეუძლია შეცვალოს მოთხოვნები ფრენის დროს, რათა მოიპოვოს არაავტორიზებული წვდომა ან დაარღვიოს სისტემა. გადამწყვეტი მნიშვნელობა აქვს კლიენტის და სერვერის ქცევის ტანდემში შესამოწმებლად.
მობილური უსაფრთხოების ტესტირების სახელმძღვანელო (MSTG) ასევე მოიცავს დინამიურ ანალიზს. აქ არის რამდენიმე შემოწმება, რომელიც უნდა გახსოვდეთ:
[ ] MSTG-RESILIENCE-1 : აპი აღმოაჩენს და ხელს უშლის ხელყოფის ან შებრუნებული ინჟინერიის მცდელობებს.
[ ] MSTG-RESILIENCE-2 : აპი აღმოაჩენს root ან ჯეილბრეიკ მოწყობილობებს.
[ ] MSTG-RESILIENCE-3 : აპლიკაცია ამოწმებს მისი კოდისა და რესურსების მთლიანობას გაშვების დროს.
[ ] MSTG-NETWORK-1 : აპლიკაცია შიფრავს მთელ ქსელურ ტრაფიკს ძლიერი კრიპტოგრაფიის გამოყენებით.
[ ] MSTG-NETWORK-3 : აპლიკაცია ახორციელებს სერთიფიკატის დამაგრებას, სადაც ეს შესაძლებელია.
[ ] MSTG-PLATFORM-1 : აპლიკაცია არ ეყრდნობა მხოლოდ პლატფორმის უსაფრთხოების მექანიზმებს და დამოუკიდებლად ახორციელებს უსაფრთხოების ზომებს.
[ ] MSTG-AUTH-2 : აპლიკაცია სათანადოდ ახორციელებს სესიის ვადებს და მომხმარებლის ხელახალი ავტორიზაციის მოთხოვნებს.
[ ] MSTG-STORAGE-4 : აპლიკაცია არ აღრიცხავს მგრძნობიარე მონაცემებს სისტემის ჟურნალებში.
[ ] MSTG-STORAGE-5 : აპლიკაცია არ ინახავს სენსიტიურ მონაცემებს დაუცველ ადგილას.
[ ] MSTG-CRYPTO-1 : აპლიკაცია იყენებს განახლებულ კრიპტოგრაფიულ ალგორითმებს გაშვების ოპერაციებისთვის.
იფიქრეთ მათზე, როგორც საგზაო რუკა თქვენი რეალურ სამყაროში ტესტებისთვის. ისინი გეხმარებათ სისტემატურად აწიოთ ყველა კარი და ფანჯარა და დაადასტუროთ, რომ ის დაკეტილია.
SAST-ისგან განსხვავებით, რომელიც ორიენტირებულია კოდის შემოწმებაზე, DAST ტრიალებს აპის გაშვებასა და შემოწმებაზე. ქვემოთ მოცემულია პოპულარული ინსტრუმენტები ამ პროცესის გასამარტივებლად:
Burp Suite / OWASP ZAP
გამოყენება : ორივე არის პროქსი, რომელიც საშუალებას გაძლევთ აღბეჭდოთ და შეცვალოთ ტრაფიკი აპსა და სარეზერვო სერვერებს შორის. იდეალურია დაუცველი ბოლო წერტილების, სესიის ხარვეზების ან მონაცემთა გაჟონვის დასადგენად.
ფრიდა
გამოყენება : დინამიური ინსტრუმენტარიუმის ინსტრუმენტების ნაკრები, რომელიც დაკავშირებულია მიმდინარე პროცესებთან და გეხმარებათ SSL ჩამაგრების, root/jailbreak გამოვლენის ან კლიენტის მხრიდან სხვა შეზღუდვების გვერდის ავლით.
საერთო ფრიდას ბრძანებები
მოქმედება | ბრძანება |
---|---|
მიმაგრება მიმდინარე პროცესზე | |
ჩამოთვალეთ ყველა მიმდინარე პროცესი | |
შეიტანეთ მორგებული სკრიპტი | |
კვალი სპეციფიკური ფუნქციები | |
დაამაგრეთ კონკრეტული ფუნქცია | |
Drozer (Android)
გამოყენება : ყურადღებას ამახვილებს Android კომპონენტების სკანირებაზე, როგორიცაა აქტივობები, სერვისები, მაუწყებლობის მიმღებები და კონტენტის პროვაიდერები უსაფრთხოების სისუსტეების გამო.
საერთო დროზერის ბრძანებები
მოქმედება | ბრძანება |
---|---|
მოწყობილობასთან დაკავშირება | |
ჩამოთვალეთ აქტივობები | |
ურთიერთქმედება ექსპორტირებულ აქტივობებთან | |
ტესტი SQL ინექციისთვის | |
წინააღმდეგობა
გამოყენება : შექმნილია Frida-ზე, მაგრამ უფრო მარტივი ბრძანებებით ისეთი ამოცანებისთვის, როგორიცაა SSL ჩამაგრების გამორთვა ან აპლიკაციის ფაილური სისტემის შესწავლა. იდეალურია, თუ არ ხართ სკრიპტირების გურუ.
საერთო წინააღმდეგობის ბრძანებები
მოქმედება | ბრძანება |
---|---|
მიამაგრეთ გაშვებული აპლიკაცია | |
გამორთეთ SSL ჩამაგრება | |
აპლიკაციის ინფორმაციის ამობეჭდვა | |
Android-ის ტრაფიკის მარშრუტირებით ისეთი ხელსაწყოს მეშვეობით, როგორიცაა Burp Suite , ტესტერებს შეუძლიათ შეასრულონ და შეცვალონ მოთხოვნები. მაგალითად, თუ აპი აგზავნის რწმუნებათა სიგელებს HTTP-ზე ან ვერ ახერხებს TLS სერთიფიკატების სათანადო ვალიდაციას, თავდამსხმელს შეუძლია შეასრულოს კაცის შუაგულში (MITM) შეტევები.
POST /login HTTP/1.1 Host: api.example.com Content-Type: application/json { "username": "test_user", "password": "secret_password" }
სესიის ნიშნები, პერსონალური მონაცემები ან გადახდის ინფორმაცია შეიძლება გამოაშკარავდეს ან მანიპულირდეს.
03-09 12:34:56.789 1234 5678 I MyAppLogger: User token = "abc123XYZ987" 03-09 12:34:56.789 1234 5678 I MyAppLogger: Payment info: "card_number=4111111111111111"
ნებისმიერს, ვისაც აქვს ADB (ან მავნე აპი) შეუძლია წაიკითხოს ეს ჟურნალები და გამოიყენოს ისინი.
დაუცველი აქტივობები / კონტენტის პროვაიდერები
Drozer-ის გამოყენებით ტესტერებს შეუძლიათ აღმოაჩინონ ექსპორტირებული აქტივობები ან კონტენტის პროვაიდერები, რომლებიც არ საჭიროებენ ავთენტიფიკაციას.
drozer console connect run app.provider.query
content://com.example.app.provider/users
თუ მონაცემები დაბრუნდება სათანადო ნებართვების გარეშე, თავდამსხმელებს შეუძლიათ წაიკითხონ ან შეცვალონ მომხმარებლის ინფორმაცია.
ინსტრუმენტები, როგორიცაა Frida ან Objection, საშუალებას გაძლევთ გვერდის ავლით Root-ის აღმოჩენის ან SSL-ის დამაგრების შემოწმება გაშვების დროს:
frida -U -n com.example.app --eval "..." objection -g com.example.app explore android sslpinning disable android root disable ios sslpinning disable ios root disable
ძირფესვიანებულ ტელეფონებზე თავდამსხმელებს შეუძლიათ გააგრძელონ ტესტირება ან სენსიტიურ ფუნქციებში ჩაბმა, საიდუმლოების გამჟღავნება ან აპლიკაციის ლოგიკის ხელყოფა.
ბევრი iOS აპი არ იმუშავებს, თუ ისინი აღმოაჩენენ jailbroken ტელეფონს. Frida-ს საშუალებით შეგიძლიათ დააკავშიროთ და უარყოთ გამოვლენის მეთოდი:
Interceptor.attach(Module.findExportByName(null, "jailbreakDetectionFunction"), { onEnter: function (args) { console.log("Bypassed jailbreak check!"); // Force return a 'clean' status } });
თავდამსხმელებს შეუძლიათ აპის გაშვება კომპრომეტირებულ მოწყობილობებზე და მონაცემების ან კაკვების გარკვევაში.
2023-03-09 12:34:56.789 MyApp[1234:5678] Payment info: card_number=4111111111111111 2023-03-09 12:34:56.789 MyApp[1234:5678] session_token=abc123XYZ987
ჯეილბრეიკ მოწყობილობებზე — ან ჟურნალების გარე შეგროვების საშუალებით — თავდამსხმელები უშუალოდ იღებენ მგრძნობიარე მონაცემებს.
რა არის მობილური პენტესტი?
ის ამოწმებს რამდენად უსაფრთხოა მობილური აპლიკაცია რეალურ სამყაროში თავდასხმების სიმულაციის გზით — ეძებს ბზარებს, სანამ თავდამსხმელები ამას გააკეთებენ.
რატომ არის მნიშვნელოვანი მობილურის შემოწმების პროცესი?
იმის გამო, რომ სმარტფონები უზარმაზარ პერსონალურ და ფინანსურ მონაცემებს ინახავს, ისინი კიბერკრიმინალებისთვის მთავარი სამიზნეა.
რა არის ძირითადი ნაბიჯები?
რა ინსტრუმენტები მჭირდება?
Burp Suite ან ZAP ტრაფიკის ჩასაჭრელად, MobSF სკანირებისთვის, APKTool/JADX (Android), Class-Dump/Hopper (iOS), პლუს ჩამაგრების ხელსაწყოები, როგორიცაა Frida ან Objection.
რამდენად ხშირად უნდა ჩავატაროთ პენსია?
ძირითადი განახლებების, ახალი ფუნქციების ან ინფრასტრუქტურის მნიშვნელოვანი ცვლილებების შემდეგ. იდეალურ შემთხვევაში, CI/CD-ში ინტეგრირება უწყვეტი შემოწმებისთვის.
რა არის საერთო დაუცველობა?
მონაცემთა არასაიმედო საცავი, HTTPS-ის გარეშე, მყარი კოდირებული საიდუმლოებები, სესიების ცუდი მართვა და არასწორად კონფიგურირებული API.
შეიძლება ყველაფერი ავტომატიზირებული იყოს?
ნამდვილად არა. ხელსაწყოებს შეუძლიათ ზოგიერთი სკანირების ავტომატიზაცია, მაგრამ ხელით ტესტირება აღმოაჩენს უფრო რთულ ლოგიკურ ხარვეზებს ან რთულ ბიზნეს წესებს.
გვჭირდება თუ არა Android-ის და iOS-ის ტესტირება?
დიახ, თითოეულს აქვს უსაფრთხოების უნიკალური მოდელები და ხარვეზები.
ლეგალურია თუ არა ტესტირება?
აბსოლუტურად, თუ თქვენ გაქვთ აშკარა ნებართვა აპლიკაციის მფლობელისგან. წინააღმდეგ შემთხვევაში, ეს უკანონოა.
საიდან დავიწყო?
შეისწავლეთ OWASP მობილური უსაფრთხოების ტესტირების სახელმძღვანელო (MASTG) , ისწავლეთ ძირითადი უკუქცევა და ივარჯიშეთ ღია წყაროს აპებთან ან სამიზნეების ნიმუშებთან.
მობილური ინსტალაცია გრანდიოზულ ქვესტს ჰგავს — იწყებთ ხელსაწყოების (ინსტრუმენტები და მოწყობილობების) შეგროვებით, შემდეგ იკვლევთ რელიეფს (SAST) და ბოლოს მიმართავთ პრაქტიკულ მიდგომას (DAST), რათა იპოვოთ ყველა სუსტი ადგილი. რეგულარულად ამის გაკეთებით და თქვენი აღმოჩენების მოხსენებით, თქვენ შეინარჩუნებთ თქვენს აპებს მყარად და თქვენს მომხმარებლებს უსაფრთხოდ.
დაიმახსოვრე: პროგრამული უზრუნველყოფა ვითარდება ყოველდღე, ისევე როგორც საფრთხეები. გახადეთ მუდმივი მოქმედებები თქვენი განვითარების სასიცოცხლო ციკლის ნაწილად, რადგან სამეფოს უზრუნველსაყოფად საუკეთესო საშუალებაა არასოდეს დაუშვათ თქვენი დაცვა.
ეს სტატია მოამზადა ანასტასია ტოლკაჩოვამ , სეკურნოს უსაფრთხოების ტესტირების ინჟინერმა და განიხილა ალექს როჟნიატოვსკიმ , სეკურნოს CTO. ანასტასიას აქვს ხუთ წელზე მეტი პრაქტიკული გამოცდილება შეღწევადობის ტესტირებასა და უსაფრთხოების შეფასებებში. ის სპეციალიზირებულია ვებ აპლიკაციების, ინფრასტრუქტურის (როგორც შიდა, ისე ღრუბელი) და მობილური პლატფორმების (iOS და Android) ტესტირებაში. მისი ექსპერტიზა მოიცავს Black Box, Grey Box და White Box მეთოდოლოგიებს, დაუცველობის შეფასების და წყაროს კოდის უსაფრთხოების მიმოხილვის ცოდნას.
ალექსს აქვს შვიდწლიანი გამოცდილება განვითარებისა და კიბერუსაფრთხოების სფეროში. ის არის AWS ღია წყაროს კონტრიბუტორი, რომელიც ეძღვნება კოდირების უსაფრთხო პრაქტიკის განვითარებას. მისი გამოცდილება ახდენს უფსკრული პროგრამული უზრუნველყოფის შემუშავებასა და უსაფრთხოებას შორის, რაც უზრუნველყოფს ღირებულ შეხედულებებს თანამედროვე ვებ აპლიკაციების დაცვაში.