91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

適用于您應用的安全編碼技術

IAR愛亞系統(tǒng) ? 來源:IAR愛亞系統(tǒng) ? 2023-09-21 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

編程語言的現(xiàn)代化和更好的編碼技術與從機械計算機到現(xiàn)代軟件開發(fā)流程的演變直接相關。我們已經(jīng)從高度專業(yè)化、主要是數(shù)學符號的表示法過渡到了更接近人類語法的高級編程語言[1],這一進步歸功于編譯器技術。然而,這也打開了代碼缺陷之門。C和C++ 等高級編程語言,包含大量未定義的行為,而不同的編譯器對這些行為的解釋可能略有不同,這可能會導致未知或不希望的副作用,最終轉(zhuǎn)化為缺陷。

查找和修復這些缺陷可能占用開發(fā)時間的高達80%,具體取決于開發(fā)組織的成熟程度。這引出了一個明顯的結論,那就是代碼質(zhì)量是一個大問題。那么,為什么不盡量避免缺陷,以減少調(diào)試所需的時間呢?

順便說一句,盡管我們在軟件中仍然使用“錯誤”和“調(diào)試”這些概念,但這些詞的起源可以追溯到哈佛大學的機械計算機。當時,一只飛蛾卡在繼電器中,這一事件被記錄為計算機歷史上第一個“錯誤”或缺陷。

一次又一次重復同樣的錯誤

眾所周知,在Web、應用程序、桌面,甚至嵌入式開發(fā)中,開發(fā)人員傾向于一次又一次地在他們的源代碼中無意間引入相同類型的錯誤。這個結論來自于多個備受尊敬的機構,如NASA、貝爾實驗室和MITRE,它們進行了多項調(diào)查和研究。一些常見陷阱的例子包括在C++代碼(甚至C代碼)中沒有進行分配后的釋放,以及使用沒有原型的函數(shù),因此無法在編譯時進行嚴格的類型檢查。這項研究的結果列出了最佳編程實踐或推薦的編程實踐,可以識別有風險的不良編碼行為。

有許多關于如何提高代碼質(zhì)量的指南和編碼實踐,這些指南和編碼實踐基于常見錯誤以及如何在將來避免這些常見錯誤。其中一些技巧和實踐已經(jīng)成為廣泛接受的標準(比如MISRA-C和CERT-C),特別是在像汽車、醫(yī)療和鐵路等關鍵行業(yè)中,以確保應用程序的代碼安全性(safety)和代碼安全性(security)。功能安全標準,如IEC 61508[2]、EN 50128[3]和ISO 26262 [4],建議(或高度建議,取決于安全完整性級別(SIL)或汽車安全完整性級別(ASIL))使用靜態(tài)和運行時分析工具,以滿足標準。安全關鍵系統(tǒng)中的缺陷可能導致嚴重后果,如人員傷亡或環(huán)境破壞。

關注可靠性

安全編碼技術綜合了代碼質(zhì)量、代碼安全性(safety)和代碼安全性(security)。代碼安全性(safety)關注的是軟件的可靠性,而代碼安全性(security)則旨在防止不必要的活動,并確保在遭受攻擊時系統(tǒng)的安全性(security)。這兩者都深刻依賴于代碼質(zhì)量,因為代碼質(zhì)量是每個可靠應用程序的基礎。

安全編碼技術和標準的目標是推動軟件的安全性,以確保所需的可靠性。然而,同樣重要的是提高源代碼的可讀性和可維護性。更高效、更易讀的代碼意味著未來的源代碼更加健壯,缺陷更少,并有助于實現(xiàn)代碼的可重用性。

MISRA C是避免常見陷阱和漏洞的最成熟的軟件開發(fā)標準之一,同時也有其他指南,如CWE和CERT-C編碼標準,這些標準在任何嵌入式應用程序中都被強烈推薦。讓我們更深入地了解這些編碼標準。

MISRA C標準

MISRA C由汽車行業(yè)軟件可靠性協(xié)會(Motor Industry Software Reliability Association)開發(fā),它的目標是提高嵌入式系統(tǒng)中代碼的安全性、可移植性和可靠性,尤其是那些使用ISO C編程的系統(tǒng)。

MISRA C標準的第一版名為《車載軟件C語言開發(fā)指南》,于1998年發(fā)布,正式名稱為MISRA-C:1998。之后于2004年和2012年進行更新,添加了更多的規(guī)則。此外,還有基于C++ 2003的MISRA C++ 2008標準。最近,MISRA C:2012的修正案1添加了14條附加的規(guī)則,重點關注了ISO C安全(Secure)指南中強調(diào)的安全(Security)問題。其中一些規(guī)則解決了在許多嵌入式應用程序中已知的安全漏洞之一:與使用不可信數(shù)據(jù)相關的特定問題。

MISRA規(guī)則可以幫助您在將代碼提交到正式構建之前發(fā)現(xiàn)問題,因此通過這種方式發(fā)現(xiàn)的缺陷就好像缺陷從未存在過一樣。MISRA規(guī)則的設計是以安全性和可靠性為前提的,同時也讓代碼更容易移植到其他工具和架構上。

CWE and CERT C/C++

CWE,即通用弱點枚舉(Common Weakness Enumeration),是一個由社區(qū)開發(fā)的有關軟件弱點的字典。CWE提供了一套統(tǒng)一的、可衡量的軟件弱點,以更好地理解和管理它們,并支持能夠找到它們的高效軟件安全工具和服務。

CERT C/C++安全(Secure)編碼標準是由計算機緊急響應團隊(CERT)發(fā)布的標準,提供了有關C/C++編程語言中安全(Secure)編碼的規(guī)則和建議。

實施安全編碼技術

作為一般建議,每個嵌入式應用程序都應遵循MISRA(對于安全關鍵系統(tǒng),MISRA 是強制性的)、CWE和CERT C/C++標準。

遵循對應的編碼標準之后,在運行時,您的應用程序仍然可能受到算術問題、緩沖區(qū)溢出、邊界問題、堆完整性和內(nèi)存泄漏等問題的影響。要檢測到這些錯誤,可以在可能發(fā)生潛在錯誤的所有位置插入特定的檢測代碼或斷言。然而,手動添加指令來檢查并在運行時報告問題是一項非常耗時的任務。

要遵守所有這些準則和標準,您需要遵循近700條規(guī)則和要求,同時還需要在源代碼中添加測試代碼。那么,如何實施安全編碼技術并遵循所有這些規(guī)則呢?

使用自動化工具

提高軟件質(zhì)量、安全性和可靠性的最佳方法是使用自動化工具。這可以通過使用高質(zhì)量的編譯器和鏈接器(最好是經(jīng)過功能安全認證的編譯器和鏈接器),以及自動化的靜態(tài)分析和運行時分析工具來實現(xiàn)。

編譯器和鏈接器應該支持現(xiàn)代編程語言,比如最新的C(ISO/IEC 9899:2018)和C++(ISO/IEC 14882,也稱為C++17修訂版),這樣它們就會在出現(xiàn)可疑情況或語法問題時生成警告,例如,volatile內(nèi)存訪問順序可能會影響應用程序的邏輯。

編譯器和鏈接器警告(warning)是您的第一步靜態(tài)分析檢查,絕不能忽視,特別是在功能安全環(huán)境中。最佳建議是通過更改編譯器設置將這些警告視為錯誤,這可以,將所有警告轉(zhuǎn)變?yōu)殄e誤。這將讓開發(fā)人員修復代碼中的所有不明確之處,因為所有問題都將被視為真正的問題。

靜態(tài)分析工具可以幫助您發(fā)現(xiàn)代碼中最常見的缺陷,同時還可以幫助您找出開發(fā)人員在試圖編寫代碼時通常不會考慮或擔心的問題,尤其是當他們只是在編寫腳手架代碼以使某些功能正常運行時。這些類型的靜態(tài)分析工具確實可以幫助您開發(fā)更高質(zhì)量的代碼,因為它們可以幫助您實施編碼標準。此外,還有動態(tài)或運行時分析工具可以捕獲僅在運行時出現(xiàn)的代碼缺陷。動態(tài)或運行時分析工具可以在通過軟件調(diào)試器中執(zhí)行程序時發(fā)現(xiàn)代碼中的實際和潛在錯誤。

因此,當您查看系統(tǒng)中可能存在的所有缺陷時,靜態(tài)分析工具擅長找到某些類型的缺陷,而運行時分析工具則擅長找到其他類型的缺陷。有時它們可能會有重疊,但有時只有一種工具才能檢測到某個缺陷。要獲得最全面的代碼分析,最好將這兩種工具結合使用,并將它們與頂尖的構建工具集成在一起。以下矩陣最好地展示了在結合不同工具時檢測的完整缺陷覆蓋范圍。

