ความเสี่ยงที่ครอบคลุมในการทดสอบเจาะระบบ – Mobile Application

ในการประเมินช่องโหว่และทดสอบเจาะระบบในโปแกรมบนเครื่องโทรศัพท์มือถือ (Mobile application) และเครื่องให้บริการที่เกี่ยวข้อง (Servers) จะครอบคลุมความเสี่ยงที่พบมากสุดตาม “OWASP Top 10 Mobile Application Security Risks – 2016” ดังต่อไปนี้

บทความโดย
Jirat Chanchangthahan
IT audit & Cybersecurity Consultant

OWASP Top 10 2016คำอธิบาย
M1: Improper Platform Usageเป็นความเสี่ยงที่เกิดจากการใช้คุณสมบัติของแพลตฟอร์มในทางที่ผิดหรือมีการนำมาใช้งานอย่างไม่ปลอดภัย (Implementation) เช่น แอปพลิเคชัน(Application) มีการร้องการขอสิทธิ (Permission) มากเกินความจำเป็น สิ่งเหล่านี้อาจเป็นเหตุให้ผู้ไม่ประสงค์ดีสามารถโจมตีระบบ หรือสามารถเปิดเผย แก้ไข หรือเปลี่ยนสิทธิการเข้าถึงโดยไม่ได้รับอนุญาต
M2: Insecure Data Storageเป็นความเสี่ยงที่เกิดจากการจัดเก็บข้อมูลที่ละเอียดอ่อน (sensitive information) เช่น รหัสผ่าน, ที่อยู่ หรือข้อมูลบัตรเครดิตเป็นต้น ที่ไม่ปลอดภัยหรือไม่ได้มีการปกป้องข้อมูลอย่างถูกวิธี โดยข้อมูลเหล่านี้อาจจะถูกเก็บอยู่ในรูปของ ฐานข้อมูล (SQLite Database) การบันทึกข้อมูลลงไฟล์ (Shared Preferences) ข้อมูลจราจรคอมพิวเตอร์(Log Files) โดยข้อความดังกล่าวไม่ได้มีการเข้ารหัส (Plaintext) โดยสิ่งเหล่านี้เป็นสาเหตุให้ผู้ไม่ประสงค์ดีสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต
M3: Insecure Communicationเป็นความเสี่ยงที่เกิดจากการรับส่งข้อมูลผ่านระบบเครือข่าย (Network) ที่ไม่ปลอดภัย เช่น ไม่ได้มีการการเข้ารหัสลับ (Encryption) ระหว่างการส่งข้อมูล หรือไม่ได้มีการใช้โปรโตคอล SSL(Secure Socket Layer) หรือ TLS (Transport Layer Security) เพื่อเพิ่มความปลอดภัยในการส่งและรับข้อมูลบนเครือข่ายอินเทอร์เน็ต ระหว่างเครื่องให้บริการ (Server) กับแอปพลิเคชัน(Application) ทำให้ข้อมูลที่ถูกส่งนั้นอาจถูกดักจับระหว่างกลางทางเป็นสาเหตุให้ผู้ไม่ประสงค์ดีสวมรอยเป็นเป็นบุคคลอื่นในการเข้าสู่ระบบและสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนโดยไม่ได้รับอนุญาต
M4: Insecure Authenticationเป็นความเสี่ยงที่เกิดจากตรวจสอบสิทธิ การรับรองความถูกต้องหรือการพิสูจน์ตัวตนที่ไม่ปลอดภัย เช่น มีการตั้งนโยบายสำหรับรหัสผ่าน(Password Policy) ที่สามารถคาดเดาได้ง่าย มีการเก็บรหัสผ่านบนแอปพลิเคชัน (Application) หรือไม่ได้ใช้ Access token ที่จำกัดเวลาในการพิสูจน์ตัวตนก่อนเข้าสู่ระบบ สิ่งเหล่านี้อาจทำให้ผู้ไม่ประสงค์ดี ใช้เครื่องมือเดารหัสผ่าน (Password Cracking) ในการโจมตีแบบอัตโนมัติหรือทำการหลบเลี่ยง (Bypass) ขั้นตอนการพิสูจน์ตัวตนเป็นสาเหตุให้ถูกขโมยข้อมูลและเข้าถึงระบบโดยไม่ได้รับอนุญาต
M5: Insufficient Cryptographyเป็นความเสี่ยงที่เกิดจากการเข้ารหัสลับ (Encryption) หรือแฮช (Hash) ที่ไม่ปลอดภัย เช่น มีการเลือกใช้อัลกอริทึม (Algorithm) การเข้ารหัสและถอดรหัสที่ไม่แข็งแรง หรือการนำมาประยุกต์ใช้อย่างไม่ปลอดภัย ทำให้ผู้ที่ไม่มีสิทธิสามารถเข้าถึงข้อมูลที่เป็นความลับ หรือข้อมูลที่ละเอียดอ่อนได้ เป็นสาเหตุสำคัญให้ข้อมูลรั่วไหลหรือเข้าถึงระบบโดยไม่ได้รับอนุญาต
M6: Insecure Authorizationเป็นความเสี่ยงที่เกิดจากการตรวจสอบสิทธิของผู้ใช้งานที่ไม่เพียงพอ หรือมีการกำหนดสิทธิของผู้ใช้งานที่มากเกินไปหรือเทียบเท่าสิทธิสูงสุด ทำให้ผู้ที่ไม่มีสิทธิเข้าถึงข้อมูลของระบบหรือเข้าถึงฟังก์ชันที่เป็นของผู้ใช้งานสิทธิสูงสุดได้โดยไม่ได้รับอนุญาต หรืออาจนำไปสู่การเข้ายึดระบบเครื่องให้บริการ (Server) เป็นต้น
M7: Client Code Qualityเป็นความเสี่ยงที่เกิดจากการพัฒนาแอปพลิเคชัน (Application) ที่ไม่ปลอดภัย ผู้พัฒนาเองไม่มีความตระหนัก ดังเช่นไม่ได้มีการตรวจสอบความยาวของการนำเข้าข้อมูล ทำให้หน่วยความจำของโปรแกรมเกิดข้อผพลาด (Buffer overflow) หรือเนื่องจากภาษาหรือ Platform ที่พัฒนาระบบมีข้อบกพร่องอยู่แล้ว ซึ่งอาจนำไปสู่การโจมตี โปแกรม (Application) หรือ เครื่องให้บริการ (Server) เพื่อปฏิเสธการให้บริการ (Denial of service) หรือประมวลผลคำสั่งประสงค์ร้าย (Remote command execution) เป็นต้น
M8: Code Tamperingเป็นความเสี่ยงที่เกิดจากการการเปลี่ยนแปลงหรือแก้ไข (Code) ของโปรแกรม(Application) เช่น มีการแก้ไขไฟล์โปรแกรม (Binary file) โดยตรงภายในแพคเก็จ (Package) หรือขณะใช้งานโปรแกรม (Runtime) ซึ่งสิ่งเกล่าอาจเกิดจากโปรแกรมอนุญาตให้ใชงานได้บนเครื่อง Root หรือ Jailbreak โดยปราศจากการตรวจสอบหรือป้องกัน ทำให้ผู้ไม่ประสงค์ดีสามารถดักจับข้อมูลที่เป็นความลับหรือข้อมูลที่ละเอียดอ่อนรั่วไหลได้
M9: Reverse Engineeringเป็นความเสี่ยงที่เกิดจากการวิเคราะห์การทํางานโปรแกรม (Application) เพื่อย้อนกลับไปหา รหัสต้นฉบับ (Source code) โดยผู้โจมตีจะใช้โปรแกรมในการตรวจสอบรหัสต้นฉบับ(Source code) และทำการวิเคราะห์การทำงานของโปรแกรม(Application) เพื่อหาช่องโหว่หรือข้อมูลที่สำคัญ สิ่งเหล่านี้อาจทำให้ผู้ไม่ประสงค์ดีขโมยหรือเปิดเผยข้อมูลและเข้าถึงระบบโดยไม่ได้รับอนุญาต
M10: Extraneous Functionalityเป็นความเสี่ยงที่เกิดจากผู้พัฒนาแอปพลิเคชัน(Application)ตั้งใจสร้างฟังก์ชันลับที่ซ่อนอยู่(Hidden backdoor) ขึ้นมาเพื่อทดสอบโปรแกรม(Application) แล้วไม่ได้ลบฟังก์ชันนั้นออกก่อนที่จะนำแอปพลิเคชัน(Application) ไปใช้งานจริง เช่น มีการข้ามขั้นตอนการตรวจสอบยืนยันตัวตนในการเข้าใช้งาน สิ่งเหล่านี้อาจทำให้ผู้ไม่ประสงค์ดีเข้าใช้งานฟังก์ชันของผู้ใช้ในระดับสิทธิสูงสุดโดยไม่ได้รับอนุญาตและอาจก่อให้เกิดความเสียหายกับระบบได้

อ้างอิง

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