一直被問到,SQL Injection 及 XSS attact 如何防範?
雖然知道,但要一個個解釋,總是一個大工程,最好有一個工具,能幫忙檢查同事的程式。檢查出來後再來解釋為何「這段程式容易被攻擊」。
CAT.NET 正好是我所需要的。畢竟我都是使用 Visual Studio 來開發啊!
安裝後,打開 Visual Studio, 在功能表 tools 下會多出一個 CAT.NET Code Analysis.
執行後,按下方圈選的圖示,以進行設定
為何要進行設定呢?以我的solution為例,共23個專案。CAT.NET 是分析專案輸出的 Assembly 來進行檢查的。它甚至會把測試專案也拿來分析。
因此,設定太多專案的話,目前很容易 Out of memory 的。
按Targets頁,可以看到多個Assembly輸出 。使用 Add/Remove 來移除不甚重要的 assembly。如果不信邪,就會發生如下的訊息。
Code analysis output report: C:\MySolutionFolder\MicrosoftACECodeAnalysisReport.xml
Executing code analysis...
Error: Exception of type 'System.OutOfMemoryException' was thrown.
進行分析後,就會出現一堆的 Issue。天啊,怎麼會這麼多?
雙擊 Issue 後,Source Code Editor 就會出現有問題的那一行原始碼。由於我們的程式,都會進行重構/模組化,因此,以人工的方式進行分析是相當辛苦的。
CAT.NET 會將這個 Issue 的呼叫過程,由Data Flow Start 直到 Data Flow End ,整個歷程輸出到右方區塊。(如下圖)
因此,如上例,該段程式經過了9個 function call,才完成了可能被攻擊的漏洞。
天啊!再資深的天才,也沒有辦法以人工的方式將所有的漏洞一個個找出來的。
目前只是 CTP 版,因此效能上比較差,記憶體也用的很兇。
未來應該會整合到 Visual Studio 的 Code Analysis 中
沒有留言:
張貼留言