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

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

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

利用GCC插件實現(xiàn)代碼分析和安全審計

zz愛尚科技 ? 來源:zz愛尚科技 ? 作者:zz愛尚科技 ? 2022-10-13 14:00 ? 次閱讀

利用GCC插件實現(xiàn)代碼分析和安全審計

GCC 4.5.0開始引入的一項插件功能,允許用戶通過插件來干預(yù)GCC的編譯過程,獲取到GCC編譯過程中的各種數(shù)據(jù),甚至可以修改編譯過程中生成的中間數(shù)據(jù),從而達到修改最終生成的二進制文件行為的目的(注:特別需要注意的是GCC-Plugin的API是會隨版本變化的)。此特性從程序員的角度來看,就相當(dāng)于把原來GCC的黑盒編譯過程一下子打開了,GCC編譯的過程數(shù)據(jù)可以“大白于天下”,可以清清楚楚的看個夠。

下圖為GCC編譯架構(gòu)****

image.png

GCC編譯過程與插件的交互流程

image.png

注:圖引自DragonEgg 在"Reimplementing llvm-gcc as a gcc plugin"

開源GCC插件列表**** (來自https://gcc.gnu.org/wiki/plugins):

image.png

基于GCC此插件特性,從安全測試的角度來看,可以用它來干什么呢?

A.可以把GCC編譯過程的內(nèi)部數(shù)據(jù)結(jié)構(gòu)圖形化,方便分析應(yīng)用程序。****

圖形化對象可以是控制流圖、函數(shù)調(diào)用圖、支配圖、Tree結(jié)構(gòu)、Gimple結(jié)構(gòu)、RTX結(jié)構(gòu)、Pass列表等等。

下圖是Gimple層次圖**** :

image.png

B、 利用可以修改中間數(shù)據(jù)的能力,可以不用修改源代碼就能添加新功能的功能,從而實現(xiàn)動態(tài)安全分析、安全加固的能力。

在安全測試中為了監(jiān)控程序執(zhí)行路徑情況,需要通過動態(tài)插裝來實現(xiàn),常見的插裝工具有Pin、Dynamo,但這些動態(tài)插裝會對程序的運行性能產(chǎn)生影響,降低程序運行效率,嚴(yán)重的會導(dǎo)致程序不能正常運行。但如果能預(yù)先在目標(biāo)程序中把插裝代碼編譯進去,這樣既兼顧到性能,有兼顧到實現(xiàn)插裝的目的,一般要實現(xiàn)這個目的都是在源代碼層面由開發(fā)人員增加插裝代碼,但增加的代碼只是為了測試的目的,在實際發(fā)布版本中是不需要的,因此直接在源代碼層面增加插裝代碼就給代碼維護帶來的不便,但如果我們應(yīng)用GCC編譯器的插件能力,在編譯構(gòu)建過程中自動添加插裝代碼到最終生成的二進制文件中,這樣只需根據(jù)需要重新編譯就能得到不同目的的應(yīng)用程序而不需要修改任何一行源代碼,既增加插裝代碼的動作對上層是透明的。

基于上述在編譯過程中自動增加插裝代碼,可以實現(xiàn)對測試活動的度量和提升測試效率,比如測試時代碼覆蓋率的統(tǒng)計與度量,基于執(zhí)行路徑來優(yōu)化測試用例提升fuzz效率等等功能。

總結(jié):

利用GCC的插件功能,可以利用編譯過程中的內(nèi)部數(shù)據(jù)來幫助安全分析人員對程序進行安全分析和安全加固等事情,提升程序分析效率和分析精準(zhǔn)度。

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    105

    瀏覽量

    24806
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68238
  • 插件
    +關(guān)注

    關(guān)注

    0

    文章

    320

    瀏覽量

    22398
收藏 人收藏

    評論

    相關(guān)推薦

    VSCode批量遷移插件

    代碼的路 打開之前電腦,找到原電腦VS Code的插件安裝目錄: 如: C:\\\\Users\\\\用戶名\\\\.vscode\\\\extensions 將extensions文件夾拷貝到
    的頭像 發(fā)表于 11-06 16:04 ?75次閱讀
    VSCode批量遷移<b class='flag-5'>插件</b>

    什么是協(xié)議分析儀和訓(xùn)練器

    網(wǎng)絡(luò)性能和穩(wěn)定性。 安全審計與監(jiān)控:檢測惡意攻擊、入侵行為,監(jiān)控潛在的安全威脅,加強網(wǎng)絡(luò)安全防護和審計。 分類: 硬件型協(xié)議
    發(fā)表于 10-29 14:33

    數(shù)據(jù)庫安全審計系統(tǒng):筑牢數(shù)據(jù)安全防線 提高數(shù)據(jù)資產(chǎn)安全

    隨著萬物互聯(lián)的技術(shù)演進,以及數(shù)字化轉(zhuǎn)型的快速發(fā)展,數(shù)據(jù)庫成為最具有戰(zhàn)略性的數(shù)字資產(chǎn)載體,保障數(shù)據(jù)庫安全也就保障了存儲其中的數(shù)據(jù)安全,數(shù)據(jù)庫安全審計是對數(shù)據(jù)庫“增、刪、改、查”具體操作的
    的頭像 發(fā)表于 07-17 13:38 ?654次閱讀

    數(shù)據(jù)庫安全審計系統(tǒng):滿足數(shù)據(jù)安全治理合規(guī)要求

    伴隨著數(shù)據(jù)庫信息價值以及可訪問性提升,使得數(shù)據(jù)庫面對來自內(nèi)部和外部的安全風(fēng)險大大增加,如違規(guī)越權(quán)操作、惡意入侵導(dǎo)致機密信息竊取泄漏,但事后卻無法有效追溯和審計。 國內(nèi)專注于保密與非密領(lǐng)域的分級保護
    的頭像 發(fā)表于 07-04 13:04 ?247次閱讀

    安全服務(wù)加密存儲代碼怎么查

    安全服務(wù)加密存儲代碼的查詢與實現(xiàn)是一個復(fù)雜的過程,涉及到多個方面,包括數(shù)據(jù)加密、密鑰管理、訪問控制等。 1. 引言 隨著云計算的快速發(fā)展,越來越多的企業(yè)和個人將數(shù)據(jù)存儲在云端。然而,數(shù)據(jù)安全
    的頭像 發(fā)表于 07-02 09:28 ?296次閱讀

    利用Swap模式實現(xiàn)代碼回滾操作

    前面介紹了MCUboot的基礎(chǔ)知識,您可通過上方鏈接回顧歷史文章,上次介紹了Swap模式,本次著重介紹利用Swap模式實現(xiàn)代碼回滾操作。在某些應(yīng)用場景中,可能新版本的Firmware存在bug而需要返回至上一次的固件。
    的頭像 發(fā)表于 06-19 15:45 ?1124次閱讀
    <b class='flag-5'>利用</b>Swap模式<b class='flag-5'>實現(xiàn)代碼</b>回滾操作

    在ILLD庫中調(diào)試發(fā)送通信的代碼時,發(fā)現(xiàn)代碼在這兩個地方循環(huán),但沒有讀取發(fā)送的數(shù)據(jù),為什么?

    我在 ILLD 庫中調(diào)試發(fā)送通信的代碼時,發(fā)現(xiàn)代碼在這兩個地方循環(huán),但沒有讀取發(fā)送的數(shù)據(jù)。 請幫助分析一下原因?
    發(fā)表于 05-24 08:00

    芯海 32 位 MCU 開發(fā)調(diào)試 ,基于 VS Code 插件實現(xiàn)芯海 32 位 MCU 開發(fā)調(diào)試

    編譯/鏈接等腳本語法,只需要簡單配置參數(shù)、新建工程、增加代碼文件后,就可以開始編譯 和調(diào)試了。如果要生成靜態(tài)庫文件也只需要修改輸出格式,再編譯就可能生成.a 的文件。*附件:基于VSCode插件實現(xiàn)芯海32位MCU開發(fā)調(diào)試.pd
    發(fā)表于 05-16 10:46

    知語云全景監(jiān)測技術(shù):現(xiàn)代安全防護的全面解決方案

    可以幫助實現(xiàn)政務(wù)數(shù)據(jù)的安全保護,防止敏感信息泄露;對于個人用戶而言,知語云全景監(jiān)測技術(shù)可以提供更加全面的網(wǎng)絡(luò)安全保護,防范網(wǎng)絡(luò)釣魚、惡意軟件等安全威脅。 總之,知語云全景監(jiān)測技術(shù)作為
    發(fā)表于 02-23 16:40

    Embedded office發(fā)布安全插件V1.1版本!

    Embedded office很高興地宣布安全插件V1.1版本的發(fā)布了!現(xiàn)在通過外部設(shè)備或不同核心架構(gòu)的專門通道支持端到端受保護的安全通信。
    的頭像 發(fā)表于 02-20 11:12 ?563次閱讀

    代碼審計怎么做?有哪些常用工具

    代碼審計是一種通過檢查源代碼來發(fā)現(xiàn)潛在的安全漏洞的方法。 下面是常用的源代碼審計工具: 1、F
    發(fā)表于 01-17 09:35

    工業(yè)互聯(lián)網(wǎng)安全管控與審計系統(tǒng)“保障”工控系統(tǒng)網(wǎng)絡(luò)安全

    %攀升至2025年的55%。 ? 由國聯(lián)易安的研究團隊自主研發(fā)的工業(yè)互聯(lián)網(wǎng)安全審計系統(tǒng)從管理層面提供工業(yè)互聯(lián)網(wǎng)安全性的有效監(jiān)管,實現(xiàn)對工業(yè)控制系統(tǒng)的
    的頭像 發(fā)表于 01-15 17:34 ?471次閱讀
    工業(yè)互聯(lián)網(wǎng)<b class='flag-5'>安全</b>管控與<b class='flag-5'>審計</b>系統(tǒng)“保障”工控系統(tǒng)網(wǎng)絡(luò)<b class='flag-5'>安全</b>

    首批!中軟國際四款審計產(chǎn)品入選“高質(zhì)量智能審計工具目錄”

    ? ? 在中國信通院組織的智能審計工具能力驗證權(quán)威評估中, 中軟國際智審工具、審計智搜、協(xié)同文書編輯工具、非結(jié)構(gòu)化數(shù)據(jù)分析工具等四款審計產(chǎn)品順利通過檢驗 , 以突出的技術(shù)能力成功入選
    的頭像 發(fā)表于 12-16 16:10 ?1017次閱讀

    中軟國際企業(yè)審計解決方案獲得華為云聯(lián)合基線解決方案認證,共同推進“科技強審”建設(shè)

    ,長期秉持高質(zhì)量服務(wù)客戶、共建共贏的合作理念,得到了行業(yè)專家、客戶的高度認可。此次聯(lián)合基線解決方案的發(fā)布,將加速深化審計數(shù)字化和治理現(xiàn)代化,進一步夯實了科技強審、數(shù)據(jù)先行的國家戰(zhàn)略。 打造基線解決方案商業(yè)價值 華為
    的頭像 發(fā)表于 12-13 16:05 ?493次閱讀

    工字插件電感引腳破損的常見原因分析

    工字插件電感是一種應(yīng)用非常廣泛的電感產(chǎn)品,大家在使用工字插件電感的時候會遇到很多問題,比如選型的問題,或者是使用中出現(xiàn)的一些其他異常問題等。本篇我們來分析一個比較常見的問題——引腳破損!
    發(fā)表于 11-13 16:42 ?3次下載