那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CERT如何保證軟件信息安全

北匯信息POLELINK ? 2023-07-31 17:59 ? 次閱讀

作者 | 愛吃小魚干

小編 | 吃不飽


01嵌入式軟件應用程序所面臨的日益增多的網(wǎng)絡(luò)威脅

嵌入式軟件應用面臨著越來越多的安全問題,在任何現(xiàn)代軟件開發(fā)環(huán)境中,考慮安全性都是非常重要的。即使經(jīng)過最好的審查和測試的軟件也可能存在BUG,而這些BUG可以讓惡意用戶進入系統(tǒng)并造成巨大的物理和財務損失。
其攻擊范圍涵蓋很多領(lǐng)域:從機場的調(diào)度系統(tǒng)到醫(yī)療設(shè)備都可能受到攻擊,特別值得關(guān)注的是日益增加的自動駕駛汽車或連接汽車、列車和飛機等計算機控制系統(tǒng)。任何與外界通信的系統(tǒng)都面臨著風險,例如汽車可能被盜,更糟糕的情況是車輛的控制權(quán)被奪取。

Q

那么,BUG是如何進入系統(tǒng)的呢?

C和C++語言存在未定義的行為和不確定的行為,這可能會導致問題,尤其是對于沒有經(jīng)驗的開發(fā)人員來說,他們可能不知道代碼實際上并沒有執(zhí)行他們預期的操作。此類錯誤可能會導致開發(fā)者錯誤地認為一切都很正常,因為以前使用過該代碼,所以不需要重新驗證。但實際上并非如此。代碼的優(yōu)化可能看起來是一件好事,占用更少的空間,但代碼優(yōu)化可能會刪除優(yōu)化器認為不必要但卻對安全至關(guān)重要的檢查,例如除以零和不可達代碼檢測。外部庫可能包含BUG,但是采用的代碼可能沒有經(jīng)過驗證。因此,在使用外部庫時,重要的是檢查公開BUG的已知數(shù)據(jù)庫,例如CV。而任何使用動態(tài)內(nèi)存的地方都可能導致問題,特別是像內(nèi)存泄漏之類的問題。

更多的安全漏洞是由于假設(shè)輸入數(shù)據(jù)格式正確且無需驗證,導致出現(xiàn)數(shù)據(jù)緩沖區(qū)溢出和使用未分配動態(tài)內(nèi)存(即所謂的“use after free”)等問題。盡管人們普遍認識到這些安全問題可能會出現(xiàn),但它們并沒有得到足夠的關(guān)注和解決。原因可能有很多,但最主要的原因是之前沒有真正推動改變,增加新功能比花費時間檢查安全問題更為重要。可以通過教育開發(fā)人員貫穿軟件開發(fā)生命周期考慮安全、改進流程和工具來提高檢測安全漏洞的信心,以及針對安全的測試,來改善這種情況。

02CERT C和C++如何檢測軟件安全問題
如今可能有實施軟件安全的愿望,那么如何實現(xiàn)呢?我們將看看嵌入式系統(tǒng)中使用的語言,以及如何使用C和C++來檢測這些語言引起的安全問題。歷史上,嵌入式系統(tǒng)是用匯編語言編寫的,但現(xiàn)在情況已經(jīng)改變,大多數(shù)關(guān)鍵系統(tǒng)都是用C或C++編寫的。C++正在變得越來越受歡迎,但當前C仍是首選語言。然而,這兩種語言都存在安全問題。

White Source知識庫顯示,在過去十年中發(fā)現(xiàn)的開源代碼安全漏洞中,47%是C,6%是C++。這可能會導致人們認為C本質(zhì)上比其他語言更容易受到攻擊,但事實并非如此。因為C語言編寫的代碼數(shù)量比任何其他語言都多,并且時間跨度較長,因此發(fā)現(xiàn)漏洞的機會更多。而在過去五年中發(fā)現(xiàn)了大量漏洞是好事情。高危漏洞的高比例(36%)在C++中被發(fā)現(xiàn),然后是C(26%)。但需要注意的是,隨著C++變得越來越流行,也會有更多的機會在兩種語言中發(fā)現(xiàn)漏洞,因此需要適當評估這些數(shù)據(jù)。

