OWASP Mobile Top 10 (2024)

Datafarm
3 min readJun 5, 2024

เมื่อก้าวเข้าสู่ยุคดิจิทัล โทรศัพท์มือถือเป็นอีกหนึ่งเครื่องมือสื่อสารที่แทบจะกลายเป็นอีกส่วนสำคัญในชีวิตประจำวัน ซึ่งการใช้งานผ่านโทรศัพท์นั้น ความปลอดภัยของแอปพลิเคชันบนโทรศัพท์จึงมีความสำคัญมากยิ่งขึ้นไปด้วย แอปพลิเคชันบนโทรศัพท์ที่ไม่ได้รับการป้องกันอย่างเพียงพออาจกลายเป็นช่องทางให้ผู้ไม่ประสงค์ดีเจาะเข้ามาได้ง่ายดาย และสร้างความเสียหายต่อผู้ใช้งาน รวมถึงองค์กรที่พัฒนาแอปพลิเคชันนั้น

และเพื่อป้องกันปัญหาดังกล่าวเหล่านี้ องค์กรที่หลายท่านรู้จักอย่าง OWASP (Open Web Application Security Project) ได้จัดทำรายงาน OWASP Top 10 Mobile ซึ่งเป็นรายงานที่ระบุถึงความเสี่ยงด้านความปลอดภัยที่สำคัญที่สุด 10 ประการ สำหรับแอปพลิเคชันบนโทรศัพท์มือถือ ซึ่งเวอร์ชันล่าสุดคือ OWASP Mobile Top 10 (2024) ซึ่งกว่าเวอร์ชัน 2024 จะประกาศออกมานั้น ต้องใช้เวลารอกันถึง 8 ปีเลยทีเดียว ดังนั้นในวันนี้เราไปดูกันค่ะว่าแต่ละข้อจะมีรายละเอียดอะไรบ้าง…

https://owasp.org/www-project-mobile-top-10/

M1: Improper Credential Usage

มีการจัดการหรือการใช้งาน Credential ของผู้ใช้อย่างไม่เหมาะสม โดยที่มีการนำ Credential ไปใช้งานแต่ไม่ได้ป้องกันอาจจะทำให้ข้อมูลรั่วไหลได้ ไม่ว่าจะเป็นการเขียน Username, Password ไว้ใน Source Code หรือส่ง Credential ผ่าน Network ที่ไม่มีการเข้าหัส โดยส่วนมากจะมีทั้ง API Key, Token, Username, Password

วิธีการป้องกัน

  • หลีกเลี่ยงการเก็บข้อมูลสำคัญภายใน Source Code ควรเก็บไว้ที่ฝั่ง Server
  • ควรอัปเดตหรือเปลี่ยน API Key และ Token อยู่เสมอ
  • ทำการ Encrypt Credential ทุกครั้งเมื่อมีการใช้งาน

M2: Inadequate Supply Chain Security

การที่เรา Build App โดยใช้ Third Party Components ซึ่งมีช่องโหว่ ดังนั้นจะส่งผลทำให้แอปพลิเคชันของเรามีช่องโหว่ไปด้วย ทำให้เหล่า Attacker สามารถฝัง Malicious Code เพื่อขโมย Sensitive Data ได้ ส่งผลให้ข้อมูลรั่วไหล สามารถเข้าใช้งานแอปพลิเคชันของผู้ใช้งานได้ หรือบางทีอาจยึดเครื่องผู้ใช้งานได้เลย

วิธีการป้องกัน

  • ทำการ Review Source Code
  • ใช้เฉพาะ Third-Party Libraries หรือ Components ที่เชื่อถือได้และผ่านการ Validate แล้วเท่านั้น เพื่อลดความเสี่ยงจากช่องโหว่
  • App Updates, Patches และ Releases เพื่อป้องกันไม่ให้ผู้โจมตีใช้ประโยชน์จากช่องโหว่ในแอปพลิเคชัน

M3: Insecure Authentication/Authorization

การยืนยันตัวตนและการตรวจสอบสิทธิที่ไม่เหมาะสม ความเสี่ยงนี้เกี่ยวข้องกับการขโมย User Credentials เพื่อใช้ล็อกอินเข้าแอปพลิเคชันหรือเจาะเข้าสู่ Servers อีกทั้งผู้โจมตียังสามารถใช้ประโยชน์จากการควบคุมการเข้าถึง (Access Control) ที่ไม่ดีได้อีกด้วย

วิธีป้องกัน

  • ใช้มาตรการเสริมความปลอดภัยด้าน Server-Side เพื่อควบคุม Authentication และ Authorization
  • ทำการทดสอบ Mobile App Attestation
  • ใช้ MFA (Multi-factors authentication)
  • ควรหลีกเลี่ยงการอนุญาตให้ผู้ใช้ตั้งรหัสผ่านการตรวจสอบสิทธิ์เป็นตัวเลข 4 หลัก

M4: Insufficient Input/Output Validation

ความเสี่ยงนี้เกิดจากการตรวจสอบความถูกต้องของข้อมูลจาก Input ภายนอก หรือการทำ Input Validation ไม่เพียงพอ ซึ่งสามารถทำให้ Attacker โจมตีด้วยวิธีการต่าง ๆ เช่น SQL Injection, Cross-Site Scripting (XSS)

วิธีการแก้ไข

  • ทำการ Input Validation ที่ฝั่ง Server
  • กรองข้อมูลจากผู้ใช้งานในรูปแบบของ White-Listing ซึ่งจะรับข้อมูลได้แค่เฉพาะตัวเลขหรืออักขระที่ได้รับการอนุญาตเท่านั้น

