使用 Rational AppScan 保證 Web 應用的安全性,第 2 部分: 使用 Rational AppScan 應對 Web 應用攻擊

1 當前 Web 安全現狀

互聯網的發展歷史也能夠說是攻擊與防禦不斷交織發展的過程。目前,全球因特網用戶已達 13.5 億,用戶利用網絡進行購物、銀行轉帳支付和各類軟件下載,企業用戶更是依賴於互聯網構建他們的核心業務,對此,Web 安全性已經提升一個空前的高度。web

然 而,現實世界中,針對網站的攻擊愈演愈烈,頻頻得手。CardSystems 是美國一家專門處理信用卡交易資料的廠商。該公司爲萬事達 (Master)、維薩 (Visa) 和美國運通卡等主要信用卡組織提供數據外包服務,負責審覈商家傳來的消費者信用卡號碼、有效期等信息,審覈後再傳送給銀行完成付款手續。這家公司爲超過 10 萬家企業處理信用卡信息,每一年業務金額超過 150 億美圓。這家已有 15 年曆史的公司怎麼也沒想到,竟然有黑客惡意侵入了它的電腦系統,竊取了 4000 萬張信用卡的資料。這些資料包括持卡人的姓名、帳戶號碼等。這是美國有史以來最嚴重的信用卡資料泄密事件。這次攻擊事件不只僅對消費者,對公司形成了巨大 的損失,甚至對美國的信用卡產業產生了嚴重的影響!sql

1.1 Web 安全的認識誤區

然而什麼纔是 Web 安全呢,或者說什麼樣的網站纔是安全的呢?用戶每每有一些常見的誤區。數據庫

「Web 網站使用了防火牆,因此很安全」
不管是應用級仍是端口級的防火牆針對的都是網絡層面的攻擊,經過設置可訪問的端口或者應用,把惡意訪問排除在外,然而如何鑑別善意訪問和惡意訪問是一個問題。訪問一旦被容許,後續的安全問題就不是防火牆能應對了。
「Web 網站使用了 IDS,因此很安全」
經過模式識別對網絡層面的攻擊作出防禦措施。然而相似於防火牆,經過利用程序漏洞,經過正常鏈接進行攻擊的訪問沒法被識別和處理。
「Web 網站使用了 SSL 加密,因此很安全」
SSL 對網站發送和接收的信息都進行加密處理,然而 SSL 沒法保障存儲在網站裏的信息的安全和網站訪問者的隱私信息。採用 64 位甚至 128 位 SSL 加密的網站被黑客攻陷的例子舉不勝舉。
「漏洞掃描工具沒發現任何問題,因此很安全」
當前漏洞掃描工具已經被普遍使用去查找一些明顯的網絡安全漏洞。同理,掃描工具沒法對網站應用程序進行檢測,沒法查找應用自己的漏洞。
「咱們每季度都會聘用安全人員(Pen Tester)進行審計,因此很安全」
人爲的檢測考察不只僅效率低,不可控因素也較多,同時對於代碼變動頻繁的今天,Pen Tester 也沒法知足全面的安全需求

然 而這些方法遠遠不能保障 Web 應用的安全,針對應用層面的攻擊能夠輕鬆的突破防火牆保護的網站。例如:最爲常見的 SQL 注入攻擊表現層面徹底是正常的數據交互查詢。對於防火牆或者入侵檢測系統而言,這是最爲正常的訪問鏈接,沒有任何特徵可以說明此種訪問鏈接存在惡意攻擊。 因此,一些簡單的 SQL 注入語句就可使得裝備昂貴網絡安全設備的網站被輕鬆攻破。後端

1.2 Web 安全現狀

令 人驚詫的是,幾乎全部關注 Web 安全領域的人都會存在着上面咱們闡述的誤區,而當前 Web 的安全現狀也同時證實了這些誤區的廣泛性。「防火牆、IDS 是主要安全手段,SSL 保證了安全性,…」與之相對的是:互聯網發展到今天,75%的安全問題居然是出如今應用程序自己。正如上面介紹的 SQL 注入攻擊同樣,這是防火牆、SSL、入侵檢測系統沒法預防、解決、和應對的!安全

以下圖所示,目前安全投資中,只有 10%花在瞭如何防禦應用安全漏洞,而這倒是 75%的攻擊來源――10% Vs 75%,這是多麼大的差距!這也是形成當前 Web 站點頻頻被攻陷的一個重要因素。服務器

圖 1. 當前安全現狀統計分析圖

當前安全現狀統計分析圖

