security-00
เมื่อวานมีโอกาสไปแบ่งปันในหัวข้อ การพัฒนา Mobile App ให้ปลอดภัย
โดยเน้นที่ความรู้พื้นฐานต่าง ๆ เพื่อทำให้เข้าใจตรงกันว่า
Mobile และ Mobile App ที่ใช้อยู่นั้นต้องพึงระวังอะไรกันบ้าง ?
เนื้อหาประกอบไปด้วย

  • สถิติของการใช้งาน Mobile
  • การเติบโตของ Mobile App ทั้ง Android และ iOS
  • สถิติของการใช้งาน Mobile App
  • สถิติของ Mobile App ที่โดนโจมตี
  • รูปแบบการโจมตี Mobile และ Mobile App

Mobile นั้นมีคุณสมบัติที่เหมาะสมต่อการโจมตีอย่างมาก

เนื่องจากมีคุณสมบัติดังนี้

  • พกพาได้ง่าย
  • หายได้ง่าย
  • ลืมได้ง่าย
  • ขโมยได้ง่าย
  • ขายได้ง่าย
  • ที่สำคัญ Online กับแบบ 24×7

ทำให้มีรูปแบบการโจมตีที่หลากหลาย
ทั้งจากการโจมตีที่คนใช้งาน
ทั้งจากการโจมตีที่ Mobile ซึ่งมีหลาย platform เช่น Android, iOS และ Windows Phone
ทั้งจากการโจมตีผ่าน App ซึ่งผู้พัฒนาไม่ใส่ใจ หรือ ไม่รู้
เช่นการจัดเก็บข้อมูลที่สำคัญโดยไม่เข้ารหัสอะไรเลย
ทั้งจากการโจมตีผ่านระบบ Network ที่ไม่ปลอดภัย
และอื่น ๆ อีกมากมาย

สิ่งที่แนะนำไปก็คือ Guideline และ Checklist สำหรับการโจมตีจาก OWASP Mobile Security Project

ซึ่งทำการทำแบบสำรวจและสรุปรูปแบบการโจมตี Mobile ไว้ 10 แบบ
รวมทั้งสรุปวิธีการทดสอบในรูปแบบต่าง ๆ ไว้ให้ด้วย
เป็นข้อมูลสำคัญที่ทางทีมพัฒนา Mobile App ต้องไม่พลาด
แต่ส่วนใหญ่จะพลาด !!
ประกอบไปด้วย

security-01

ในปี 2015 นั้นทาง Veracode ทดสอบ Mobile App ว่าผ่าน OWASP Mobile Security หรือไม่  ?

ได้ผลที่น่าตกใจดังนี้

security-02

และต้นเหตุของปัญหา 3 อันดับแรกนั้นประกอบไปด้วย

  1. Code Quality
  2. Cryptographic issue
  3. Information leakage

ซึ่งเป็นปัญหาที่เกิดจากความรู้และประสบการณ์ของทีมพัฒนาทั้งนั้นเลย
ดังนั้นสิ่งที่ควรให้ความสนใจ และ ใส่ใจอย่างมาก คือ

  • ทีมพัฒนามีความรู้เรื่องของ Secure coding หรือไม่ ?
  • ทีมพัฒนามีความรู้เรื่อง Security พื้นฐานหรือไม่ ?
  • ทีมพัฒนามีความรู้เรื่องของการเข้ารหัสข้อมูลหรือไม่ ?
  • ทีมพัฒนามีความรู้เรื่องการจัดเก็บข้อมูล และ ส่งข้อมูลให้ปลอดภัยหรือไม่ ?

หรือว่าเพียงทำให้เสร็จ ๆ ไปเท่านั้น !!
ดังนั้นจึงถึงเวลาที่ทีมพัฒนา Mobile App ควรใส่ใจเรื่อง Security กันให้มาก
แต่ก็ขึ้นอยู่กับระบบที่พัฒนาด้วยนะครับ
ว่าต้องการความปลอดภัยระดับไหน

จากปัญหาเรื่อง Code Quality หรือ คุณภาพของ Code

จึงทำการ Demo วิธีการ Reverse Engineering ของ Android App กันนิดหน่อย
จากนั้นนำ code มาวิเคราะห์ต่อด้วยโปรแกรม Static Code Analysis
เพื่อช่วยวิเคราะห์ว่า code ที่เขียนมานั้นเป็นอย่างไรกันบ้าง ?

ซึ่งวิธีการก็ไม่ได้ยากอะไรเลย ใคร ๆ ก็ทำได้
มีขั้นตอนดังนี้

  • ทำการ Download ไฟล์ APK ออกมาจากมือถือ
  • ทำการ upload ไฟล์ APK ไปที่ http://www.javadecompilers.com/apk
  • จากนั้นก็จะเห็นข้อมูลทั้งหมดของ App ทั้ง code, configuration และ resource ต่าง ๆ
  • จากนั้นนำ source code มาวิเคราะห์ด้วย SonarQube

ได้ผลการทำงานดังนี้
ข้อมูลต่าง ๆ ในไฟล์ APK ดังนั้น APK มันก็แค่ Zip ธรรมดานี่เองนะครับ

security-03

นำ code มาวิเคราะห์ก็เจอของดี ๆ ใน code เพียบ
เช่น username และ password รวมทั้งวิธีการเข้ารหัสและส่งข้อมูลเป็นต้น !!
และสรุปปัญหาต่าง ๆ ให้อีกด้วย

security-04

สุดท้ายแล้วนี่คือข่าวร้ายของนักพัฒนานะครับ

ว่าคุณควรใส่ใจ code ที่เขียนให้มาก
เพราะว่า code ของคุณมันอยู่ใกล้กับผู้ใช้งานมาก ๆ
เรียกได้ว่าอยู่ในมือเลยดีกว่า
ลองคิดดูสิว่า ถ้ามันอยู่ในมือคนไม่ดีแล้วจะเกิดอะไรขึ้นบ้าง !!

ส่วนคนใช้งานก็ต้องระวังตัวเองไว้ให้มากเช่นกันครับ
แต่ไม่ใช่ระแวงไปเสียทุกอย่างนะครับ

และนี่คือส่วนหนึ่งของการโจมตีเท่านั้นนะครับ
ยังมีอีกเยอะเลย !!

โดย Slide การพูดอยู่ที่ SlideShare