国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Yannick Moy ? 2022-11-23 11:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

C編程語言的普及,以及它的許多陷阱和陷阱,導致了MISRA C在C用于高完整性軟件的領域取得了巨大的成功。這一成功促使工具供應商提出了許多MISRA C檢查器的競爭實現。工具在它們幫助執行的MISRA C指南的覆蓋范圍上尤其競爭,因為不可能執行MISRA C的所有16個指令和143個規則(統稱為指南)。

特別是,143 條規則中有 27 條是不可判定的,因此沒有工具可以始終檢測所有違反這些規則的行為,同時報告不構成違規的代碼的“誤報”。不可判定規則的一個例子是規則1.3:“不得發生未定義或關鍵的未指定行為。MISRA C:2012 的附錄 H 列出了 C 編程語言標準中數百個未定義和關鍵未指定行為的案例,其中大多數無法單獨判定。在大多數情況下,MISRA C 檢查器忽略了不可判定的規則,例如規則 1.3,盡管已知違反這些規則會對軟件質量產生巨大影響。

但是,對于其他編程語言,可以使用靜態分析技術來應對這一挑戰,而不會使用戶誤報淹沒。一個例子是由AdaCore,Altran和Inria開發的SPARK工具集,它基于四個原則:

基礎語言 Ada 通過定義明確的語言標準、強大的類型化和豐富的規范功能為靜態分析提供了堅實的基礎。

Ada 的 SPARK 子集通過控制歧義來源(如函數中的副作用和名稱的別名)以基本方式限制基本語言以支持靜態分析。

靜態分析工具主要以單個函數的粒度工作,使分析更加精確,并最大限度地減少誤報的可能性。

靜態分析工具是交互式的,允許用戶在必要時或需要時指導分析,并在用戶提供的合同無法證明時提供反例。

SPARK 可以在 C 代碼庫中逐步采用,通過SPARK 采用的五個級別以及支持將形式分析 (SPARK) 與傳統的基于測試的方法 (C) 相結合的“混合驗證”來逐步獲得保證。

火花石等級 - 基本保證

SPARK采用的第一級稱為石頭級。它對應于符合 Ada 的 SPARK 子集的代碼。僅采用此級別即可保證許多無法對 C 強制執行的一致性屬性。其中包括:

使用適當的包系統,而不是C使用基于文本的文件,沒有翻譯單元的一致性要求;

嚴格且可讀的語法,強調清晰度并最大限度地減少“陷阱”,而不是 C 非常寬松的語法,這使得編寫效果不是預期程序變得容易,

遵守 Ada 和 SPARK 的強類型規則,而不是 C 的“糟糕的類型安全性,允許發生廣泛的隱式類型轉換,這可能會損害安全性,因為它們的實現定義方面可能會導致開發人員混淆。(MISRA C:2012,附件C)

MISRA C試圖通過各種準則來馴服C語言的這些可能的不一致之處。它特別定義了更強的類型規則(“基本類型模型”),并限制函數參數/結果和控制結構的使用。雖然這些避免了開發人員混淆的常見來源,但它們故意不是防彈的,否則它們會使大多數 C 程序非法。

這些基本保證在SPARK中很容易實現,通過一個名為GNATprove的工具進行簡單的類似編譯器的分析,這要歸功于定義Ada的SPARK子集的更強大的規則。

SPARK 銀級 - 強大的安全和安保保證

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

在 SPARK 采用的銀牌級別完全可以防止這些情況,這對應于通過流分析(達到稱為銅牌的 SPARK 采用的第二級)和證明沒有運行時錯誤(達到第三級,即白銀)來分析程序。要達到此級別,開發人員通常需要定義具有特定約束的類型,這些約束旨在支持和提供文件之間導出的函數的協定 - 使用所謂的前提條件來指定調用方的義務,以及后置條件來指定被調用方的義務。

達到銀級的過程涉及與 IDE 的交互。開發人員運行 GNATprove 工具(可能在程序的子集上),調查 GNATprove 診斷,相應地更新程序,然后重復。GNATprove 在每一步都提供的詳細信息促進了這種交互,以指導開發人員。以下是 GNATprove 顯示的消息示例:

pYYBAGN9md-AUFN-AADbEpQjVIo527.png

在找到可能導致溢出的加法操作后,GNATprove 給出了一個觸發問題的值的示例,這里是最大的整數值(在 SPARK 中表示為整數‘最后)。“檢查原因”清楚地解釋了加法的結果應該適合機器整數,如果 X 是加法前的最大整數值,則情況并非如此。然后,GNATprove 建議向函數 Incr 添加一個合適的前提條件可能會解決這個問題,在這里指定 X 不能是那個最大值。

超越銀級的火花

使用SPARK還有更多的好處,遠遠超出了MISRA C檢查器所能提供的。在黃金和白金級別,開發人員通過SPARK合同指定程序的屬性,然后可以使用GNATprove 來保證這些屬性將得到滿足。開發人員還可以啟用 GNATprove 警告來檢測死代碼(也是 MISRA C 追求的目標)和代碼中的不一致,使用構成 GNATprove 分析基礎的強大證明技術。

結論

從本質上講,MISRA C追求的所有目標都可以在SPARK中最好地實現,結合更強大的基礎語言(Ada)和強大的分析工具(GNATprove)。計劃使用 MISRA C 規則的開發人員可以通過在其部分應用程序中采用 SPARK 來增強安全性。

MISRA C 中的規則代表了在關鍵應用程序中提高 C 代碼可靠性的令人印象深刻的集體努力,重點是避免容易出錯的功能,而不是強制實施特定的編程風格。然而,在基本層面上,MISRA C仍然建立在一種基礎語言之上,而這種基礎語言并不是為了支持大型高保證應用程序而設計的。很難將可靠性、安全性和安全性改造到一種從一開始就沒有這些目標的語言中。

由于 C 仍將是像 Linux 內核這樣的大型程序的基礎語言,我們可以預見兩種趨勢的共存,以更好地防止 C 程序中的錯誤,MISRA C 可以發揮作用,并用更安全的語言(如 Rust 和 SPARK Ada )替換 C 作為部分代碼。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1964

    瀏覽量

    39558
  • 代碼
    +關注

    關注

    30

    文章

    4967

    瀏覽量

    73954
  • 檢查器
    +關注

    關注

    0

    文章

    16

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    華為數據通信下一代WAN網絡韌性與安全可靠性全面升級

    數據通信下一代WAN在網絡韌性與安全可靠性的全面升級。該方案通過設備內生安全數據0泄露,在線配置仿真動網0事故,構筑縱深防御體系,助力運營商打造超安超可靠的IP承載網絡底座。
    的頭像 發表于 03-05 11:28 ?292次閱讀

    C語言安全編碼指南:MISRA C、CERT C、CWE 與 C Secure 標準對比與Perforce QAC應用詳解

    如何編寫真正安全C語言代碼?指南涵蓋MISRA C、CERT、CWE等國際安全編碼標準對比,以及如何借助Perforce QAC自動檢測漏
    的頭像 發表于 01-26 17:38 ?795次閱讀
    <b class='flag-5'>C</b>語言<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 標準對比與Perforce QAC應用詳解

    飛騰公司和長沙市國鏈安全可靠計算機產業促進中心簽署合作協議

    1月22日,國家新一代自主安全計算系統產業集群工作推進會在湖南長沙成功舉辦。會上,飛騰信息技術有限公司(以下簡稱“飛騰公司”)和長沙市國鏈安全可靠計算機產業促進中心(以下簡稱“國鏈中心”)正式簽署合作協議,聯合共建“湖南省新一代自主安全
    的頭像 發表于 01-26 16:59 ?780次閱讀

    汽車網絡安全開發語言選型指南:C/C++/Rust/Java等主流語言對比+Perforce QAC/Klocwork工具支持

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

    S32Z2:安全可靠的高性能實時處理器

    S32Z2:安全可靠的高性能實時處理器 汽車電子和工業控制等領域,高性能實時處理器的需求日益增長。今天我們要探討的NXP S32Z2處理器,就是一款安全和性能方面表現卓越的產品。
    的頭像 發表于 12-24 11:10 ?378次閱讀

    C語言嵌入式開發的應用

    對外部事件做出響應并完成任務的系統,對任務的響應時間和執行時間有著嚴格的要求。C 語言實時系統開發具有重要的地位,它能夠滿足實時系統對高效性、確定性和
    發表于 11-21 08:09

    安科瑞儲能配套產品全場景解決方案,賦能儲能系統安全可靠運行

    “雙碳” 目標下,儲能成為新型電力系統核心支撐。安科瑞打造涵蓋數據監測、準確計量、安全防護、智能控制、系統協同的全鏈條解決方案,適配發電側、電網側、用戶側各類場景,保障儲能系統安全可靠運行。
    的頭像 發表于 09-29 09:34 ?583次閱讀
    安科瑞儲能配套產品全場景解決方案,賦能儲能系統<b class='flag-5'>安全可靠</b>運行

    龍芯3B6000M處理器榮獲安全可靠最高等級認證

    近日,中國信息安全測評中心發布《安全可靠測評結果公告(2025年第3號)》,龍芯3B6000M憑借卓越的性能表現和高水平的安全可靠性,成功入選目前最高等級Ⅱ級。
    的頭像 發表于 09-16 11:33 ?1636次閱讀

    智慧社區智能安全用電消防系統:構建安全可靠的社區用電環境

    隨著城市化進程的加快,智慧社區建設已成為提升居民生活品質的重要方向。其中,智能安全用電消防系統作為社區安全的核心組成部分,通過物聯網技術與傳統用電設備的結合,有效解決了傳統用電管理存在的監測滯后
    的頭像 發表于 08-28 16:46 ?1347次閱讀

    深圳雙芯信息科技:國產飛騰OPS電腦,安全可靠自主可控

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

    開關電源安全保護電路:浪涌保護、過流保護、過壓保護

    引言對于開關電源而言, 安全可靠性歷來被視為重要的性能之一. 開關電源電氣技術指標滿足電子設備正常使用要求的條件下, 還要滿足外界或自身電路或負載電路出現故障的情況下也能安全可靠
    發表于 05-20 14:19

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

    Helix QAC 2025.1新增功能 Helix QAC 2025.1實現了對新版MISRA C:2025?標準的 100% 覆蓋,并提供對應的合規模塊。此版本還擴展了對 CERT C
    的頭像 發表于 05-13 16:48 ?1458次閱讀
    Helix QAC 2025.1 重磅發布!<b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>:2025? 100%覆蓋

    MISRA C:2025新標準解析:新增規則、優化點與靜態代碼分析工具支持(Perforce QAC、Klocwork)

    MISRA C:2025?發布!新增5條規則,并對部分現有規則進行了擴展、重組,以進一步簡化安全關鍵型系統的開發流程。如何實現最新MISRA合規性?
    的頭像 發表于 05-08 17:58 ?2837次閱讀
    <b class='flag-5'>MISRA</b> <b class='flag-5'>C</b>:2025新標準解析:新增規則、優化點與靜態代碼分析工具支持(Perforce QAC、Klocwork)

    龍芯6款產品入圍安全可靠測評Ⅱ級

    近日,中國信息安全測評中心發布《安全可靠測評結果公告(2025年第1號)》,龍芯3B6000、3C6000憑借卓越的技術實力和優異的產品表現成功入圍,并被評定為目前最高等級Ⅱ級。至此,龍芯以40%占
    的頭像 發表于 03-19 10:36 ?1066次閱讀

    SMA插頭拆卸教程:安全可靠的拆解方法

    通過以上步驟,您就可以較為安全、準確地完成 SMA 插頭針式連接器的拆解工作。操作過程,一定要小心謹慎,遵循正確的方法和步驟,以避免對設備造成不必要的損壞。如果在拆解過程遇到困難
    的頭像 發表于 03-10 09:37 ?1923次閱讀
    SMA插頭拆卸教程:<b class='flag-5'>安全可靠</b>的拆解方法