40fcfde0-585f-11ee-939d-92fbcf53809c.png

捕獲漏洞

這個效應可以通過下面的圖片很好地解釋,這張圖片來自德國比勒費爾德大學[5],由一位匿名貢獻者拍攝,并在2005年廣泛傳播:

41168170-585f-11ee-939d-92fbcf53809c.jpg

通常,破壞系統(tǒng)最簡單的方法是繞過它而不是戰(zhàn)勝它。這主要是與不安全編碼實踐相關的軟件漏洞。上面的圖片很好地闡釋了這一點:根據(jù)建議,門已按規(guī)范設置并正常運行。然而,安全措施很容易被繞過,直到運行時分析工具(在本例中是雪)投入使用之前,可能很難發(fā)現(xiàn)安全系統(tǒng)中的漏洞。自動化運行時分析工具可以掃描您的代碼以尋找潛在的漏洞,這是檢測此類問題的絕佳方式。

在本例中,安全漏洞通過硬件修復,具體來說,根據(jù)2020年谷歌街景的信息,安裝了混凝土護柱[6]:

編碼標準有助于讓您的代碼面向未來并易于重用。這意味著代碼質(zhì)量影響了代碼的可重用性,這是成熟組織在開發(fā)新產(chǎn)品時的文化。實施安全編碼技術形成了一個良性循環(huán),并且它再次驗證了我們的前提:一切都始于代碼質(zhì)量。

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

    關注

    22

    文章

    2124

    瀏覽量

    77147
  • 代碼
    +關注

    關注

    30

    文章

    4968

    瀏覽量

    74009
  • 編碼技術
    +關注

    關注

    1

    文章

    36

    瀏覽量

    11356

原文標題:適用于您應用的安全編碼技術

