การเก็บข้อมูลและวิเคราะห์ Android
ดึงและวิเคราะห์ข้อมูล Android
การเก็บข้อมูลและวิเคราะห์ Android เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
สถาปัตยกรรมพื้นที่จัดเก็บข้อมูลของ Android
หากต้องการดึงข้อมูล Android อย่างมีประสิทธิภาพ คุณต้องทราบว่าข้อมูลเหล่านั้นอยู่ที่ใด
- /data/data/<package>/ — พื้นที่แยกของแต่ละแอป: ฐานข้อมูล shared_prefs ไฟล์ และแคช
- /data/media/0/ — พื้นที่จัดเก็บของผู้ใช้ (รูปภาพ ไฟล์ดาวน์โหลด)
- /data/system/ — บัญชี การตั้งค่าการล็อก และสถิติการใช้งาน
พยานหลักฐานของแอปส่วนใหญ่อยู่ในฐานข้อมูล SQLiteและไฟล์การตั้งค่า XML ภายในพื้นที่แยกของแต่ละแอป ซึ่งอ่านไม่ได้หากไม่มีสิทธิ์ระดับผู้ดูแลระบบหรือกลไกการสำรองข้อมูล
ข้อกำหนดเบื้องต้นของ ADB และการแก้ไขข้อบกพร่อง
เครื่องมือเชื่อมต่อสำหรับแก้ไขข้อบกพร่องของ Android (ADB)เป็นช่องทางหลักสำหรับการเก็บข้อมูลเชิงตรรกะ โดยต้องเปิดใช้การแก้ไขข้อบกพร่องผ่าน USB และอนุญาตคีย์ของเครื่องโฮสต์
- หากไม่ได้เปิดใช้การแก้ไขข้อบกพร่องและไม่ได้ปลดล็อกหน้าจอ การเข้าถึง ADB จะถูกปิดกั้น
- ข้อความขออนุญาตเองก็เปลี่ยนสถานะของอุปกรณ์ — ให้บันทึกไว้
ตรวจสอบการเชื่อมต่อและเก็บคุณสมบัติของอุปกรณ์ก่อน:
adb devices -l
adb shell getprop ro.build.version.release # Android version
adb shell getprop ro.product.model # Device model
adb shell getprop ro.crypto.state # encrypted / unencryptedการเก็บข้อมูลเชิงตรรกะผ่านการสำรองข้อมูลด้วย ADB
adb backupสร้างไฟล์จัดเก็บ .ab ของข้อมูลแอปสำหรับการสำรองข้อมูล ไม่ต้องใช้สิทธิ์ระดับผู้ดูแลระบบและมีให้ใช้อย่างแพร่หลาย แต่มีข้อจำกัด: แอปจำนวนมากกำหนดให้ allowBackup=false
- เก็บข้อมูลแอป ไฟล์ APK (ด้วย
-apk) และพื้นที่จัดเก็บร่วม - ไม่รวมแอปที่เลือกไม่เข้าร่วมและระเบียนที่ลบแล้ว
สร้างและแปลงข้อมูลสำรองเพื่อใช้วิเคราะห์:
# Create a full backup (user must confirm on device)
adb backup -apk -shared -all -f android_backup.ab
# Convert the .ab to a readable tar (android-backup-extractor)
java -jar abe.jar unpack android_backup.ab android_backup.tar
tar -xvf android_backup.tarการเก็บข้อมูลจากระบบไฟล์
การเก็บข้อมูลจากระบบไฟล์จะคัดลอกโครงสร้างไดเรกทอรี รวมถึงพื้นที่แยกของแอปและไฟล์บันทึก SQLite WAL/SHM ที่เก็บระเบียนซึ่งยังไม่ได้ซิงค์
- ต้องมีสิทธิ์ระดับผู้ดูแลระบบ ตัวแทนนิติวิทยาศาสตร์ดิจิทัล หรือวิธีใช้ช่องโหว่/วิธีการผ่านบูตโหลดเดอร์
- เก็บรักษาไฟล์-walและ-shmไว้ — สำคัญมาก เพราะระเบียนล่าสุดอาจมีอยู่เฉพาะในไฟล์เหล่านี้
เมื่อดึงฐานข้อมูล SQLite ให้เก็บไฟล์บันทึกที่มาคู่กันด้วยเสมอ:
adb pull /data/data/com.whatsapp/databases/msgstore.db ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-wal ./out/
adb pull /data/data/com.whatsapp/databases/msgstore.db-shm ./out/ข้อเท็จจริงของการเก็บข้อมูลแบบกายภาพ
อิมเมจแบบกายภาพคือสำเนาของ NAND แบบทีละบิต รวมถึงพื้นที่ที่ไม่ได้จัดสรรซึ่งข้อมูลที่ลบแล้วอาจยังคงอยู่ บน Android รุ่นใหม่ การสร้างอิมเมจประเภทนี้ทำได้ยากที่สุด
- การเข้ารหัส FBEหมายความว่าดัมป์ NAND ดิบจะเป็นข้อความเข้ารหัสหากไม่มีคีย์ของผู้ใช้
- วิธีการต่าง ๆ ได้แก่ การใช้ช่องโหว่ของผู้ผลิต โหมด EDL/บูตโหลดเดอร์ หรือการถอดชิปออก (ทางเลือกสุดท้ายและทำลายอุปกรณ์)
- ในทางปฏิบัติ การเก็บข้อมูลจากระบบไฟล์ขณะอยู่ในสถานะ AFU มักให้ข้อมูลที่ใช้งานได้มากกว่าดัมป์แบบกายภาพที่เข้ารหัส
เลือกการเก็บข้อมูลแบบกายภาพเฉพาะเมื่อมีเหตุผลรองรับและสามารถถอดรหัสได้
SQLite: หัวใจของพยานหลักฐาน Android
ร่องรอยหลักฐานของ Android ส่วนใหญ่อยู่ในฐานข้อมูล SQLite นักวิเคราะห์สอบถามฐานข้อมูลโดยตรงเพื่อกู้คืนข้อความ บันทึกการโทร และเวลา
- เปิดแบบอ่านอย่างเดียวเพื่อหลีกเลี่ยงการแก้ไขไฟล์พยานหลักฐาน
- ค่ามักแสดงเวลาเป็นมิลลิวินาทีของยุค Unix
ตรวจสอบฐานข้อมูลรายชื่อผู้ติดต่อจากข้อมูลที่เก็บมา:
sqlite3 -readonly contacts2.db
sqlite> .tables
sqlite> SELECT display_name, data1
...> FROM view_v_contacts LIMIT 20;การกู้คืนระเบียน SQLite ที่ลบแล้ว
การลบระเบียนใน SQLite มักเพียงทำเครื่องหมายพื้นที่ของหน้าให้ว่าง เศษข้อมูลที่กู้คืนได้อยู่ใน:
- หน้าพื้นที่ว่างและพื้นที่ที่ไม่ได้จัดสรรของไฟล์ .db
- บันทึกการเขียนล่วงหน้า -wal ซึ่งเก็บเวอร์ชันของระเบียนก่อนถึงจุดตรวจสอบ
เครื่องมือกู้คืนด้วยการค้นหาโครงสร้างข้อมูลจะสร้างระเบียนเหล่านี้ขึ้นใหม่ ให้ดำเนินการกู้คืนกับฐานข้อมูล:
# Carve deleted rows from freelist + WAL
python3 sqlite_carver.py --db msgstore.db --wal msgstore.db-wal \
--out recovered_messages.csv
# Cross-check live vs recovered counts in your notesเส้นเวลาและการถอดรหัสเวลา
การสร้างเส้นเวลาช่วยเชื่อมโยงเหตุการณ์ระหว่างแอปต่าง ๆ ความท้าทายคือ Android ใช้รูปแบบเวลาหลายรูปแบบ
- ยุค Unix (ms) — ฐานข้อมูลข้อความส่วนใหญ่
- ยุค Unix (s) — บันทึกข้อมูลระบบจำนวนมาก
- เวลา WebKit/Chrome — ไมโครวินาทีตั้งแต่ปี 1601 (ประวัติเบราว์เซอร์)
ปรับเวลาให้เป็นUTCเสมอ และระบุเขตเวลาของอุปกรณ์ ตัวอย่างการแปลงใน SQLite:
-- Convert epoch milliseconds to readable UTC
SELECT datetime(timestamp/1000, 'unixepoch') AS sent_utc,
key_remote_jid, data
FROM messages
ORDER BY timestamp DESC LIMIT 25;หลักฐานสำคัญของระบบ
นอกเหนือจากข้อมูลแอป หลักฐานจากระบบแอนดรอยด์ยังเผยให้เห็นพฤติกรรมของผู้ใช้และการใช้งานอุปกรณ์
- สถิติการใช้งาน — แอปใดทำงานและทำงานเมื่อใด
- accounts.db / accounts_ce.db — บัญชีกูเกิลและบัญชีแอปที่เชื่อมโยงกัน
- สถิติเครือข่าย / นโยบายเครือข่าย — การใช้ข้อมูลของแต่ละแอป
- การกำหนดค่าไวไฟ (WifiConfigStore.xml) — เครือข่ายที่รู้จัก ซึ่งมีประโยชน์ต่อบริบทการระบุตำแหน่งภูมิศาสตร์
ข้อมูลเหล่านี้ช่วยสนับสนุนหรือขัดแย้งกับคำกล่าวอ้างเกี่ยวกับผู้ที่ใช้อุปกรณ์และช่วงเวลาที่ใช้งาน
การแยกวิเคราะห์อัตโนมัติด้วย ALEAPP
การแยกวิเคราะห์ด้วยตนเองไม่สามารถขยายรองรับข้อมูลปริมาณมากได้ ALEAPP (ตัวแยกวิเคราะห์บันทึก เหตุการณ์ และโปรโตบัฟของแอนดรอยด์) รับข้อมูลจากการดึงข้อมูลระบบไฟล์และสร้างรายงานแบบมีโครงสร้างในรูปแบบ HTML/CSV
- แยกวิเคราะห์ข้อมูลสถิติการใช้งาน กิจกรรมล่าสุด การแจ้งเตือน สิทธิ์ของแอป และข้อมูลอื่น ๆ
- ใช้เพื่อคัดกรองเบื้องต้น จากนั้นตรวจสอบข้อค้นพบสำคัญด้วยตนเองกับฐานข้อมูลดิบ
เรียกใช้ ALEAPP กับไดเรกทอรีข้อมูลที่ดึงมา:
python3 aleapp.py -t fs -i ./android_filesystem/ -o ./aleapp_report/
# Open ./aleapp_report/index.html to review parsed artifactsการตรวจสอบยืนยันและการต่อต้านการดัดแปลง
อย่าไว้วางใจเครื่องมือเพียงรายการเดียว ตรวจสอบยืนยันผลลัพธ์อัตโนมัติกับข้อมูลต้นทางและเปรียบเทียบข้ามเครื่องมือ
- เรียกใช้คำค้นสำคัญซ้ำด้วย เครื่องมือเอสคิวไลต์สาม ด้วยตนเองเพื่อยืนยันผลลัพธ์ของตัวแยกวิเคราะห์
- เฝ้าระวัง สัญญาณการต่อต้านนิติวิทยาศาสตร์ดิจิทัล เช่น บันทึกที่ถูกล้าง การประทับเวลาที่ถูกแก้ไข แอปลบข้อมูลอย่างปลอดภัย หรือแอปแชตที่ตั้งค่าให้ข้อความหายไป
- ยืนยันว่าแฮชของอิมเมจยังตรงกันทั้งก่อนและหลังการวิเคราะห์
การทำซ้ำได้และการตรวจสอบข้ามกันทำให้ข้อค้นพบมีหลักฐานรองรับ
ตรวจสอบอย่างรวดเร็ว
คุณกำลังดึงฐานข้อมูลเอสคิวไลต์ของแอปแชตออกมา ต้องเก็บไฟล์ประกอบใดด้วยเพื่อไม่ให้พลาดข้อความที่เพิ่งส่ง
ทบทวน: การเก็บรวบรวมและวิเคราะห์หลักฐานจากแอนดรอยด์
ขณะนี้คุณสามารถเก็บรวบรวมและวิเคราะห์หลักฐานจากแอนดรอยด์ได้ตั้งแต่ต้นจนจบ
- ข้อมูลแอปอยู่ใน พื้นที่แยกของแต่ละแอป ในรูปฐานข้อมูลเอสคิวไลต์และค่ากำหนดเอ็กซ์เอ็มแอล
- ข้อมูลสำรอง ADB = ดึงข้อมูลเชิงตรรกะได้ง่าย; การดึงข้อมูลจากระบบไฟล์ (สิทธิ์ระดับราก) จะรักษา WAL ไว้; การดึงข้อมูลทางกายภาพ ทำได้ยากที่สุดภายใต้ FBE
- กู้คืนระเบียนที่ถูกลบจาก หน้าข้อมูลว่างและ WAL
- ปรับการประทับเวลาให้เป็นมาตรฐาน UTC และถอดรหัสรูปแบบยุคอ้างอิงเวลากับ WebKit
- ใช้ ALEAPP เพื่อคัดกรองเบื้องต้น จากนั้น ตรวจสอบยืนยันด้วยตนเองด้วยเครื่องมือเอสคิวไลต์สาม
- เฝ้าระวังการดัดแปลงเพื่อต่อต้านนิติวิทยาศาสตร์ดิจิทัล และตรวจสอบแฮชของอิมเมจอีกครั้ง
ถัดไป: ส่วนของ iOS
คำถามที่พบบ่อย
บทเรียน “การเก็บข้อมูลและวิเคราะห์ Android” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การเก็บข้อมูลและวิเคราะห์ Android” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การเก็บข้อมูลและวิเคราะห์ Android”
ดึงและวิเคราะห์ข้อมูล Android คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “การเก็บข้อมูลและวิเคราะห์ Android” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม
ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานนิติวิทยาศาสตร์อุปกรณ์เคลื่อนที่
- การเก็บข้อมูลและวิเคราะห์ Android
- การเก็บข้อมูลและวิเคราะห์ iOS
- แอป ร่องรอย และการรายงาน