在計算機安全中,最常見的漏洞是緩沖區(qū)溢出和輸入驗證。緩沖區(qū)溢出是一個非常嚴重的問題,可能會導致嚴重的后果。C和C++特別容易受到溢出攻擊的影響,因為它們將字符串定義為未終止的字符數(shù)組,沒有隱式進行邊界檢查,即使開發(fā)人員認為已經(jīng)進行了檢查,標準庫函數(shù)對字符串也不執(zhí)行任何邊界檢查。在某些函數(shù)(如向量、點、A-T)中,C++進行了一些改進,并通過默認進行了邊界檢查。漏洞代碼允許惡意用戶覆蓋內(nèi)存中的其他值,例如CPU必須執(zhí)行的指令,從而更改代碼的行為。

Q

關(guān)于緩沖區(qū)溢出

那就不得不提到兩個常見的函數(shù):strcpy和gets。這兩個函數(shù)都存在潛在的安全風險。如果輸入字符串超過目標數(shù)組的預定義長度,則strcpy函數(shù)會導致緩沖區(qū)溢出;而gets函數(shù)則永遠不能被安全地使用,因為gets函數(shù)沒有邊界檢查,當輸入的字符串長度大于目標數(shù)組的長度時,將發(fā)生緩沖區(qū)溢出,可能會導致程序運行異常或被入侵者利用。

此外,未受限制的格式化輸出字符串也可能會導致安全漏洞。這種漏洞是由于應用程序?qū)⑤斎胱址臄?shù)據(jù)作為命令進行評估。如果惡意用戶可以完全或部分地控制格式化字符串的內(nèi)容,則可能會導致應用程序崩潰、堆棧內(nèi)容泄露、任意內(nèi)存寫入等后果。此外,攻擊者還可以執(zhí)行任意代碼并以易受攻擊進程的權(quán)限運行,從而破壞系統(tǒng)的安全和穩(wěn)定性。
即使是最有經(jīng)驗的程序員也可能犯錯。研究表明,他們通常只能以約50% 的效率發(fā)現(xiàn)自己的錯誤。那么如何確保安全問題,例如緩沖區(qū)溢出的情況不會出現(xiàn)在最終產(chǎn)品中呢?編譯器可能會看到顯而易見的起點,但它可能僅實現(xiàn)語言標準的子集,語言標準的解釋可能因編譯器而異,這可能導致未來的移植或語義錯誤。最好的方法是根據(jù)編碼標準對代碼進行檢查,例如CERT C或CERT C++。正如我們所看到的,C和C++都具有未定義和未指定的行為,應該避免使用。而編碼標準正提供了一種做到這一點的方法。

編碼標準是一組規(guī)則,通常由一個團隊根據(jù)多年的經(jīng)驗制定,可以讓開發(fā)人員對其代碼更有信心。通過使用編碼標準遵循一組規(guī)則,降低引入錯誤的可能性,使代碼更易于維護。任何安全系統(tǒng)的起點都是使用防御性實現(xiàn)技術(shù),使軟件即使在面臨不利情況時也能繼續(xù)運行。公認的編碼標準意味著其已經(jīng)考慮了常見的使用情況,因為C和C++都具有可能導致關(guān)鍵或未指定行為的特性。編碼標準因此定義了一個語言子集,以防止使用會導致此類行為的構(gòu)造方式。此外,編碼標準將實現(xiàn)強類型,它確保對語言數(shù)據(jù)類型有所了解,從而防止某些類別的編程錯誤。

