หมวดหมู่ OWASP: MASVS-CODE: คุณภาพของโค้ด
ภาพรวม
การใช้ API หรือไลบรารีที่ไม่ปลอดภัยจะลดระดับความปลอดภัยของแอปพลิเคชันลงอย่างมาก การละเมิดความปลอดภัยในทรัพยากร Dependency เหล่านี้จะทำให้ผู้โจมตี ใช้ประโยชน์จากเวกเตอร์จำนวนมากเพื่อทำการโจมตีในวงกว้าง เช่น การโจมตีแบบแทรกกลางการสื่อสาร (MitM) และการเรียกใช้โค้ดจากระยะไกล (RCE)
ภัยคุกคามจากการใช้ทรัพยากร Dependency ที่ไม่ปลอดภัยจะเกิดขึ้นเมื่อนักพัฒนาซอฟต์แวร์ไม่ ผสานรวมการประเมินความปลอดภัยและการทดสอบช่องโหว่เข้ากับวงจรการพัฒนาซอฟต์แวร์ (SDLC) หรือในบางกรณีก็ไม่ได้ใช้นโยบายการอัปเดตอัตโนมัติ สำหรับทรัพยากร Dependency ของแอปพลิเคชัน
การใช้ประโยชน์จาก Dependency มักเริ่มต้นด้วยการวิเคราะห์ไบนารีของแอปพลิเคชัน (.apk) เพื่อค้นหาไลบรารีที่มีช่องโหว่ ในขั้นตอนนี้จะมีการใช้ข่าวกรองจากแหล่งข้อมูลแบบเปิด (OSINT) เพื่อค้นหาช่องโหว่ที่อาจถูกโจมตี ซึ่งค้นพบก่อนหน้านี้ จากนั้นผู้โจมตีจะใช้ประโยชน์จากข้อมูลช่องโหว่ที่เปิดเผยต่อสาธารณะ เช่น ช่องโหว่และการเปิดเผยที่พบบ่อย (CVE) เพื่อทำการโจมตีเพิ่มเติม
ผลกระทบ
การใช้ประโยชน์จากทรัพยากร Dependency ที่ไม่ปลอดภัยได้สำเร็จอาจนำไปสู่การโจมตีในวงกว้าง เช่น การเรียกใช้โค้ดจากระยะไกล (RCE), การแทรก SQL (SQLi) หรือ Cross-site Scripting (XSS) ดังนั้น ผลกระทบโดยรวมจึงเกี่ยวข้องโดยตรงกับประเภทของช่องโหว่ ที่ซอฟต์แวร์ของบุคคลที่สามนำมาใช้และที่ผู้โจมตีสามารถใช้ประโยชน์ได้ ผลลัพธ์ที่เป็นไปได้ของการใช้ประโยชน์จากทรัพยากร Dependency ที่มีช่องโหว่ คือการละเมิดข้อมูลหรือบริการไม่พร้อมใช้งาน ซึ่งอาจส่งผลกระทบอย่างมาก ต่อชื่อเสียงและรายได้ทางเศรษฐกิจ
การลดปัญหา
การป้องกันเชิงลึก
โปรดทราบว่าการลดความเสี่ยงที่ระบุไว้ด้านล่างต้องใช้ร่วมกันเพื่อ ให้มั่นใจว่ามีท่าทีด้านความปลอดภัยที่แข็งแกร่งยิ่งขึ้น และลดพื้นผิวการโจมตีของแอปพลิเคชัน คุณควรประเมินแนวทางที่แน่นอนเป็นกรณีๆ ไปเสมอ
การประเมินช่องโหว่ของการขึ้นต่อกัน
ใช้การยืนยันการขึ้นต่อกันตั้งแต่ช่วงต้นของวงจรการพัฒนา เพื่อตรวจหาช่องโหว่ภายในโค้ดของบุคคลที่สาม ระยะนี้จะทดสอบว่าโค้ดที่ไม่ได้สร้างขึ้นภายในมีความปลอดภัยหรือไม่ก่อนที่จะเปิดตัวในสภาพแวดล้อมการทำงานจริง การยืนยันอาจเสริมด้วยการใช้เครื่องมือทดสอบความปลอดภัยของแอปพลิเคชันแบบคงที่ (SAST) และเครื่องมือทดสอบความปลอดภัยของแอปพลิเคชันแบบไดนามิก (DAST) ภายในวงจรการพัฒนาซอฟต์แวร์เพื่อปรับปรุงระดับความปลอดภัยของแอปพลิเคชัน
อัปเดตทรัพยากร Dependency อย่างต่อเนื่อง
โปรดระมัดระวังในการอัปเดตการอ้างอิงที่ฝังอยู่ในโค้ดอย่างต่อเนื่องเสมอ ด้วยเหตุนี้ เราจึงขอแนะนำให้ใช้การอัปเดตอัตโนมัติที่จะ พุชไปยังเวอร์ชันที่ใช้งานจริงทุกครั้งที่คอมโพเนนต์ของบุคคลที่สามเผยแพร่ แพตช์ความปลอดภัยใหม่
ทำการทดสอบเจาะระบบแอปพลิเคชัน
ทำการทดสอบการเจาะระบบเป็นประจำ การทดสอบประเภทนี้มีจุดมุ่งหมายเพื่อค้นหาช่องโหว่ที่รู้จักกันดีซึ่งอาจส่งผลต่อโค้ดที่เป็นกรรมสิทธิ์และ/หรือการขึ้นต่อกันของบุคคลที่สาม นอกจากนี้ การประเมินการรักษาความปลอดภัยยังมักจะพบช่องโหว่ที่ไม่รู้จัก (แบบ 0 วัน) การทดสอบการเจาะระบบเป็นประโยชน์สำหรับนักพัฒนาแอป เนื่องจากจะช่วยให้เห็นภาพรวมของท่าทีด้านความปลอดภัยปัจจุบันของแอปพลิเคชัน และช่วยจัดลำดับความสำคัญของปัญหาด้านความปลอดภัยที่อาจถูกโจมตีซึ่งต้องได้รับการแก้ไข