|
點(diǎn)擊上方“C語言與CPP編程”,選擇“關(guān)注/置頂/星標(biāo)公眾號(hào)”
干貨福利,第一時(shí)間送達(dá)!
最近有小伙伴說沒有收到當(dāng)天的文章推送,這是因?yàn)槲⑿鸥牧送扑蜋C(jī)制,導(dǎo)致沒有星標(biāo)公眾號(hào)的小伙伴刷不到當(dāng)天推送的文章,無法接收到一些比較實(shí)用的知識(shí)和資訊。所以建議大家加個(gè)星標(biāo)??,以后就能第一時(shí)間收到推送了。
oyr4z50uwnp64096305610.png (399.52 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
oyr4z50uwnp64096305610.png
2024-11-6 01:51 上傳
編譯 | 核子可樂、Tina 轉(zhuǎn)自 | InfoQ此次意見可謂美國(guó)政府在軟件安全方面表達(dá)的最強(qiáng)硬立場(chǎng),消息一出很快引起軟件開發(fā)商關(guān)注:若不對(duì)編碼實(shí)踐做出修復(fù),則意味著需要承擔(dān)過失風(fēng)險(xiǎn)。
美聯(lián)邦政府正在加強(qiáng)關(guān)于危險(xiǎn)軟件開發(fā)實(shí)踐的警告,日前美國(guó)網(wǎng)絡(luò)安全與基礎(chǔ)設(shè)施安全局(CISA)和聯(lián)邦調(diào)查局(FBI)陸續(xù)發(fā)布關(guān)于困擾關(guān)鍵基礎(chǔ)設(shè)施的基本安全問題的明確處置信號(hào)。
CISA 和 FBI 在關(guān)于產(chǎn)品安全性不良實(shí)踐的最新報(bào)告中,提醒軟件開發(fā)商應(yīng)高度關(guān)注使用非內(nèi)存安全編程語言等不良行為,而 C 和 C++ 更是在其中被列為反面典型。
報(bào)告指出,“在支持關(guān)鍵基礎(chǔ)設(shè)施或國(guó)家關(guān)鍵職能(NCF)的新產(chǎn)品線的開發(fā)過程中,使用非內(nèi)存安全語言(例如 C 或 C++)可能引發(fā)風(fēng)險(xiǎn),即顯著提高了國(guó)家安全、國(guó)家經(jīng)濟(jì)安全以及國(guó)家公共衛(wèi)生及安全所面臨的風(fēng)險(xiǎn)!
1 規(guī)避不良實(shí)踐,遵循建議方針 這份報(bào)告還將不良實(shí)踐具體分為三大類別:
產(chǎn)品屬性,即描述軟件產(chǎn)品中肉眼可見與安全相關(guān)的質(zhì)量屬性。
安全功能,描述產(chǎn)品所支持的安全功能。
組織流程和政策,描述軟件開發(fā)商在確保安全方法的透明度等方面采取的實(shí)際行動(dòng)。
[/ol]這份報(bào)告主要面向負(fù)責(zé)為關(guān)鍵基礎(chǔ)設(shè)施或者國(guó)家關(guān)鍵職能等應(yīng)用場(chǎng)景開發(fā)軟件產(chǎn)品及服務(wù)的各軟件開發(fā)商(包括本地軟件、云服務(wù)以及 SaaS 軟件即服務(wù))。
此外,這份報(bào)告還鼓勵(lì)全體軟件開發(fā)商避免采取這些可能影響產(chǎn)品安全性的不良實(shí)踐。報(bào)告提到,“通過遵循本指南中的建議,開發(fā)商將向客戶發(fā)出信號(hào),表明他們高度關(guān)注向客戶交付成果的安全因素、牢牢秉持在設(shè)計(jì)之初就重視安全的基本原則!
Omdia 分析師 Brad Shimmin 表示,“這項(xiàng)指南是對(duì)美國(guó)政府此前關(guān)于軟件安全問題的早期聲明的延續(xù),當(dāng)時(shí)的聲明可以追溯到 2022 年,意在提醒技術(shù)提供商和企業(yè)用戶盡量使用或遷移至內(nèi)存安全語言!
他解釋稱,“拋開新增代碼不談,當(dāng)時(shí)的文件和美國(guó)政府表達(dá)的立場(chǎng)相對(duì)比較和緩,沒有立即要求從 C/C++ 遷移至 Rust。CISA 的設(shè)計(jì)文檔中也提到,軟件維護(hù)者根本不可能在短時(shí)間內(nèi)完成如此規(guī)模的代碼庫遷移!
當(dāng)時(shí)的指南雖然屬于自愿性質(zhì),但也代表著 CISA 在基準(zhǔn)安全實(shí)踐方面的最強(qiáng)立場(chǎng),包括提醒企業(yè)注意到可能被疏忽的不良軟件開發(fā)實(shí)踐,特別是其中觸及基礎(chǔ)設(shè)施的部分。
時(shí)間正點(diǎn)滴流逝但時(shí)間的洪流一刻不停向前奔涌,最新報(bào)告已經(jīng)要求企業(yè)必須在 2026 年 1 月 1 日之前建立內(nèi)存安全發(fā)展路線圖。
報(bào)告指出,“對(duì)于以非內(nèi)存安全語言編寫的現(xiàn)有產(chǎn)品,到 2026 年 1 月 1 日前仍缺少明確內(nèi)存安全遷移路線圖的情況,將被視為存在風(fēng)險(xiǎn),即顯著提高了國(guó)家安全、國(guó)家經(jīng)濟(jì)安全以及國(guó)家公共衛(wèi)生及安全所面臨的風(fēng)險(xiǎn)。”
evzi52w3g1p64096305710.jpg (261.53 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
evzi52w3g1p64096305710.jpg
2024-11-6 01:51 上傳
CISA 戰(zhàn)略合作伙伴關(guān)系及漏洞項(xiàng)目開發(fā)負(fù)責(zé)人 Rina Rakipi 表示,CISA 已獲得超過 230 家軟件廠商的自愿承諾。加入“安全設(shè)計(jì)”計(jì)劃,意味著這些廠商承諾在一年內(nèi)達(dá)成一系列網(wǎng)絡(luò)安全目標(biāo),包括減少產(chǎn)品中的默認(rèn)密碼、增加多因素身份驗(yàn)證的使用,以及消除特定類別的漏洞。
Rakipi 說:“我們非常高興有超過 230 家軟件廠商自愿參與這一承諾。展望未來,我們期待 在接下來的一年中,看到這 230 家公司取得的實(shí)質(zhì)性進(jìn)展!
hpu0ly3ny2j64096305810.jpg (183.36 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
hpu0ly3ny2j64096305810.jpg
2024-11-6 01:51 上傳
截圖來源:https://www.cisa.gov/securebydesign/pledge/secure-design-pledge-signers
此外,報(bào)告還要求企業(yè)在同一日期之前移除管理員賬戶中使用的全部默認(rèn)密碼。這一截止日期已經(jīng)將指南內(nèi)容從建議升級(jí)為預(yù)期標(biāo)準(zhǔn)。
報(bào)告同時(shí)指出,內(nèi)存安全路線圖應(yīng)要搞開發(fā)商在主要代碼組件(例如面向網(wǎng)絡(luò)的代碼或者處理加密操作等敏感功能的代碼)當(dāng)中將要采取的首選內(nèi)存安全漏洞消除方法。
報(bào)告指出,“開發(fā)商應(yīng)當(dāng)證明,其內(nèi)存安全路線圖將如何優(yōu)先緩解其所開發(fā)產(chǎn)品中內(nèi)存安全性的脆弱性,同時(shí)證明他們正做出合理努力以實(shí)施并推進(jìn)其內(nèi)存安全路線圖。”
Shimmin 在采訪中解釋稱,“但有兩個(gè)現(xiàn)實(shí)理由會(huì)迫使企業(yè)繼續(xù)維護(hù)由 COBOL 和 Fortran 編寫的成規(guī)模代碼——成本和風(fēng)險(xiǎn)。首先,對(duì)數(shù)百萬行舊代碼進(jìn)行遷移在財(cái)務(wù)上不具備可行性,而且任何負(fù)責(zé)任的組織都無法承擔(dān)由此帶來的業(yè)務(wù)風(fēng)險(xiǎn)。”
此外,根據(jù)報(bào)告內(nèi)容,關(guān)鍵基礎(chǔ)設(shè)施還面臨著以下“異常風(fēng)險(xiǎn)”的困擾:
默認(rèn)密碼。
直接 SQL 注入漏洞。
缺少基本注入檢測(cè)機(jī)制。
缺少多因素身份驗(yàn)證機(jī)制。
開源難題對(duì)于開源軟件,該報(bào)告稱應(yīng)特別關(guān)注開源漏洞。其他建議還包括:
企業(yè)必須維護(hù)明確的軟件物料清單(SBOM)。
應(yīng)當(dāng)緩存依賴項(xiàng),而非直接從公共來源處提取。
需要以負(fù)責(zé)任方式為其依賴的開源項(xiàng)目做出貢獻(xiàn)。
報(bào)告提到,“軟件開發(fā)商應(yīng)當(dāng)以負(fù)責(zé)任的方式使用并持續(xù)為其所依賴的開源軟件做出貢獻(xiàn)。”
報(bào)告還敦促提高軟件開發(fā)透明度,包括:
企業(yè)必須發(fā)布漏洞披露政策。
應(yīng)當(dāng)為所有關(guān)鍵漏洞發(fā)布 CVE。
必須提供關(guān)于安全問題的清晰說明文檔。
預(yù)計(jì)將安全日志維護(hù)并保存六個(gè)月。
盡管手段嚴(yán)厲,但影響無疑非常積極最后,Shimmin 總結(jié)稱,CISA 建議掌握關(guān)鍵軟件的企業(yè)在 2026 年初之前制定出明確的安全計(jì)劃無疑是件好事。因?yàn)檫@能讓軟件行業(yè)有更多時(shí)間探索出理想的方法,確保我們的關(guān)鍵軟件資產(chǎn)免遭威脅侵?jǐn)_。
“這些方法能夠包括在硬件制造層面消除潛在的攻擊面,以及由編程語言維護(hù)者提出方案。以 Safe C++ 提案為例,其呼吁為 C++ 創(chuàng)建一個(gè)超集以解決內(nèi)存安全問題,借此避免強(qiáng)制進(jìn)行大規(guī)模代碼重寫!
2 C++ 之父駁斥棄用論:安全升級(jí)需漸進(jìn)改進(jìn),而非全盤更換 這并不是 CISA 對(duì)內(nèi)存安全語言的首次提倡。
在去年 9 月的一篇博文中,CISA 也曾公開敦促開發(fā)人員使用內(nèi)存安全編程語言。網(wǎng)絡(luò)與基礎(chǔ)設(shè)施安全局、聯(lián)邦調(diào)查局(FBI)、國(guó)家安全局及各盟國(guó)機(jī)構(gòu)隨后于 12 月發(fā)布了題為《內(nèi)存安全路線圖案例》(The Case for Memory Safe Roadmaps)的研究報(bào)告,其中就點(diǎn)名 C/C++ 存在內(nèi)存安全漏洞,軟件開發(fā)商應(yīng)放棄使用,改用 C#、Rust、Go、Java、Python 和 Swift 等內(nèi)存安全的編程語言 (MSL)。
今年 2 月底,白宮國(guó)家網(wǎng)絡(luò)主任辦公室 (ONCD) 也就此發(fā)布了一份報(bào)告,呼吁科技界主動(dòng)減少網(wǎng)絡(luò)空間的攻擊面;通過改用 Rust 等內(nèi)存安全編程語言、避免使用 C++ 和 C 語言等易受攻擊的語言,以減少內(nèi)存安全漏洞的數(shù)量來提高軟件安全性。(詳情點(diǎn)擊:《拜登:“一切非 Rust 項(xiàng)目均為非法”》)
隨后,C++ 的創(chuàng)建者 Bjarne Stroustrup 針對(duì)白宮的這些言論進(jìn)行了反駁。
Stroustrup 指出了 C++ 的優(yōu)勢(shì),并提到該語言最早于 1979 年設(shè)計(jì)!傲钗腋械襟@訝的是,這些政府文件的作者似乎忽略了現(xiàn)代 C++ 的優(yōu)勢(shì)以及在提供強(qiáng)大安全保障方面所做的努力,” Stroustrup 表示,“但另一方面,他們似乎認(rèn)識(shí)到編程語言只是工具鏈的一部分,因此改進(jìn)工具和開發(fā)流程也至關(guān)重要!
Stroustrup 強(qiáng)調(diào),C++ 開發(fā)始終將安全性改進(jìn)作為目標(biāo)之一!白缘谝惶炱,安全性改進(jìn)就是 C++ 發(fā)展的目標(biāo)之一,并貫穿了整個(gè)演進(jìn)過程。只要將 K&R 時(shí)代的 C 語言與最早的 C++ 比較,再將早期的 C++ 與當(dāng)代 C++ 比較就可以看出這一點(diǎn),”他說!霸S多高質(zhì)量的 C++ 代碼采用了基于 RAII(資源獲取即初始化)、容器和資源管理指針的技術(shù),而不是傳統(tǒng)的 C-style pointer messes!
bbvktdtqusb64096305910.png (351.01 KB, 下載次數(shù): 0)
下載附件
保存到相冊(cè)
bbvktdtqusb64096305910.png
2024-11-6 01:51 上傳
其實(shí)在更早之前,Stroustrup 就明確表達(dá)過自己的看法,他曾在 CppCon2023 大會(huì)上主題演講上闡述了 C++ 的演變,還花了一些時(shí)間回應(yīng)了批評(píng)。批評(píng)者說問題出在 C++ 本身,解決方案應(yīng)該是改用另一種語言。Stroustrup 在演講中向與會(huì)者詳細(xì)說明了 C++ 語言在安全性方面所需的具體措施,并介紹了一項(xiàng)引入全新安全工具的提案,旨在為全球數(shù)十億行 C++ 代碼提供更可靠的安全保障。
Stroustrup 反對(duì)通過更換語言來解決安全問題。他指出安全問題不僅僅是內(nèi)存安全,還包括資源泄漏、溢出、并發(fā)和計(jì)時(shí)錯(cuò)誤等多種復(fù)雜的隱患。
他強(qiáng)調(diào),完全轉(zhuǎn)向其他語言不僅成本高昂,還缺乏關(guān)注跨語言互操作的需求——“實(shí)際上,我們?cè)谔鎿Q C++ 時(shí),可能需要用七種不同的語言來完成。而到 40 年后,可能會(huì)有 20 種語言需要彼此兼容。這是巨大的挑戰(zhàn)!
此外,Stroustrup 指出,許多所謂“安全”語言實(shí)際上將底層任務(wù)外包給 C 或 C++,以便訪問操作系統(tǒng)、硬件資源或其他歷史代碼庫,這些代碼往往隱藏在庫中,甚至使用完全不同的語言開發(fā)。
與 CISA 的“安全設(shè)計(jì)”計(jì)劃類似,Stroustrup 主張采用逐步改進(jìn)的方案來提升 C++ 的安全性,而非推倒重來。他援引加爾定律,指出“有效的復(fù)雜系統(tǒng)總是從簡(jiǎn)單系統(tǒng)演變而來”。
在他看來,“一邊倒地構(gòu)建一個(gè)無舊系統(tǒng)問題的新系統(tǒng)是幻想,但這種幻想確實(shí)頗具吸引力!
參考鏈接:
https://thenewstack.io/feds-critical-software-must-drop-c-c-by-2026-or-face-risk/
https://cyberscoop.com/cisa-secure-by-design-software-bad-practices/
https://www.infoq.cn/article/1wy3xq56dj6cmnwlgavi
https://www.infoworld.com/article/2336463/c-plus-plus-creator-rebuts-white-house-warning.html
——EOF——你好,我是飛宇。日常分享C/C++、計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)、工作體會(huì),歡迎點(diǎn)擊此處查看我以前的學(xué)習(xí)筆記&經(jīng)驗(yàn)&分享的資源。
我組建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起進(jìn)群交流。
b2mi1drqpnp64096306011.png (195.91 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
b2mi1drqpnp64096306011.png
2024-11-6 01:51 上傳
歡迎你添加我的微信,我拉你進(jìn)技術(shù)交流群。此外,我也會(huì)經(jīng)常在微信上分享一些計(jì)算機(jī)學(xué)習(xí)經(jīng)驗(yàn)以及工作體驗(yàn),還有一些內(nèi)推機(jī)會(huì)。
dez31ptod3k64096306111.png (281.08 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
dez31ptod3k64096306111.png
2024-11-6 01:51 上傳
加個(gè)微信,打開另一扇窗
經(jīng)常遇到有讀者后臺(tái)私信想要一些編程學(xué)習(xí)資源,這里分享 1T 的編程電子書、C/C++開發(fā)手冊(cè)、Github上182K+的架構(gòu)路線圖、LeetCode算法刷題筆記等精品學(xué)習(xí)資料,點(diǎn)擊下方公眾號(hào)會(huì)回復(fù)"編程"即可免費(fèi)領(lǐng)取~
感謝你的分享,點(diǎn)贊,在看三連
43xvn0pkjds64096306211.gif (88.16 KB, 下載次數(shù): 1)
下載附件
保存到相冊(cè)
43xvn0pkjds64096306211.gif
2024-11-6 01:51 上傳
|
|