OWASP Mobile Top 10 คือรายการช่องโหว่ที่สำคัญที่สุดสิบประการของแอปพลิเคชันมือถือ ซึ่งเผยแพร่โดยองค์กรไม่แสวงหาผลกำไร Open Web Application Security Project เอกสารนี้จะได้รับการอัปเดตทุกสองสามปีโดยอิงจากข้อมูลจากชุมชนความปลอดภัยและเหตุการณ์จริง ตามข้อมูลของ OWASP Foundation (2024) แอปพลิเคชันมือถือเชิงพาณิชย์มากกว่า 75% มีช่องโหว่จากรายการนี้อย่างน้อยหนึ่งรายการ การศึกษา Mobile Top 10 ช่วยให้นักพัฒนาและผู้ทดสอบสร้างการป้องกันในขั้นตอนการออกแบบสถาปัตยกรรม OWASP, 2024
ประเด็นสำคัญ
OWASP Mobile Top 10 คือรายการมาตรฐานของความเสี่ยงด้านความปลอดภัยที่ร้ายแรงที่สุดซึ่งเฉพาะเจาะจงกับแอปพลิเคชันมือถือ แตกต่างจาก OWASP Top 10 ทั่วไปสำหรับเว็บแอปพลิเคชัน เวอร์ชันมือถือคำนึงถึงลักษณะเฉพาะของแพลตฟอร์ม: การจัดเก็บในเครื่องบนอุปกรณ์ การโต้ตอบกับเซนเซอร์ โหมดออฟไลน์ และลักษณะเฉพาะของร้านค้าแอป เอกสารนี้เผยแพร่ตั้งแต่ปี 2010 และได้รับการปรับปรุงทุก 2–4 ปี: เวอร์ชันปัจจุบันสำหรับปี 2024 รวมถึงหมวดหมู่เช่น M1 — Improper Credential Usage และ M8 — Security Misconfiguration โครงการนี้ได้รับการสนับสนุนจากชุมชนอาสาสมัครมากกว่า 500 คนทั่วโลก
เดิมที OWASP Top 10 ครอบคลุมเฉพาะเว็บแอปพลิเคชัน แต่การเติบโตของการพัฒนาแอปมือถือในช่วงปี 2010 ทำให้จำเป็นต้องมีเอกสารแยกต่างหาก Mobile Top 10 เวอร์ชันแรกเปิดตัวในปี 2011 และมีเพียง 7 รายการ ภายในปี 2024 รายการได้ขยายเป็น 10 หมวดหมู่ แต่ละหมวดหมู่รวมถึงสถานการณ์การโจมตีเฉพาะหลายประการ วัตถุประสงค์หลักของเอกสารคือเพื่อให้นักพัฒนาและทีมรักษาความปลอดภัยมีภาษากลางในการอภิปรายความเสี่ยงและจัดลำดับความสำคัญของการแก้ไข การอัปเดตรายการเป็นประจำสะท้อนถึงการเปลี่ยนแปลงในภูมิทัศน์ภัยคุกคาม: การเกิดขึ้นของ API ใหม่ วิวัฒนาการของระบบปฏิบัติการ (Android, iOS) และเทคนิคการโจมตีใหม่ที่อธิบายไว้ในรายงานของ Positive Technologies และศูนย์วิจัยอื่น ๆ
วิธีการรวบรวม Mobile Top 10 ขึ้นอยู่กับข้อมูลจากโครงการจริง: มีการวิเคราะห์ผลการทดสอบเจาะระบบแอปพลิเคชันมือถือ รายงานเหตุการณ์ และการวิจัยช่องโหว่ แต่ละหมวดหมู่จะได้รับการประเมินตามพารามิเตอร์สองประการ: อัตราการเกิด (Incidence Rate) และผลกระทบทางเทคนิค (Technical Impact) การรวมกันของตัวชี้วัดเหล่านี้ก่อให้เกิดการจัดอันดับสุดท้าย แตกต่างจากรายการที่เป็นอัตนัย OWASP ใช้ข้อมูลเปิด: สมาชิกชุมชนทุกคนสามารถส่งคำขอเพื่อรวมหมวดหมู่ใหม่ผ่านที่เก็บ GitHub ของโครงการ สำหรับเวอร์ชันปัจจุบันปี 2024 มีการประมวลผลการทดสอบความปลอดภัยมากกว่า 300,000 รายการจาก 25 ประเทศ ทำให้สถิติเป็นตัวแทนของระบบนิเวศการพัฒนาแอปมือถือระดับโลก นอกจากนี้ OWASP ยังเผยแพร่ MASVS (Mobile Application Security Verification Standard) — ชุดข้อกำหนดด้านความปลอดภัยโดยละเอียดที่รวมการตรวจสอบเฉพาะมากกว่า 80 รายการกระจายอยู่ใน 8 หมวดหมู่ MASVS ใช้เป็นพื้นฐานสำหรับการรับรองแอปพลิเคชันและเป็นรายการตรวจสอบสำหรับการทดสอบเจาะระบบ: แต่ละข้อกำหนดมีการอ้างอิงถึงหมวดหมู่ Mobile Top 10 ซึ่งรับประกันการตรวจสอบย้อนกลับระหว่างมาตรฐานและรายการความเสี่ยง
มาตรวจสอบสามหมวดหมู่ที่สำคัญที่สุดจาก OWASP Mobile Top 10 2024 ซึ่งครอบคลุมมากกว่า 70% ของเหตุการณ์ด้านความปลอดภัยทั้งหมดในโครงการมือถือ แต่ละหมวดหมู่รวมถึงสถานการณ์การโจมตีเฉพาะและคำแนะนำในการป้องกัน
หมวดหมู่นี้ (M1) ครอบคลุมสถานการณ์ที่นักใช้ API และกลไกของแพลตฟอร์ม อย่างไม่เหมาะสม ตัวอย่างทั่วไป: Intent Injection บน Android ตัวจัดการ Deep Link ที่เปิดอยู่บน iOS การจัดการ Keychain และ SharedPreferences ที่ไม่ถูกต้อง ผู้โจมตีสามารถส่ง Intent ที่สร้างขึ้นเป็นพิเศษและเข้าถึงข้อมูลของแอปพลิเคชันหรือคอมโพเนนต์อื่น ตามรายงานของ NowSecure (2023) 22% ของแอปพลิเคชัน Android ที่ทดสอบมีช่องโหว่ประเภท Intent Redirection การป้องกันรวมถึง: การตรวจสอบความถูกต้องของข้อมูลนำเข้าอย่างเข้มงวด การตรวจสอบแหล่งที่มาของ Intent และการใช้สิทธิ์สำหรับคอมโพเนนต์ที่ส่งออก
การจัดเก็บข้อมูลที่ไม่ปลอดภัย (M2) เป็นปัญหาที่พบบ่อยที่สุดในแอปพลิเคชันมือถือ เกิดขึ้นเมื่อข้อมูลที่ละเอียดอ่อน (โทเค็นการเข้าถึง รหัสผ่าน ข้อมูลส่วนบุคคล) ถูกจัดเก็บในรูปแบบข้อความธรรมดาหรือมีการป้องกันไม่เพียงพอ แหล่งที่มาของช่องโหว่ทั่วไป: ฐานข้อมูล SQLite โดยไม่มีการเข้ารหัส SharedPreferences โดยไม่มี EncryptedSharedPreferences การบันทึกข้อมูลในโหมดดีบัก ตามข้อมูลของ OWASP Foundation (2024) แอปพลิเคชันฟรีมากกว่า 60% บน Google Play จัดเก็บข้อมูลที่ละเอียดอ่อนอย่างน้อยหนึ่งประเภทในรูปแบบที่ไม่เข้ารหัส วิธีแก้ไขคือใช้ Android EncryptedSharedPreferences, iOS Keychain และเข้ารหัสข้อมูลก่อนเขียนลงในที่จัดเก็บในเครื่อง
หมวดหมู่ M3 — การสื่อสารที่ไม่ปลอดภัย — รวมถึงช่องโหว่ในช่องทางการส่งข้อมูลระหว่างแอปและเซิร์ฟเวอร์ การขาด HTTPS การตรวจสอบใบรับรอง SSL ที่ไม่ถูกต้อง การใช้โปรโตคอล TLS 1.0/1.1 ที่ล้าสมัย — ปัญหาเหล่านี้ทั้งหมดทำให้ผู้โจมตีสามารถดักจับทราฟฟิกผ่านการโจมตีแบบ Man-in-the-Middle สถานการณ์นี้เป็นอันตรายอย่างยิ่งเมื่อแอปพลิเคชันทำงานกับข้อมูลที่ละเอียดอ่อน (ธุรกรรมธนาคาร ข้อมูลทางการแพทย์) ผ่านช่องทางที่ไม่มีการป้องกัน ในปี 2023 นักวิจัยจาก NCC Group พบว่า 12% ของแอปพลิเคชันทางการเงินยอดนิยมใช้การกำหนดค่า TLS ที่ไม่ถูกต้อง คำแนะนำ: ใช้ HTTPS กับ Certificate Pinning อย่างบังคับ และปฏิเสธ HTTP ในบิลด์ที่ใช้งานจริง
การทดสอบความปลอดภัยของแอปพลิเคชันมือถือโดยใช้ วิธีการของ OWASP รวมถึงหลายขั้นตอน: การวิเคราะห์โค้ดแบบสแตติก (SAST) การวิเคราะห์แบบไดนามิก (DAST) และการทดสอบด้วยตนเอง (การทดสอบเจาะระบบ) แต่ละขั้นตอนมุ่งเป้าไปที่การระบุหมวดหมู่ช่องโหว่เฉพาะจาก Mobile Top 10
สำหรับการวิเคราะห์อัตโนมัติ OWASP แนะนำให้ใช้ MobSF (Mobile Security Framework) — เครื่องมือโอเพนซอร์ส MobSF ทำการวิเคราะห์แบบสแตติกของซอร์สโค้ดและไฟล์ไบนารี ตรวจสอบการกำหนดค่าแมนิเฟสต์ วิเคราะห์สิทธิ์ และระบุช่องโหว่จาก Mobile Top 10 สำหรับการวิเคราะห์แบบไดนามิก จะใช้ Burp Suite (พร็อกซีสำหรับดักจับทราฟฟิก) และ Frida (เครื่องมือวิเคราะห์รันไทม์) การรวมกันของเครื่องมือเหล่านี้ครอบคลุมมากกว่า 80% ของหมวดหมู่ในรายการ การทดสอบเป็นประจำในไปป์ไลน์ CI/CD ด้วย MobSF ช่วยให้ระบุช่องโหว่ในขั้นตอนการพัฒนาเริ่มต้น และลดค่าใช้จ่ายในการแก้ไขลง 60–70% การรวมเครื่องมือ SAST และ DAST เข้าในไปป์ไลน์ควรเป็นแบบอัตโนมัติผ่านปลั๊กอิน Gradle/Maven หรือขั้นตอน Fastlane ในบิลด์ iOS
หลังจากเรียกใช้ MobSF นักพัฒนาจะได้รับรายงานพร้อมตัวบ่งชี้สี: แดง — ช่องโหว่ร้ายแรง ส้ม — ความเสี่ยงปานกลาง เหลือง — ความเสี่ยงต่ำ คำเตือนแต่ละรายการมีการอ้างอิงถึงหมวดหมู่ OWASP Mobile Top 10 ที่เกี่ยวข้อง คำอธิบายปัญหา และคำแนะนำในการแก้ไข สิ่งสำคัญไม่เพียงแต่จะกำจัดคำเตือนสีแดง แต่ยังต้องวิเคราะห์คำเตือนสีส้มด้วย: หลายรายการ (เช่น Activity ที่ส่งออกโดยไม่มีการป้องกัน) สามารถรวมกันเพื่อให้ผู้โจมตีมีเวกเตอร์การโจมตี ขอแนะนำให้มีคำเตือนสีแดงเป็นศูนย์และไม่เกิน 2–3 คำเตือนสีส้มก่อนแต่ละรุ่น รายงาน MobSF ยังรวมถึงการวิเคราะห์สิทธิ์ของแอปพลิเคชัน: สิทธิ์ที่มากเกินไปใด ๆ (เช่น การเข้าถึงกล้องในเครื่องคิดเลข) จะถูกแจ้งว่าเป็นการละเมิดหลักการสิทธิ์น้อยที่สุด และควรลบออกจากแมนิเฟสต์ สำหรับแอปพลิเคชัน iOS MobSF จะทำการวิเคราะห์ไฟล์ .ipa ที่คล้ายกัน รวมถึงการตรวจสอบ Info.plist สำหรับข้อยกเว้น ATS และการวิเคราะห์ไบนารี Mach-O สำหรับ API ที่ไม่ปลอดภัย เช่น NSAllowsArbitraryLoads
ลองพิจารณาตัวอย่างการวิเคราะห์แบบสแตติกของแอปพลิเคชัน Android โดยใช้ MobSF เพื่อระบุช่องโหว่จาก OWASP Mobile Top 10 โค้ดแสดงข้อผิดพลาดทั่วไป — การจัดเก็บโทเค็นที่ไม่ปลอดภัยใน SharedPreferences
class InsecureStorage {
private val prefs = context.getSharedPreferences("my_app", Context.MODE_PRIVATE)
fun saveToken(token: String) {
prefs.edit().putString("auth_token", token).apply()
}
fun getToken(): String? {
return prefs.getString("auth_token", null)
}
}
MobSF เมื่อวิเคราะห์โค้ดดังกล่าวจะออกคำเตือนเกี่ยวกับการจัดเก็บข้อมูลที่ไม่ปลอดภัย (หมวดหมู่ M2 — Insecure Data Storage) เวอร์ชันที่แก้ไขใช้ EncryptedSharedPreferences จากไลบรารี AndroidX Security การใช้งานการเข้ารหัสข้อมูลอย่างถูกต้องในระดับพื้นที่จัดเก็บเป็นไปตามคำแนะนำของ OWASP และป้องกันการรั่วไหลของโทเค็นเมื่อเข้าถึงอุปกรณ์ทางกายภาพ หลังจากใช้ EncryptedSharedPreferences ช่องโหว่จะได้รับการแก้ไข โดยเห็นได้จากการไม่มีคำเตือนที่เกี่ยวข้องในรายงาน MobSF
class SecureStorage(context: Context) {
private val masterKey = MasterKey.Builder(context)
.setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
.build()
private val securePrefs = EncryptedSharedPreferences.create(
context,
"secure_prefs",
masterKey,
EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)
fun saveToken(token: String) {
securePrefs.edit().putString("auth_token", token).apply()
}
}
คำถามที่พบบ่อย
OWASP Mobile Top 10 คือรายการของช่องโหว่ที่อันตรายที่สุดสิบประการที่พบบ่อยที่สุดในแอปพลิเคชันมือถือ เอกสารช่วยให้นักพัฒนาเข้าใจว่าควรให้ความสำคัญกับอะไรเมื่อสร้างแอปพลิเคชันที่ปลอดภัย
รายการได้รับการอัปเดตประมาณทุก 2–4 ปี เวอร์ชันล่าสุดเผยแพร่ในปี 2024 การอัปเดตคำนึงถึงการเปลี่ยนแปลงในแพลตฟอร์มมือถือ การเกิดขึ้นของ API ใหม่ และวิวัฒนาการของวิธีการโจมตี
Mobile Top 10 คำนึงถึงลักษณะเฉพาะของแพลตฟอร์มมือถือ: การจัดเก็บข้อมูลในเครื่อง การทำงานกับเซนเซอร์ ระบบ Intent ของ Android โหมดออฟไลน์ และลักษณะเฉพาะของการเผยแพร่ในร้านค้าแอป ซึ่งไม่มีในเวอร์ชันเว็บ
ตามสถิติของ OWASP Foundation ช่องโหว่ที่พบบ่อยที่สุดคือ M2 — Insecure Data Storage พบในแอปพลิเคชันมือถือที่ทดสอบมากกว่า 60% ในทุกหมวดหมู่
เริ่มต้นด้วยการติดตั้ง MobSF — เครื่องมือวิเคราะห์แบบสแตติกฟรี อัปโหลด APK หรือซอร์สโค้ดของแอปพลิเคชัน แล้ว MobSF จะแสดงโดยอัตโนมัติว่าหมวดหมู่ Mobile Top 10 ใดบ้างที่อยู่ในโครงการ
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม