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

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

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

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

MISRA C在安全可靠的編程中的地位

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Yannick Moy ? 2022-10-21 11:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C是Linux內(nèi)核中使用的主要語(yǔ)言,因具有無(wú)窮無(wú)盡的漏洞源而臭名昭著。只需查看模糊測(cè)試機(jī)器人syzbot自動(dòng)報(bào)告的一長(zhǎng)串開放錯(cuò)誤,這些錯(cuò)誤仍在等待修復(fù)。

小組討論圍繞著適合內(nèi)核開發(fā)的替代更安全的語(yǔ)言,如Ada和Rust,以及形式驗(yàn)證的需求,以超越編譯器可以提供的保證。事實(shí)上,目前在Linux內(nèi)核上報(bào)告的許多內(nèi)存和安全漏洞都會(huì)在Ada或Rust中完全停止該程序,這只會(huì)稍微好一點(diǎn)。查看內(nèi)核補(bǔ)丁可以發(fā)現(xiàn),通過(guò)在代碼上指定簡(jiǎn)單的屬性可以檢測(cè)到許多問(wèn)題,例如在哪種模式下哪些調(diào)用是合法的,應(yīng)該保留的數(shù)據(jù)類型不變量,以及如何使用適當(dāng)?shù)墓ぞ哽o態(tài)驗(yàn)證它們。

令人驚訝的是,在討論中根本沒(méi)有提到MISRA C,盡管它已經(jīng)將自己確立為許多行業(yè)的必備品,以防止C語(yǔ)言的謬誤。MISRA C于1998年作為C的編碼標(biāo)準(zhǔn)出現(xiàn),最初是汽車行業(yè)的編碼標(biāo)準(zhǔn),并已進(jìn)行了兩次修訂。當(dāng)前版本是 米斯拉 C:2012。它側(cè)重于避免 C 編程語(yǔ)言中容易出錯(cuò)的功能,而不是強(qiáng)制實(shí)施特定的編程風(fēng)格。由Les Hatton撰寫的一項(xiàng)關(guān)于C編碼標(biāo)準(zhǔn)的研究發(fā)現(xiàn),與十個(gè)典型的C編碼標(biāo)準(zhǔn)相比,MISRA C是唯一一個(gè)專注于避免錯(cuò)誤而不是樣式執(zhí)行的標(biāo)準(zhǔn),并且有很大的差距。

C編程語(yǔ)言的普及,以及它的許多陷阱和陷阱,導(dǎo)致了MISRA C在C用于高完整性軟件的領(lǐng)域中的巨大成功。這一成功促使工具供應(yīng)商提出了許多競(jìng)爭(zhēng)性的MISRA C檢查器實(shí)現(xiàn)。工具在它們幫助執(zhí)行的MISRA C指南的覆蓋范圍上尤其相互競(jìng)爭(zhēng),因?yàn)椴豢赡軋?zhí)行MISRA C的所有16項(xiàng)指令和143條規(guī)則(統(tǒng)稱為指南)。

特別是,143 條規(guī)則中有 27 條是不可判定的,因此沒(méi)有工具可以始終檢測(cè)所有違反這些規(guī)則的行為,而不會(huì)同時(shí)報(bào)告不構(gòu)成違規(guī)的代碼的“誤報(bào)”。不可判定規(guī)則的一個(gè)例子是規(guī)則1.3:“不得發(fā)生未定義或關(guān)鍵的未指定行為。MISRA C:2012 的附錄 H 列出了 C 編程語(yǔ)言標(biāo)準(zhǔn)中數(shù)百個(gè)未定義和關(guān)鍵未指定行為的案例,其中大多數(shù)無(wú)法單獨(dú)確定。在大多數(shù)情況下,MISRA C檢查器忽略了規(guī)則1.3等不可判定的規(guī)則,盡管已知違反這些規(guī)則會(huì)對(duì)軟件質(zhì)量產(chǎn)生巨大影響。

但是,對(duì)于其他編程語(yǔ)言,可以使用靜態(tài)分析技術(shù)來(lái)解決這一挑戰(zhàn),而不會(huì)使用戶被誤報(bào)淹沒(méi)。一個(gè)例子是由AdaCore,亞創(chuàng)和因里亞開發(fā)的SPARK工具集,它基于四個(gè)原則:

基礎(chǔ)語(yǔ)言Ada通過(guò)定義良好的語(yǔ)言標(biāo)準(zhǔn)、強(qiáng)類型和豐富的規(guī)范功能,為靜態(tài)分析提供了堅(jiān)實(shí)的基礎(chǔ)。

Ada 的 SPARK 子集通過(guò)控制歧義的來(lái)源(如函數(shù)中的副作用和名稱的別名)來(lái)以基本方式限制基礎(chǔ)語(yǔ)言以支持靜態(tài)分析。

靜態(tài)分析工具主要在單個(gè)函數(shù)的粒度上工作,使分析更加精確,并最大限度地減少誤報(bào)的可能性。

靜態(tài)分析工具是交互式的,允許用戶在必要或需要時(shí)指導(dǎo)分析,并在無(wú)法證明用戶提供的合同時(shí)提供反例。

SPARK可以在C代碼庫(kù)中逐步采用,通過(guò)SPARK采用的五個(gè)級(jí)別和支持將形式分析(SPARK)與傳統(tǒng)基于測(cè)試的方法(C)相結(jié)合的“混合驗(yàn)證”,逐步獲得保證。

火花石水平 - 基本保證

SPARK采用的第一個(gè)級(jí)別稱為石頭級(jí)別。它對(duì)應(yīng)于符合 Ada 的 SPARK 子集的代碼。僅采用此級(jí)別就可以保證許多無(wú)法對(duì) C 強(qiáng)制執(zhí)行的一致性屬性。這些包括:

使用適當(dāng)?shù)拇虬到y(tǒng),而不是C使用基于文本的文件,在翻譯單元之間沒(méi)有一致性要求;

嚴(yán)格且可讀的語(yǔ)法,強(qiáng)調(diào)清晰度并最小化“陷阱”,而不是C的非常寬松的語(yǔ)法,這使得編寫效果不是預(yù)期的程序變得容易,

遵守Ada和SPARK的強(qiáng)類型規(guī)則,而不是C的“糟糕的類型安全性,允許發(fā)生各種隱式類型轉(zhuǎn)換,這可能會(huì)損害安全性,因?yàn)樗鼈兊膶?shí)現(xiàn)定義方面可能會(huì)導(dǎo)致開發(fā)人員混淆。(米斯拉C:2012,附件C)

MISRA C試圖通過(guò)各種指南來(lái)馴服C語(yǔ)言的這些可能的不一致。它特別定義了更強(qiáng)的類型規(guī)則(“基本類型模型”),并限制了函數(shù)參數(shù)/結(jié)果和控制結(jié)構(gòu)的使用。雖然這些避免了開發(fā)人員混淆的常見(jiàn)來(lái)源,但它們故意不是防彈的,否則它們會(huì)使大多數(shù)C程序非法。

這些基本保證在SPARK中很容易通過(guò)一個(gè)名為GNATprove的工具進(jìn)行簡(jiǎn)單的類似編譯器的分析來(lái)實(shí)現(xiàn),這要?dú)w功于定義ADA的SPARK子集的更強(qiáng)大的規(guī)則。

SPARK銀級(jí) - 強(qiáng)大的安全保障

MISRA-C指南還旨在防止更細(xì)微的錯(cuò)誤,讀取未初始化的數(shù)據(jù),表達(dá)式中相互沖突的副作用以及未定義的行為,例如除以零或緩沖區(qū)溢出(這可能具有安全性和安全性后果)。所有這些都屬于不可判定規(guī)則的范疇,很少有MISRA C檢查器提供完整的檢測(cè)。

這些在SPARK采用的白銀級(jí)別上是完全被阻止的,這對(duì)應(yīng)于使用流程分析(達(dá)到稱為青銅的SPARK采用的第二級(jí))和沒(méi)有運(yùn)行時(shí)錯(cuò)誤的證明(達(dá)到第三級(jí),即白銀)來(lái)分析程序。要達(dá)到此級(jí)別,開發(fā)人員通常需要使用特定約束來(lái)定義類型,這些約束旨在支持這些約束,并為文件之間導(dǎo)出的函數(shù)提供合同 - 使用所謂的前提條件來(lái)指定調(diào)用方的義務(wù),并使用后置條件來(lái)指定被調(diào)用方的義務(wù)。

達(dá)到白銀級(jí)的過(guò)程涉及與 IDE 的交互。開發(fā)人員可能在程序的子集上運(yùn)行 GNATprove 工具,調(diào)查 GNATprove 診斷,相應(yīng)地更新程序,然后重復(fù)。GNATprove在每一步提供的詳細(xì)信息都有助于促進(jìn)這種互動(dòng),以指導(dǎo)開發(fā)人員。以下是 GNATprove 顯示的消息示例:

poYBAGNSDdqAOZh_AACUUBbzB8M323.png

