paint-brush
ეთიკური ჰაკერები აჩვენებენ, თუ როგორ უნდა შეიჭრათ ნებისმიერი მობილური მოწყობილობა (ლეგალურად!)მიერ@sekurno
1,122 საკითხავი
1,122 საკითხავი

ეთიკური ჰაკერები აჩვენებენ, თუ როგორ უნდა შეიჭრათ ნებისმიერი მობილური მოწყობილობა (ლეგალურად!)

მიერ Sekurno16m2025/02/03
Read on Terminal Reader

Ძალიან გრძელი; Წაკითხვა

მობილური pentesting არის აპლიკაციაში შეღწევის კრეატიული გზების პოვნა. ის განსხვავდება სტანდარტული ვებ-შემოწმებისგან, რადგან მობილური აპლიკაციები: Android და iOS თითოეულს აქვს საკუთარი წესები, უსაფრთხოების მოდელები და თავისებურებები. საერთო გამოწვევები მოიცავს Root/jailbreak-ის გამოვლენას, SSL დამაგრების გვერდის ავლით და კლიენტის და სერვერის მხარის ლოგიკის ანალიზს.
featured image - ეთიკური ჰაკერები აჩვენებენ, თუ როგორ უნდა შეიჭრათ ნებისმიერი მობილური მოწყობილობა (ლეგალურად!)
Sekurno HackerNoon profile picture
0-item

წარმოიდგინეთ მობილური აპლიკაცია, როგორც ციფრული სარდაფი , რომელიც შეიცავს ყველაფერს მომხმარებლის პაროლებიდან გადახდის დეტალებამდე. როგორც შეღწევადობის ტესტერი, თქვენი ამოცანაა უზრუნველყოთ, რომ სარდაფი მჭიდროდ იყოს დალუქული - სანამ რეალური თავდამსხმელი შეეცდება შეჭრას. ამ სახელმძღვანელოში ჩვენ გაგივლით მობილური შემოწმების მთელ პროცესს , სწორი ხელსაწყოების შეგროვებიდან დაწყებული. კოდის და ტრაფიკის ანალიზი. მოდით გადახტებით!

შესავალი

ჩვენ ვცხოვრობთ სამყაროში, სადაც მობილური მოწყობილობები თითქმის ჩვენივე გაფართოებაა. იმის გამო, რომ ადამიანები აკეთებენ საბანკო საქმეს , საყიდლებს და ტელეფონებზე კომუნიკაციას , აპების უსაფრთხოების უზრუნველყოფა უმნიშვნელოვანესია. და ამიტომაც არის მნიშვნელოვანი მობილური პენტესტი: ჩვენ ვაკეთებთ აპლიკაციებზე თავდასხმების სიმულაციას, რათა გამოავლინოს სისუსტეები და დავეხმაროთ დეველოპერებს მათ გამოსწორებაში.


აი, რა არის მასში თქვენთვის:


  • სიმშვიდე : თქვენ არ დაკარგავთ ძილს მონაცემთა გაჟონვის ან მოპარული რწმუნებათა სიგელების გამო.
  • შესაბამისობა : მარეგულირებლები (და თქვენი მომხმარებლები) საჭიროებენ დაცვის ძლიერ სტანდარტებს.
  • რეპუტაციის გაძლიერება : უსაფრთხო აპლიკაციები ნიშნავს უფრო ბედნიერ მომხმარებლებს და უარყოფითი სათაურების ნაკლებ რისკს.

რა არის მობილური Pentesting?

თავის არსში, მობილური პენტესტი არის აპლიკაციის შეღწევის კრეატიული გზების პოვნა, ისევე, როგორც ამას ნამდვილი თავდამსხმელი აკეთებს, ასე რომ თქვენ შეგიძლიათ პირველ რიგში გამოასწოროთ სისუსტეები. ის განსხვავდება სტანდარტული ვებ-შემოწმებისგან, რადგან მობილური აპლიკაციები:


  • გაშვება უნიკალურ პლატფორმებზე : Android-სა და iOS-ს თითოეულს აქვს საკუთარი წესები, უსაფრთხოების მოდელები და თავისებურებები.

  • მონაცემთა შენახვა მოწყობილობებზე : სენსიტიური ინფორმაციის შენახვა შესაძლებელია ადგილობრივად, რაც გადამწყვეტს ხდის მოწყობილობის სპეციფიკური მეხსიერების შემოწმებას.

  • დიდად დაეყრდნობით API-ებს : მობილური აპლიკაციები ხშირად ესაუბრებიან backend სერვერებს API-ების მეშვეობით, რომლებიც შეიძლება იყოს არასწორად კონფიგურირებული ან დაუცველი, თუ სათანადოდ არ იქნება ტესტირება.


