自拍偷在线精品自拍偷|国产无码一区二区久久|最新版天堂资源中文官网|国产精品第一页爽爽影院|国产精品一区二区av不卡|久久久波多野av一区无码|国产欧美日本亚洲精品一4区|亚洲精品天堂在线观看2020

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

收藏本店源代碼(收藏店鋪怎么做)

軟件開(kāi)放9個(gè)月前 (05-06)350

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

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

環(huán)境搭建

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

收藏本店源代碼(收藏店鋪怎么做)

環(huán)境搭建

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

工具使用

本節(jié)涉及代碼

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

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

首先下載代碼然后使用 sourceanalyzer 來(lái)分析源碼

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

其中

·-b 指定這次分析的 id

展開(kāi)全文

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

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

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

其中

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

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

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

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

system命令執(zhí)行檢測(cè)

本節(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;}

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

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

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

我們開(kāi)發(fā)規(guī)則實(shí)際也只需要在 RuleDefinitions 中新增對(duì)應(yīng)的規(guī)則節(jié)點(diǎn)即可。

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

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

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

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

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

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

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

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

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

規(guī)則編寫(xiě)完后,保存成一個(gè) xml 文件,然后在對(duì)源碼進(jìn)行掃描時(shí)通過(guò) -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ī)則,這里主要是在自己開(kāi)發(fā)規(guī)則時(shí)避免干擾。

掃描的結(jié)果如下

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

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

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

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

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

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

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

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

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

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

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

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

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

規(guī)則解釋如下:

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

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

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

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

在開(kāi)發(fā) Structural相關(guān)規(guī)則時(shí)可以在分析時(shí)使用 -Ddebug.dump-structural-tree 把代碼的 structural tree 打印出來(lái),然后我們根據(jù)樹(shù)的結(jié)構(gòu)就可以比較方便的開(kāi)發(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

打印出來(lái)的示例如下

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

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

Fortify | Webinspect | AppScan | SonarQube | 極狐GitLab

LoadRunner | UFT(QTP) | ALM(QC)

掃描二維碼推送至手機(jī)訪問(wèn)。

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

本文鏈接:http://m.thonggone.com/post/111808.html

標(biāo)簽: 收藏本店源代碼

“收藏本店源代碼(收藏店鋪怎么做)” 的相關(guān)文章

ja**軟件開(kāi)發(fā)工具(jappo)

ja**軟件開(kāi)發(fā)工具(jappo)

今天給各位分享ja**軟件開(kāi)發(fā)工具的知識(shí),其中也會(huì)對(duì)jappo進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、Java中常用的開(kāi)發(fā)工具有哪些 2、java軟件開(kāi)發(fā)用什么軟件? 3、軟件開(kāi)發(fā)工具有哪些 4、常見(jiàn)的十五種Java開(kāi)發(fā)工具是什么,有什么...

做一個(gè)小程序商城大概需要多少錢(qián)(一個(gè)商城類(lèi)小程序多少錢(qián))

做一個(gè)小程序商城大概需要多少錢(qián)(一個(gè)商城類(lèi)小程序多少錢(qián))

本篇文章給大家談?wù)勛鲆粋€(gè)小程序商城大概需要多少錢(qián),以及一個(gè)商城類(lèi)小程序多少錢(qián)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、小程序開(kāi)發(fā)大概要花多少錢(qián) 2、搭建一個(gè)小程序商城費(fèi)用大概要多少? 3、做一個(gè)小程序商城大概需要多少錢(qián)? 4、一個(gè)商城類(lèi)型的小程序大概多少...

安卓軟件開(kāi)發(fā)公司(安卓軟件開(kāi)發(fā)公司排名)

安卓軟件開(kāi)發(fā)公司(安卓軟件開(kāi)發(fā)公司排名)

今天給各位分享安卓軟件開(kāi)發(fā)公司的知識(shí),其中也會(huì)對(duì)安卓軟件開(kāi)發(fā)公司排名進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、安卓聊天軟件開(kāi)發(fā),專(zhuān)業(yè)app開(kāi)發(fā)公司? 2、APP軟件開(kāi)發(fā)公司有哪些 3、安卓系統(tǒng)是誰(shuí)開(kāi)發(fā)的?哪個(gè)公司? 4、開(kāi)發(fā)安卓app的公司...

免費(fèi)的h5游戲制作平臺(tái)(h5制作平臺(tái)免費(fèi))

免費(fèi)的h5游戲制作平臺(tái)(h5制作平臺(tái)免費(fèi))

今天給各位分享免費(fèi)的h5游戲制作平臺(tái)的知識(shí),其中也會(huì)對(duì)h5制作平臺(tái)免費(fèi)進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、微信H5頁(yè)面免費(fèi)制作工具有哪些,求各位大神解答 2、H5制作平臺(tái)哪個(gè)比較好用? 3、H5制作平臺(tái)有哪些 4、像云來(lái)一樣,免費(fèi)好用...

vip解析網(wǎng)站全民解析(VIP解析網(wǎng))

vip解析網(wǎng)站全民解析(VIP解析網(wǎng))

今天給各位分享vip解析網(wǎng)站全民解析的知識(shí),其中也會(huì)對(duì)VIP解析網(wǎng)進(jìn)行解釋?zhuān)绻芘銮山鉀Q你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、vip視頻解析,是怎么回事?怎么弄的? 2、全民解析vip視頻哪個(gè)好 3、全民vip視頻解析后如何下載視頻 4、vip解析網(wǎng)站都安全...

es文件瀏覽器怎么看電腦視頻(手機(jī)es文件瀏覽器怎么看視頻)

es文件瀏覽器怎么看電腦視頻(手機(jī)es文件瀏覽器怎么看視頻)

本篇文章給大家談?wù)別s文件瀏覽器怎么看電腦視頻,以及手機(jī)es文件瀏覽器怎么看視頻對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、es文件瀏覽器 如何連續(xù)播放局域網(wǎng)視頻? 2、如何在es文件瀏覽器打開(kāi)人人視頻 3、如何用ES文件瀏覽器 看電腦里面的文件 4、es...