NIST ประกาศแนวปฎิบัติสำหรับการทดสอบซอฟต์แวร์ขั้นต่ำ (Guidelines on Minimum Standards for Developer Verification of Software) ตาม คำสั่งของรัฐบาลโจ ไบเดนที่ให้ NIST วางแนวทางที่เกี่ยวข้องเพื่อปรับปรุงความปลอดภัยไซเบอร์
แม้จะเป็นคำสั่งสำหรับเพิ่มความปลอดภัยไซเบอร์ แต่แนวทางปฎิบัติของ NIST ก็เป็นแนวทางสำหรับกระบวนการพัฒนาซอฟต์แวร์ที่ดี โดยกำนหนดเงื่อนไขการพัฒนาซอฟต์แวร์ไว้หลายอย่าง เช่น
- ใช้ระบบรันเทสอัตโนมัติ ที่อาจจะเป็นแค่สคริปต์ง่ายๆ แต่การรันอัตโนมัติก็ทำให้รันเทสได้บ่อย
- เคสทดสอบซอฟต์แวร์ควรครอบคลุมโค้ด (code coverage) เกิน 80%
- ใช้ซอฟต์แวร์วิเคราะห์โค้ด (static analysis) เครื่องมือวิเคราะห์โค้ด เพื่อหาบั๊กเพิ่มเติม
- ใช้ซอฟต์แวร์ค้นหา รหัสผ่านและกุญแจต่างๆ ที่อาจจะเผลอฝังอยู่ในซอร์สโค้ด
- รันตัวทดสอบที่สร้างอินพุตแบบสุ่ม (fuzzer) หากเป็นเว็บใช้ซอฟต์แวร์สแกนเว็บด้วย
คำแนะนำยังระบุให้เปิดใช้ฟีเจอร์ความปลอดภัยของภาษาและคอมไพล์เลอร์ เช่น GCC มีฟีเจอร์เพิ่มความปลอดภัยหน่วยความจำหลายตัวในช่วงหลัง รวมถึงใช้ซอฟต์แวร์ในกลุ่ม lint เพื่อหาบั๊กเพิ่มเติม
นอกจากตัวซอฟต์แวร์หลักที่กำลังพัฒนาแล้ว เอกสารยังระบุว่าไลบรารี, แพ็กเกจซอฟต์แวร์, และบริการอื่นๆ ในโครงการก็ควรมีมาตรฐานการทดสอบที่เท่าเทียมกัน
เอกสารนี้เป็นส่วนหนึ่งของชุดเอกสารจากคำสั่งของโจ ไบเดน โดยเอกสารฉบับแรกคือการนิยามซอฟต์แวร์สำคัญยิ่งยวด เอกสารต่อๆ ไปในชุดที่กำลังออกมาได้แก่ แนวทางการปรับปรุงความปลอดภัยซอฟต์แวร์, แนวทางการพัฒนาซอฟต์แวร์สำหรับอุปกรณ์ IoT, และเอกสารเพิ่มเติมอื่นๆ คาดว่าจะเสร็จทั้งหมดภายในเดือนพฤษภาคมปี 2022 โดยตอนนี้เอกสารทั้งหมดยังเป็นแนวปฎิบัติโดยสมัครใจ หลังจากเอกสารทั้งหมดเสร็จสมบูรณ์แล้วฝ่ายบริหารสามารถใช้เป็นแนวทางสำหรับบังคับให้หน่วยงานรัฐซื้อซอฟต์แวร์ที่ทำตามแนวปฎิบัติเหล่านี้แล้วเท่านั้น
ที่มา - NIST
Hiring! บริษัทที่น่าสนใจ