საერთო გამოწვევები მოიცავს Root/jailbreak-ის გამოვლენას , SSL პინინგის გვერდის ავლით და კლიენტის და სერვერის მხარის ლოგიკის ანალიზს.

საერთო საფრთხეები მობილური აპლიკაციებისთვის

წარმოიდგინეთ შუა საუკუნეების ციხე - ეს არის ტიპიური "სუსტი ადგილები" თავდამსხმელთა სამიზნე:


  1. მონაცემთა არასაიმედო შენახვა
    • მგრძნობიარე ჟეტონები ან მომხმარებლის რწმუნებათა სიგელები დაშიფრული რჩება მოწყობილობაზე.
  2. სერვერის მხარის სუსტი კონტროლი
    • აკლია შეყვანის ვალიდაცია ან არასწორი API ლოგიკა, რომელიც ჰაკერებს შეუძლიათ გამოიყენონ.
  3. არასაკმარისი სატრანსპორტო ფენის დაცვა
    • HTTP-ის ან ხარვეზიანი HTTPS-ის გამოყენება თავდამსხმელებს საშუალებას აძლევს ჩაერიონ ან შეცვალონ ქსელის ტრაფიკი.
  4. არასაიმედო ავთენტიფიკაცია და ავტორიზაცია
    • ცუდად დანერგილი შესვლის სისტემები, სესიის მენეჯმენტი ან ნებართვების შემოწმება.
  5. კლიენტის მხრიდან დაუცველობა
    • კოდი, რომელიც შეიძლება შეცვლილი იყოს საიდუმლოების გამოსავლენად, ან ლოგიკა, რომლის მანიპულირება შესაძლებელია გაშვების დროს.


შეამოწმეთ OWASP Mobile Top 10 და მობილური აპლიკაციების უსაფრთხოების ტესტირების სახელმძღვანელო (MASTG) ამ რისკების შესახებ მეტი ინფორმაციისთვის. ისინი ჰგავს რუქებს, რომლებიც ხაზს უსვამენ ყველა შესაძლო პრობლემას.


https://owasp.org/www-project-mobile-top-10/


მოემზადეთ მობილური ტესტირებისთვის

სანამ ციხესიმაგრეს შტურმს შეასრულებთ, გჭირდებათ სწორი ჯავშანი და იარაღი . საცდელი თვალსაზრისით, ეს ნიშნავს გარემოს შექმნას, სადაც უსაფრთხოდ შეძლებთ ექსპერიმენტებს რეალურ სამყაროში არსებული მონაცემების დაზიანების გარეშე. მოდით განვიხილოთ საფუძვლები როგორც Android-ისთვის, ასევე iOS-ისთვის.

Android

Android აპების ტესტირებისას, შეგიძლიათ დაატრიალოთ ვირტუალური მოწყობილობები ისეთი ხელსაწყოების გამოყენებით, როგორიცაა Android Emulator ან Genymotion . ეს ემულატორები საშუალებას გაძლევთ სწრაფად დააინსტალიროთ და შეამოწმოთ აპლიკაციები ფიზიკური მოწყობილობის საჭიროების გარეშე. ერთის დაყენების დეტალური ნაბიჯები შეგიძლიათ იხილოთ ამ სახელმძღვანელოში .


ანდროიდის ემულატორი


ანდროიდის ემულატორი

თუმცა, ფიზიკური მოწყობილობის გამოყენება ხშირად იძლევა უფრო ზუსტ შედეგებს - განსაკუთრებით მაშინ, როდესაც გჭირდებათ რეალურ სამყაროში ქსელის პირობების, სენსორების ან ბიომეტრიული ავთენტიფიკაციის ტესტირება. თუ თქვენ გეგმავთ უფრო მოწინავე ტესტებს, როგორიცაა root შემოწმება ან მონაცემთა სიღრმისეული ექსპერტიზა, რეალური ტექნიკის არსებობა დიდი პლუსია.


