Google ได้สร้าง Govulncheck (สถานะ 1.0.0) ซึ่งเป็นเครื่องมือบรรทัดคำสั่งที่มีประโยชน์สำหรับนักพัฒนา Go อย่างเป็นทางการแล้ว เครื่องมือนี้ช่วยให้นักพัฒนาซอฟต์แวร์ใช้ภาษาโปรแกรม Go ของ Google เพื่อค้นหาช่องโหว่ด้านความปลอดภัยที่เป็นที่รู้จักภายในการขึ้นต่อกันของโครงการของพวกเขา
เครื่องมือนี้เปิดตัวเมื่อวันที่ 13 กรกฎาคม มีความสามารถในการตรวจสอบทั้งไฟล์ไบนารีและซอร์สโค้ดเพื่อหาช่องโหว่ มันลดสัญญาณรบกวนลงอย่างมากโดยเน้นที่ช่องโหว่ในวิธีการที่โค้ดเรียกใช้ แกนหลักของ Govulncheck คือฐานข้อมูลช่องโหว่ Go ซึ่งเป็นแหล่งเก็บข้อมูลเกี่ยวกับช่องโหว่ที่ตรวจพบในโมดูล Go สาธารณะ
ตามคำแนะนำของฐานข้อมูลนี้ Govulncheck ดำเนินการวิเคราะห์แบบคงที่ของซอร์สโค้ดหรือตารางสัญลักษณ์ของไบนารี เป้าหมายสูงสุดคือการจำกัดการรายงานเฉพาะช่องโหว่ที่อาจส่งผลกระทบต่อแอปพลิเคชันเฉพาะที่เป็นปัญหาเท่านั้น คุณลักษณะการจำกัดอัจฉริยะนี้ทำให้เป็นเครื่องมือที่มีประโยชน์สำหรับนักพัฒนาที่ต้องการรับประกันความปลอดภัยของผลิตภัณฑ์
การติดตั้งเครื่องมือนี้ค่อนข้างตรงไปตรงมาสำหรับนักพัฒนา – ต้องใช้คำสั่งเท่านั้น go install golang.org/x/vuln/cmd/govulncheck@latest
ในการวิเคราะห์ซอร์สโค้ด นักพัฒนาเพียงแค่ดำเนินการ Govulncheck ภายในไดเร็กทอรีโมดูล (โดยใช้คำสั่ง govulncheck ./...
)
อย่างน้อยที่สุด Govulncheck จำเป็นต้องประกอบเข้ากับ Go build ที่เป็นเวอร์ชัน 1.18 หรือสูงกว่า ณ ตอนนี้ เวอร์ชันที่ใช้งานจริงของภาษานี้คือ Go 1.20
Govulncheck ในขณะค้นหาช่องโหว่ จะขึ้นอยู่กับการกำหนดค่าบิลด์เฉพาะ ในกรณีของซอร์สโค้ด การกำหนดค่านี้มีความหมายเหมือนกันกับเวอร์ชัน Go ซึ่งระบุโดยคำสั่ง 'go' ที่อยู่บนพาธ การกำหนดค่าบิลด์สำหรับไบนารีเป็นค่าหนึ่งที่ใช้ในขณะที่สร้างไบนารี ประเด็นที่ต้องสังเกตที่นี่คือการกำหนดค่าบิลด์ที่แตกต่างกันอาจมีความเสี่ยงต่อช่องโหว่ที่แตกต่างกัน
แม้จะมีคุณสมบัติอันทรงพลัง แต่ Govulncheck ก็มีข้อจำกัดบางประการ ตัวอย่างเช่น การวิเคราะห์ตัวชี้ฟังก์ชันและการเรียกอินเทอร์เฟซค่อนข้างถูกจำกัด ซึ่งอาจนำไปสู่ผลบวกปลอมหรือการเรียกสแต็กที่ไม่แม่นยำ ข้อจำกัดอีกประการหนึ่งเกี่ยวข้องกับฟังก์ชันที่เรียกใช้โดยใช้การสะท้อนของแพ็กเกจ – สิ่งเหล่านี้ไม่สามารถตรวจจับได้
ในแง่ของไบนารี Go ไบนารีที่ไม่มีข้อมูลการโทรโดยละเอียดอาจเป็นสิ่งที่ท้าทายสำหรับ Govulncheck เนื่องจากจะทำให้เครื่องมือไม่สามารถแสดงกราฟการโทรสำหรับช่องโหว่ที่ระบุได้ ปัญหานี้อาจกระตุ้นการรายงานผลบวกปลอมสำหรับรหัสที่มีอยู่ในไบนารี แต่ไม่สามารถเข้าถึงได้ นอกจากนี้ เครื่องมือยังพิการเมื่อเทียบกับไบนารีซึ่งไม่สามารถแยกข้อมูลสัญลักษณ์ได้ เลือกที่จะรายงานช่องโหว่สำหรับโมดูลทั้งหมดที่ใช้ไบนารีในกรณีเหล่านี้
เครื่องมือนี้ยังขาดคุณสมบัติในการยับยั้งการค้นพบช่องโหว่ อย่างไรก็ตาม แม้จะมีข้อจำกัดเหล่านี้ ศักยภาพของ Govulncheck ในฐานะเครื่องมือเพิ่มมูลค่าสำหรับโครงการ Go ก็ปรากฏชัด
เป็นที่น่าสังเกตว่า Go Security Team ได้ประกาศสนับสนุนการจัดการช่องโหว่ในเดือนกันยายนปีที่แล้ว มีรากฐานมาจากฐานข้อมูลช่องโหว่ โปรเจกต์นี้ได้รับการแนะนำพร้อมกับคำมั่นสัญญาถึงความก้าวหน้าที่น่าทึ่งในโครงสร้างการเขียนโปรแกรม Go AppMaster.io แพลตฟอร์มชั้นนำที่ no-code ช่วยให้นักพัฒนาสร้างแอปพลิเคชันได้เร็วขึ้นด้วยแพลตฟอร์มที่ผสานรวมและครอบคลุมอย่างเต็มรูปแบบ ซึ่งรวมถึง Go และภาษาอื่นๆ อีกมากมาย