chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

符號執(zhí)行技術(shù)可識別安全關(guān)鍵代碼中的漏洞

星星科技指導員 ? 來源:嵌入式計算設(shè)計 ? 作者:PAUL ANDERSON ? 2022-11-08 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

多核處理器在安全關(guān)鍵型應用中越來越受歡迎,因為它們提供了顯著的價格和性能改進。但是,為多核硬件編寫多線程應用程序是出了名的困難,并可能導致災難性故障。下面描述了用于識別問題(包括數(shù)據(jù)爭用)的符號執(zhí)行技術(shù)?最常見的并發(fā)缺陷之一?以及靜態(tài)分析如何幫助開發(fā)人員找到并消除它們。

最大化性能對于軍事嵌入式系統(tǒng)尤為重要,因為在日益數(shù)字化的戰(zhàn)場上,人們越來越需要保持低成本,同時滿足連接要求。隨著制造商達到小型化和集成度提高所能達到的極限,提高性能的最佳方法是使用多核處理器。

缺點是,為了充分利用并行執(zhí)行的許多內(nèi)核,必須將軟件編寫為本質(zhì)上是多線程的。為單核處理器編寫為單線程的軟件在多核處理器上執(zhí)行時將實現(xiàn)很少或沒有性能優(yōu)勢:必須重寫或調(diào)整它以使用多線程。關(guān)鍵挑戰(zhàn)是盡可能保持核心繁忙,同時確保它們正確協(xié)調(diào)對共享資源的訪問。不幸的是,編寫這樣的代碼比編寫單線程代碼要困難得多。當存在死鎖或爭用條件等缺陷時,它們可能會以難以診斷的方式表現(xiàn)出來。查找和消除并發(fā) bug 的傳統(tǒng)技術(shù)可能無效。

并發(fā)錯誤如此困難的核心原因之一是,當線程執(zhí)行時,線程中的事件可以通過多種方式交錯。隨著線程或指令數(shù)量的增加,交錯的數(shù)量呈指數(shù)級增長。如果線程 A 執(zhí)行 M 條指令,線程 B 執(zhí)行 N 條指令,則兩個線程可能存在 N+MCN 交錯。例如,給定兩個平凡的線程,每個線程有 10 條指令,這些指令有 184,756 個可能的交錯。即使使用非常小的程序,很明顯也幾乎不可能測試所有可能的組合。其次,即使可以識別導致故障的單個交錯,也很難設(shè)置使用該特定交錯的可重復測試用例,因為線程調(diào)度實際上是不確定的。因此,調(diào)試并發(fā)程序可能非常昂貴且耗時。爭用條件是一類并發(fā)缺陷,很容易意外引入,并且很難通過常規(guī)測試消除。但是,程序員可以使用一些技術(shù)來查找和刪除它們。

潛在的災難性故障

與單線程代碼相比,并發(fā)程序中可能會出現(xiàn)全新的缺陷類別,包括死鎖、饑餓和爭用條件。這些缺陷主要會導致開發(fā)過程中難以診斷和消除的神秘故障。我們合作過的一家航空電子制造商花了兩個人年的時間應用傳統(tǒng)的調(diào)試技術(shù),努力找到間歇性軟件故障的根本原因,結(jié)果證明這是一種競爭條件。有時后果可能很可怕——有史以來最臭名昭著的兩個軟件故障是由競爭條件引起的。Therac-25放射治療機具有導致幾名患者死亡的種族條件。同樣,2003 年東北停電因競爭條件而加劇,導致誤導性信息被傳達給技術(shù)人員。

有幾種不同類型的競爭條件。最常見和最隱蔽的形式之一 - 數(shù)據(jù)競爭 - 是涉及訪問內(nèi)存位置的競爭條件類。

當有兩個或多個執(zhí)行線程訪問共享內(nèi)存位置,至少一個線程正在更改該位置的數(shù)據(jù),并且沒有用于協(xié)調(diào)訪問的顯式機制時,就會發(fā)生數(shù)據(jù)爭用。如果發(fā)生數(shù)據(jù)爭用,則可能會使程序處于不一致狀態(tài)。

考慮控制襟翼位置的航空電子代碼。在正常情況下,襟翼處于飛行控制軟件指示的位置,但飛行員可以通過按下控制面板上的按鈕來覆蓋該位置,在這種情況下,使用手動設(shè)置的位置。為了簡單起見,假設(shè)程序中有兩個線程:一個控制翻蓋,另一個監(jiān)視控制面板上元素的位置。還有一個名為 is_manual 的共享布爾變量,它對手動覆蓋是否設(shè)置進行編碼。擺動位置螺紋檢查is_manual的值,如果為 true,則相應地設(shè)置位置??刂泼姘寰€程偵聽按鈕按下事件,如果按下替代按鈕,它將is_manual設(shè)置為 true。圖 1 顯示了為實現(xiàn)此規(guī)范而可能編寫的代碼。此代碼可能在大多數(shù)情況下都有效;但是,由于 is_manual 變量對兩個線程共享的狀態(tài)進行編碼,因此它容易受到數(shù)據(jù)爭用的影響,因為對它的訪問不受鎖保護。如果在飛行員按下超控按鈕的確切時間執(zhí)行襟翼定位代碼,則程序可能會進入不一致的狀態(tài),并且將使用錯誤的襟翼位置。圖 2 顯示了這種情況是如何發(fā)生的。

圖1:訪問共享變量的兩個線程中的代碼

21

圖2:導致數(shù)據(jù)爭用的指令交錯

22

這個例子巧妙地說明了數(shù)據(jù)爭用的一個屬性,這使得它們難以診斷:損壞的癥狀可能只有在數(shù)據(jù)爭用發(fā)生很久之后才能觀察到。在這種情況下,只有當飛行員注意到飛機沒有按預期響應時,才會注意到使用錯誤的襟翼位置的事實。

人們普遍認為,數(shù)據(jù)競爭的某些實例是良性的,可以容忍。然而,現(xiàn)在毫無疑問,這很少是真的。C 標準[4] 明確指出,編譯器可以假設(shè)沒有數(shù)據(jù)爭用,因此優(yōu)化器可以并且確實進行了對提高單線程代碼性能有效的轉(zhuǎn)換,但在存在明顯良性的競爭條件時引入了錯誤。這些都是微妙的影響——即使是經(jīng)驗豐富的程序員也經(jīng)常對它們感到驚訝。(有關(guān)完整的解釋和幾個令人信服的示例,請參閱參考文獻 [1]。因此,為了實現(xiàn)高水平的保證并避免災難性故障,查找并刪除所有數(shù)據(jù)爭用非常重要。

消除并發(fā)缺陷

鑒于并發(fā)缺陷,尤其是數(shù)據(jù)爭用,風險很大,因此使用多種技術(shù)來消除它們非常重要。由于不確定性,傳統(tǒng)的動態(tài)測試不太適合發(fā)現(xiàn)許多并發(fā)缺陷。通過測試數(shù)百次的程序以后可能會在具有完全相同輸入的相同環(huán)境中失敗,因為該錯誤可能對時間非常敏感。尋求高保證的工程師如果要消除并發(fā)缺陷,就必須轉(zhuǎn)向其他技術(shù)。

靜態(tài)分析工具提供了一種查找此類錯誤的方法。測試和靜態(tài)分析之間的主要區(qū)別在于,它針對給定的一組輸入測試程序的特定執(zhí)行,而靜態(tài)分析查找適用于所有可能執(zhí)行和所有輸入的屬性。(在實踐中,靜態(tài)分析工具進行近似以獲得可接受的性能和精度,因此達不到這個理想模型。盡管如此,它們確實涵蓋了比傳統(tǒng)測試更多的情況。

粗略地說,靜態(tài)分析工具的工作原理是創(chuàng)建程序模型并對該模型進行符號執(zhí)行,在此過程中查找錯誤條件。例如,GrammaTech的CodeSonar靜態(tài)分析工具通過創(chuàng)建哪些鎖由哪些線程持有的映射,并通過推理可能導致對共享變量的不同步訪問的可能交錯來查找數(shù)據(jù)競爭。使用類似的技術(shù)發(fā)現(xiàn)死鎖和其他并發(fā)缺陷(包括鎖管理不善)。

自定義并發(fā)構(gòu)造:案例研究

當程序使用標準方法來管理并發(fā)時,標準缺陷檢測技術(shù)最有用。大多數(shù)工具識別并推理標準庫(如POSIX線程庫)或?qū)S?a target="_blank">接口(如VxWorks)的特殊屬性。但是,許多系統(tǒng)使用自定義技術(shù)來管理并發(fā)性。

例如,與我們合作的另一家制造商在使用自定義搶占式多線程軟件接口的平臺上構(gòu)建了一個安全關(guān)鍵型設(shè)備。在此設(shè)計中,一個關(guān)鍵約束是,必須使用適當?shù)谋Wo構(gòu)造保護可以從多個優(yōu)先級線程訪問的所有數(shù)據(jù)實例。在使用靜態(tài)分析之前,驗證是否遵守此約束需要花費人工月的手動分析時間。為了降低成本,他們通過轉(zhuǎn)向靜態(tài)分析來尋求解決方案。現(xiàn)代高級靜態(tài)分析工具的一個重要特性是它們是可擴展的:它們提供了一個帶有抽象的 API,可以方便地實現(xiàn)自定義靜態(tài)分析算法。使用 CodeSonar 的 API,他們能夠編寫一個解決方案,該解決方案利用現(xiàn)有分析核心使用的算法來查找代碼中違反設(shè)計約束的位置。生成的工具作為插件實現(xiàn),能夠自動查找違反關(guān)鍵約束的情況,所有這些都只需一小部分成本和比以前少得多的時間。

多核權(quán)衡

轉(zhuǎn)向多核處理器設(shè)計有令人信服的理由,但風險在于這樣做可能會在軟件中引入并發(fā)缺陷。這些很容易引入 - 即使是看似無辜的代碼也可能隱藏令人討厭的多線程錯誤 - 并且眾所周知,當它們發(fā)生時很難診斷和消除。僅靠傳統(tǒng)的測試技術(shù)不足以確保高質(zhì)量的軟件,這主要是因為高度的非確定性。使用使用符號執(zhí)行的高級靜態(tài)分析工具是一種可以提供幫助的方法,因為此類工具可以推理代碼執(zhí)行的所有可能方式。這些工具可以在使用標準多線程庫的代碼中發(fā)現(xiàn)數(shù)據(jù)爭用和死鎖等缺陷,甚至可以適應使用非標準并發(fā)構(gòu)造的設(shè)計。

審核編輯:郭婷

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

    關(guān)注

    68

    文章

    20154

    瀏覽量

    247518
  • 嵌入式
    +關(guān)注

    關(guān)注

    5187

    文章

    20170

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    攻擊逃逸測試:深度驗證網(wǎng)絡(luò)安全設(shè)備的真實防護能力

    圖9 使用攻擊逃逸模型,設(shè)備攔截失敗 總結(jié) 通過信而泰ALPS平臺執(zhí)行攻擊逃逸測試,用戶能夠獲得三個層面的核心價值: 安全能力量化:精準獲取設(shè)備在真實逃逸場景下的識別率、誤報/漏
    發(fā)表于 11-17 16:17

    行業(yè)觀察 | Windows 10于本月終止服務(wù)支持,微軟發(fā)布10月高危漏洞更新

    已被實際利用的零日漏洞,以及多個CVSS評分高達9.9的關(guān)鍵遠程代碼執(zhí)行漏洞。隨著Windows10于本月終止服務(wù)支持,IT團隊面臨
    的頭像 發(fā)表于 10-16 16:57 ?1560次閱讀
    行業(yè)觀察 | Windows 10于本月終止服務(wù)支持,微軟發(fā)布10月高危<b class='flag-5'>漏洞</b>更新

    引人注目的生物識別安全技術(shù) 安森美 (onsemi)圖像傳感器虹膜掃描和面部識別方案

    ,是每個人的虹膜圖案都獨一無二,并且終生保持穩(wěn)定,因而是一種非常安全可靠的身份識別方法。近年來,虹膜掃描在安防、醫(yī)療護理、消費技術(shù)等領(lǐng)域的應用越來越廣泛。本周的“New Tech Tuesday”
    的頭像 發(fā)表于 08-29 09:26 ?1.3w次閱讀
    引人注目的生物<b class='flag-5'>識別安全</b><b class='flag-5'>技術(shù)</b> 安森美 (onsemi)圖像傳感器虹膜掃描和面部<b class='flag-5'>識別</b>方案

    行業(yè)觀察 | Azure、RDP、NTLM 均現(xiàn)高危漏洞,微軟發(fā)布2025年8月安全更新

    -CVE-2025-53779:WindowsKerberos漏洞,允許攻擊者將權(quán)限提升至域管理員。?13個嚴重漏洞:-9個遠程代碼執(zhí)行漏洞
    的頭像 發(fā)表于 08-25 17:48 ?2095次閱讀
    行業(yè)觀察 | Azure、RDP、NTLM 均現(xiàn)高危<b class='flag-5'>漏洞</b>,微軟發(fā)布2025年8月<b class='flag-5'>安全</b>更新

    筑牢人臉信息安全防線|安全芯片如何賦能《人臉識別技術(shù)應用安全管理辦法》落地

    一、政策背景人臉識別安全挑戰(zhàn)催生技術(shù)變革近日《人臉識別技術(shù)應用安全管理辦法》(以下簡稱《辦法》)正式公布,并自2025年6月1日起施行。該《
    的頭像 發(fā)表于 04-28 09:33 ?1335次閱讀
    筑牢人臉信息<b class='flag-5'>安全</b>防線|<b class='flag-5'>安全</b>芯片如何賦能《人臉<b class='flag-5'>識別</b><b class='flag-5'>技術(shù)</b>應用<b class='flag-5'>安全</b>管理辦法》落地

    如何維護i.MX6ULL的安全內(nèi)核?

    Vigiles 等工具。通過使用此內(nèi)核系列的最新內(nèi)核,漏洞數(shù)量大大減少:最新的 5.15 是 5.15.178,它“僅”有 1019 個已知漏洞(很可能影響較?。?。此外,還有一些關(guān)鍵
    發(fā)表于 04-01 08:28

    PoE交換機在安防監(jiān)控系統(tǒng)關(guān)鍵作用

    ,在安全監(jiān)控系統(tǒng)的影響不容忽視。通過與先進技術(shù)集成并支持未來擴展,PoE交換機已成為現(xiàn)代監(jiān)控系統(tǒng)不可或缺的一部分。隨著安全挑戰(zhàn)的不斷增長
    發(fā)表于 03-24 16:41

    如何利用iptables修復安全漏洞

    隨著網(wǎng)絡(luò)安全威脅的不斷增加,安全中心掃描越來越頻繁。尤其是在大數(shù)據(jù)安全中心的漏洞報告,許多漏洞
    的頭像 發(fā)表于 03-18 18:02 ?888次閱讀

    在STM32微控制器實現(xiàn)數(shù)據(jù)加密的方法

    模塊)來執(zhí)行AES加密算法。這些硬件加速器相較于軟件實現(xiàn),可以提供更高的性能和效率,同時降低CPU的負擔。 · 利用TrustZone技術(shù): · · TrustZone技術(shù)允許開發(fā)者隔離安全
    發(fā)表于 03-07 07:30

    【版本控制安全簡報】Perforce Helix Core安全更新:漏洞修復與國內(nèi)用戶支持

    Perforce Helix Core近日發(fā)布安全補丁,解決高危DoS漏洞安全性進一步增強!獲取支持,咨詢Perforce授權(quán)代理商龍智,我們提供咨詢、試用、安裝部署、培訓、
    的頭像 發(fā)表于 02-27 17:12 ?901次閱讀
    【版本控制<b class='flag-5'>安全</b>簡報】Perforce Helix Core<b class='flag-5'>安全</b>更新:<b class='flag-5'>漏洞</b>修復與國內(nèi)用戶支持

    微軟Outlook曝高危安全漏洞

    近日,美國網(wǎng)絡(luò)安全和基礎(chǔ)設(shè)施安全局(CISA)發(fā)布了一項緊急安全公告,揭示了微軟Outlook存在的一個高危遠程代碼
    的頭像 發(fā)表于 02-10 09:17 ?826次閱讀

    AMD與谷歌披露關(guān)鍵微碼漏洞

    近日,AMD與谷歌聯(lián)合公開披露了一個在2024年9月發(fā)現(xiàn)的關(guān)鍵微碼漏洞,該漏洞主要存在于AMD的Zen 1至Zen 4系列CPU,特別是針對服務(wù)器/企業(yè)級平臺的EPYC CPU。 這
    的頭像 發(fā)表于 02-08 14:28 ?815次閱讀

    人臉識別技術(shù)安全監(jiān)控的應用

    在現(xiàn)代社會,安全監(jiān)控是維護公共安全和社會秩序的重要手段。隨著技術(shù)的進步,傳統(tǒng)的監(jiān)控手段已經(jīng)無法滿足日益增長的安全需求。人臉識別
    的頭像 發(fā)表于 02-06 17:25 ?1575次閱讀

    嵌入式系統(tǒng)信息安全概述

    。只有在生命周期的每個步驟都考慮安全性,才能防止這種情況發(fā)生,這些步驟包括: 1 威脅建模-在設(shè)計階段,必須識別安全需求。 2 安全的組件-軟件開發(fā)人員必須正確地實現(xiàn)安全需求。此外,他
    的頭像 發(fā)表于 01-24 11:36 ?941次閱讀

    對稱加密技術(shù)有哪些常見的安全漏洞?

    對稱加密技術(shù)在實際應用可能面臨的安全漏洞主要包括: 實現(xiàn)不當: 錯誤的加解密實現(xiàn)、弱隨機數(shù)生成器或其他邏輯錯誤都可能導致安全漏洞。 漏洞
    的頭像 發(fā)表于 12-16 13:59 ?1116次閱讀