美國 CISA/FBI 聯合發布產品安全不良做法指南
之前 2024/02 拜登政府曾呼籲開發人員採用記憶體安全的程式語言,並遠離那些導致緩衝區溢位和其他記憶體存取漏洞的語言。白宮敦促開發人員放棄 C 和 C++
2024/10/16 美國網路安全與基礎設施安全局 (CISA) 和聯邦調查局 (FBI) 又共同制定了產品安全不良做法指南,敦促軟體製造商在整個產品開發過程中應優先考慮安全性來降低客戶風險,避免產品安全不良做法。
在這份指南中,再次指出:使用記憶體不安全語言(例如 C 或 C++)開發用於關鍵基礎設施或 NCF 服務的新產品線是危險的,並且會顯著增加國家風險安全、國家經濟安全、國家公共衛生安全。
該指南建議:軟體製造商應以系統化防止記憶體安全漏洞引入的方式建構產品,例如使用記憶體安全程式語言或防止記憶體安全漏洞的硬體功能。此外,軟體製造商應在 2026 年 1 月 1 日之前發布記憶體安全路線圖。
可以預見的是,未來軟體製造商要加快腳步、繃緊神經,若未能遵守這份指南的話,將來肯定拿不到美國政府的標案,這個影響會非常深遠。美國政府顯然想利用龐大的國家基礎設施預算來引導軟體開發商加速採用程式安全做法。
目前美國政府認可推薦的記憶體安全程式語言,列表如下:
- C#
- Go
- Java
- Ruby
- Swift
- Rust
其中比較能取代 C/C++ 的應該是 Rust,不過大部份 C/C++ 程式師在心態上普遍抵制不用 Rust 正是麻煩所在。Linus Torvalds 也坦言,這已變成程式語言之間的「宗教戰爭」。可以預期的:如何互通 Rust/C/C++ 將會是一項重大課題。
對於美國政府這項指南,有志走軟體開發者應提早正視面對此一發展趨勢。