Mobile Application Hardening ตามแนวทาง OWASP ด้วย SecIron IronWall

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

ในบทความนี้เราจะพาทุกท่านไปรู้จักแนวทางข้างต้น พร้อมกับความสามารถของ SecIron IronWall ที่จะช่วยให้หัวข้อ Mobile Application Hardening นั้นง่ายขึ้น เริ่มได้ตั้งแต่วันแรกของการพัฒนาตอบโจทย์ DevSecOps และสอดคล้องกับแนวทางของ OWASP

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

ในบทความนี้เราจะพาทุกท่านไปรู้จักแนวทางข้างต้น พร้อมกับความสามารถของ SecIron IronWall ที่จะช่วยให้หัวข้อ Mobile Application Hardening นั้นง่ายขึ้น เริ่มได้ตั้งแต่วันแรกของการพัฒนาตอบโจทย์ DevSecOps และสอดคล้องกับแนวทางของ OWASP

9 แนวทางปฏิบัติจาก OWASP Mobile Application

เอกสาร Cheat Sheet จาก OWASP ในด้าน Mobile Application Security ได้สรุปสาระสำคัญออกเป็น 9 ข้อคือ

  1. Architecture & Design – แนวคิดการเอาใจใส่อย่างจริงจังต่อเรื่องความมั่นคงปลอดภัยคือจุดยืนเดียวที่จะผลักดันให้เกิดการปฏิบัติ สิ่งเหล่านี้จะต้องถูกบรรจุลงในแผนตั้งแต่ขั้นแรกของการพัฒนา โดยออกแบบระบบให้สอดคล้องกับแนวปฏิบัติสากลเช่น NIST เป็นต้น ซึ่งมักแนะนำในเรื่องพื้นฐานด้านความมั่นคงปลอดภัยเช่น การให้สิทธิ์น้อยที่สุดที่จำเป็น(Least Privilege) บริหารจัดการ API อย่างมั่นคงปลอดภัย และ ดูแลการใช้งานโค้ดจาก Third Party อย่างเข้มงวดมีการตรวจสอบและอัปเดตอยู่เสมอ
  2. Authentication & Authorization – หัวข้อนี้อาจเป็นกระบวนการพื้นฐานแต่มักเป็นจุดอ่อนเสมอมา โดยในมุมมองของ OWASP ได้แนะนำภาพรวมไว้ดังนี้
    • อย่าเชื่อใจ Client กล่าวคือทุกกิจกรรมต้องผ่านกระบวนการ Authentication/Authorization เสียก่อนจึงค่อยเริ่มโหลดข้อมูล ไม่เก็บ Credential ไว้บนเครื่องหรือข้อมูลที่เก็บควรถูกเข้ารหัส นอกจากนี้ควรมีกระบวนการป้องกันอื่นร่วมด้วย เช่น ป้องกันการปลอมแปลงค่าของอุปกรณ์ การแก้ไขเปลี่ยนแปลงโค้ด และอื่นๆ
    • จัดการ Credential อย่างปลอดภัย เช่น ไม่ควรมีการ Hardcoded Credential รวมไปถึงใช้ช่องทางเข้ารหัสเพื่อส่ง Credential หรือข้อมูลสำคัญ
    • ควบคุมระเบียบเกี่ยวกับรหัสผ่านให้มีความแข็งแกร่ง เช่น มีความซับซ้อนและความยาวเหมาะสม ตลอดจนการยืนยันตัวตนด้วยไบโอเมทริกซ์ ซึ่งมือถือมักมีฟังก์ชันเหล่านี้พร้อมอยู่แล้ว
    • จัดการ Session อย่างเหมาะสม ด้วยการกำหนดเวลา สุ่มสร้าง Token สำหรับใช้งาน หรือมีช่องทางให้ผู้ใช้ Log out ได้
    • จัดเก็บ Token อย่างปลอดภัย เรียกคืนได้ มีอายุการใช้งาน
    • ในกิจกรรมที่ละเอียดอ่อนเช่น การร้องขอเปลี่ยนรหัสผ่าน จ่ายเงิน หรือมีการร้องขอแสดงข้อมูลสำคัญ ระบบควรมีมาตรการเพิ่มเติม เช่น ร้องขอการพิสูจน์ตัวตนใหม่
  3. Data Storage & Privacy – มีมาตรการรักษาความมั่นคงปลอดภัยทั้งระหว่างส่งและขณะเก็บ การเลือกใช้พื้นที่จัดเก็บสำหรับข้อมูลสำคัญก็จำเป็น เช่น พื้นที่ภายในเครื่องอาจเหมาะกว่า External Storage ครอบคลุมถึงส่วนของ Cache, Log และ ทำให้แน่ใจว่าจะไม่สามารถขโมยข้อมูลได้ผ่านทางการบันทึกภาพหน้าจอโดยผู้ใช้ไม่ทราบ ออกแบบให้กระทบต่อข้อมูลส่วนบุคคลหรือข้อมูลที่บ่งชี้ผู้ใช้ให้น้อยที่สุด เช่น พิกัดของสถานที่ หากมีการจัดเก็บข้อมูลสำคัญต้องให้ผู้ใช้รับทราบก่อน
  4. Network Communication – นึกเสมอว่าการเดินทางข้างเครือข่ายไม่ปลอดภัยถูกดักจับได้ ซึ่งผู้พัฒนาแอปต้องสรรหามาตรการต่างๆ เข้ามาใช้ เช่น HTTPS, SSL Certificate และ Certificate Pinning โดยอัลกอริทึมเข้ารหัสจะต้องทันสมัยและปลอดภัยต่อช่องโหว่ นอกจากนี้ควรเลี่ยงการส่งข้อมูลละเอียดอ่อนผ่านทาง SMS เพราะสามารถถูกแอบอ่านได้ง่าย
  5. User Interface – ช่วยสร้างการปิดบังข้อมูลละเอียดอ่อน หรือมีฟังก์ชันแจ้งเตือนผู้ใช้ในอีเว้นต์สุ่มเสี่ยง เช่น มีการล็อกอินจากอุปกรณ์ใหม่ เป็นต้น อย่างไรก็ดีผู้ใช้อาจเป็นภัยเองได้ ดังนั้นระบบต้องตรวจสอบความถูกต้องของค่าต่างๆที่ผู้ใช้ส่งเข้ามาหรือข้อมูลที่จะส่งกลับไปด้วย
  6. Code Quality – มีการตรวจทานโค้ดถึงความมั่นคงปลอดภัยด้วยเครื่องมือตรวจสอบเพื่อหาช่องโหว่ รวมถึงการีวิวโค้ดและอัปเดตไลบรารีเป็นเวอร์ชันล่าสุด
  7. Application Integrity – ป้องกันการทำ Reverse Engineering ด้วยเทคนิค Obfuscation หรือมีกลไกช่วยตรวจสอบได้ว่าแอปพลิเคชันไม่ถูกแก้ไขเปลี่ยนแปลง
  8. Testing – มีการทดสอบเจาะระบบ รวมถึงตรวจทานถึงมาตรการและวิธีการด้านความมั่นคงปลอดภัยต่างๆ เช่น การเข้ารหัส วิธีการประมวลผล โดยกลไกเหล่านั้นควรทำได้อย่างอัตโนมัติ และไม่สร้างอุปสรรคให้ผู้ใช้ จนเกิดแรงต่อต้านหรือหลบเลี่ยงต่อการใช้ฟีเจอร์ด้านความมั่นคงปลอดภัย
  9. Post-Deployment – วางแผนรับมือกับเหตุไม่คาดฝัน อัปเดตแพตช์ให้แอปอย่างรัดกุม หรือมีช่องทางบังคับให้ผู้ใช้ได้รับการอัปเดต ที่สำคัญคือควรมีความสามารถจับตาภัยคุกคามได้อย่างต่อเนื่อง

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