თუ გადაწყვეტთ იყიდოთ ან ისესხოთ სპეციალური მოწყობილობა, გახსოვდეთ, რომ ზოგიერთი Android ტელეფონი უფრო ადვილია Root . Rooting გაძლევთ უფრო ღრმა წვდომას ოპერაციულ სისტემაზე, რაც საშუალებას გაძლევთ გაანალიზოთ ფარული ფაილები, გვერდის ავლით აპლიკაციის შეზღუდვები და გაუშვათ ძლიერი ხელსაწყოები, რომლებიც საჭიროებენ ამაღლებულ ნებართვებს.


დაფესვიანება

Android Rooting ჰგავს თქვენი ტელეფონის ოპერაციული სისტემის ჩონჩხის გასაღების პოვნას. როგორც წესი, თქვენ:

  1. გახსენით ჩამტვირთველი.
  2. ჩართეთ მორგებული აღდგენა (მაგ., TWRP).
  3. დააინსტალირეთ root მართვის ინსტრუმენტი, როგორიცაა Magisk ან SuperSU .

ტელეფონისა და ოპერაციული სისტემის თითოეულ ვერსიას აქვს თავისი მახასიათებლები, ასე რომ, მზად იყავით რამდენიმე მცდელობისთვის. სასიხარულო ამბავი ის არის, რომ როგორც კი მოწყობილობა ძირფესვიანდება, ის ჩვეულებრივ ასე რჩება, თუ არ გადატვირთავთ ქარხნულ ფუნქციებს ან განაახლებთ პროგრამულ უზრუნველყოფას. გაითვალისწინეთ, რომ 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-ის გამოყენება, რომელიც აწყობს ტესტირებას დაინტერესებული მხარეებისთვის მოწვევის გაგზავნით.


https://firebase.google.com/codelabs/appdistribution-android#0

iOS

iOS-ზე ფიზიკური მოწყობილობა ასევე გთავაზობთ ყველაზე ნამდვილ ტესტირების გამოცდილებას. თქვენ შეგიძლიათ ჩაძიროთ ტექნიკის სპეციფიკურ ფუნქციებში, როგორიცაა Face ID , Touch ID და სენსორები, და ასევე გადაიღოთ რეალისტური ქსელის ურთიერთქმედებები. თუ თქვენ ყიდულობთ ან იყენებთ პერსონალურ მოწყობილობას, განიხილეთ მოდელები, რომლებიც ცნობილია, რომ უფრო მარტივია ჯეილბრეიკისთვის (რადგან ყველა iPhone არ არის ერთნაირად მეგობრული ამ პროცესის მიმართ). თუ გჭირდებათ ვირტუალური iOS მოწყობილობები, Corellium გთავაზობთ ღრუბელზე დაფუძნებულ ძლიერ ტესტირებას, თუმცა ეს არ არის უფასო. ტესტერების უმეტესობა კვლავ ეყრდნობა ფიზიკურ მოწყობილობას საფუძვლიანი შემოწმებისთვის.


AppleDB მაგალითი iPhone 8-ისთვის


ჯეილბრეიკი

iOS-ის ჯეილბრეიკი ძალიან ჰგავს იმ ბოქლომების მოხსნას, რომლებსაც Apple აყენებს თავის მოწყობილობებზე. თქვენ იღებთ root პრივილეგიებს, საშუალებას გაძლევთ დააინსტალიროთ შესწორებები, შეისწავლოთ ფარული ფაილების დირექტორიები, ან გაუშვათ გაფართოებული ტესტირების სკრიპტები. პოპულარულ ინსტრუმენტებს შორისაა unc0ver და Checkra1n . საუკეთესო არჩევანი დამოკიდებულია თქვენს iOS ვერსიასა და მოწყობილობის მოდელზე.


გახსოვდეთ:

  • ახალი მოწყობილობები შეიძლება უფრო მკაცრი იყოს ჯეილბრეიკისთვის.
  • ზოგიერთი ჯეილბრეიკი არ უძლებს გადატვირთვას („ნახევრად შეუერთებელი“).
  • ყოველთვის შექმენით თქვენი iPhone-ის სარეზერვო ასლი , სანამ სისტემურ ფაილებს არ შეერევათ.


ასევე გაითვალისწინეთ, რომ უსაფრთხოების გარკვეული ფენები ავტომატურად ხელახლა აქტიურდება თქვენი მოწყობილობის გადატვირთვისას, ასე რომ თქვენ შეიძლება დაგჭირდეთ ხელახლა ჯეილბრეიკი ყოველ ჯერზე, როცა ჩართავთ.

აპლიკაციის ინსტალაცია

