資安JAVA(二五): Dynamic Analysis

來源:John Melton's Weblog
標題:YEAR OF SECURITY FOR JAVA – WEEK 25 – USE DYNAMIC ANALYSIS
作者:John Melton
Opps !! You killed me.
What is it and why should I care?

動態分析 就是分析執行中的程式。基本上,動態分析會自動執行應用程式,並進行分析。

動態分析當然不只限於應用程式的安全領域,還包括其他領域,但本篇文章將著重於安全領域。目前市面上的產品又稱為Dynamic Application Security Testing (or DAST)。

動態分析工具怎麼辦到的?Web應用程式安全的領域中,動態分析工具會模擬為使用者的瀏覽器,並送出具有攻擊目的 Request 給應用程式。不論攻擊是否成功,都能依據輸出結果,推論應用程式可能的弱點。以下是偵測 XSS 弱點的邏輯:
第一,瀏覽 Web 應用程式中的表單。
第二,填入javescript alert。
第三,送出表單。
第四,如果得到alert,則表單存在 XSS 弱點。

可以從這個簡單例子,看出動態分析工具的執行邏輯,而真正的動態分析工具可以做到更多測試。動態分析和靜態分析相反,他能提供攻擊行為真實可行的證據。做靜態分析時,開發者會以「其實我們有安全控制措施來防範 X 弱點,^_^」,然後忽視靜態分析報告。但動態分析是針對已經上線的應用程式進行測試,當你發現營運中網站的弱點,其他人很難忽視實際上被攻擊的可能性。


What should I do about it?

動態分析應列入開發流程中的一環。通常 QA 或企業流程測試會用到類似的工具。但如果你能將動態分析工具融入到早期開發過程(例如:定時自動建立並掃描網站),可以降低日後的修復成本。

因為目前工作的關係,作者無法推薦特定的產品。但要注意的是,動態分析產品各有利弊。使用前請務必考慮仔細。假使你想要試試看動態分析工具,作者建議可以找 Google 提供免費的 skipfish 來用。有人說這個工具不錯用,原始碼相對的少,有興趣可以下載來研究。

雖然動態分析工具不能替你解決安全問題,至少你的腰帶上又多了一把好用的老虎鉗,讓Web應用程式的修繕工作更容易。

參考資料
https://www.owasp.org/index.php/Dynamic_Analysis
http://en.wikipedia.org/wiki/Dynamic_program_analysis
http://code.google.com/p/skipfish/

———–———–
資安Java: 上一篇 || 下一篇
———–———–

留言

這個網誌中的熱門文章

資安JAVA(四):Session Cookie HTTPOnly Flag

以 SharpPcap 實作可收聽封包的 C# 程式

資安JAVA(八):HTTP強制傳輸安全(HSTS)