那 麼,什麼樣的防禦纔是一個完整的解決方案呢?經過附圖 2 咱們能夠看到,一個完整的 Web 防禦不只僅包含了常見的 IDS、Firewall 等防禦手段,更須要針對應用自己作好安全防禦,這也是解決 75%安全漏洞的手段。那麼什麼樣的攻擊是防火牆、IDS、或者 SSL 沒法應對的呢,他們又是如何利用應用自己的漏洞進行攻擊的呢?下面咱們將作詳細的闡述。網絡

圖 2. Web 應用的網絡防禦

Web 應用的網絡防禦

常見針對 Web 應用攻擊的十大手段

目前經常使用的針對應用漏洞的攻擊已經多達幾百種,最爲常見的攻擊爲下表列出的十種。session

十大攻擊手段
應用威脅 負面影響 後果
跨網站腳本攻擊 標識盜竊,敏感數據丟失… 黑客能夠模擬合法用戶,控制其賬戶。
注入攻擊 經過構造查詢對數據庫、LDAP 和其餘系統進行非法查詢。 黑客能夠訪問後端數據庫信息,修改、盜竊。
惡意文件執行 在服務器上執行 Shell 命令 Execute,獲取控制權。 被修改的站點將全部交易傳送給黑客
不安全對象引用 黑客訪問敏感文件和資源 Web 應用返回敏感文件內容
僞造跨站點請求 黑客調用 Blind 動做,模擬合法用戶 黑客發起 Blind 請求,要求進行轉賬
信息瀉露和不正確的錯誤處理 黑客獲得詳細系統信息 惡意的系統檢測可能有助於更深刻的攻擊
被破壞的認證和 Session 管理 Session token 沒有被很好的保護 在用戶推出系統後,黑客可以盜竊 session。
不安全的木馬存儲 過於簡單的加密技術致使黑客破解編密碼 隱祕信息被黑客解密盜竊
不安全的通信 敏感信息在不安全通道中以非加密方式傳送 黑客能夠經過嗅探器嗅探敏感信息,模擬合法用戶。
URL 訪問限制失效 黑客能夠訪問非受權的資源鏈接 黑客能夠強行訪問一些登錄網頁、歷史網頁。

咱們經過注入缺陷(Injection Flaws,排名第二的攻擊)對攻擊原理進行一下說明。app

在 網站的應用中須要應用到大量的數據庫查詢檢索等功能,例如最簡單的例子是網站登錄,用戶須要輸入登錄名稱和密碼進行登錄認證。在早期的開發中一般使用最爲 簡單的 select 語句實現此功能,即 select * from users where username = 「XXXX」 and password = 「XXXX」( 假設數據庫 user 表名稱爲 users,用戶名和密碼字段名稱爲 username 和 password)。經過截取用戶在文本框中錄入的字符串,再進行拼接,造成 select 語句,最終若是表 users 中有符合此條件的記錄(即該用戶名和密碼),系統將會返回有效記錄,從而容許登錄系統中。工具

然而,此開發方法隱藏了一個巨大的漏洞,黑客能夠經過 SQL 注入攻擊攻入網站。以下圖所示,黑客在登錄界面錄入的不是用戶名,而是一串字符串 (’or 1=1 --)。黑客的目的是在本來應該錄入用戶的地方錄入了一串字符串,致使整個 select 語句發生了變化:select * from users where username=’’or 1=1。熟知 Select 語句的人知道,在條件語句中,不管用戶名稱是否正確,因爲 1=1 永遠是正確的,因此 select 將會將全部 users 表中的數據返回。最終的結果是,黑客登錄到這個系統中。經過 SQL 注入攻擊,黑客能夠輕鬆的敲入一些 sql 語句登錄進網站、對隱祕數據進行查詢等等。

圖 3. 攻擊舉例

攻擊舉例

通 過上述原理描述咱們能夠看到,對於 SQL 注入攻擊不管是防火牆仍是入侵檢測系統都沒法預防和阻止,惟一的辦法是將應用自己的漏洞關閉。例如經過參數的傳遞配合存貯過程來實現數據庫查詢,這比動態 的構建 sql 語句安全不少。好比在 ASP.net 中經過下面的程序將會避免攻擊:

' Visual Basic example
 Dim DS As DataSet
 Dim MyConnection As SqlConnection
 Dim MyCommand As SqlDataAdapter
 Dim SelectCommand As String = "select * from users where username = @username"
 ...
 MyCommand.SelectCommand.Parameters.Add(New SqlParameter("@username", 
 SqlDbType.NVarChar, 20))
 MyCommand.SelectCommand.Parameters("@username").Value = UserNameField.Value
 // C# example
 String selectCmd = "select * from Authors where state = @username";
 SqlConnection myConnection = new SqlConnection("server=...");
 SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);
 myCommand.SelectCommand.Parameters.Add(new SqlParameter("@username", 
 SqlDbType.NVarChar, 20));
 myCommand.SelectCommand.Parameters["@username"].Value = UserNameField.Value;

