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

Software Composition Analysis (SCA) เป็นเครื่องมือที่ช่วยทีมพัฒนาซอฟต์แวร์จัดการความเสี่ยงด้านความปลอดภัย คุณภาพ และการปฏิบัติตามใบอนุญาตที่เกิดจากการใช้ Open Source และ Third Party Source Code โดยใช้เทคโนโลยีการสแกนหลายรูปแบบเพื่อระบุองค์ประกอบโอเพ่นซอร์สทั้งหมดในซอร์สโค้ด ไฟล์ อาร์ติแฟกต์ คอนเทนเนอร์ และเฟิร์มแวร์ ซึ่งช่วยสร้าง Bill of Materials ที่ครอบคลุมและแม่นยำ ให้ข้อมูลเชิงลึกด้านความเสี่ยงความปลอดภัย นอกจากนี้ยังแจ้งเตือนช่องโหว่ใหม่ๆ ได้
การใช้ Third Party และ Open Source มีความเสี่ยงอย่างไร?

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

SCA สามารถเชื่อมต่อให้เข้ากับเครื่องมือต่างๆ ในวงจรการพัฒนาซอฟต์แวร์ (SDLC) เพื่อสร้าง Supply Chain Firewall ออกมาอย่างมีประสิทธิภาพ โดยจะช่วยนักพัฒนาในขั้นตอนการออกแบบและเขียนโค้ด ตรวจจับโค้ดที่อาจมีปัญหาด้านความปลอดภัย แจ้งเตือนนักพัฒนาทันทีเมื่อพบการใช้งานองค์ประกอบที่ไม่ปลอดภัยหรือละเมิดนโยบาย เสนอทางเลือกที่ปลอดภัยกว่าหรือแก้ไขปัญหาโดยอัตโนมัติในบางกรณี โดยทำงานร่วมกับเครื่องมือ CI (Continuous Integration) เช่น Jenkins ตรวจสอบโค้ดและองค์ประกอบทุกครั้งที่มีการสร้าง ซึ่งช่วยในการตรวจสอบและติดตามความปลอดภัยอย่างต่อเนื่อง วิเคราะห์แอปพลิเคชันเพื่อหาปัญหาด้านความปลอดภัยก่อนนำไปใช้งานจริง
ประโยชน์ของ SCA
- ให้การวิเคราะห์ที่ลึกยิ่งขึ้น

SCA ใช้เทคโนโลยีการตรวจจับแบบหลายปัจจัยที่เป็นเอกลักษณ์เพื่อระบุโอเพนซอร์สได้มากขึ้นด้วยความแม่นยำที่สูงขึ้น เทคโนโลยีนี้รวมถึงการวิเคราะห์การพึ่งพา การสแกนลายเซ็นโค้ด การสแกนส่วนย่อยของโค้ด การวิเคราะห์ Binary และการวิเคราะห์ Container
ทำให้สามารถสร้างและตรวจสอบ Bill of Materials (BOM) ที่สมบูรณ์เพื่อติดตามคอมโพเนนต์ที่ประกาศไว้ ลายเซ็น Hash File ที่ไม่ซ้ำกัน การพึ่งพาที่แก้ไขระหว่างการสร้าง และส่วนย่อยของโค้ด Open Source ทำให้สามารถวิธีด้านความปลอดภัยได้ดียิ่งขึ้น
- การค้นหาและแก้ไขช่องโหว่อย่างรวดเร็ว

ระบบของ SCA ให้ข้อมูลเชิงลึกด้านความเสี่ยง ความปลอดภัย Open Source ที่ครอบคลุม โดยเป็นการรวมข้อมูลที่คัดกรองจากแหล่งข้อมูลสาธารณะ โดยระบบจะแจ้งเตือนช่องโหว่ใหม่ก่อน ซึ่งช่วยลดระยะเวลาที่เสี่ยงต่อการโจมตี นอกจากนี้ยังมีข้อมูลช่องโหว่ที่เพิ่มเติมและ Black Duck Security Advisories (BDSAs) ซึ่งรวมถึงเมตริกความเสี่ยงที่สำคัญ ข้อมูลเชิงลึกทางเทคนิคเฉพาะช่องโหว่ รายละเอียดการโจมตี การวิเคราะห์ผลกระทบ คะแนน CVSS 2 และ CVSS 3 ข้อมูลการจำแนก CWE การจำแนกรูปแบบการโจมตีทั่วไป (CAPEC) คะแนนชั่วคราวที่ไม่มีใน NVD คำแนะนำในการอัปเกรดและแก้ไขระดับคอมโพเนนต์
- Automated Policy Enforcement

