軟件安全測試新武器(2)

發表于:2015-01-04來源:uml.org.cn作者:王宏點擊數: 標簽:安全測試
Sink:漏洞的引爆點。找出所有可能引發安全漏洞的代碼。這些代碼常常是根據外部傳入數據而執行特定任務的代碼。如SQL的查詢,HTML中輸出,命令的執行等

  Sink:漏洞的引爆點。找出所有可能引發安全漏洞的代碼。這些代碼常常是根據外部傳入數據而執行特定任務的代碼。如SQL的查詢,HTML中輸出,命令的執行等等。當數據被傳到Sink代碼時,Sink首先去檢查此數據是否帶有污染標記,如果沒有,則沒有安全問題。反之,則此處可能存在安全問題。然后再根據代碼執行的結果來判定是什么類別的安全問題。舉例來說明這一分析過程:

  userID = request.getParameter("user");

  ……

  2

  try {

  sql = "SELECT * FROM users " +"WHERE id='" + userID + "'";

  ……

  stmt.executeQuery(sql);

  }

  這段代碼在靜態分析過程中,request.getParameter()方法會被標記為一個 “污染源”: Source。stmt.executeQuery()方法會被標記為一個“引爆點”:Sink。當用戶輸入數據“user”通過 request.getParameter()進入程序并賦值予變量“userID”時, “userID”會被標記上“污染”標記。當用 “userID” 來構造變量“sql”時,“sql”會獲取“userID”的“污染”標記而成為被“污染”的數據。當“sql”被送到Sink函數 stmt.executeQuery()中執行的時候,Sink函數的檢測機制檢測到了“sql”有污染標記,從而判定此處可能引發一個安全問題,隨后再根據Sink函數執行“污染”數據“sql”的結果,這里是執行一個SQL查詢命令,依此可以判定此處可能會引發一個SQL—Injection的安全問題。

  三:Fortify Tracer

  全球最大的軟件安全廠商美國Fortify Software公司在根據從事多年的軟件安全領域的研究的基本上,根據上文講述的動態污染傳播的方法(Dynamic Taint Propagation)成功開發出來了新型安全測試產品——Fortify Tracer。

  圖2:Fortify Tracer 安全測試報告

  Fortify Tracer 利用動態污染傳播方法的特點,首先對軟件的二進制代碼進行插樁分析,找出所有的Source, Sink代碼,建立檢測機制。然后再對程序進行常規的功能測試。測試過程不需要測試人員輸入任何帶攻擊性的測試數據,就可以進行安全測試了,Fortify Tracer會根據功能測試自動地找出軟件中所有可能因外部輸入數據而造成的安全問題,并根據漏洞類類清晰地報告出來??偨YFortify racer的主要特點有:

  1.無需特殊的攻擊性測試數據,讓QA人員都可以做安全測試。解決測試缺乏安全知識,攻擊知識的難題。

  2.由于直接跟蹤外部輸入數據,所以能夠很真實、有效地找出系統中最嚴重,最關鍵的安全問題。

  3.與功能并行,速度快,效率高,很容易與現有測試流程結合。同時利用功能測試覆蓋率高的優點,大大提高了動態安全測試

  的覆蓋率。

  4.清晰而詳細的報告。如上圖2所示,Fortify Tracer根據漏洞類別清晰地報告出來,點擊報出的每一個漏洞,Fortify Tracer可以定位到該漏洞在什么地方產生的。它的Source和Sink分別在哪里等清晰而又詳細的報告。

  四、總結:

  良好的測試方法加上優秀的測試工具一定能夠更好地幫助軟件企業做好軟件安全測試。對于一個軟件企業,如果能將軟件質量測試與軟件安全測試有效地結合,不但能很好地解決軟件安全測試問題,同時也可以使得測試團隊的工作效率更高,那么基于Dynamic Taint Propagation測試方法的Fortify Tracer將是一個不錯的選擇。

原文轉自:http://www.uml.org.cn/Test/201001284.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97