在找到可能導(dǎo)致溢出的加法運(yùn)算后,GNATprove給出了一個(gè)觸發(fā)問(wèn)題的值的示例,這里是最大的整數(shù)值(在SPARK中表示為整數(shù)‘Last)?!皺z查原因”清楚地解釋了加法的結(jié)果應(yīng)該適合機(jī)器整數(shù),如果 X 是加法前的最大整數(shù)值,則情況并非如此。然后,GNATprove建議向函數(shù)Incr添加一個(gè)合適的前提條件可能會(huì)解決這個(gè)問(wèn)題,在這里指定X不能是最大值。

超越白銀級(jí)的火花

使用SPARK還有其他好處,遠(yuǎn)遠(yuǎn)超出了MISRA C檢查器可以提供的。在黃金和白金級(jí)別,開發(fā)人員通過(guò) SPARK 合約指定程序的屬性,然后可以使用 GNATprove 來(lái)保證滿足這些屬性。開發(fā)人員還可以使用構(gòu)成 GNATprove 分析基礎(chǔ)的強(qiáng)大證明技術(shù),使 GNATprove 警告能夠檢測(cè)死代碼(也是 MISRA C 追求的目標(biāo))和代碼中的不一致。

結(jié)論

從本質(zhì)上講,MISRA C追求的所有目標(biāo)都可以在SPARK中最好地實(shí)現(xiàn),它結(jié)合了更強(qiáng)大的基礎(chǔ)語(yǔ)言(Ada)和強(qiáng)大的分析工具(GNATprove)。計(jì)劃使用 MISRA C 規(guī)則的開發(fā)人員可以通過(guò)對(duì)其部分應(yīng)用程序采用 SPARK 來(lái)獲得更高的保證。

MISRA C中的規(guī)則代表了在關(guān)鍵應(yīng)用程序中提高C代碼可靠性的令人印象深刻的集體努力,重點(diǎn)是避免容易出錯(cuò)的功能,而不是強(qiáng)制實(shí)施特定的編程風(fēng)格。然而,在基本層面上,MISRA C仍然建立在基礎(chǔ)語(yǔ)言之上,而這種基礎(chǔ)語(yǔ)言并不是真正以支持大型高保證應(yīng)用程序?yàn)槟繕?biāo)而設(shè)計(jì)的。很難將可靠性,安全性和安全性改造成一種從一開始就沒(méi)有這些目標(biāo)的語(yǔ)言。

由于C仍將是像Linux內(nèi)核這樣的大型程序的基礎(chǔ)語(yǔ)言,我們可以預(yù)見(jiàn)兩種趨勢(shì)的共存,以更好地防止C程序中的謬誤,其中MISRA C可以發(fā)揮作用,并用更安全的語(yǔ)言(如Rust和SPARK Ada)取代C作為部分代碼。汽車行業(yè)的主要參與者已經(jīng)開始走上后一條道路,如英偉達(dá)和捷太格特。

