|
公司基本資料信息
|
|||||||||||||||||||||||||
Fortify軟件
強化靜態代碼分析器
使軟件更快地生產
如何修正HP Fortify SCA報告中的弱點?
HP Fortify SCA,Lucent Sky AVM以及法規遵循
如果你的組織的法規遵循要求要修正HP Fortify SCA找到的所有結果(或是符合特定條件的結果,例如嚴重和高風險),Lucent Sky AVM可以被調整來找一一的結果,并提供更多的功能 - 修正多達90%的弱點。
有效果的報告
許多靜態程序碼掃描工具是由資訊安全專家所設計來給其他的資訊安全專家使用。因此,它們需要人士操作,而且產出的報告和結果難以實際幫助開發者。Lucent Sky AVM提供為開發提供分析結果以及即時修復(能夠直接修正如跨站腳本和SQL注入等常見弱點的程式碼片段),讓不是資訊安全專家的使用者能夠使用強化程式碼的安全。
對于需要法規遵循報告的企業來說,Lucent Sky AVM能協助開發與資訊安全團隊通過HP Fortify SCA的檢測并減少誤報帶來的困擾,同時大幅地降低強化應用程序安全所需要的時間和精力。進一步了解Lucent Sky AVM和靜態程序碼掃描工具報告的差別,請下載報告比較表。
修正HP Fortify SCA報告中的弱點可以輕松快速
申請測試來親自體驗Lucent Sky AVM。想知道Lucent Sky AVM可以如何在你的環境中和HP Fortify SCA共享,別再等了!

Fortify軟件
強化靜態代碼分析器
使軟件更快地生產
如何解決Fortify報告的掃描問題
已經注意到以下錯誤消息,但是軟件保障計劃辦公室還沒有關于如何解決這些問題的指導。建議嘗試使用以下步驟解決這些問題:
生成日志文件并查看它以獲取有關該問題的更多信息
打開支持票幫助
聯系Fortify技術支持(fortifytechsupport@)尋求幫助
如果這些步驟無法解決問題,請將您與Fortify技術支持部門的通訊連同V&V安全代碼審查資料一起提供,并在準備報告時將其納入考量
請注意,這不是錯誤消息的完整列表,并將更多地變得更加廣泛:
錯誤代碼
錯誤信息
筆記
1意外的異常:高階分析不適用
101文件。 。 。沒有找到N / A
1002,1003解析文件N / A時出現意外的異常
1005數據流分析期間的意外異常N / A
1009構建調用圖N / A時出現意外異常
1038初始分析階段N / A中出現意外異常
1142在內部存儲器管理期間發生意外錯誤。掃描將繼續,但內存可能會迅速耗盡,掃描結果可能不完整。 N / A
1202無法解析符號。 。 。 N / A
1207配置文件。 。 。無法找到網絡應用程序N / A
1211無法解析類型N / A
1213無法解析字段N / A
1216無法找到導入(?)N / A
1227嘗試加載類路徑存檔時發生異常...文件可能已損壞或無法讀取。 N / A
1228屬性文件。 。 。以連續標記結束。該文件可能已損壞。 N / A
1232格式錯誤或IO異常阻止了類文件。 。 。從被讀取不適用
1236無法將以下aspx文件轉換為分析模型。 N / A
1237以下對java符號的引用無法解決。某些實例可以通過調整提供給Fortify的類路徑來解決,但是在所有情況下都不能解決此問題。
1551,1552多個ColdFusion錯誤(無法解析組件,找不到函數,意外令牌等)可以與使用不支持的ColdFusion版本相關。
12002找不到Web應用程序的部署描述符(web.xml)。 N / A
12004 Java前端無法解析以下包含N / A
12004 Python前端無法解析以下導入N / A
13509規則腳本錯誤可能是Fortify錯誤,但需要確認
某些錯誤消息可能是Fortify工具中的問題的結果。確認的問題以及如何處理這些問題,都會發布在OISSWA博客中,以及有關解析/語法錯誤的技術說明。已確認的Fortify問題也在本頁頂部的表格中注明。
如果您在解決警告或錯誤消息時遇到問題,請參閱我們的常見問題解答以獲取有關打開支持票證的信息。
參考
參見參考技術說明