CERT部門協(xié)助開發(fā)的編碼標準專注于安全,它們被認為是一個全面的程序安全標準,并在多個行業(yè)中使用。該標準由一個在線社區(qū)開發(fā),有單獨的標準適用于C、C++和Java。然而,由于C和C++之間存在重疊,許多CERT C規(guī)則已經(jīng)包括在內(nèi)。只需添加一些額外的規(guī)則,便可關(guān)注C++語言中沒有完全覆蓋的部分。如何通過限制使用某些庫函數(shù)來創(chuàng)建一個安全的C語言子集,以提高代碼的安全性?這可以通過引入一些規(guī)則來實現(xiàn),比如INTC和A-R等,這些規(guī)則旨在防止常見的安全問題,例如緩沖區(qū)溢出和輸入驗證等。ARR30-C:不要形成或使用超出邊界的指針或數(shù)組。如果使用越界指針或數(shù)組,就可能會導致程序錯誤和安全漏洞。因此,在編寫程序時,應該確保所有指針和數(shù)組的訪問都在其有效范圍內(nèi)。如果需要進行指針或數(shù)組的操作,應該先檢查其有效范圍,再進行后續(xù)的處理。這樣可以避免因為越界訪問而導致的程序錯誤和安全漏洞。例如,如果使用指針訪問數(shù)組元素時,應該先檢查指針是否指向數(shù)組的有效范圍內(nèi),再進行訪問操作。如果指針越界,就可能會導致程序崩潰或者被攻擊者利用。因此,ARR30-C規(guī)則的實踐可以提高程序的安全性和穩(wěn)定性。ARR38-C:保證庫函數(shù)不會形成無效指針。它要求在使用庫函數(shù)時,必須保證傳遞給函數(shù)的指針參數(shù)是有效的,即指向已分配的內(nèi)存區(qū)域或NULL指針。如果傳遞給函數(shù)的指針參數(shù)是無效的,那么就可能會出現(xiàn)程序錯誤和安全漏洞。
因此,在使用庫函數(shù)時,應該先檢查傳遞給函數(shù)的指針參數(shù)是否有效,再進行后續(xù)的處理。這樣可以避免因為傳遞無效指針而導致的程序錯誤和安全漏洞。例如,如果使用strcpy()函數(shù)將一個字符串復制到另一個字符串中,那么應該先檢查目標字符串的指針是否有效,再進行復制操作。如果目標字符串的指針無效,那么就可能會導致程序崩潰或者被攻擊者利用。因此,ARR38-C規(guī)則的實踐可以提高程序的安全性和穩(wěn)定性。
EXP39-C: 不要通過不兼容類型的指針訪問變量。如果使用不兼容類型的指針訪問變量,就可能會導致程序錯誤和安全漏洞。因此,在訪問變量時,應該使用與變量類型兼容的指針。如果需要使用不兼容類型的指針,可以通過類型轉(zhuǎn)換來實現(xiàn)。但是,在進行類型轉(zhuǎn)換時,需要確保轉(zhuǎn)換后的指針仍然指向有效的內(nèi)存區(qū)域,否則就可能會出現(xiàn)程序錯誤和安全漏洞。因此,EXP39-C規(guī)則的實踐可以提高程序的安全性和穩(wěn)定性。
FIO37-C: 在使用fgets()或fgetws()函數(shù)讀取輸入時,不要假定函數(shù)返回的字符串非空。因為這兩個函數(shù)在讀取輸入時可能會遇到文件結(jié)束符或讀取錯誤等情況,導致返回的字符串為空。如果程序在使用fgets()或fgetws()函數(shù)時假定返回的字符串非空,那么就可能會出現(xiàn)程序錯誤和安全漏洞。因此,在使用fgets()或fgetws()函數(shù)時,應該先檢查返回的字符串是否為空,再進行后續(xù)的處理。這樣可以避免因為假定字符串非空而導致的程序錯誤和安全漏洞。
STR31-C: 確保字符串存儲空間足夠容納字符數(shù)據(jù)和空字符終止符。這條規(guī)則的目的是防止緩沖區(qū)溢出和其他安全漏洞,從而提高代碼的安全性和可靠性。具體實現(xiàn)方法包括使用安全的字符串函數(shù)、檢查字符串長度和緩沖區(qū)大小、避免使用不安全的字符串拼接等。在編寫代碼時,應該遵循這條規(guī)則,并結(jié)合實際情況選擇相應的實現(xiàn)方法,以確保代碼的安全性和可靠性。STR32-C: 不要將非零終止字符序列傳遞給期望字符串的庫函數(shù)。旨在防止將非空字符終止的字符序列傳遞給期望字符串的庫函數(shù)。這條規(guī)則的目的是防止緩沖區(qū)溢出和其他安全漏洞,從而提高代碼的安全性和可靠性。具體實現(xiàn)方法包括使用安全的字符串函數(shù)、檢查字符串長度和緩沖區(qū)大小、避免使用不安全的字符串拼接等。在編寫代碼時,應該遵循這條規(guī)則,并結(jié)合實際情況選擇相應的實現(xiàn)方法,以確保代碼的安全性和可靠性。

