欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁 > 軟件開放 > 正文內(nèi)容

商橋源代碼(商橋登錄)

軟件開放1年前 (2023-12-29)440

Fortify是一款商業(yè)級的源碼掃描工具,其工作示意圖如下

首先Fortify對源碼進(jìn)行分析(需要編譯),然后提取出相關(guān)信息保存到某個位置,然后加載規(guī)則進(jìn)行掃描,掃描的結(jié)果保存為 .fpr 文件,然后用戶使用 GUI 程序?qū)Y(jié)果進(jìn)行分析,排查漏洞。

環(huán)境搭建

本文的分析方式是在 Linux 上對源碼進(jìn)行編譯、掃描,然后在 Windows 平臺對掃描結(jié)果進(jìn)行分析,所以涉及 Windows 和 Linux 兩個平臺的環(huán)境搭建。

環(huán)境搭建

環(huán)境搭建比較簡單,省略。

工具使用

本節(jié)涉及代碼

https://github.com/hac425xxx/sca-workshop/tree/master/fortify-example

Fortify的工作原理,首先會需要使用Fortify對目標(biāo)源碼進(jìn)行分析提取源代碼中的信息,然后使用規(guī)則從源碼信息中查詢出匹配的代碼。

首先下載代碼然后使用 sourceanalyzer 來分析源碼

/home/HKS/sca/fortify/bin/sourceanalyzer -b fortify-example make

其中

·-b 指定這次分析的 id

展開全文

·后面是編譯代碼時使用的命令,這里是 make

分析完代碼后再次執(zhí)行 sourceanalyzer 對源碼進(jìn)行掃描

/home/HKS/sca/fortify/bin/sourceanalyzer -b fortify-example -scan -f fortify-example.fpr

其中

·-b 指定掃描的 id 和之前分析源碼時的 id 對應(yīng)

·-scan 表示這次是采用規(guī)則對源碼進(jìn)行掃描

·-f 指定掃描結(jié)果輸出路徑,掃描結(jié)果可以使用 auditworkbench.cmd 進(jìn)行可視化的分析。

生成 .fpr 結(jié)果后可以使用 auditworkbench 加載分析

system命令執(zhí)行檢測

本節(jié)涉及代碼

https://github.com/hac425xxx/sca-workshop/tree/master/fortify-example/system_rules

漏洞代碼如下

int call_system_example(){ char *user = get_user_input_str(); char *xx = user; system(xx); return 1;}

首先通過 get_user_input_str 獲取外部輸入, 然后傳入 system 執(zhí)行。

1.RulePackID 表示這個規(guī)則文件的 ID, 設(shè)置符合格式的唯一字符串即可

2.RuleDefinitions 里面是這個xml文件中的所有規(guī)則,每個規(guī)則作為RuleDefinitions的子節(jié)點存在,比如示例中的 DataflowSourceRule 節(jié)點,表示這是一個 DataflowSource 規(guī)則,用于指定數(shù)據(jù)流跟蹤的 source

我們開發(fā)規(guī)則實際也只需要在 RuleDefinitions 中新增對應(yīng)的規(guī)則節(jié)點即可。

Fortify 也支持污點跟蹤功能,下面就介紹如何定義 Fortify 的污點跟蹤規(guī)則,首先我們需要定義 source ,DataflowSourceRule 規(guī)則用于定義污點源,不過這個只支持定義函數(shù)的一些屬性作為污點源,比如返回值、參數(shù)等,返回值是污點數(shù)據(jù),規(guī)則的解釋如下:

1.首先 RuleID 用于唯一標(biāo)識一條規(guī)則

2.FunctionIdentifier 用于匹配一個函數(shù), 其中包含一個 FunctionName 子節(jié)點,表示通過函數(shù)名進(jìn)行匹配,這里就是匹配 get_user_input_str 函數(shù)

3.然后 OutArguments 用于定義污點源, return 表示該函數(shù)的返回值是污點數(shù)據(jù),如果該節(jié)點的值為數(shù)字 n , 則表示第 n 個參數(shù)為污點數(shù)據(jù),n 從0開始計數(shù)。

定義好 source 點后,還需要定義 sink 點,DataflowSinkRule 規(guī)則用于定義 sink 點