審核編輯:郭婷

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

    關(guān)注

    88

    文章

    11772

    瀏覽量

    219121
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    華為數(shù)據(jù)通信下一代WAN網(wǎng)絡(luò)韌性與安全可靠性全面升級(jí)

    數(shù)據(jù)通信下一代WAN在網(wǎng)絡(luò)韌性與安全可靠性的全面升級(jí)。該方案通過(guò)設(shè)備內(nèi)生安全數(shù)據(jù)0泄露,在線配置仿真動(dòng)網(wǎng)0事故,構(gòu)筑縱深防御體系,助力運(yùn)營(yíng)商打造超安超可靠的IP承載網(wǎng)絡(luò)底座。
    的頭像 發(fā)表于 03-05 11:28 ?440次閱讀

    C語(yǔ)言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標(biāo)準(zhǔn)對(duì)比與Perforce QAC應(yīng)用詳解

    如何編寫真正安全C語(yǔ)言代碼?指南涵蓋MISRA C、CERT、CWE等國(guó)際安全編碼標(biāo)準(zhǔn)對(duì)比,以及如何借助Perforce QAC自動(dòng)檢測(cè)漏
    的頭像 發(fā)表于 01-26 17:38 ?831次閱讀
    <b class='flag-5'>C</b>語(yǔ)言<b class='flag-5'>安全</b>編碼指南:<b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>、CERT <b class='flag-5'>C</b>、CWE 與 <b class='flag-5'>C</b> Secure 標(biāo)準(zhǔn)對(duì)比與Perforce QAC應(yīng)用詳解

    飛騰公司和長(zhǎng)沙市國(guó)鏈安全可靠計(jì)算機(jī)產(chǎn)業(yè)促進(jìn)中心簽署合作協(xié)議

    1月22日,國(guó)家新一代自主安全計(jì)算系統(tǒng)產(chǎn)業(yè)集群工作推進(jìn)會(huì)在湖南長(zhǎng)沙成功舉辦。會(huì)上,飛騰信息技術(shù)有限公司(以下簡(jiǎn)稱“飛騰公司”)和長(zhǎng)沙市國(guó)鏈安全可靠計(jì)算機(jī)產(chǎn)業(yè)促進(jìn)中心(以下簡(jiǎn)稱“國(guó)鏈中心”)正式簽署合作協(xié)議,聯(lián)合共建“湖南省新一代自主安全
    的頭像 發(fā)表于 01-26 16:59 ?831次閱讀

    保障每一度電的安全可靠:揭秘交流充電樁“出廠體檢”背后的硬核科技

    保障每一度電的安全可靠:揭秘交流充電樁“出廠體檢”背后的硬核科技 一套精密的自動(dòng)化測(cè)試系統(tǒng),正以超過(guò)16項(xiàng)嚴(yán)格檢測(cè)項(xiàng)目,確保著每一臺(tái)交流充電樁在出廠前都能達(dá)到國(guó)際最高安全標(biāo)準(zhǔn)。 隨著全球新能源汽車
    的頭像 發(fā)表于 01-08 10:43 ?844次閱讀

    汽車網(wǎng)絡(luò)安全開發(fā)語(yǔ)言選型指南:C/C++/Rust/Java等主流語(yǔ)言對(duì)比+Perforce QAC/Klocwork工具支持

    汽車網(wǎng)絡(luò)安全如何選編程語(yǔ)言?C、C++、Rust、Java……誰(shuí)更適合AUTOSAR、ISO/SAE 21434?一文了解8種主流語(yǔ)言的優(yōu)劣與適用場(chǎng)景,以及Perforce QAC/K
    的頭像 發(fā)表于 12-26 11:13 ?453次閱讀
    汽車網(wǎng)絡(luò)<b class='flag-5'>安全</b>開發(fā)語(yǔ)言選型指南:<b class='flag-5'>C</b>/<b class='flag-5'>C</b>++/Rust/Java等主流語(yǔ)言對(duì)比+Perforce QAC/Klocwork工具支持

    S32Z2:安全可靠的高性能實(shí)時(shí)處理器

    S32Z2:安全可靠的高性能實(shí)時(shí)處理器 汽車電子和工業(yè)控制等領(lǐng)域,高性能實(shí)時(shí)處理器的需求日益增長(zhǎng)。今天我們要探討的NXP S32Z2處理器,就是一款安全和性能方面表現(xiàn)卓越的產(chǎn)品。
    的頭像 發(fā)表于 12-24 11:10 ?404次閱讀

    C語(yǔ)言嵌入式開發(fā)的應(yīng)用

    對(duì)外部事件做出響應(yīng)并完成任務(wù)的系統(tǒng),對(duì)任務(wù)的響應(yīng)時(shí)間和執(zhí)行時(shí)間有著嚴(yán)格的要求。C 語(yǔ)言實(shí)時(shí)系統(tǒng)開發(fā)具有重要的地位,它能夠滿足實(shí)時(shí)系統(tǒng)對(duì)高效性、確定性和
    發(fā)表于 11-21 08:09

    安科瑞儲(chǔ)能配套產(chǎn)品全場(chǎng)景解決方案,賦能儲(chǔ)能系統(tǒng)安全可靠運(yùn)行

    “雙碳” 目標(biāo)下,儲(chǔ)能成為新型電力系統(tǒng)核心支撐。安科瑞打造涵蓋數(shù)據(jù)監(jiān)測(cè)、準(zhǔn)確計(jì)量、安全防護(hù)、智能控制、系統(tǒng)協(xié)同的全鏈條解決方案,適配發(fā)電側(cè)、電網(wǎng)側(cè)、用戶側(cè)各類場(chǎng)景,保障儲(chǔ)能系統(tǒng)安全可靠運(yùn)行。
    的頭像 發(fā)表于 09-29 09:34 ?606次閱讀
    安科瑞儲(chǔ)能配套產(chǎn)品全場(chǎng)景解決方案,賦能儲(chǔ)能系統(tǒng)<b class='flag-5'>安全可靠</b>運(yùn)行

    龍芯3B6000M處理器榮獲安全可靠最高等級(jí)認(rèn)證

    近日,中國(guó)信息安全測(cè)評(píng)中心發(fā)布《安全可靠測(cè)評(píng)結(jié)果公告(2025年第3號(hào))》,龍芯3B6000M憑借卓越的性能表現(xiàn)和高水平的安全可靠性,成功入選目前最高等級(jí)Ⅱ級(jí)。
    的頭像 發(fā)表于 09-16 11:33 ?1664次閱讀

    智慧社區(qū)智能安全用電消防系統(tǒng):構(gòu)建安全可靠的社區(qū)用電環(huán)境

    隨著城市化進(jìn)程的加快,智慧社區(qū)建設(shè)已成為提升居民生活品質(zhì)的重要方向。其中,智能安全用電消防系統(tǒng)作為社區(qū)安全的核心組成部分,通過(guò)物聯(lián)網(wǎng)技術(shù)與傳統(tǒng)用電設(shè)備的結(jié)合,有效解決了傳統(tǒng)用電管理存在的監(jiān)測(cè)滯后
    的頭像 發(fā)表于 08-28 16:46 ?1367次閱讀

    深圳雙芯信息科技:國(guó)產(chǎn)飛騰OPS電腦,安全可靠自主可控

    信息技術(shù)飛速發(fā)展的當(dāng)下,信息安全已上升至國(guó)家戰(zhàn)略高度,各行業(yè)對(duì)自主可控、安全可靠的計(jì)算設(shè)備需求愈發(fā)迫切。深圳雙芯信息科技有限公司敏銳洞察市場(chǎng)趨勢(shì),憑借深厚的技術(shù)沉淀與創(chuàng)新精神,推出的國(guó)產(chǎn)飛騰OPS
    的頭像 發(fā)表于 06-19 16:52 ?1226次閱讀
    深圳雙芯信息科技:國(guó)產(chǎn)飛騰OPS電腦,<b class='flag-5'>安全可靠</b>自主可控

    開關(guān)電源安全保護(hù)電路:浪涌保護(hù)、過(guò)流保護(hù)、過(guò)壓保護(hù)

    引言對(duì)于開關(guān)電源而言, 安全可靠性歷來(lái)被視為重要的性能之一. 開關(guān)電源電氣技術(shù)指標(biāo)滿足電子設(shè)備正常使用要求的條件下, 還要滿足外界或自身電路或負(fù)載電路出現(xiàn)故障的情況下也能安全可靠
    發(fā)表于 05-20 14:19

    Helix QAC 2025.1 重磅發(fā)布!MISRA C:2025? 100%覆蓋

    Helix QAC 2025.1新增功能 Helix QAC 2025.1實(shí)現(xiàn)了對(duì)新版MISRA C:2025?標(biāo)準(zhǔn)的 100% 覆蓋,并提供對(duì)應(yīng)的合規(guī)模塊。此版本還擴(kuò)展了對(duì) CERT C
    的頭像 發(fā)表于 05-13 16:48 ?1490次閱讀
    Helix QAC 2025.1 重磅發(fā)布!<b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>:2025? 100%覆蓋

    MISRA C:2025新標(biāo)準(zhǔn)解析:新增規(guī)則、優(yōu)化點(diǎn)與靜態(tài)代碼分析工具支持(Perforce QAC、Klocwork)

    MISRA C:2025?發(fā)布!新增5條規(guī)則,并對(duì)部分現(xiàn)有規(guī)則進(jìn)行了擴(kuò)展、重組,以進(jìn)一步簡(jiǎn)化安全關(guān)鍵型系統(tǒng)的開發(fā)流程。如何實(shí)現(xiàn)最新MISRA合規(guī)性?
    的頭像 發(fā)表于 05-08 17:58 ?2958次閱讀
    <b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>:2025新標(biāo)準(zhǔn)解析:新增規(guī)則、優(yōu)化點(diǎn)與靜態(tài)代碼分析工具支持(Perforce QAC、Klocwork)

    龍芯6款產(chǎn)品入圍安全可靠測(cè)評(píng)Ⅱ級(jí)

    近日,中國(guó)信息安全測(cè)評(píng)中心發(fā)布《安全可靠測(cè)評(píng)結(jié)果公告(2025年第1號(hào))》,龍芯3B6000、3C6000憑借卓越的技術(shù)實(shí)力和優(yōu)異的產(chǎn)品表現(xiàn)成功入圍,并被評(píng)定為目前最高等級(jí)Ⅱ級(jí)。至此,龍芯以40%占
    的頭像 發(fā)表于 03-19 10:36 ?1090次閱讀