Dependency Track คือระบบที่ทำการวิเคราห์ข้อมูล SBOM (Software Bill of Materials)
ของระบบงานต่าง ๆ ซึ่งสนับสนุนโดย OWASP นั่นเอง
โดยจะช่วยตรวจสอบว่า component หรือ library ที่เราใช้ในระบบงานนั้น
มีปัญหา หรือ ช่องโหว่ใดบ้าง
ซึ่งจะตรวจสอบจากฐานข้อมูลต่าง ๆ เช่น CVE Database เป็นต้น
และแสดงผลในรูปแบบที่เข้าใจง่าย และ tracking ได้ง่าย
แถมเรายังสามารถ integrate เข้ากับ pipeline ของระบบ CI/CD ได้อีก
จึงช่วยให้ทีมงานรู้ปัญหาได้ตลอดเวลา
ไม่ต้องมาเสียเวลาหา หรือ scan ในช่วงก่อนการส่งมอบ
ซึ่งมันเสียเวลาไปอย่างมาก
ดังนั้นมาลองใช้งานกันดู
เริ่มจากการติดตั้ง
มีหลายวิธีการ โดยวิธีการที่เลือกใช้คือ Docker compose
[gist id="92ad4a5a97d762f69b9a330d0c5dd57b" file="1.txt"]ต้องรอสักพักนะ เพราะว่าจะทำการ download ข้อมูลของพวก CVE ต่าง ๆ ลงมา
จากที่ดูใน Docker volume นั้นมีขนาดประมาณ 10GB กันเลยทีเดียว
ต่อมาทำการสร้าง project และไปหา API Key มา เพื่อ upload ข้อมูล SBOM เข้าระบบ
เนื่องจาก dependency track นั้นแบ่งเป็น frontend และ backend ให้ใช้งาน
ดังนั้นเราสามารถ upload ข้อมูลของระบบงาน
เข้าไปยัง dependency track ผ่าน API ของ Backend ได้เลย
หรือถ้าใช้พวก CI/CD tool ก็มี plugin ให้ใช้งาน
ทั้ง Jenkins และ GitHub Actions ลองหากันดู
ส่วนในตัวอย่างผมยิงผ่าน curl ไปเลย ง่ายดี
โดยเป็น SBOM ในรูปแบบของ CycloneDX
ซึ่งสร้างมาจากระบบงานที่พัฒนาด้วย Spring Boot 3.3 ดังนี้
จากนั้นไปดูผลการวิเคราะห์ผ่าน frontend ได้เลย ดังนี้
จะช่วยวิเคราะห์ให้ว่า dependency ตัวไหน มีปัญหาบ้าง
ดูง่ายและสะดวกดีมาก ๆ
ลองใช้งานกันดูนะครับ
มันคือเรื่องของ transparency อย่างหนึ่งของการพัฒนาระบบงาน
ยังไม่หมด ยังสามารถดึงข้อมูลจากระบบอื่น ๆ ได้อีก เช่น