GitHub 這篇文章介紹「安全測試」(security testing),目的是在軟體系統中找出可能被利用的漏洞與威脅,防止未經授權的存取與資料外洩。文章強調安全測試應該貫穿整個軟體開發生命週期,而不是等到上線前才臨時檢查,因為問題發現得越早,修復的成本就越低。
文章列舉多種具體技術:弱點掃描會系統性地找出設定錯誤、未修補的軟體等問題;滲透測試由白帽駭客模擬真實攻擊,評估系統的抵禦能力;應用程式安全測試則包含 SAST(靜態分析)、DAST(動態測試)、IAST(互動式分析)與 SCA(軟體組成分析,用來檢查相依套件);此外還有模糊測試(fuzz testing),用不合法的輸入資料去挖出隱藏的錯誤。常見技巧還包括輸入驗證以防止注入攻擊、驗證與授權測試,以及針對資料保護的加密測試。
文章指出安全測試支撐三個重要的業務需求:在部署前找出並修復漏洞、透過模擬攻擊評估既有防護措施是否有效,以及符合 PCI DSS、SOC 2、HIPAA 等法規要求。實務上的流程大致分成六個階段:規劃與界定測試範圍、建置測試環境、設計測試案例、分析漏洞並撰寫報告、進行修復,最後再重新測試以確認問題真的被解決。
文章也提到自動化工具能大幅提升效率,例如滲透測試工具、弱點掃描器與程式碼分析平台;GitHub Advanced Security 這類 AI 輔助方案則把程式碼掃描、CodeQL 語意分析與密鑰掃描直接整合進開發流程。這篇比較偏產業面,講的是企業如何把資安檢查納入軟體開發流程,對正在學程式的孩子來說,可以先記住一個簡單的觀念:寫程式時要想一想「如果有人故意輸入奇怪的資料,我的程式會不會出錯」,這其實就是安全測試最基本的精神。
資安軟體工程開發工具