iOS აპები მოდის IPA ფაილებში — Android-ის APK-ების მსგავსი. jailbroken ტელეფონზე შეგიძლიათ დააინსტალიროთ IPA ფაილების მენეჯერების გამოყენებით, როგორიცაა Filza ან აპები, როგორიცაა Sideloadly . უფრო ოფიციალური მარშრუტისთვის, დეველოპერები ხშირად ეყრდნობიან TestFlight-ს , რომელიც საშუალებას აძლევს მათ მოიწვიონ ტესტერები ელფოსტით — უბრალოდ შეეხეთ ბმულს და iOS ამუშავებს დანარჩენს.


Sideloadly ინსტრუმენტი


თქვენი გარემოს სწორად დაყენება - სწორი მოწყობილობების არჩევა (ვირტუალური ან ფიზიკური), პროქსიების კონფიგურაცია და აპლიკაციების გვერდითი ჩატვირთვის გაგება - უზრუნველყოფს, რომ მზად იქნებით ღრმა ჩაძირვისთვის აპის შიდა სამუშაოებში. ამას შესაძლოა გარკვეული შეფერხება დასჭირდეს, მაგრამ როგორც კი ამ სრულყოფილ ინსტალაციას მიიღებთ, ნამდვილი შემოწმების დაწყება შეიძლება!

სტატიკური ანალიზი (SAST)

ახლა მოდით გადავიდეთ თავად აპლიკაციის შემოწმებაზე — მისი სრულად გაშვების გარეშე. ეს ჰგავს ციხის გეგმის წაკითხვას, სანამ შიგნით შეხვალთ. ჩვენ ვეძებთ მყარი კოდირებულ საიდუმლოებებს , არასაიმედო კონფიგურაციებს და სხვა საკითხებს კოდში ან კონფიგურაციის ფაილებში.

ძირითადი სფეროები, რომელზეც ფოკუსირება უნდა მოხდეს

  1. მყარი კოდირებული საიდუმლოებები

    API გასაღებები, ჟეტონები, რწმუნებათა სიგელები და დაშიფვრის გასაღებები ზოგჯერ პირდაპირ მთავრდება წყაროს კოდში. თუ თავდამსხმელებმა აპს შეცვალონ ინჟინერი, მათ შეუძლიათ მინიმალური ძალისხმევით ამოიღონ ეს საიდუმლოებები და მოახდინონ მომხმარებლების ან სერვისების იმიტირება.

  2. არასაიმედო კონფიგურაციები

    ზედმეტად ნებადართული ნებართვები, გამართვის დროშები ჩართულია, ან არასათანადო ხელმოწერა, ყველაფერმა შეიძლება გახადოს ხვრელები თქვენი აპლიკაციის ჯავშანში. ერთ პარამეტრს, როგორიცაა NSAllowsArbitraryLoads iOS Info.plist-ში ან android:debuggable="true"-ში, შეუძლია კარი გაუღოს კაცის შუაგულში (MITM) შეტევებს ან დაუცველ გამართვას.

  3. სენსიტიური მონაცემების ექსპოზიცია

    სესიის ნიშნების ან პერსონალური ინფორმაციის უბრალო ტექსტში შენახვა მოწყობილობაზე (ლოგიები, გაზიარებული პრეფერენციები, ადგილობრივი ფაილები) კატასტროფის რეცეპტია. ნებისმიერს, რომელსაც აქვს ფიზიკური წვდომა ან Rooted/jailbroken ტელეფონი, შეუძლია თვალყური ადევნოს გარშემო და მოიპაროს ღირებული მონაცემები - არ არის საჭირო უხეში ძალა.

  4. აპლიკაციის ლოგიკა და ხარვეზები

    ხშირად, ძირითადი პრობლემები მოდის ფუნქციების დანერგვის გზით. როდესაც არსებითი შემოწმებები, როგორიცაა ავთენტიფიკაცია, აკლია ან მკაცრად არ არის შესრულებული, თავდამსხმელებს შეუძლიათ ადვილად გადალახონ თქვენი დაცვა. ანალოგიურად, სუსტმა კრიპტოგრაფიულმა ფუნქციებმა ან დაუცველმა აპლიკაციის კომპონენტებმა შეიძლება გაუადვილოს ცხოვრება ყველას, ვინც ამოწმებს თქვენს აპლიკაციას.

MSTG საკონტროლო სია