這條規(guī)則的作用是設(shè)置 system 的第 0 個參數(shù)為 sink 點,規(guī)則解釋如下:

1.VulnCategory 是一個字符串,會在掃描結(jié)果中呈現(xiàn)

2.FunctionIdentifier 用于匹配一個函數(shù),這里就是匹配 system 函數(shù)

3.Sink 和 InArguments 用于表示函數(shù)的第 0 個參數(shù)為 sink 點

規(guī)則編寫完后,保存成一個 xml 文件,然后在對源碼進(jìn)行掃描時通過 -rules 指定自定義的規(guī)則文件即可

/home/hac425/sca/fortify/bin/sourceanalyzer -rules system.xml -b fortify-example -scan -f fortify-example.fpr -no-default-rules

ps: -no-default-rules 表示不使用Fortify的默認(rèn)規(guī)則,這里主要是在自己開發(fā)規(guī)則時避免干擾。

掃描的結(jié)果如下

規(guī)則作用是告知 Fortify 調(diào)用 custom_memcpy 函數(shù)時,第 1 個參數(shù)的污點數(shù)據(jù)會傳播到第 0 個參數(shù),結(jié)果如下

system命令執(zhí)行檢測 # 2

除了使用 DataflowSourceRule 、DataflowSinkRule 等規(guī)則來定義污點跟蹤相關(guān)的屬性外,F(xiàn)ortify還支持使用 CharacterizationRule 來定義污點跟蹤相關(guān)的特性。

其中對應(yīng)關(guān)系如下圖所示:

根據(jù)文檔的使用示例,修修改改很快就可以使用 CharacterizationRule 來搜索出涉及 system 命令執(zhí)行的代碼,代碼路徑如下

https://github.com/hac425xxx/sca-workshop/blob/master/fortify-example/system_rules/system_CharacterizationRule.xml

介紹具體的 CharacterizationRule 規(guī)則實現(xiàn)之前,先介紹一下 StructuralRule 規(guī)則,因為 CharacterizationRule 就是通過 StructuralRule 的語法來匹配代碼中的語法結(jié)構(gòu)。

StructuralRule 官方文檔中的內(nèi)容

Fortify在編譯/分析代碼過程中會把代碼中的元素(代碼塊、類、表達(dá)式、語句等)通過樹狀結(jié)構(gòu)體組裝起來形成一顆 structural tree,然后掃描的時候使用 Structural Analyzer 來解析 StructuralRule ,最后輸出匹配。

其中 StructuralMatch 使用 StructuralRule 的語法來匹配代碼,然后在 Definition 里面可以使用一些API(比如TaintSource)和匹配到的代碼元素來標(biāo)記污點跟蹤相關(guān)的熟悉,比如污點源、Sink點等,這里要注意一點:Definition 中可以訪問到 StructuralMatch 中聲明的所有變量,不論是通過 : 還是通過 [] 聲明。

上述規(guī)則的作用就是

1.首先通過 StructuralMatch 匹配到 get_user_input_str 的函數(shù)調(diào)用對象 fc.

2.然后在 Definition ,使用 TaintSource 設(shè)置 fc 為污點源,污點標(biāo)記為 PRIVATE.

規(guī)則解釋如下:

1.首先使用 StructuralMatch 匹配 fc 為 system 的函數(shù)調(diào)用, e 為 fc 的第0個參數(shù)

2.然后在 Definition 使用 TaintSink 設(shè)置 e 為sink點,污點標(biāo)記為 PRIVATE.

這樣就表示如果 system 函數(shù)調(diào)用的第 0 個參數(shù)為污點數(shù)據(jù)且污點數(shù)據(jù)中包含 PRIVATE 標(biāo)記,就會把這段代碼爆出來。

其他的規(guī)則(函數(shù)建模,clean_data函數(shù))也是類似這里不再介紹,最終掃描結(jié)果如下圖:

在開發(fā) Structural相關(guān)規(guī)則時可以在分析時使用 -Ddebug.dump-structural-tree 把代碼的 structural tree 打印出來,然后我們根據(jù)樹的結(jié)構(gòu)就可以比較方便的開發(fā)規(guī)則,完整命令行如下

商橋源代碼(商橋登錄)

