0Pricing
Ethical Hacking Academy · บทเรียน

การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย

ข้อบกพร่องที่พบบ่อย

การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้างแอป Android
  2. การวิเคราะห์ APK แบบสแตติก
  3. การวิเคราะห์แบบพลวัตด้วย Frida
  4. การจัดเก็บและการสื่อสารที่ไม่ปลอดภัย
← กลับไปที่ Ethical Hacking Academy