მობილური უსაფრთხოების ტესტირების სახელმძღვანელო (MSTG) გთავაზობთ სრულ სიას, რომელიც დაგეხმარებათ სტატიკური ანალიზის მეთოდურად დაძლევაში:

  • [ ] MSTG-STORAGE-1 : სენსიტიური მონაცემები არ ინახება მოწყობილობაზე დაშიფრული სახით.
  • [ ] MSTG-STORAGE-2 : არცერთი სენსიტიური მონაცემები არ ინახება საზიარო მეხსიერებაში.
  • [ ] MSTG-CRYPTO-1 : კრიპტოგრაფიული ალგორითმებისა და ბიბლიოთეკების სათანადო გამოყენება.
  • [ ] MSTG-NETWORK-1 : უსაფრთხო საკომუნიკაციო არხები (მაგ., HTTPS/TLS).
  • [ ] MSTG-CODE-1 : კოდირებული საიდუმლოების არარსებობა საწყის კოდში.
  • [ ] MSTG-CODE-3 : კოდის დაბნელება გამოიყენება სათანადოდ.
  • [ ] MSTG-RESILIENCE-1 : დაცვა საპირისპირო ინჟინერიისგან.
  • [ ] MSTG-RESILIENCE-2 : გამართვის შესაძლებლობები გამორთულია წარმოებაში.
  • [ ] MSTG-PRIVACY-1 : მომხმარებლის ნებართვებისა და პირადი მონაცემების სათანადო დამუშავება.

SAST ინსტრუმენტები

სხვადასხვა ხელსაწყოები დაგეხმარებათ თქვენი კოდის, კონფიგურაციისა და ბინარების ამოკვეთაში აპლიკაციის გაშვების გარეშე:


MobSF (მობილური უსაფრთხოების ჩარჩო)

გამოყენება : შეაერთეთ APK/IPA და MobSF გამოიმუშავებს დეტალურ ანგარიშს: ის ჩამოთვლის პოტენციურ არასწორ კონფიგურაციას, საეჭვო ნებართვებს ან მყარი კოდირებულ საიდუმლოებებს.


ბონუსი : მას ასევე აქვს გარკვეული დინამიური ფუნქციები, რაც მას უნივერსალურ გადაწყვეტად აქცევს.


MobSF მაგალითი https://mobsf.live/ AndroGoat აპისთვის


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

  • ინფორმაციის გამჟღავნება


AndroidManifest.xml ფაილის მაგალითი


  • Android აპლიკაციების დეკომპილაცია შესაძლებელია მათი APK ფაილებიდან ისეთი ინსტრუმენტების გამოყენებით, როგორიცაა APKTool , JADX ან MobSF .

    ეს პროცესი ავლენს წყაროს კოდს, აპლიკაციის სტრუქტურას და სენსიტიურ კომპონენტებს, როგორიცაა AndroidManifest.xml ან .smali ფაილები, რომლებსაც შეუძლიათ აჩვენონ აპლიკაციის ლოგიკა და ნებართვები.


  • Cleartext Traffic-ის დაშვება

<application android:usesCleartextTraffic="true" />


თავდამსხმელებს შეუძლიათ გამოიყენონ დაშიფრული (HTTP) კომუნიკაცია მოსმენისთვის ან გაყალბებისთვის.


  • გამართვადი აპლიკაცია

<application android:debuggable="true" />


ნებისმიერს, რომელსაც აქვს მოწყობილობა (ან ემულატორი) შეუძლია დაურთოს გამართვა და გადახედოს მგრძნობიარე მონაცემებს ან ლოგიკას.


  • მყარი კოდირებული API კლავიშები

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 მოწყობილობას შეუძლია ადვილად ამოიღოს ისინი.

iOS

  • არასწორი კონფიგურაცია Info.plist

<key>NSAppTransportSecurity</key> <dict>

<key>NSAllowsArbitraryLoads</key> <true/> </dict>


Apple ნაგულისხმევად ახორციელებს უსაფრთხო კავშირებს, ასე რომ, ამის უგულებელყოფა ხსნის აპს MITM რისკებთან ან დაშიფრული ტრაფიკისთვის.


დეკომპილაციის ხელსაწყოები, როგორიცაა Class-Dump , Hopper Disassembler და Ghidra ამოაქვს აპლიკაციის IPA ფაილის შინაარსი, მათ შორის Objective-C კლასები, მეთოდების სახელები და ბინარული ფაილები.


info.plist


დინამიური ანალიზი (DAST)