Automated Policy Enforcement คือกระบวนการบังคับใช้นโยบายการเข้าถึงข้อมูล การกำกับดูแล และ/หรือความเป็นส่วนตัวโดยอัตโนมัติ โดยไม่ต้องอาศัยการแทรกแซงจากมนุษย์ ระบบจะใช้กฎและนโยบายที่กำหนดไว้ล่วงหน้าเพื่อควบคุมการเข้าถึงหรือจำกัดการเข้าถึงข้อมูลโดยอัตโนมัติ
มักถูกนำมาใช้ในการรักษาความปลอดภัยข้อมูลและการป้องกันการสูญเสียข้อมูล โดยสามารถปรับนโยบายแบบเรียลไทม์ตามพฤติกรรมของผู้ใช้เพื่อป้องกันการสูญเสียข้อมูลที่มีความอ่อนไหว ระบบการจัดการนโยบายอัตโนมัติของ SCA ช่วยให้ทีมสามารถกำหนดกฎสำหรับการใช้โอเพนซอร์ส ความเสี่ยงด้านความปลอดภัย
และการปฏิบัติตามใบอนุญาต และทำให้กฎเหล่านี้เป็นอัตโนมัติและบังคับใช้ตลอดทั้งกระบวนการพัฒนาซอฟต์แวร์ นอกจากนี้ยังมีการตั้งค่านโยบายที่ปรับแต่งได้ ช่วยให้คุณสามารถสร้าง Policy ที่จัดลำดับความสำคัญและละเอียดเพื่อปรับปรุงกิจกรรมด้านความปลอดภัยให้มีประสิทธิภาพ
- การระบุความเสี่ยงโดยไม่ต้องมีซอร์สโค้ด

SCA จะช่วยให้คุณสามารถวิเคราะห์ Binary เพื่อระบุจุดอ่อนในซัพพลายเชนซอฟต์แวร์โดยไม่ต้องเข้าถึง Source Code ซึ่งคุณสมบัตินี้ช่วยให้คุณสามารถรับข้อมูลเชิงลึกด้านความเสี่ยงที่อาจจะเกิดขึ้นได้
ตรวจสอบความปลอดภัยซอฟต์แวร์ด้วย Application Security Testing (AST)

หากซอฟต์แวร์ได้ถูกพัฒนาขึ้นมาแล้ว หนึ่งในสิ่งที่ทีมพัฒนายังคงต้องทำคือตรวจสอบและปกป้องช่องว่างที่อาจจะเป็นสาเหตุให้เกิดภัยคุกคามทางไซเบอร์ได้ โดยหนึ่งใน Tools ที่ถูกพัฒนามาวัตถุประสงค์ดังกล่าวคือ Application Security Testing (AST) โดย Service ของ AST จะมีดังนี้
- Static Application Security Testing : วิเคราะห์โค้ดต้นฉบับโดยไม่ต้องรันแอปพลิเคชัน เพื่อค้นหาจุดอ่อนด้านความปลอดภัย
- Dynamic Application Security Testing : ทดสอบแอปพลิเคชันขณะทำงานจริงเพื่อค้นหาช่องโหว่ที่อาจเกิดขึ้นในสภาพแวดล้อมการทำงานจริง
- Software Composition Analysis : ตรวจสอบและจัดการความเสี่ยงที่เกี่ยวข้องกับคอมโพเนนต์โอเพนซอร์สในแอปพลิเคชัน
- Interactive Application Security Testing : ผสมผสานการทดสอบแบบ Static และ Dynamic เพื่อให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น
ทุกวันนี้มีข่าวคุกคามทางไซเบอร์ออกมาบ่อย และทวีความรุนแรงขึ้นเรื่อยๆ การใช้เครื่องมือ Solution ต่างๆ จาก Black Duck จึงเป็นหนึ่งในวิธีการที่ดีในการเพิ่มประสิทธิภาพด้านความปลอดภัยสำหรับทีมพัฒนาซอฟต์แวร์ทุกขนาด ท้ายสุดแล้วการมี Software ที่ปลอดภัย จะเป็นวิธีการที่เราจะสามารถใช้เพิ่มสร้างความไว้วางใจของลูกค้าและชื่อเสียงขององค์กรเราไว้ได้ เราหวังว่าบทความนี้จะมีประโยชน์กับผู้อ่านทุกคน เอาไปเป็นไอเดียวเพื่อทำให้ Software ที่พัฒนาออกมาปลอดภัยยิ่งขึ้นได้
สนใจสอบถามข้อมูลเพิ่มเติมได้ที่
Tel: 02690 3888
E-mail: sales@proen.co.th



