翻譯|行業(yè)資訊|編輯:黃竹雯|2018-12-26 11:58:24.000|閱讀 492 次
概述:本文主要介紹為什么不能忽視CERT C++標(biāo)準(zhǔn)以及使用全面支持CERT C++標(biāo)準(zhǔn)的Parasoft C/C++ Test進(jìn)行開發(fā)測試
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
安全性正在成為軟件開發(fā)團(tuán)隊的新口號,特別是那些負(fù)責(zé)安全或關(guān)鍵型軟件任務(wù)的人員。在過去,安全性通常是團(tuán)隊在開發(fā)周期的最后階段添加到系統(tǒng)的特征,但現(xiàn)在安全性是一個由多種研究計劃和標(biāo)準(zhǔn)支持的工程學(xué)科。
如果您希望系統(tǒng)在設(shè)計上是安全的,則需要從開發(fā)過程的最初階段開始,確保所創(chuàng)建的代碼的每一行都遵循安全最佳實踐。對于使用C++開發(fā)的團(tuán)隊來說,最好的選擇之一是SEI CERT C++標(biāo)準(zhǔn)。
Parasoft C/C++ Test是一款優(yōu)秀的并且全面支持該標(biāo)準(zhǔn)的工具,是C/C++代碼完整的安全測試和合規(guī)性解決方案。本文旨在向大家介紹CERT C++的重點內(nèi)容,以及了解Parasoft C/C++ Test對C++開發(fā)團(tuán)隊的重要作用。
SEI CERT C++標(biāo)準(zhǔn)引入了一系列規(guī)則來強(qiáng)制執(zhí)行安全編碼實踐并消除易受攻擊的代碼構(gòu)造。該標(biāo)準(zhǔn)由11章組成,包含特定主題領(lǐng)域的規(guī)則。與CERT C不同,CERT C++編碼標(biāo)準(zhǔn)只有規(guī)則,沒有建議(它們有待進(jìn)一步審查和開發(fā))。
SEI CERT C++依賴于CERT C標(biāo)準(zhǔn),并包含適用于C++的CERT C規(guī)則子集。目前為止有98個CERT C++規(guī)則和80個繼承自CERT C的規(guī)則。標(biāo)準(zhǔn)概述如下表所示:
從版本10.4.1開始,Parasoft C/C++ Test完全支持CERT C++規(guī)則。使用C/C++的團(tuán)隊可以從CERT C和C++的專用合規(guī)報告中受益,從而構(gòu)建可持續(xù)的合規(guī)流程。通過報告擴(kuò)展,用戶可以動態(tài)查看合規(guī)性流程,并根據(jù)CERT風(fēng)險評估框架審查優(yōu)先級的違規(guī)行為。
CERT根據(jù)以下三個因素對每個違規(guī)行為進(jìn)行歸類:
優(yōu)先級計算為這三個因素的乘積,并分為以下級別:L1,L2和L3。L1表示高嚴(yán)重性違規(guī),具有高可能性和低補(bǔ)救成本,這是我們最想看到的修復(fù)。使用CERT的評分框架可以幫助您節(jié)省精力并使團(tuán)隊能夠充分利用他們的時間。
除了在小工具、和風(fēng)險評分框架的幫助下快速推進(jìn)合規(guī)流程的進(jìn)展,Parasoft C/C++ Test的報告框架還可以自動生成適合代碼審核的合規(guī)性報告來節(jié)省您的時間,
C++是一門具有許多功能的現(xiàn)代優(yōu)秀語言,能夠設(shè)計具有高級模式的復(fù)雜系統(tǒng)。而且允許直接通過指針訪問內(nèi)存而無需檢查其訪問權(quán)限是否正確,因此提高了效率。
但是C++也有劣勢的一面,即使是非常有經(jīng)驗的開發(fā)人員開發(fā)的代碼也容易受攻擊,最常見的原因是內(nèi)存訪問和管理訪問緩沖區(qū)溢出、懸空引用的使用以及整數(shù)溢出。攻擊者可以利用電弧注入或代碼注入以獲得對具有受損程序系統(tǒng)的特權(quán)控制,更糟糕的是獲得內(nèi)核訪問級別。
那么,我們?nèi)绾畏乐构粽哌M(jìn)入我們的系統(tǒng)呢?不可能采用現(xiàn)有的代碼庫嘗試所有可能的安全漏洞。當(dāng)前可用于C/C++程序員的最佳選擇是首先創(chuàng)建不受某些被證明是安全漏洞源的構(gòu)造影響的代碼。讓我們看一個簡單的例子:
auto g() { int i = 12; return [&] { i = 100; // Problem return i; }; } void f() { int j = g()(); }
在此示例中,函數(shù)g()通過引用隱式捕獲自動局部變量i,當(dāng)從g()調(diào)用返回函數(shù)時,它捕獲的引用將引用其生命周期結(jié)束的變量(g函數(shù)消失)。因此當(dāng)f()執(zhí)行時,懸空引用的使用會影響未定義的行為。攻擊者可以利用這種未定義的行為來控制程序,造成損失。
正如標(biāo)題所說,很難找到不遵循CERT C++安全標(biāo)準(zhǔn)的理由,有了這個標(biāo)準(zhǔn),才讓C++的開發(fā)變得有跡可循,變得更加安全穩(wěn)定。CERT C++包含許多可以檢測潛在問題的規(guī)則,并將幫助您促進(jìn)安全編碼實踐。它的安全編碼指南在使用時可以幫助加強(qiáng)源代碼的安全性,是確保整體系統(tǒng)安全的有效策略。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn