การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย
ข้อบกพร่องที่พบบ่อย
การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย เป็นบทเรียน Ethical Hacking Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ethical Hacking Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
ข้อบกพร่องคลาสสิกสองประการ
ช่องโหว่บนอุปกรณ์เคลื่อนที่ที่พบบ่อยที่สุดสองประการคือการจัดเก็บข้อมูลที่ไม่ปลอดภัยและการสื่อสารที่ไม่ปลอดภัย ช่องโหว่เหล่านี้ปรากฏอยู่ใน OWASP Mobile Top 10
ทั้งสองกรณีเกิดจากนักพัฒนาเชื่อถืออุปกรณ์มากเกินไปและปกป้องข้อมูลได้ไม่ดีพอ
แอปจัดเก็บข้อมูลไว้ที่ใด
แอปเก็บข้อมูลไว้ใน /data/data/<package>/:
- SharedPreferences: ไฟล์คู่คีย์-ค่าในรูปแบบ XML
- ฐานข้อมูล SQLite
- ไฟล์ภายในและภายนอก
ผู้ทดสอบเจาะระบบจะตรวจสอบแต่ละจุดเพื่อค้นหาข้อมูลลับที่จัดเก็บแบบไม่เข้ารหัส
/data/data/com.app/shared_prefs/prefs.xmlข้อมูลลับแบบข้อความธรรมดา
ข้อบกพร่องที่พบบ่อยคือการจัดเก็บรหัสผ่าน โทเค็น หรือ PII แบบข้อความธรรมดาใน SharedPreferences หรือฐานข้อมูล
บนอุปกรณ์ที่รูท ผ่านการสำรองข้อมูล หรือใช้ Objection ผู้โจมตีสามารถอ่านข้อมูลเหล่านี้ได้โดยตรง ข้อมูลสำคัญควรเข้ารหัสหรือเก็บไว้ในฮาร์ดแวร์ที่ปลอดภัย
<string name="auth_token">eyJhbGci...plaintext...</string>ความเสี่ยงของพื้นที่จัดเก็บภายนอก
ข้อมูลที่เขียนลงพื้นที่จัดเก็บภายนอก (บริเวณการ์ด SD) สามารถอ่านได้โดยทุกคนบน Android รุ่นเก่า และแอปใดก็ตามที่มีสิทธิ์เข้าถึงพื้นที่จัดเก็บ
การบันทึกไฟล์สำคัญไว้ที่นั่นทำให้แอปอื่นเข้าถึงได้ บันทึกที่เขียนลงดิสก์ก็เป็นการรั่วไหลในลักษณะเดียวกัน
วิธีจัดเก็บข้อมูลลับที่ถูกต้อง
ตัวเลือกที่ปลอดภัย ได้แก่ Android Keystore (กุญแจถูกเก็บในฮาร์ดแวร์และไม่เปิดเผยให้แอปเห็น) และ EncryptedSharedPreferences
Keystore สามารถดำเนินการเข้ารหัสโดยไม่เปิดเผยกุญแจ ซึ่งปลอดภัยกว่าการฝังกุญแจไว้ในโค้ดอย่างตายตัวมาก
การสื่อสารที่ไม่ปลอดภัย
การสื่อสารที่ไม่ปลอดภัยหมายถึงข้อมูลถูกส่งโดยไม่มีการป้องกันที่เหมาะสม กรณีร้ายแรงที่สุดคือ HTTP แบบข้อความธรรมดา ซึ่งผู้ใดก็ตามบนเครือข่ายสามารถอ่านหรือแก้ไขการรับส่งข้อมูลได้
การรับส่งข้อมูลสำคัญทั้งหมดต้องใช้ HTTPS/TLS
http://api.app.com/login # cleartext, credentials exposedการดักการรับส่งข้อมูล
หากต้องการตรวจสอบการรับส่งข้อมูล ให้กำหนดเส้นทางอุปกรณ์ผ่านพร็อกซีดักข้อมูล เช่น Burp Suite คุณต้องติดตั้งใบรับรอง CA ของ Burp บนอุปกรณ์เพื่อให้อ่าน HTTPS ได้
วิธีนี้จะแสดงจุดปลายทาง API พารามิเตอร์ และข้อมูลสำคัญที่อยู่ระหว่างการส่ง
การตรึงใบรับรอง
แอปที่สร้างมาอย่างดีจะใช้การตรึงใบรับรองเพื่อปฏิเสธใบรับรองอื่นทั้งหมดและยอมรับเฉพาะใบรับรองของตนเอง ทำให้พร็อกซีพื้นฐานใช้งานไม่ได้
ดังที่คุณได้เรียนรู้ การข้ามการตรึง SSL ด้วย Frida จะปิดการป้องกันนี้ ทำให้คุณยังคงดักและประเมินความปลอดภัยจริงของ API ได้
TLS ที่อ่อนแอและการตรวจสอบ
แม้ใช้ HTTPS ก็ยังมีข้อบกพร่องได้ เช่น เชื่อถือใบรับรองทั้งหมด ยอมรับใบรับรองที่หมดอายุ หรือปิดการตรวจสอบชื่อโฮสต์ ซึ่งมักถูกเพิ่มเข้ามาเพื่อให้การพัฒนาสะดวกขึ้น
สิ่งเหล่านี้เปิดโอกาสให้ผู้โจมตีก่อการโจมตีแบบคนกลางได้ แม้จะมี TLS อยู่ก็ตาม
ข้อมูลสำรองและบันทึก
การรั่วไหลเพิ่มเติมอีกสองกรณี:
android:allowBackup="true"ทำให้ทุกคนที่มีอุปกรณ์สามารถดึงข้อมูลแอปผ่านadb backupได้- เอาต์พุต logcat ที่ละเอียดมากอาจพิมพ์โทเค็นหรือ PII ออกมา
ควรปิดใช้งานหรือทำให้ข้อมูลปลอดภัยก่อนนำไปใช้จริงทั้งสองกรณี
adb backup -f data.ab com.appคลิปบอร์ดและภาพหน้าจอ
การรั่วไหลที่มักถูกมองข้ามสองกรณี ได้แก่ การคัดลอกข้อมูลสำคัญไปยังคลิปบอร์ด (แอปอื่นอ่านได้บน Android รุ่นเก่า) และภาพหน้าจอของระบบที่ถ่ายเมื่อแอปไปอยู่เบื้องหลัง
แอปธนาคารป้องกันปัญหานี้ด้วยแฟล็กหน้าต่าง FLAG_SECURE ซึ่งบล็อกภาพหน้าจอและภาพตัวอย่างในตัวสลับงาน
ตรวจสอบอย่างรวดเร็ว
ลองนึกดูว่าสถานที่ใดปลอดภัยที่สุดสำหรับเก็บกุญแจเข้ารหัสบน Android
สรุปทบทวน
ขณะนี้คุณเข้าใจการจัดเก็บและการสื่อสารที่ไม่ปลอดภัยแล้ว:
- แอปทำให้ข้อมูลลับแบบข้อความธรรมดารั่วไหลผ่าน SharedPreferences ฐานข้อมูล พื้นที่จัดเก็บภายนอก และบันทึก
- จัดเก็บข้อมูลลับใน Android Keystore หรือ EncryptedSharedPreferences
- การสื่อสารที่ไม่ปลอดภัยมีตั้งแต่ HTTP แบบข้อความธรรมดาไปจนถึงการตรวจสอบ TLS ที่อ่อนแอ ให้ดักข้อมูลด้วย Burp
- ข้ามการตรึงใบรับรองด้วย Frida ปิดใช้ allowBackup และทำให้บันทึกปลอดภัย
คุณเรียนจบหลักสูตรการทดสอบเจาะระบบแอปบนอุปกรณ์เคลื่อนที่แล้ว
คำถามที่พบบ่อย
บทเรียน “การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ethical Hacking Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ethical Hacking Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย”
ข้อบกพร่องที่พบบ่อย คุณปฏิบัติ Ethical Hacking Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ethical Hacking Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ethical Hacking Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Ethical Hacking Academy นี้ได้ไหม
ได้ บทเรียน Ethical Hacking Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โครงสร้างแอป Android
- การวิเคราะห์ APK แบบสแตติก
- การวิเคราะห์แบบพลวัตด้วย Frida
- การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย