日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用Fortify SCA分析代码漏洞

發布時間:2024/4/17 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用Fortify SCA分析代码漏洞 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://www.cnblogs.com/hyddd/archive/2009/02/23/1396790.html

?

hyddd原創,轉載請說明。

  上次介紹了用FindBugs輔助分析代碼漏洞,這次換了一個工具:Fortify SCA Demo 4.0.0。Fortify是一個在安全方面挺出名的公司,這里就不多說了。先介紹一下主角:Fortify SCA Demo 4.0.0,雖然現在不知道Fortify SCA的版本是多少,但可以肯定的是,Fortify SCA Demo 4.0.0是一個比較舊的Fortify SCA分析器了,并且還是Demo版的,所以無論是界面還是功能上都是比較簡陋的。由于Fortify SCA不是開源的工具,這里就不提供下載了,大家可以上Fortify主頁申請:>。

  這次演示的是用Fortify SCA靜態分析Java代碼,和FindBugs不同的是Fortify SCA還可以靜態分析C/C++,.NET和PL/SQL等代碼。

一.Fortify SCA靜態分析原理

  由于我不是寫這個東東的人,并且接觸這個工具時間也有限,所以對它的工作原理認知比較淺,很多是通過它的說明文檔得來的。

  Fortify SCA靜態分析分兩個階段:

  1.Translation:

    把各種語言的源代碼轉為一種統一的中間語言代碼。

  2.Analysis:

    根據中間代碼分析代碼漏洞,并得出報告。

  Fortify有很多個語言轉換器,但核心的靜態分析引擎只有一套。

二.Fortify SCA的使用

  先看看Fortify SCA Demo 4.0.0的目錄:

  

  這個是Fortify SCA Demo 4.0.0的目錄,這里主要有兩個文件:auditworkbench.cmd和sourceanalyzer.exe,auditworkbench.cmd是查看靜態分析報告的工具,sourceanalyzer.exe是靜態代碼分析器。這里我們還看到了一個FindBugs的目錄,這是因為這個版本的Fortify集成了此功能,你可以通過傳參給sourceanalyzer.exe調用FindBugs(但我一般不這么做,可以直接使用FindBugs的話,為什么還要通過sourceanalyzer.exe調呢?)。

  開始掃描靜態分析,首先CMD進入Java源代碼目錄,然后“H:\Fortify\sourceanalyzer.exe -classpath "**/*.jar" -f test.fpr .”,在當前目錄得到結果報告test.fpr。

  用auditworkbench打開test.fpr,效果如下圖:

  

  這里auditworkbench主要分4部分:

  1.左上(Issues):是警告分類,這里Fortify分了3了,嚴重程度由高至低分別是:hot,warning,info。下面是本次掃描的問題列表,雙擊即可定位問題代碼。

  2.右上:源代碼。雙擊問題列表即可自動定位代碼。

  3.左下(analysis trace):問題處的Trace信息,告訴你問題出現在哪里文件第幾行。

  4.右下(details):問題的詳細說明,還有示范代碼。

OK,現在看看其他地方,比如:menubar(Options)-->Show View-->Other,你會看到下圖:

  

  這里我看到了一個很像eclipse管理插件的窗口,噢,難道.....OK,讓我看看再找找Fortify的目錄看看,找到了這個東西:

  

  這里發現Fortify SCA真的是一個Eclipse插件,不過當我興沖沖地把這個插件放進myeclipse插件庫并重啟后,發現這個不能識別:<,好像還是差了點東西,這個以后研究。

  這個工具還有很多功能,但暫且先寫這多。

三.Fortify SCA Demo 4.0.0與FindBugs(1.3.7.20081230)對比

  今天試著對同一份代碼進行靜態掃描,發現FindBugs找到的問題種類,數量都比Fortify SCA Demo 4.0.0多很多:

  FindBugs發現問題種類有:20多種

  Fortify SCA Demo 4.0.0發現問題種類:5種

  在分析發現問題后,發現了一個有趣現象,Fortify SCA Demo 4.0.0和FindBugs發現的BUG類型是完全不同,可以說是互補的!其中,FindBugs發現的問題相對比較重要!但FindBugs只是針對Java代碼的靜態分析器,而Fortify SCA則支持更多的語言,并且Fortify SCA對發現問題的解釋相對比較清晰。

  導致這個問題的原因可能是:Fortify SCA Demo 4.0.0這個版本比較老,并且是試用版,規則庫和靜態分析引擎都不全......如果是最新的Fortify SCA商業版,應該是不錯,8個分析不同類型問題的靜態分析引擎,龐大的規則庫.......可是俺這種窮人還沒機會試:<

  對比兩個Java靜態分析工具,Fortify SCA Demo 4.0.0和FindBugs(1.3.7.20081230),使用FindBugs是不錯的選擇,它相對比較強些,但如果可以兩個都用當然效果更好:>

四.Fortify SCA的Bug類型及解釋說明

  雖然Fortify SCA對問題已經有比較清晰的說明,但是還是決定自己總結,這樣會更加清晰。(相關問題解釋說明稍后補上)

Hot:

//...

Warning:

[Structural]Erroneous String Compare

[Structural]System Information Leak:HTML Comment in JSP

[Semantic]System Information Leak

[Data Flow]System Information Leak

[Data Flow]Denial of Servie

[Control Flow]Null Dereference

[Control Flow]Unreleased Resource

[Control Flow]Missing Check for Null Parmater



Info:

[Structural]Poor Logging Practice:User of a System Output Stream

[Structural]Poor Error Handing:Empty Catch Block

[Structural]Poor Error Handing:Overly Broad Catch

[Structural]Poor Error Handing:Overly Broad Throws

[Structural]J2EE Bad Practices:Leftover Debug Code

[Structural]Dead Code:Unused Method

[Semantic]Insecure Randomness

[Semantic]Denial of Service

[Semantic]SQL Injection

?

//...

?

五.參考文檔:

1.Fortify規則庫:http://www.fortify.com/vulncat/zh_CN/vulncat/index.html

2.相關資源:http://baixar.agox.net/gratis/Fortify-2-2-5.htm

作者:hyddd
出處:http://www.cnblogs.com/hyddd/
本文版權歸作者所有,歡迎轉載,演繹或用于商業目的,但是必須說明本文出處(包含鏈接)。

總結

以上是生活随笔為你收集整理的用Fortify SCA分析代码漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。