თუ სტატიკური ანალიზი სწავლობს ციხის გეგმას, დინამიური ანალიზი არის ციხის შიგნით სიარული და ყველა კარისა და ფანჯრის შემოწმებისას. ჩვენ ვმართავთ აპს, ვუყურებთ როგორ იქცევა ის და ვნახოთ, შეგვიძლია თუ არა რაიმე სისუსტე რეალურ დროში გამოვიყენოთ.

ძირითადი სფეროები, რომელზეც ფოკუსირება უნდა მოხდეს

  1. ქსელური კომუნიკაცია

    დარწმუნდით, რომ თქვენი აპის მონაცემები არ გაჟონავს ტრანსპორტის დროს. თუ თქვენი აპი ეყრდნობა HTTP-ს ან არასწორად კონფიგურირებულ HTTPS-ს, თავდამსხმელს შეუძლია შეაღწიოს, ჩაჭრას ან თუნდაც შეცვალოს მონაცემები. იგივე ეხება დაკარგული ან სუსტი SSL/TLS სერთიფიკატის ჩამაგრებას , რაც თქვენს აპს ავლენს ადამიანის შუაგულში (MITM) შეტევებს.

  2. ავტორიზაცია და ავტორიზაცია

    მაშინაც კი, თუ თქვენი შესვლის ეკრანები და მომხმარებლის როლები ჟღერად გამოიყურება ქაღალდზე, რეალური გამოცდა არის თუ არა ვინმემ მათი გვერდის ავლით მუშაობის დროს. მაგალითად, შეუძლია თუ არა თავდამსხმელს ხელახლა გამოიყენოს სესიის ნიშნები ან გამოიცნოს ისინი? სწორად იწურება აპის დრო, თუ ის სამუდამოდ ღიად ინახავს სესიებს?

  3. გაშვების მთლიანობისა და უსაფრთხოების შემოწმებები

    ბევრი აპი ცდილობს დაადგინოს, არის თუ არა მოწყობილობა root (Android) ან jailbroken (iOS) და შემდეგ უარს ამბობს გარკვეული ფუნქციების გაშვებაზე ან დაბლოკვაზე. დინამიური ანალიზის დროს გსურთ ნახოთ, შეძლებთ თუ არა ამ შემოწმებებს გადალახოთ აპლიკაციის კოდში მიმაგრებით, ასე რომ თქვენ შეგიძლიათ განაგრძოთ ტესტირება მაინც. თუ თქვენ შეგიძლიათ მარტივად გადალახოთ ეს ზომები, თავდამსხმელებსაც შეუძლიათ.

  4. მონაცემთა გაჟონვა შესრულების დროს

    აღრიცხავს თუ არა აპლიკაცია სენსიტიურ ინფორმაციას (როგორიცაა პაროლები ან ჟეტონები) უბრალო ტექსტში? როდესაც გადართავთ აპებს ან მოწყობილობის ფონს, კვლავ გამოჩნდება კონფიდენციალური მონაცემებით გადაღებული ეკრანი? ამ სახის უნებლიე „პურის ნამსხვრევის“ ბილიკს შეუძლია თავდამსხმელები პირდაპირ საგანძურამდე მიიყვანოს.

  5. API და სერვერის მხარის შემოწმება

    აპი შეიძლება უსაფრთხოდ გამოიყურებოდეს კლიენტის პერსპექტივიდან, მაგრამ თუ backend API არ ამოწმებს მომხმარებლის ნებართვებს ან შეყვანას, თავდამსხმელს შეუძლია შეცვალოს მოთხოვნები ფრენის დროს, რათა მოიპოვოს არაავტორიზებული წვდომა ან დაარღვიოს სისტემა. გადამწყვეტი მნიშვნელობა აქვს კლიენტის და სერვერის ქცევის ტანდემში შესამოწმებლად.

MSTG საკონტროლო სია