03靜態(tài)代碼分析工具如何有效地實現(xiàn)安全編碼標準?

如何實施編碼標準以確保代碼的正確性和合規(guī)性呢?CERT C標準規(guī)定了確定性、不確定性和合規(guī)性的要求,并強制要求代碼不得違反任何規(guī)則。同時,建議遵循推薦操作以便更容易符合規(guī)則。為了檢查代碼是否違反規(guī)則,該標準建議使用靜態(tài)代碼分析工具。

在軟件開發(fā)生命周期中,手動和自動代碼審查都有其適用的場景,例如自動化工具無法知道代碼的實際意圖。然而,手動代碼審查的結(jié)果會受到審核人員專業(yè)知識的影響。靜態(tài)代碼分析可以檢查很少被控制的代碼片段,這些代碼片段通常無法通過其他方法測試。這可以找出異常處理程序或日志系統(tǒng)中的缺陷。與手動代碼審查相比,其速度更快,而且不占用開發(fā)人員的時間,使他們能夠更專注于開發(fā)。開發(fā)者廣泛認為手動審核和自動靜態(tài)代碼分析的結(jié)合是最有效的方式,因為這是識別漏洞和弱點的最佳方式,CERT C 和CERT C++ 都應該使用靜態(tài)代碼分析工具,最好是行業(yè)標準的工具,如Helix QAC,其對CERT編碼規(guī)范的覆蓋度達到100%。這款Perforce的靜態(tài)代碼分析工具可以驗證代碼符合編碼指南,并提供這種符合性的證據(jù),以滿足網(wǎng)絡(luò)安全要求。Helix QAC 具有完整的第三方 C 和 C++ 語言庫的覆蓋,這使得開發(fā)人員更容易驗證軟件是否免受常見代碼安全漏洞的影響。

04總結(jié)
總之,實施編碼標準是確保代碼質(zhì)量的重要步驟,它可以幫助開發(fā)人員避免常見的錯誤和漏洞,從而提高軟件的可靠性和安全性。同時,使用靜態(tài)分析工具進行全面的代碼審查可以進一步加強代碼的正確性和符合性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    5013

    瀏覽量

    88076
  • 信息安全
    +關(guān)注

    關(guān)注

    5

    文章

    659

    瀏覽量

    38964