M5: Insecure Communication

แอปพลิเคชันและ Server ที่มีการสื่อสารกันอย่างไม่เหมาะสม โดยเมื่อมีการแลกเปลี่ยนข้อมมูลกับ Server เราต้องใช้ Secure Protocol อย่างเช่น Https เสมอ ไม่เช่นนั้น Attacker อาจดักแก้ไขข้อมูลหรือเก็บ Sensitive Data ของเราได้

วิธีแก้ไข

  • ทำการ Encrypt ข้อมูลก่อนที่จะส่งไปใน Network
  • ใช้ SSL/TLS ทุก ๆ การสื่อสาร
  • ใช้ Certificate ที่เชื่อถือได้ และไม่อนุญาตให้ใช้ Certificate ที่ไม่ดี เช่น Self-signed หมดอายุ, Root ที่ไม่เชื่อถือได้, ถูกเพิกถอน, หรือไม่ตรงกับโฮสต์ นอกจากนี้ยังควรพิจารณาการใช้ Certificate Pinning และตรวจสอบ SSL Chain
  • ไม่ส่งผ่านข้อมูลที่เป็น Sensitive Data ผ่านทาง SMS หรือการแจ้งเตือนต่าง ๆ

M6: Inadequate Privacy Controls

การควมคุมหรือจัดการข้อมูล Data Privacy (ความเป็นส่วนตัวทางข้อมูล) ที่ยังไม่เหมาะสม ปัญหาหลักของการควบคุมความเป็นส่วนตัวคือการป้องกันข้อมูลที่เรียกว่า Personally Identifiable Information (PII) เป็นข้อมูลที่สามารถใช้ในการระบุตัวบุคคล เช่น ชื่อ, ที่อยู่, อีเมล, เบอร์โทรศัพท์ ฯลฯ ข้อมูลเหล่านี้มีความสำคัญอย่างมากและอาจถูกใช้ในทางที่ไม่เหมาะสม เช่น การปลอมตัวเป็นเจ้าของข้อมูล, การใช้ข้อมูลการชำระเงินในทางที่ไม่ถูกต้อง, การส่งข้อความทุจริตเพื่อเรียกราคาไถ่, หรือการลบหรือแก้ไขข้อมูลที่มีความสำคัญ

วิธีป้องกัน

  • ลดการเก็บข้อมูลที่เป็น Sensitive Data
  • ให้ผู้ใช้มีสิทธิเลือกว่าจะเปิดเผยข้อมูลส่วนบุคคลหรือไม่ โดยเพิ่มการยินยอมเป็นองค์ประกอบหลักในการเก็บและใช้ข้อมูล
  • เข้ารหัสข้อมูล

M7: Insufficient Binary Protections

เมื่อไบนารี (Binary) ของแอปพลิเคชันถูกรีคอมไฟล์ (Reverse Engineer) นั้น อาจทำให้ข้อมูลที่สำคัญของถูกเปิดเผยแก่ผู้ไม่ประสงค์ดี เช่น ผู้ใช้ที่ไม่ใช่เจ้าของแอปพลิเคชัน หรือผู้โจมตีที่ต้องการนำข้อมูลและ Source Code มาใช้เพื่อวัตถุประสงค์ที่ไม่ดีเช่น Attacker จะสามารถหา Secret Key ต่าง ๆ ได้ เพื่อนำไปใช้ประโยชน์ในการเข้าระบบ

วิธีการป้องกัน

  • ทำการ Obfuscation เพื่อป้องกันการ Reverse Engineer
  • Encrypt Sensitive Data
  • ทำ Access Control ที่ฝั่ง Server

M9: Insecure Data Storage

ปัญหาจากการ Insecure Data Storage เกิดขึ้นเมื่อข้อมูลถูกเก็บไว้ใน Storage ที่ไม่ปลอดภัย ซึ่งส่งผลกระทบจากปัญหานี้ เช่น การถูกยึด Account โดยการขโมย Credentials ที่เก็บอยู่ใน Storage, การแก้ไขข้อมูลใน Storage, และความเสี่ยงที่สูงของการเข้าถึง Configuration Files หรือ Encryption Keys ที่เก็บไว้ใน Storage

วิธีป้องกัน

  • Encryption Storage
  • จัดเก็บ Key ใน Keychain ของ iOS หรือ Keystore ของ Android
  • กำหนดสิทธิ์การเข้าถึงข้อมูลให้เหมาะสม

M10: Insufficient Cryptography

ความเสี่ยงนี้มาจากการใช้วิธีการเข้ารหัสที่อ่อนแอ, การใช้ Salt ที่ไม่เพียงพอ

วิธีป้องกัน

  • เลือกใช้ Algorithm ที่มีความแข็งแรงและได้มาตรฐาน
  • ใช้ Secret Key ที่มีความยาว และจัดเก็บใน Storage ที่มีความปลอดภัย
  • ในการรับส่ง Key ควรใช้ Secure Protocols

จบไปแล้วนะคะสำหรับ OWASP Mobile Top 10 2024 หวังว่าทุกท่านจะสามารถนำไปใช้ป้องกันความปลอดภัยให้แก่แอปพลิเคชันบนมือถือได้อย่างมีประสิทธิภาพ และปกป้องข้อมูลส่วนตัวได้เป็นอย่างดีนะคะ

--

--

No responses yet