მობილური უსაფრთხოების ტესტირების სახელმძღვანელო (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 : აპლიკაცია იყენებს განახლებულ კრიპტოგრაფიულ ალგორითმებს გაშვების ოპერაციებისთვის.


იფიქრეთ მათზე, როგორც საგზაო რუკა თქვენი რეალურ სამყაროში ტესტებისთვის. ისინი გეხმარებათ სისტემატურად აწიოთ ყველა კარი და ფანჯარა და დაადასტუროთ, რომ ის დაკეტილია.

DAST ინსტრუმენტები

SAST-ისგან განსხვავებით, რომელიც ორიენტირებულია კოდის შემოწმებაზე, DAST ტრიალებს აპის გაშვებასა და შემოწმებაზე. ქვემოთ მოცემულია პოპულარული ინსტრუმენტები ამ პროცესის გასამარტივებლად:


Burp Suite / OWASP ZAP

გამოყენება : ორივე არის პროქსი, რომელიც საშუალებას გაძლევთ აღბეჭდოთ და შეცვალოთ ტრაფიკი აპსა და სარეზერვო სერვერებს შორის. იდეალურია დაუცველი ბოლო წერტილების, სესიის ხარვეზების ან მონაცემთა გაჟონვის დასადგენად.


Burp Suite Proxy-ის პარამეტრები


ფრიდა

გამოყენება : დინამიური ინსტრუმენტარიუმის ინსტრუმენტების ნაკრები, რომელიც დაკავშირებულია მიმდინარე პროცესებთან და გეხმარებათ SSL ჩამაგრების, root/jailbreak გამოვლენის ან კლიენტის მხრიდან სხვა შეზღუდვების გვერდის ავლით.


ფრიდას ინსტრუმენტი



საერთო ფრიდას ბრძანებები

მოქმედება

ბრძანება

მიმაგრება მიმდინარე პროცესზე

frida -U -n <process_name>

ჩამოთვალეთ ყველა მიმდინარე პროცესი

frida-ps -U

შეიტანეთ მორგებული სკრიპტი

frida -U -n <process_name> -c script.js

კვალი სპეციფიკური ფუნქციები

frida-trace -U -n <process_name>

დაამაგრეთ კონკრეტული ფუნქცია

frida -U -n <process_name> --eval 'Interceptor.attach(Module.findExportByName(null, "function_name"), { onEnter: function (args) { console.log(args[0].toInt32()); } })'


Drozer (Android)

გამოყენება : ყურადღებას ამახვილებს Android კომპონენტების სკანირებაზე, როგორიცაა აქტივობები, სერვისები, მაუწყებლობის მიმღებები და კონტენტის პროვაიდერები უსაფრთხოების სისუსტეების გამო.


დროზერის ხელსაწყო



საერთო დროზერის ბრძანებები

მოქმედება

ბრძანება

მოწყობილობასთან დაკავშირება

drozer console connect

ჩამოთვალეთ აქტივობები

run app.activity.info -a <package_name>

ურთიერთქმედება ექსპორტირებულ აქტივობებთან

run app.activity.start --component <package_name> <activity_name>

ტესტი SQL ინექციისთვის

run scanner.provider.injection -a <package_name>


წინააღმდეგობა

გამოყენება : შექმნილია Frida-ზე, მაგრამ უფრო მარტივი ბრძანებებით ისეთი ამოცანებისთვის, როგორიცაა SSL ჩამაგრების გამორთვა ან აპლიკაციის ფაილური სისტემის შესწავლა. იდეალურია, თუ არ ხართ სკრიპტირების გურუ.


წინააღმდეგობის ინსტრუმენტი



საერთო წინააღმდეგობის ბრძანებები

მოქმედება

ბრძანება

მიამაგრეთ გაშვებული აპლიკაცია

objection -g <app_package> explore

გამორთეთ SSL ჩამაგრება

android sslpinning disable / ios sslpinning disable

აპლიკაციის ინფორმაციის ამობეჭდვა

android application info or ios application info


მაგალითები

Android

  • ქსელის ჩარევა და მოდიფიკაცია

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-ის გამოყენებით ტესტერებს შეუძლიათ აღმოაჩინონ ექსპორტირებული აქტივობები ან კონტენტის პროვაიდერები, რომლებიც არ საჭიროებენ ავთენტიფიკაციას.

drozer console connect run app.provider.query

content://com.example.app.provider/users


თუ მონაცემები დაბრუნდება სათანადო ნებართვების გარეშე, თავდამსხმელებს შეუძლიათ წაიკითხონ ან შეცვალონ მომხმარებლის ინფორმაცია.


  • Root Detection-ის გვერდის ავლით

ინსტრუმენტები, როგორიცაა 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

  • Jailbreak Detection Bypass

iOS აპისთვის დამაგრების მაგალითი


ბევრი 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


ჯეილბრეიკ მოწყობილობებზე — ან ჟურნალების გარე შეგროვების საშუალებით — თავდამსხმელები უშუალოდ იღებენ მგრძნობიარე მონაცემებს.

საერთო გამოწვევები მობილური Pentesting-ში

  • პლატფორმის ფრაგმენტაცია : Android მოწყობილობები ფართოდ განსხვავდება OS ვერსიებში, მორგებულ ROM-ებში და მწარმოებლის მოდიფიკაციებში, რაც ართულებს ტესტირებას.
  • აპლიკაციის უსაფრთხოების ზომები : ისეთი ფუნქციები, როგორიცაა SSL ჩამაგრება, root/jailbreak-ის აღმოჩენა და დაბნელება, შეუძლია შეაფერხოს ტესტირება.
  • შეზღუდული წვდომა წყაროს კოდზე : შავი ყუთის ტესტირება ხშირად მოითხოვს საპირისპირო ინჟინერიას ისეთი ინსტრუმენტებით, როგორიცაა APKTool ან JADX, რაც შეიძლება შრომატევადი იყოს.
  • დინამიური ანალიზის შეზღუდვები : Sandboxing, მეხსიერების დაცვა და rooted/jailbroken მოწყობილობების საჭიროება ართულებს რეალურ სამყაროში სამუშაო ნაკადის ტესტებს.
  • ქსელის უსაფრთხოება და ტრაფიკის შემოწმება : SSL-ის დამაგრება, სერტიფიკატის ვალიდაცია ან VPN-ებმა შეიძლება ხელი შეუშალონ სტანდარტული MITM პროქსიებს. ისეთი ხელსაწყოები, როგორიცაა Frida , Burp Suite და mitmproxy , აუცილებელი ხდება შემოვლებისთვის.

ხშირად დასმული კითხვები (FAQ)

  • რა არის მობილური პენტესტი?

    ის ამოწმებს რამდენად უსაფრთხოა მობილური აპლიკაცია რეალურ სამყაროში თავდასხმების სიმულაციის გზით — ეძებს ბზარებს, სანამ თავდამსხმელები ამას გააკეთებენ.

  • რატომ არის მნიშვნელოვანი მობილურის შემოწმების პროცესი?

    იმის გამო, რომ სმარტფონები უზარმაზარ პერსონალურ და ფინანსურ მონაცემებს ინახავს, ისინი კიბერკრიმინალებისთვის მთავარი სამიზნეა.

  • რა არის ძირითადი ნაბიჯები?

    • შექმენით კონტროლირებადი გარემო, გააკეთეთ სტატიკური ანალიზი (SAST), გააკეთეთ დინამიური ანალიზი (DAST), დააკონკრეტეთ დასკვნები და ხელახლა შეამოწმეთ შესწორებების შემდეგ.
  • რა ინსტრუმენტები მჭირდება?

    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 ღია წყაროს კონტრიბუტორი, რომელიც ეძღვნება კოდირების უსაფრთხო პრაქტიკის განვითარებას. მისი გამოცდილება ახდენს უფსკრული პროგრამული უზრუნველყოფის შემუშავებასა და უსაფრთხოებას შორის, რაც უზრუნველყოფს ღირებულ შეხედულებებს თანამედროვე ვებ აპლიკაციების დაცვაში.

მობილური Pentesting სახელმძღვანელო: ცნობები

ინსტრუმენტები და რესურსები

  1. Mobile-Security-Framework-MobSF
  2. Apktool
  3. jadx
  4. Burp Suite
  5. ფრიდა
  6. დროზერი
  7. წინააღმდეგობა
  8. Genymotion
  9. Corellium ვირტუალური აპარატურა
  10. appledb.dev
  11. ხელახლა ფრიალი
  12. პლატფორმა-ინსტრუმენტები
  13. მაგისკი
  14. Root Checker
  15. checkra1n
  16. unc0ver
  17. ფილზა

სახელმძღვანელოები და სტატიები

  1. OWASP მობილური ტოპ 10
  2. OWASP მობილური აპლიკაციის უსაფრთხოება
  3. OWASP MASTG
  4. NIST SP 800-163
  5. ჩამოტვირთეთ და დააინსტალირეთ Android Studio
  6. Android მოწყობილობის კონფიგურაცია Burp Suite-თან მუშაობისთვის
  7. iOS მოწყობილობის კონფიგურაცია Burp Suite Professional-თან მუშაობისთვის
  8. Xamarin აპების გატეხვა


L O A D I N G
. . . comments & more!

About Author

Sekurno HackerNoon profile picture
Sekurno@sekurno
Sekurno is a leading cybersecurity firm dedicated to providing robust security solutions that go beyond compliance.

დაკიდეთ ტეგები

ეს სტატია იყო წარმოდგენილი...