收藏 人收藏

    評論

    相關(guān)推薦

    普華基礎(chǔ)軟件赴國家工業(yè)信息安全發(fā)展研究中心走訪交流

    近日,普華基礎(chǔ)軟件股份有限公司(以下簡稱“普華基礎(chǔ)軟件”)董事、總經(jīng)理劉宏倩一行前往國家工業(yè)信息安全發(fā)展研究中心軟件所(以下簡稱“
    的頭像 發(fā)表于 01-17 18:08 ?354次閱讀

    龍芯3A5000網(wǎng)絡(luò)安全整機,助力保護網(wǎng)絡(luò)信息安全

    在當今互聯(lián)網(wǎng)信息普及的時代,我們的網(wǎng)絡(luò)安全問題更加突顯。個人信息泄露、病毒軟件侵占、黑客攻擊等網(wǎng)絡(luò)安全問題日益增多。想要解決這個問題,就得更
    的頭像 發(fā)表于 12-23 09:59 ?135次閱讀

    高鴻信安全國產(chǎn)可信低空經(jīng)濟信息基礎(chǔ)設(shè)施解決方案

    全國產(chǎn)可信低空經(jīng)濟信息基礎(chǔ)設(shè)施解決方案以可信信息基礎(chǔ)設(shè)施為根基,運用國產(chǎn)平臺及可信計算技術(shù),在操作系統(tǒng)層及管理層部署可信計算系列軟件,實現(xiàn)關(guān)鍵信息設(shè)備的內(nèi)生
    的頭像 發(fā)表于 12-13 10:13 ?234次閱讀
    高鴻信<b class='flag-5'>安全</b>國產(chǎn)可信低空經(jīng)濟<b class='flag-5'>信息</b>基礎(chǔ)設(shè)施解決方案

    魏牌全新藍山榮獲汽車座艙個人信息安全保護驗證證書

    近日,在2024中國國際汽車技術(shù)領(lǐng)袖專題論壇上,中汽研科技有限公司軟件測評中心(以下簡稱“軟件測評中心”)向魏牌全新藍山頒發(fā)了國內(nèi)首批《汽車座艙個人信息安全保護驗證證書》,對魏牌全新藍
    的頭像 發(fā)表于 11-25 15:17 ?348次閱讀

    藍牙AES+RNG如何保障物聯(lián)網(wǎng)信息安全

    功能可通過軟件實現(xiàn),也可以通過硬件實現(xiàn)。主要優(yōu)勢體現(xiàn)在:在保障通信安全方面,隨機數(shù)生成器能夠輸出非重復且隨機變化的數(shù)值。這些數(shù)值是構(gòu)建多種安全機制的基礎(chǔ),例如鑒權(quán)與加密過程,從而顯著提升藍牙通信
    發(fā)表于 11-08 15:38

    經(jīng)緯恒潤EAS.HSM:驅(qū)動硬件信息安全

    經(jīng)緯恒潤提供汽車信息安全解決方案,旨在借助產(chǎn)品安全平臺以及服務,幫助國內(nèi)汽車OEM及其供應商能夠在汽車軟件開發(fā)全生命周期內(nèi)大規(guī)模評估和降低安全
    的頭像 發(fā)表于 06-19 10:40 ?404次閱讀
    經(jīng)緯恒潤EAS.HSM:驅(qū)動硬件<b class='flag-5'>信息</b><b class='flag-5'>安全</b>

    帶你走進信息安全軟件架構(gòu)

    經(jīng)緯恒潤車端信息安全解決方案整合了 MCU 端以及 MPU 端的信息安全解決方案,具體方案包括 Security Boot、安全通信、
    的頭像 發(fā)表于 06-12 14:36 ?940次閱讀
    帶你走進<b class='flag-5'>信息</b><b class='flag-5'>安全</b><b class='flag-5'>軟件</b>架構(gòu)

    企業(yè)使用內(nèi)網(wǎng)安全管理軟件的好處

    隨著信息化時代的到來,企業(yè)數(shù)據(jù)安全問題也開始受到重視。其中,防止數(shù)據(jù)泄露一直是企業(yè)安全管理中重要的一環(huán)。企業(yè)使用內(nèi)網(wǎng)安全管理軟件可以幫助實現(xiàn)
    的頭像 發(fā)表于 05-22 13:27 ?367次閱讀

    拓維信息獲評2024年度湖南省重點軟件企業(yè)

    近日,湖南省工業(yè)和信息化廳正式公布2024年度湖南省重點軟件企業(yè)名單,涉及基礎(chǔ)軟件、工業(yè)軟件、新興技術(shù)軟件、重點行業(yè)應用
    的頭像 發(fā)表于 05-14 08:14 ?561次閱讀
    拓維<b class='flag-5'>信息</b>獲評2024年度湖南省重點<b class='flag-5'>軟件</b>企業(yè)

    深圳特信電子|手機信號屏蔽器廠家:技術(shù)領(lǐng)先,保障信息安全.

    與軍事設(shè)施:為了防止信息泄露,保證重要會議和活動的安全進行,政府機關(guān)與軍事設(shè)施內(nèi)也常設(shè)手機信號屏蔽器;3、影院與劇院:為了保證演出的連貫性和觀眾的觀影體驗,這些場所也會使用手機信號屏蔽
    發(fā)表于 04-26 09:09

    基于信息安全的軟測工具鏈解決方案

    本文特別推出基于信息安全的軟測工具鏈解決方案,為客戶在信息安全方向?qū)崿F(xiàn)自動化測試提供優(yōu)選。
    的頭像 發(fā)表于 04-18 18:48 ?853次閱讀
    基于<b class='flag-5'>信息</b><b class='flag-5'>安全</b>的軟測工具鏈解決方案

    請問NFC數(shù)據(jù)傳輸如何保證數(shù)據(jù)安全

    NFC數(shù)據(jù)傳輸如何保證數(shù)據(jù)安全
    發(fā)表于 04-07 06:18

    專家訪談 | 汽車信息安全強標即將落地,企業(yè)該如何應對?(汽車安全①:信息安全

    智能網(wǎng)聯(lián)汽車信息安全隨著信息技術(shù)的快速發(fā)展和智能化趨勢的持續(xù)推進,智能網(wǎng)聯(lián)汽車為人們出行帶來了前所未有的便利和智能化體驗,但是隨之而來的用戶隱私泄露和網(wǎng)絡(luò)攻擊等安全問題也敲響了警鐘。
    的頭像 發(fā)表于 03-12 17:34 ?1213次閱讀
    專家訪談 | 汽車<b class='flag-5'>信息</b><b class='flag-5'>安全</b>強標即將落地,企業(yè)該如何應對?(汽車<b class='flag-5'>安全</b>①:<b class='flag-5'>信息</b><b class='flag-5'>安全</b>)

    CP AUTOSAR信息安全機制全面解析

    這個模塊一定是我們工程師最先接觸到的AUTOSAR信息安全機制,主要用于ECU板級的安全通信。 大家應該有印象,在以往沒有該機制,CAN通信通常是使用Checksum和RollingCounter來檢驗是否掉幀或者漏幀,并沒有一
    的頭像 發(fā)表于 02-22 11:44 ?3488次閱讀
    CP AUTOSAR<b class='flag-5'>信息</b><b class='flag-5'>安全</b>機制全面解析
    九州百家乐官网娱乐城| 大发888 迅雷下载| 沙龙百家乐官网赌场娱乐网规则| 托克逊县| 财神娱乐城信誉| 威尼斯人娱乐网站安全吗| 百家乐澳门技巧| 百家乐技巧论坛| 关于阳宅风水24山知识| 永顺县| 百家乐官网玩法及技巧| 网上百家乐官网开户送现金| 高要市| 百家乐官网视频游戏双扣| 百家乐官网薯片| 百家乐官网如何切牌好| 百家乐免费路单| 网络百家乐官网会输钱的多吗| 百家乐外挂程式| 百家乐娱乐网备用网址| 威尼斯人娱乐信誉| 大发888在线扑| 大发888在线扑| 嘉定区| 百家乐官网三珠连跳打法| 优惠搏百家乐官网的玩法技巧和规则 | 百家乐官网娱乐城网址| 百家乐官网庄闲偏差有多大| 百家乐投注很不错| 大发888娱乐场下载com| 大发888官方下载 银行| E乐博网址| 网上百家乐官网新利| 百家乐官网赌场赌场网站| 百家乐官网娱乐平台网| 百家乐智能投注系统| 电子百家乐官网规则| 粤港澳百家乐娱乐场| 飞七棋牌游戏下载| 百家乐官网怎么投注| 免费百家乐官网统计软件|