How to test Insecure Data Storage – Part 1 (DIVA)

บทนำ (Overview)

Insecure Data Storage เป็นความเสี่ยงตาม OWASP Mobile TOP 10 เราจะมาทดสอบเพื่อหาข้อมูลสำคัญ (เช่น username, password, session token, ข้อมูลลูกค้า เป็นต้น) ว่ามีเก็บอยู่ในเครื่อง “Android” หรือไม่ โดยเฉพาะโปรแกรมประเภท “Internet Banking” ซึ่งข้อมูลสำคัญอาจถูกโจรกรรมได้จาก การขโมยเครื่อง การนำเครื่องไปซ่อมในร้านที่อาจไม่ปลอดภัย หรือโดนโปรแกรมประสงค์ร้าย (Malwares)

diva-insecure-part1-2

จากภาพข้างต้นเราจะพบว่ามีที่เก็บไฟล์มากมายภายใน Application ที่อาจจะพบข้อมูลสำคัญโดยปราศจากการเข้ารหัสหรือเข้ารหัสอย่างไม่แข็งแรงก็ได้

ขั้นตอน (Steps)

  1. ติดตั้งโปรแกรมช่องโหว่ “DIVA” สามารถติดตามวิธีการติดตั้งได้ที่ How to install DIVA (android)
  2. เข้าโปรแกรม “DIVA” จากนั้นไปที่เมนู “Insecure Data Storage – Part 1” ให้กรอก “Username” และ “Password” ลงไปdiva-insecure-part1
  3. วัตถุประสงค์ให้เราหาข้อมูลเกี่ยวกับ “Username” และ “Password” ที่เราได้บันทึกลงไปว่ามีเปิดเผยอยู่ในเครื่อง “Android” หรือไม่ ให้เข้าถึง “Directory” ของเครื่องโดยใช้ “ADB shell” เราสามารถเชื่อมต่อ ADB โดยใช้ผ่าน “Appie2” สามารถติดตามได้จากบทความ เชื่อมต่อ “ADB” ตามบทความ How to use ADB via Appie2
  4. ใช้คำสั่ง “ADB SHELL” เพื่อให้ได้มาถึง “command prompt” จากนั้นไปที่โฟลเดอร์ /data/data
    C:\Users\wsunpachit\Desktop
    λ adb shell
    root@vbox86p:/ # cd /data/data
    cd /data/data
    
  5. จากนั้นให้ค้นหา “Folder” ที่เป็นชื่อ “Package” ของโปรแกรมที่เรากำลังจะทดสอบ โดยปกติจะเป็นชื่อโปรแกรม หรือชื่อบริษัทที่เกี่ยวข้องโปรแกรมที่ติดตั้งนั้นๆ
    root@android:/data/data # ls -l
    ls -l
    drwxr-x--x u0_a39   u0_a39            2016-09-09 22:11 com.android.insecurebankv2
    drwxr-x--x system   system            2016-06-23 10:18 com.android.keychain
    drwxr-x--x u0_a20   u0_a20            2016-06-21 22:42 com.android.phasebeam
    drwxr-x--x radio    radio             2016-06-21 22:43 com.android.phone
    drwxr-x--x u0_a43   u0_a43            2016-09-09 22:11 jakhar.aseem.diva
    drwxr-x--x u0_a34   u0_a34            2016-06-21 22:44 me.haima.androidassist
    drwxr-x--x u0_a33   u0_a33            2016-06-21 22:44 me.haima.helpcenter
    drwxr-x--x u0_a40   u0_a40            2016-09-09 22:11 org.owasp.goatdroid.fourgoats
    drwxr-x--x u0_a41   u0_a41            2016-09-09 22:11 org.owasp.goatdroid.herdfinancial
    
  6. จากตัวอย่างคือ “jakhar.aseem.diva” จากนั้นเข้าไปที่ “Folder” ดังกล่าว และค้นหาไฟล์ต่าง ๆ  เช่น xml, txt, json, plist, conf, ini, tmp, html
    root@android:/data/data # cd jakhar.aseem.diva/
    root@android:/data/data/jakhar.aseem.diva # find | grep .xml
    find | grep .xml
    ./shared_prefs/jakhar.aseem.diva_preferences.xml
    
  7. เมื่อพบแล้วลองเปิด “File” เพื่อตรวจสอบ เราจะพบว่ามี “Username” และ “Password” ที่เราได้กรอกเข้าไป
    1|root@android:/data/data/jakhar.aseem.diva # cat shared_prefs/jakhar.aseem.diva_preferences.xml
    /jakhar.aseem.diva_preferences.xml                                            <
    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
    
    <map>
    <string name="user">administrator</string>
    <string name="password">p@ssw0rd</string>
    </map>
    

    diva-insecure-part1-1

 

ใส่ความเห็น