文章出處:【微信號:IAR愛亞系統(tǒng),微信公眾號:IAR愛亞系統(tǒng)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HT4936A功能介紹:智能溫度保護與多重安全機制,適用于物聯(lián)網(wǎng)設備電源

    HT4936A內(nèi)置130℃溫控調(diào)節(jié)、過流短路防護及4KV ESD保護,支持涓流至恒壓全充電管理,適用于移動電源及物聯(lián)網(wǎng)設備電源方案,保障安全穩(wěn)定的供電體驗。
    的頭像 發(fā)表于 01-30 11:41 ?227次閱讀
    HT4936A功能介紹:智能溫度保護與多重<b class='flag-5'>安全</b>機制,<b class='flag-5'>適用于</b>物聯(lián)網(wǎng)設備電源

    量水堰計適用于哪些場景應用?

    量水堰計是一種專門用于監(jiān)測堰槽水位變化的高精度儀器,在工程安全監(jiān)測領域扮演著重要角色。它通過精確測量水位,為流量計算和結構安全評估提供關鍵數(shù)據(jù)。那么,這種可靠的設備主要適用于哪些具體場
    的頭像 發(fā)表于 12-12 10:56 ?378次閱讀
    量水堰計<b class='flag-5'>適用于</b>哪些場景應用?

    IEC 62368標準適用于哪些產(chǎn)品

    IEC62368-1標準是國際電工委員會(IEC)制定的一項安全標準,適用于音視頻設備、信息技術設備以及通信設備。該標準的全稱是:IEC62368-1:Audio/video,informationandcommunicatio
    的頭像 發(fā)表于 10-29 14:47 ?1114次閱讀
    IEC 62368標準<b class='flag-5'>適用于</b>哪些產(chǎn)品

    SkyOne? Ultra 3.0 前端模塊,適用于 WCDMA / LTE 頻段 7、30、40、41 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()SkyOne? Ultra 3.0 前端模塊,適用于 WCDMA / LTE 頻段 7、30、40、41相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有SkyOne? Ultra 3.0 前端
    發(fā)表于 10-20 18:35
    SkyOne? Ultra 3.0 前端模塊,<b class='flag-5'>適用于</b> WCDMA / LTE 頻段 7、30、40、41 skyworksinc

    適用于 LTE 頻段 42 的 SkyBlue? 功率放大器模塊 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()適用于 LTE 頻段 42 的 SkyBlue? 功率放大器模塊相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有適用于 LTE 頻段 42 的 SkyBlue? 功率放大器模塊的引腳圖、接線圖
    發(fā)表于 09-25 18:29
    <b class='flag-5'>適用于</b> LTE 頻段 42 的 SkyBlue? 功率放大器模塊 skyworksinc

    哪些離線語音芯片適用于家電設備

    ?哪些離線語音芯片適用于家電設備?選擇適用于家電設備的離線語音芯片時,需綜合考量家電的使用環(huán)境、功能需求、成本預算等多方面因素。以下為推薦幾款性能出色的離線語音芯片: ? 適合家電設備使用的離線
    的頭像 發(fā)表于 08-06 17:27 ?870次閱讀
    哪些離線語音芯片<b class='flag-5'>適用于</b>家電設備

    用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應用的端口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應用的端口相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有用于無線 LAN 的 2.4 GHz 高效前端和適用于藍牙?應
    發(fā)表于 07-01 18:32
    <b class='flag-5'>用于</b>無線 LAN 的 2.4 GHz 高效前端和<b class='flag-5'>適用于</b>藍牙?應用的端口 skyworksinc

    適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有適用于 WLAN 和藍牙?應用的 2.4 GHz 高效前端的引腳圖、接線圖、封裝手冊
    發(fā)表于 06-20 18:30
    <b class='flag-5'>適用于</b> WLAN 和藍牙?應用的 2.4 GHz 高效前端 skyworksinc

    400 至 510 MHz 前端模塊,適用于范圍擴展應用 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()400 至 510 MHz 前端模塊,適用于范圍擴展應用相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有400 至 510 MHz 前端模塊,適用于范圍擴展應用的引腳圖、接線圖、封裝手冊、中文
    發(fā)表于 06-19 18:32
    400 至 510 MHz 前端模塊,<b class='flag-5'>適用于</b>范圍擴展應用 skyworksinc

    2.4 GHz、256 QAM 前端模塊,用于 WLAN/ 和端口,適用于藍牙?應用 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()2.4 GHz、256 QAM 前端模塊,用于 WLAN/ 和端口,適用于藍牙?應用相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有2.4 GHz、256 QAM 前端模塊,用于 WLAN
    發(fā)表于 06-18 18:30
    2.4 GHz、256 QAM 前端模塊,<b class='flag-5'>用于</b> WLAN/ 和端口,<b class='flag-5'>適用于</b>藍牙?應用 skyworksinc

    用于 WLAN/ 的 2.4 GHz、256 QAM 前端模塊和適用于藍牙?應用的端口 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()用于 WLAN/ 的 2.4 GHz、256 QAM 前端模塊和適用于藍牙?應用的端口相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有用于 WLAN/ 的 2.4 GHz、256 QAM 前端
    發(fā)表于 06-18 18:30
    <b class='flag-5'>用于</b> WLAN/ 的 2.4 GHz、256 QAM 前端模塊和<b class='flag-5'>適用于</b>藍牙?應用的端口 skyworksinc

    適用于電機控制的電流濾波方法

    純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:適用于電機控制的電流濾波方法.pdf【免責聲明】本文系網(wǎng)絡轉(zhuǎn)載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 06-18 16:04

    【SENSIRION應用】如何正確選擇SDP差壓傳感器適用于的產(chǎn)品

    精確測量氣體流量往往是將技術引入日常生活的關鍵。SENSIRION獨特的CMOSens技術完全實現(xiàn)了這一目標,適用于SENSIRION的差壓(SDP)傳感器系列:在低氣體流量下提供高測量精度,同時
    的頭像 發(fā)表于 05-19 13:26 ?758次閱讀
    【SENSIRION應用】如何正確選擇SDP差壓傳感器<b class='flag-5'>適用于</b><b class='flag-5'>您</b>的產(chǎn)品

    適用于 Wi-Fi 7 應用的 2.4 GHz 高功率前端模塊 skyworksinc

    電子發(fā)燒友網(wǎng)為你提供()適用于 Wi-Fi 7 應用的 2.4 GHz 高功率前端模塊相關產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有適用于 Wi-Fi 7 應用的 2.4 GHz 高功率前端模塊的引腳圖、接線圖、封裝
    發(fā)表于 05-12 18:30
    <b class='flag-5'>適用于</b> Wi-Fi 7 應用的 2.4 GHz 高功率前端模塊 skyworksinc

    如何制作適用于Visionfive 2的Debian + UEFI固件系統(tǒng)?

    制作適用于Visionfive 2的Debian + UEFI固件系統(tǒng)
    發(fā)表于 03-10 07:51