NIST วางการทดสอบซอฟต์แวร์ขั้นต่ำ: รันเทสอัตโนมัติ, ใช้โปรแกรมตรวจสอบโค้ด

NIST ประกาศแนวปฎิบัติสำหรับการทดสอบซอฟต์แวร์ขั้นต่ำ (Guidelines on Minimum Standards for Developer Verification of Software) ตามคำสั่งของรัฐบาลโจ ไบเดนที่ให้ NIST วางแนวทางที่เกี่ยวข้องเพื่อปรับปรุงความปลอดภัยไซเบอร์

แม้จะเป็นคำสั่งสำหรับเพิ่มความปลอดภัยไซเบอร์ แต่แนวทางปฎิบัติของ NIST ก็เป็นแนวทางสำหรับกระบวนการพัฒนาซอฟต์แวร์ที่ดี โดยกำนหนดเงื่อนไขการพัฒนาซอฟต์แวร์ไว้หลายอย่าง เช่น

  • ใช้ระบบรันเทสอัตโนมัติ ที่อาจจะเป็นแค่สคริปต์ง่ายๆ แต่การรันอัตโนมัติก็ทำให้รันเทสได้บ่อย
  • เคสทดสอบซอฟต์แวร์ควรครอบคลุมโค้ด (code coverage) เกิน 80%
  • ใช้ซอฟต์แวร์วิเคราะห์โค้ด (static analysis) เครื่องมือวิเคราะห์โค้ด เพื่อหาบั๊กเพิ่มเติม
  • ใช้ซอฟต์แวร์ค้นหา รหัสผ่านและกุญแจต่างๆ ที่อาจจะเผลอฝังอยู่ในซอร์สโค้ด
  • รันตัวทดสอบที่สร้างอินพุตแบบสุ่ม (fuzzer) หากเป็นเว็บใช้ซอฟต์แวร์สแกนเว็บด้วย

คำแนะนำยังระบุให้เปิดใช้ฟีเจอร์ความปลอดภัยของภาษาและคอมไพล์เลอร์ เช่น GCC มีฟีเจอร์เพิ่มความปลอดภัยหน่วยความจำหลายตัวในช่วงหลัง รวมถึงใช้ซอฟต์แวร์ในกลุ่ม lint เพื่อหาบั๊กเพิ่มเติม

นอกจากตัวซอฟต์แวร์หลักที่กำลังพัฒนาแล้ว เอกสารยังระบุว่าไลบรารี, แพ็กเกจซอฟต์แวร์, และบริการอื่นๆ ในโครงการก็ควรมีมาตรฐานการทดสอบที่เท่าเทียมกัน

เอกสารนี้เป็นส่วนหนึ่งของชุดเอกสารจากคำสั่งของโจ ไบเดน โดยเอกสารฉบับแรกคือการนิยามซอฟต์แวร์สำคัญยิ่งยวด เอกสารต่อๆ ไปในชุดที่กำลังออกมาได้แก่ แนวทางการปรับปรุงความปลอดภัยซอฟต์แวร์, แนวทางการพัฒนาซอฟต์แวร์สำหรับอุปกรณ์ IoT, และเอกสารเพิ่มเติมอื่นๆ คาดว่าจะเสร็จทั้งหมดภายในเดือนพฤษภาคมปี 2022 โดยตอนนี้เอกสารทั้งหมดยังเป็นแนวปฎิบัติโดยสมัครใจ หลังจากเอกสารทั้งหมดเสร็จสมบูรณ์แล้วฝ่ายบริหารสามารถใช้เป็นแนวทางสำหรับบังคับให้หน่วยงานรัฐซื้อซอฟต์แวร์ที่ทำตามแนวปฎิบัติเหล่านี้แล้วเท่านั้น

ที่มา – NIST

No Description

from:https://www.blognone.com/node/123676