4 เหตุผลที่ควรทำ Mobile Application Hardening ด้วย SecIron IronWall

จากบทความแรก[Hyperlink] SecIron ได้วางตัวให้ผลิตภัณฑ์ IronWall คือผู้รักษาการณ์ด้าน Hardening โดยมี 4 เหตุผลที่สามารถอธิบายคุณสมบัติของ IronWall ได้คือ

  1. เริ่มต้นง่ายพร้อมใช้ได้ทันที – ก่อนที่จะเรียนรู้ต่อไปว่าโซลูชัน SecIron IronWall จะช่วยป้องกันการโจมตีในรูปแบบใด ท่านควรทราบก่อนว่าหลายครั้งที่โซลูชันด้านการป้องกัน มักกลายเป็นสิ่งที่เพิ่มความยุ่งยากให้แก่นักพัฒนา มีโซลูชันไม่น้อยที่ไม่สามารถเชื่อมต่อได้ทันที ต้องมีการแก้ไขโค้ด ซึ่งแน่นอนว่าเป็นการเพิ่มภาระให้แก้ผู้ปฏิบัติงาน สร้างความรู้ลึกเชิงลบ อีกทั้งยังมีธุรกิจจำนวนมากที่ผู้พัฒนาปัจจุบันไม่ใช่ผู้เขียนแอปแต่เดิม ดังนั้นอาจจะมีความไม่มั่นใจในการเพิ่มโค้ดใหม่ที่ตนไม่เข้าใจ ด้วยเหตุนี้เองคุณสมบัติแรกที่ IronWall นำเสนอก็คือความสามารถในการนำไปใช้ได้ทันทีโดยไม่จำเป็นต้องแก้ไขโค้ดของแอปพลิเคชัน ให้เป็นภาระแก่ทีมขององค์กร
  2. เพรียบพร้อมด้วยสรรพคุณด้านการตรวจจับป้องกัน
    • ป้องกันการทำ Reverse Engineering – การศึกษาย้อนกลับโค้ดเป็นวิธีที่จะทำให้ผู้โจมตีสามารถมองเห็นจุดอ่อนและเข้าใจการทำงานของแอปพลิเคชัน ซึ่งเมื่อเข้าใจดีแล้วอาจจะสามารถดัดแปลง แก้ไข หรือคัดลอกและสร้างเป็นแอปในเวอร์ชันใหม่ได้ ซึ่ง IronWall มีกลไกช่วยป้องกันในหลายรูปแบบ เช่น Code Obfuscation, App repackaging, Injection Attack & Tempering และการตรวจสอบสภาพแวดล้อมว่าแอปพลิเคชันกำลังรันอยู่บนสภาพจำลองที่ไม่ควรหรือไม่ เพราะอาจเป็นการที่คนร้ายพยายามศึกษาแอปของท่านอยู่ เช่น Jailbreak ใน iOS และ Rooting บน Android
    • ป้องกันการดับจับคีย์ และ การจับภาพหน้าจอ – การบันทึกภาพหน้าจอเป็นฟังก์ชันพื้นฐานที่คนร้ายมักนำไปใช้เสมอ โดยอาจกำบังกิจกรรมของตนเป็นพื้นหลัง ไม่ให้ผู้ใช้ระแคะระคายหรือสังเกตุเห็นได้ นอกจากนี้การดักจับแป้นพิมพ์ยังเป็นอีกช่องทางที่ช่วยให้คนร้ายได้มาซึ่งรหัสผ่านหรือข้อมูลสำคัญ ซึ่ง IronWall มีกลไกป้องกันมิให้คนร้ายทำการลักลอบขโมยข้อมูลผ่านทางวิธีการเหล่านี้
  3. ตอบโจทย์ความหลากหลาย – IronWall มาพร้อมกับทางเลือกกับการใช้งานที่ครอบคลุม ไม่ว่าองค์กรที่เน้นความคล่องตัว SaaS จะช่วยให้ผู้ปฏิบัติงานเข้าจัดการได้จากทุกที่ ในขณะที่บางองค์กรอาจจะมีข้อบังคับเข้มงวดก็สามารถเลือก On-premise แทนได้ อย่างไรก็ดีในแง่ของการพัฒนา IronWall สามารถทำงานได้ร่วมกับเครื่องมือยอดนิยมต่างๆ เช่น Flutter, iOS, Android และ Harmony OS เป็นต้น
  4. บริหารจัดการได้อย่างสมบูรณ์แบบ – ในเชิงของการปฏิบัติงาน IronWall ได้นำเสนอรูปแบบการเข้าถึงด้วยกราฟฟิคที่เป็นมิตรกับผู้ใช้เข้าใจง่าย แต่มาพร้อมกับช่องทางการบริหารจัดการสิทธิ์ได้ตามหน้าที่ ไปจนถึงบันทึกการทำงานและรายงานที่สามารถปรับแต่งได้ตามความต้องการ
บทส่งท้าย

เมื่อพูดถึงความมั่นคงปลอดภัยในมือถือนั้นประกอบไปด้วยหลายแง่มุม ซึ่งโซลูชันฝั่งผู้ใช้เองอาจหมายถึงซอฟต์แวร์ป้องกันมัลแวร์หรืออื่นๆ ในมุมของทีมเครือข่ายและไอทีขององค์กรอาจหมายถึงโซลูชัน Mobile Device Management(MDM) อย่างไรก็ดีความมั่นคงปลอดภัยต้องเริ่มต้นที่วันแรกของการพัฒนา ซึ่งในมุมนี้จะว่าด้วยเรื่องของความมั่นคงปลอดภัยที่ทีมพัฒนาและองค์กรพึงตระหนักถึง

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