除 了注入缺陷攻擊,常見的應用攻擊還有跨網站腳本攻擊、惡意文件執行攻擊、不安全直接對象應用攻擊、跨站點請求僞造攻擊、信息泄漏以及利用錯誤處理機制展開 攻擊、等等。每種攻擊都相似與 SQL 注入攻擊,根據應用程序自己的漏洞,對系統進行破壞工做,例如:獲取系統權限、獲取機密信息、模擬合法用戶等等。

綜 上所述,這些利用 Web 應用漏洞的攻擊是 Web 安全最主要的威脅來源,75%的攻擊來源於此,只有對應用程序自己進行改造才能避免攻擊。然而,如何發現這些應用漏洞是保證安全的第一前提,咱們如何以最 快最有效的方式發現 Web 應用自己的漏洞呢?沒有高效檢測手段,安全的 Web 應用將成爲水中花鏡中月。

3 經過 Rational AppScan 如何應對網站攻擊

IBM Rational AppScan 正是應對這一挑戰的利器。

如 下圖所示,Rational AppScan 工做方式比較簡單,就像一個黑盒測試工具同樣,測試人員不須要了解 Web 應用自己的結構。AppScan 擁有龐大完整的攻擊特徵庫,經過在 http request 中插入測試用例的方法實現幾百中應用攻擊,再經過分析 http response 判斷該應用是否存在相應的漏洞。整個過程簡單易懂高效,測試人員能夠快速的定位漏洞所在的位置,同時 AppScan 能夠詳細指出該漏洞的原理以及解決該漏洞的方法,幫助開發人員迅速修復程序安全隱患。對於攻擊的特徵以及測試用例用戶不須要花費大量的精 力,WatchFire 團隊按期的對特徵庫進行更新,隨着保證與業界的同步,最大化的提升用戶的工做效率。

圖 4. Rational AppScan 工做示意圖

Rational AppScan 工做示意圖

下面咱們經過簡單的實例介紹一下 Rational AppScan 的使用:

  • 定義掃描

首先肯定掃描站點的 URL,根據默認的模板配置嚮導,肯定掃描的整個站點模型以及你想掃描的漏洞種類。例如,我想掃描企業應用 www.xxx.com,想根據默認值掃描是否有安全隱患,啓動 AppScan,建立一個掃描,敲入 www.xxx.com; 根據配置嚮導直至完成。

圖 5. 默認的模板配置嚮導

默認的模板配置嚮導

圖 6. 建立一個掃描

建立一個掃描

  • 掃描啓動,進行測試

只須要點擊執行。

  • 掃描結果查看

如圖所示,AppScan 以各類維度展示了掃描後的結果,不只僅定位了問題發生的位置,也提出了問題的解決方案。

圖 7. 掃描後的結果

掃描後的結果

4 Rational AppScan 深刻介紹

Rational AppScan 同時提供了不少高級功能,幫助客戶對複雜應用進行檢測。支持的掃描配置有:

  • Starting URL:起始 URL,制定被測應用的起始地址
  • Custom Error Pages:制定錯誤網頁提升測試效率
  • Session IDs:管理測試過程當中的 session
  • Automatic Server Detection:自動檢測應用所在的應用服務器、web server、操做系統
  • Exclusion and Inclusion:制定哪些 Web 被掃描或者被排除,哪些文件類型不被掃描
  • Scan Limits:其餘高級掃描限制,例如掃描次數限制等
  • Advanced:掃描的方式,是寬度掃描仍是深度掃描
  • Communication Settings:對掃描中的延時、線程數量進行配置
  • Proxy Settings:代理設置vLogin/logout:對被測應用的登錄進行設置,能夠採用錄製回放的方式、也可使用自動登錄的方式
  • configure a Test Policy: 配置測試測量,即想測試哪些漏洞。
  • ……

如 上所述,用戶能夠經過 AppScan 進行一系列高級配置,制定所要檢測的 Web 模型,即哪些須要掃描、哪些不須要、掃描的方式等等;也能夠定義須要掃描漏洞的列表,從而保證了用戶關心的網站模型有無用戶所關心的安全漏洞。在檢測出安 全漏洞以後,AppScan 又提供了全面的解決方案幫助客戶快速解決這些問題,最大化的保證 Web 應用的安全。另外,對於 Web 服務 AppScan 一樣能夠支持。