/home/hac425/sca/fortify/bin/sourceanalyzer -no-default-rules -rules hello_array.xml -b fortify-example -scan -f fortify-example.fpr -D com.fortify.sca.MultithreadedAnalysis=false -Ddebug.dump-structural-tree 2 tree.tree

打印出來的示例如下

關(guān)于蘇州華克斯信息科技有限公司

專業(yè)的測試及安全產(chǎn)品服務(wù)提供商

Fortify | Webinspect | AppScan | SonarQube | 極狐GitLab

LoadRunner | UFT(QTP) | ALM(QC)

掃描二維碼推送至手機訪問。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。

本文鏈接:http://www.landcheck.net/post/74808.html

標(biāo)簽: 商橋源代碼

“商橋源代碼(商橋登錄)” 的相關(guān)文章

怎么刪除home下的目錄(誤刪home目錄)

怎么刪除home下的目錄(誤刪home目錄)

今天給各位分享怎么刪除home下的目錄的知識,其中也會對誤刪home目錄進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、執(zhí)行home命令可以刪除目錄嗎 2、如何刪除紅帽Linux的/home下的文件 3、/home 目錄下的文件如下圖所示,請問如要要...

手機游戲賬號出售平臺哪個好(有什么比較好的出售游戲賬號的平臺)

手機游戲賬號出售平臺哪個好(有什么比較好的出售游戲賬號的平臺)

本篇文章給大家談?wù)勈謾C游戲賬號出售平臺哪個好,以及有什么比較好的出售游戲賬號的平臺對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、手游賬號交易平臺哪個好,哪個平臺比較安全?? 2、游戲賬號出售平臺哪個好 3、游戲賬號在哪個網(wǎng)站交易比較好? 4、手游交易平臺哪個...

精靈寶可夢所有精靈的圖片圖鑒(精靈寶可夢精靈圖鑒圖片大全)

精靈寶可夢所有精靈的圖片圖鑒(精靈寶可夢精靈圖鑒圖片大全)

今天給各位分享精靈寶可夢所有精靈的圖片圖鑒的知識,其中也會對精靈寶可夢精靈圖鑒圖片大全進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、誰能告訴我神奇寶貝精靈大全圖鑒,帶圖片、帶這個精靈的簡介、身高、體重及屬性,謝謝了 2、寵物小精靈圖鑒大全 3、寵物...

國家商標(biāo)免費查詢官網(wǎng)入口(國家商標(biāo)網(wǎng)網(wǎng)上查詢)

國家商標(biāo)免費查詢官網(wǎng)入口(國家商標(biāo)網(wǎng)網(wǎng)上查詢)

本篇文章給大家談?wù)剣疑虡?biāo)免費查詢官網(wǎng)入口,以及國家商標(biāo)網(wǎng)網(wǎng)上查詢對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、商標(biāo)網(wǎng)查詢?nèi)肟?2、商標(biāo)免費查詢?nèi)肟?3、商標(biāo)局官網(wǎng)商標(biāo)查詢? 商標(biāo)網(wǎng)查詢?nèi)肟?商標(biāo)查詢 ;bd_vid=6628772045007563163國家...

直播推廣員犯法嗎(直播間發(fā)廣告犯法嗎)

直播推廣員犯法嗎(直播間發(fā)廣告犯法嗎)

本篇文章給大家談?wù)勚辈ネ茝V員犯法嗎,以及直播間發(fā)廣告犯法嗎對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、網(wǎng)絡(luò)主播犯法么 2、引流推廣犯法嗎 3、游戲推廣員是違法的嗎?? 4、三部門發(fā)文進(jìn)一步規(guī)范網(wǎng)絡(luò)直播營利行為,對于違反行為將會如何處罰? 網(wǎng)絡(luò)主播犯法么...

交易貓手游游戲交易平臺(交易貓網(wǎng)絡(luò)游戲交易平臺)

交易貓手游游戲交易平臺(交易貓網(wǎng)絡(luò)游戲交易平臺)

今天給各位分享交易貓手游游戲交易平臺的知識,其中也會對交易貓網(wǎng)絡(luò)游戲交易平臺進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、交易貓手游交易怎么樣? 2、交易貓上的游戲幣交易是怎么交易的 3、交易貓靠譜嗎? 4、交易貓可靠嗎? 5、交易貓交易存...