Fortify軟件
強化靜態代碼分析器
使軟件更快地生產
“將FINDBUGS XML轉換為HP FORTIFY SCA FPR | MAIN | CA特權身份管理員安全研究白皮書?
強化針對JSSE API的SCA自定義規則濫用
日期:2017年6月8日上午7:00
在提供GDS安全SDLC服務的同時,我們經常開發一系列定制安全檢查和靜態分析規則,以檢測我們在源代碼安全評估中發現的不安全的編碼模式。這些模式可以代表特定于正在評估的應用程序,其架構/設計,使用的組件或甚至開發團隊本身的常見安全漏洞或獨特的安全弱點。這些自定義規則經常被開發以針對特定語言,并且可以根據客戶端使用的或者舒服的方式在特定的靜態分析工具中實現 - 以前的例子包括FindBugs,PMD,Visual Studio以及Fortify SCA。
使用Findbugs審核不安全代碼的Scala
為Spring MVC構建Fortify自定義規則
用PMD保護發展
在本博客文章中,我將專注于開發Fortify SCA的PoC規則,以針對基于Java的應用程序,然而,相同的概念可以輕松擴展到其他工具和/或開發語言。
影響Duo Mobile的近漏洞證實了Georgiev等人的分析,他們展示了各種非瀏覽器軟件,庫和中間件中SSL / TLS證書驗證不正確的嚴重安全漏洞。
具體來說,在這篇文章中,我們專注于如何識別Java中SSL / TLS API的不安全使用,這可能導致中間人或欺騙性攻擊,從而允許惡意主機模擬受信任的攻擊。將HP Fortify SCA集成到SDLC中可以使應用程序定期有效地掃描漏洞。我們發現,由于SSL API濫用而導致的問題并未通過開箱即用的規則集確定,因此我們為Fortify開發了一個全mian的12個自定義規則包。

Fortify軟件
強化靜態代碼分析器
使軟件更快地生產
“將FINDBUGS XML轉換為HP FORTIFY SCA FPR | MAIN | CA特權身份管理員安全研究白皮書?
強化針對JSSE API的SCA自定義規則濫用
允許所有的行動
應用程序不檢查服務器發送的數字證書是否發送到客戶端正在連接的URL。
Java安全套接字擴展(JSSE)提供兩組API來建立安全通信,一個HttpsURLConnection API和一個低級SSLSocket API。
HttpsURLConnection API默認執行主機名驗證,再次可以通過覆蓋相應的HostnameVerifier類中的verify()方法來禁用(在GitHub上搜索以下代碼時,大約有12,800個結果)。
HostnameVerifier allHostsValid = new HostnameVerifier(){
public boolean verify(String hostname,SSLSession session){
返回真
}
};
SSLSocket API不開箱即可執行主機名驗證。以下代碼是Java 8片段,僅當端點標識算法與空字符串或NULL值不同時才執行主機名驗證。
private void checkTrusted(X509Certificate [] chain,String authType,SSLEngine engine,boolean isClient)
throws CertificateException {
...
String identityAlg = engine.getSSLParameters()。
getEndpointIdentificationAlgorithm();
if(identityAlg!= null && identityAlg.length()!= 0){
checkIdentity(session,chain [0],identityAlg,isClient,
getRequestedServerNames(發動機));
}
...
}
當SSL / TLS客戶端使用原始的SSLSocketFactory而不是HttpsURLConnection包裝器時,識別算法設置為NULL,因此主機名驗證被默認跳過。因此,如果攻擊者在客戶端連接到“”時在網絡上具有MITM位置,則應用程序還將接受為“some-evil-”頒發的有效的服務器證書。
這種記錄的行為被掩埋在JSSE參考指南中:
“當使用原始SSLSocket和SSLEngine類時,您應該始終在發送任何數據之前檢查對等體的憑據。 SSLSocket和SSLEngine類不會自動驗證URL中的主機名與對等體憑