AppScan 提供了完善的報表功能,能夠支持用戶對掃描的結果進行各類分析,包括對行業或者法規的支持程度;同時,AppScan 也提供了一系列的小工具,例如:Authentication Tester 經過暴力檢測方法掃描被測網站的用戶名稱和密碼;HTTP Request Editor 提供了編輯 Http request 的功能,等等。

5 Rational AppScan 的使用場景

在整個軟件開發生命週期中的各個階 段,Rational AppScan 均可以被使用,全面的保障了軟件的安全性。以下圖所示,軟件開發過程當中,軟件開發人員、軟件測試人員、QA、審覈人員等諸多角色均可以經過 AppScan 檢測應用,將漏洞儘早挖掘出來。下面咱們經過一些使用場景介紹一下 AppScan 給軟件開發帶來的利益。

圖 8. AppScan 使用場景

AppScan 使用場景

5.1 開發人員使用 AppScan

開發人員在開發過程當中可使用 AppScan 或者專用插件,隨時開發隨時測試,最大化的保證我的開發程序的安全性。越早發現問題,解決問題的成本就越低,這爲 Web 應用的安全提供了最爲堅實的基礎保障。

測試人員使用 AppScan

系 統測試人員使用 AppScan 對應用作全面的測試,一旦發現問題,能夠快速的生成 defect,經過與 ClearQuest 的集成能夠實現 defect 電子化跟蹤,再傳遞到開發人員手中,指導開發人員迅速解決問題。極大的提升了開發團隊的開發效率,也提供了完整了溝通平臺解決方案。

5.3 審覈人員上線前使用 AppScan

這是系統上線前的安全質量關卡。任何系統上線都應該通過嚴格的上線測試,這也最大化的減小了上線後問題的出現,避免生產系統上線後給企業帶來的鉅額損失。

5.4 上線後審計、監控人員使用 AppScan

上線的系統應該按期檢測,一旦出現問題更應該及時檢測,越快速的定位發現問題,損失就會越小。

上面咱們介紹的是比較通用的使用場景。固然,不一樣的企業可能不一樣的特色,AppScan 使用場景的原則是最大化的提升使用效率、儘早的把問題暴露出來,爲應用安全打下堅實的基礎。每一個企業均可以根據自身的開發現狀定義適合本身的使用模式。

 

6. 爲企業帶來的收益

通 過上面的介紹,咱們對 Web 安全現狀、應用安全重要性、以及應用安全產品 Rational AppScan 的使用有了必定的認識。可是,工具帶給客戶的不只僅是一些功能,更爲重要的是給企業帶來的深層次的收益,給企業在開發過程、安全策略等層面帶來了深入的變 化 . 下面咱們從幾方面闡述 AppScan 給企業帶來的價值:

AppScan 是 Web 應用安全的堅實保障
正如上面所論述的同樣,當前 Web 安全 75%的漏洞出自於應用自己,快速全面的定位問題並提供完善的解決方案將會幫助開發團隊構建一個健壯的應用。
AppScan 使得開發成本下降、開發效率提升
開發測試人員經過 Rational AppScan 能夠迅速的定位安全隱患,早期發現問題不只有助於解決問題,更下降了開發成本,避免問題過晚出現所形成的巨大損失。
AppScan 給企業提供了統計分析能力
Rational AppScan 提供了靈活報表功能,能夠支持對掃描結果進行統計分析;支持對規範法規遵循的分析;更提供了 Delta 比較報告,能夠比較兩次檢測的結果從而做爲質量檢驗的基礎數據  AppScan 幫助創建企業級的測試策略庫
Rational AppScan
  幫助企業根據不一樣的應用類型創建不一樣的測試策略,同時用戶能夠定義針對不一樣威脅的解決方法,持續的知識積累保證了企業擁有更完善的安全解決方案。

總結

綜上所述,隨着 Internet 的蓬勃發展,Web 的安全性已經被空前重視,薄弱的安全性也成爲了不少企業發展的瓶頸。然而,即使安全性如此受重視的今天,不少人對如何保障 Web 的安去性都存在着巨大的誤區。現實代表,只有增強 Web 應用的防禦,纔能有效的防範 75%的攻擊,Web 應用的防禦已經成爲安全話題中最爲不可獲缺的部分。IBM Rational 提供了 Rational AppScan 解決方案,在 Web 開發、測試、維護、運營的整個生命週期中,幫助企業高效的發現、解決安全漏洞,最大限度的保證了應用的安全性,爲企業發展提供了堅實的技術保障。

 

轉載自:http://www.ibm.com/developerworks/cn/rational/r-cn-appscan2/

相關文章
相關標籤/搜索