企業級Web應用安全解決方案介紹及其特點
簡介:本文分為兩部分,第一部分將從 Web 應用安全解決方案的演進入手,探究解決方案的發展之路,並對文中稱之為“戰略方法”的企業級解決方案及其特點進行深入分析;在第二部分中,將從開發人員、安全管理員、經理等角色出發,用實例的形式展示出使用統一的管理平台後,給企業安全管理帶來的方便性、統一性和其它優勢。
前言
近年來,隨著 Web 應用的普及,企業都爭先恐後的提供 Web 平台,或者作為信息發布的門戶,用以擴大企業的知名度;或者將部分甚至全部業務放到互聯網上,吸引更多的客戶,增加企業的收益。有了對外的窗口,在吸引廣大用戶的同時,企業 Web 應用也受到黑客們的頻頻光顧。從 2006 年至今,許多著名網站被黑客攻擊的消息屢見報端,從發布信息的政府網站、到各類運營商網站,甚至是在線交易的銀行網站,都難於幸免。雖然大部分黑客只是為了顯示其成就感,在網站上留下“到此一游”的痕跡,但是對於將重要數據放在 Web 應用上的企業來說,他們的系統安全、產品質量乃至企業的資質都受到了嚴重的質疑。
值得慶幸的是,目前大部分企業都已經意識到了 Web 應用安全的重要性,他們在探索、尋求能夠協助企業構築安全應用的解決方案,而且,他們中的一部分,也對應用安全進行了更為深入的思考,如何在軟件開發的整個生命周期中保證其 Web 應用的安全?
Web 應用安全解決方案的演進
我們對任何事物的了解,都是一個從無意識到有意識、從有意識到深刻認識的過程,應用安全也不例外。圖 1 很好的說明了 Web 應用安全解決方案的演進。
1、在早期,開發的應用(包括 Web 應用),人們普遍看重其功能、性能、可訪問性等方面,而且當時由於黑客數量少、網絡未廣泛普及、上網條件限制等因素,應用的安全性也確實沒有顯示出其危害性。因此,在相當長的一段時間內,安全性都沒有被納入系統質量評估的范疇。在這裡,我們稱之為“無意識”時期。
圖 1 Web 應用安全解決方案演進
2、平靜的網絡世界被日益猖獗的黑客打破,一些網站受到了侵犯,在損失錢財的同時,企業的資質也經受著嚴重的考驗。但此時,企業中並沒有專門的安全審計部門,沒有人為系統的安全負責。因此,一些咨詢公司抓住契機,將業界從事於安全研究的人員招至旗下,開始向具有 Web 應用的企業提供安全診斷服務。這種咨詢通常按照次數來收費,定期或不定期的掃描企業 Web 應用。在這裡,我們稱之為“外包解決”時期。將安全審核外包,對於企業中沒有安全專家、無法內部審核的狀況而言,在一定程度上解決了企業的問題。但這種方案也存在著弊端,比如:系統安全完全依賴於外部,沒有自主權;定期診斷的周期之間,系統仍然存在被黑客攻擊的風險;企業安全漏洞數據掌握在他人手中等等。
“外包解決”方案,由於其方便快捷,至今仍然擁有眾多客戶,和後面的“戰術方法”將會存在相當長的並行期。
3、由於“外包解決”方案存在的弊端,一部分企業開始注重培養內部的人才,組建系統安全小組,或者在質量管理(QA)部門中添置相關人員擔任此項工作。安全小組通常使用人工檢測和桌面工具相結合的方法,在系統上線前進行安全診斷,是企業中系統安全的“把關者”和“救火隊員”。這一時期,我們稱之為 “戰術方法”階段。目前國內大部分有應用安全意識的企業,都逐漸從“外包解決”時期向“戰術方法”過渡。
4、成立安全小組,有專人為應用安全負責,相比之前已經有相當大的進步。然而,整個企業的應用安全,將僅僅依賴於某個小組,甚至是二、三個人。這對於一些擁有多個 Web 應用、對應用安全又非常看重的大型企業來說,無法在整個企業內部、在整個軟件開發周期中,讓負責項目的每一個成員都參與到應用安全的保證中來。這就是我們即將要提到的“戰略方法”。該階段強調在企業內建立完整的應用安全機制,從系統開發、系統構建、測試、到上線前後,都可以建立應用安全的保證措施;對系統安全的診斷,不同部門、不同角色、甚至不同地域的分支機構,都可以在統一的平台上進行協作;同時,對於安全數據這樣敏感的信息,又可以在企業內部,按照權限、按照組織,方便的控制或流轉。
隨著應用安全解決方案的發展,讓企業中的每個人都擁有應用安全意識、在系統開發的每個階段都能保證安全,將成為應用安全發展的必然之路。
“戰略方法”-企業級解決方案介紹
企業級應用安全平台應具備的能力
工欲善其事,必先利其器。要想建立企業級的 Web 應用安全解決方案,除了需要一套嚴格的流程和制度之外,功能完備、先進的平台也同樣不可或缺。一個在企業內行之有效的平台應該具備如下特征:
統一管理、多用戶訪問的能力
具備統一入口的平台,可以作為企業安全應用的接入中心,方便每個人員訪問,包括跨地域工作的組織和部門;多用戶訪問,可以最大化的利用該平台,讓所有人員都可以方便的參與到應用安全的建設中來。
全面的應用安全覆蓋能力
能將企業中所有 Web 應用納入統一的平台進行診斷分析和管理,能最大化的統一利用企業內部的軟、硬件資源,做到平衡負載、並行處理大量應用的同時掃描和診斷。
豐富的報告和缺陷管理能力
對不同的應用進行安全掃描之後,可以生成內容豐富的各種報告及報表。由於應用安全涉及企業內部核心敏感數據,因此報告的生成和分發,應該在權限上有所控制。同時,面對企業的不同角色,報表及報告應該可以自行定制,根據用戶角色選擇不同側重點生成。
在應用中發現的任何安全缺陷,應該納入企業的缺陷和變更管理系統。通過提供內置的流程管理功能或者和企業現有的變更管理系統集成,所有安全缺陷可以方便的在企業內部進行狀態轉換。
強大的權限管理能力
應用安全漏洞是企業的核心數據,即便在企業內部洩漏也存在著被攻擊和利用的風險。因此,集中控制和管理的企業級應用安全平台,應該具有強大的權限管理功能。
該功能應該涵蓋兩個層面,一是控制企業用戶使用平台的權限,也就是控制不同角色的用戶可以使用平台的何種功能;二是安全隱患數據依據何種權限進行分發,也就是什麼角色的用戶應該看到平台產生的哪些數據。
靈活的軟、硬件部署能力
根據企業規模和硬件架構的不同,企業級應用安全平台應該可以靈活部署,並能在任何部署模式下,進行系統負載平衡、優化系統並行處理能力。
IBM Rational 企業級應用安全解決方案闡述
IBM Rational 企業級應用安全解決方案,以 AppScan Enterprise Edition(以下簡稱為 ASE)作為核心平台。ASE 是構建在桌面產品 Rational AppScan 的先進技術之上,基於 Web 的多用戶訪問系統,可以協助企業對其大量的 Web 應用進行安全管理。
3.2.1 ASE 基本概念
1. 工作原理
ASE 在對 Web 應用進行安全掃描時,采用了一種稱之為“黑盒掃描”的技術,在工作原理上和桌面產品 AppScan 相同。
圖 2 ASE 掃描 Web 應用原理-黑盒掃描
如圖 2 所示, ASE 系統就像普通用戶浏覽網站一樣,並不關心 Web 應用內部的技術架構(如使用何種語言編寫等),只是將應用看做黑盒。它從網站的主頁(home page)或者用戶指定的任何一頁開始,遍歷所有鏈接。根據每一頁面的特點,ASE 會使用多種測試參數,對頁面進行分析。這些測試參數以 HTTP 請求的形式發送,並通過返回的 HTTP 響應來決定應用中是否存在安全漏洞。ASE 有數以千計的內置測試參數,可以檢測出百余種漏洞。
2. 掃描范圍
保障應用安全,有很多層面,如下圖 3 所示的安全棧結構。在這之中,ASE 可以覆蓋 Web 服務器、Web 服務器配置、第三方組件和 Web 應用本身以及 Web Services。
圖 3 安全棧結構及 ASE 掃描范圍
ASE 能夠測試的漏洞類型,以國際組織“Web 應用安全委員會(WASC)” Threat Classification 項目中定義的 6 大類、24 小類為基礎,再加上經過多年實踐經驗總結的部分私有測試用例,形成了一套完整的、行之有效的漏洞庫,並及時更新,以確保 Web 應用掃描結果的全面性。
表 1 列舉了 WASC 的 Web 應用漏洞分類,每類漏洞的詳細信息請參見如下地址 http://www.webappsec.org/projects/threat/
表 1 - WASC Threat Classification
3.數據流分析
在詳細解釋 ASE 內部的數據流之前,需要先了解幾個關鍵術語:
Content Scan Job(內容掃描任務):內容掃描任務負責遍歷和測試網站的頁面,從中發現安全隱患。該任務使用任務管理員(Job Administrator)設定的參數。
Infrastructure Scan Job(結構掃描任務):結構掃描任務用來收集應用的技術架構信息。它使用一系列 IP 地址作為輸入,掃描對應的端口。也就是說,它遍歷企業中的每一個 IP 地址,檢查其對應的主機。如果發現了一台主機,該任務就會使用參數中指定的所有端口來判斷這台主機是否為 Web 服務器。如果是,ASE 將收集該 Web 服務器的版本、SSL 認證、允許的 HTTP 方法等信息。
Import Job(導入任務):導入任務負責數據格式的整合,比如將 AppScan 桌面版的 XML 格式文件,導入到 ASE 中加以利用。
Report Pack(報告包):報告包是生成報告的集合,可以按照任何選擇的的標准進行組織,如按照 Web 應用、按照開發人員、按照業務部門等組合報告。
Dashboard(儀表板):儀表板跟蹤並總結企業 Web 應用的問題和趨勢。它回答了以下相關人員關心的問題:企業中應用的總體安全水平如何?有哪些 Web 應用需要多加注意其安全性?在企業中哪些安全問題出現的頻率最高?應該告訴開發團隊哪些需要特別注意的安全隱患?
Folder(文件夾):文件夾是儀表板、掃描任務、報告包的容器,它可以幫助你按照需要的邏輯來組織信息。
有了上述基本概念,就可以更好的理解 ASE 中的數據流。如圖 4 所示,在 ASE 中,用戶選擇執行不同的任務,比如掃描應用、數據導入、掃描系統架構等,這些任務會從應用中分別收集相關數據,並把它們存儲在 ASE 的數據庫中;報告引擎分析數據庫中的數據,生成不同類型的報告。需要說明的是,掃描和生成報告被設計成兩個獨立的進程,這就可以讓用戶從不同的任務中選擇數據,生成更為詳細的、跨任務內容的報告;各種生成的報告,以報告包的形式組織,這樣在邏輯上更合理些;儀表板將報告包中的報告數據集合起來,以提供更高層面上的統計和總結信息。
從上述數據流可以看出,最基本的數據來源是任務,只有執行相應的任務,得到了返回的數據內容,才能根據這些內容組織成報告;只有生成了各種類型的報告,儀表板才能根據已有的報告包組織出不同的儀表板內容。
圖 4 ASE 中的數據流
3.2.2 ASE 安全解決方案特點
如果說桌面產品 AppScan,其工作重心就是掃描、測試、分析具體 Web 應用的話,那 ASE 除了具備 AppScan 所有能力之外,還具有桌面產品無法匹敵的如下特點:
1. 基於 Web 的多用戶安全解決方案
完整的應用覆蓋度:基於服務器(server-based)的掃描引擎,其處理能力可以保證正確無誤的測試企業中成百上千個 Web 應用,並同時對這些應用進行分析和處理。
由於 ASE 可以根據企業的需要進行靈活的架構搭建和系統配置(這一點我們將在本章節第 4 部分中講到),因此圖 5 僅表示 ASE 系統架構的主要組件。
圖 5 ASE 的系統組件概覽
在企業中,所有人員都是通過 Web 界面來訪問和使用 ASE 的,該界面就存儲在 ASE Control Center Server 上,它由一組 ASP.net 頁面組成。由圖 5 可以看到,滲透測試人員、開發人員、安全管理組、質量保證團隊等各種角色,都是通過 ASE Control Center 訪問系統、並得到最後的掃描結果。根據用戶量,企業可以部署多台 Control Center,進行負載平衡。
ASE Database Server 是另一個重要的組件,它通過使用 SQL Server 等商業關系型數據庫,存儲了所有 ASE 的配置數據,如用戶信息、掃描配置、報告配置等;同時,它也存儲了在應用安全掃描過程中收集的所有數據。數據庫組件可以被配置成集群,以保證更好的負載平衡和冗余。
ASE Agent Server 負責真正的安全漏洞掃描工作。它由一組 Windows 進程組成,負責訪問目的 Web 應用,並把掃描過程中的所有信息記錄在數據庫中。一個 Agent Server 可以同時掃描多個 Web 應用,通過增加 Agent Server 的數量,企業可以實現同時測試多個應用的目的。
廣泛的人員參與度:ASE 通過統一的 Web 界面,可以讓盡可能多的角色參與到應用安全管理中來,如圖 6 所示。
圖 6 ASE 具有廣泛的人員參與
ASE 的最新版本中,包含了集成的在線培訓模塊。在該培訓中,用戶不但可以學習 ASE 的使用方法和相關產品知識,還可以了解 Web 應用的安全常識、多種著名漏洞的攻擊原理、各種漏洞的詳細說明等,大大方便了企業將安全意識貫徹到各個角色的日常工作中。
ASE 中還包含了一個快速的測試工具 QuickScan。QuickScan 是一個簡化的掃描方法,它將忙碌的開發人員從復雜的應用安全中解脫出來。由於經過管理員事先定義掃描模板,開發人員不需要在客戶端進行安裝或做任何配置,就可以直接使用。掃描結果組織成任務列表形式,開發人員不需要成為安全專家,只需要根據任務列表去相應的代碼處進行修改即可。
2. 提供豐富報告的應用安全平台
在 3.2.1 章節中,我們描繪了 ASE 中的數據流,也引出了報告、報告包、儀表板等概念。ASE 中提供了 7 種類型的報告,每種類型又可以細分為多種子類型,涵蓋了應用安全所涉及的方方面面,在這裡我們簡述部分重要的報告。
安全報告
應用安全報告:列出了在掃描中發現的所有應用安全隱患,包括隱患的數量、類型、存在隱患的具體鏈接等,該報告以 3.2.1 章節中掃描范圍提到的 WASC Threat Classification 分類組織。圖 7 為 Web 站點安全報告示例,所有安全問題按照嚴重等級分類,選擇報告中的具體類型,可以得到更為詳細的信息,如圖 8 所示。
圖 7 Web 站點應用安全報告示例
圖 8 Web 站點應用安全報告詳細信息
結構安全報告:列出了在掃描中發現的所有結構安全隱患,它們通常來自於第三方產品的錯誤配置或者缺陷,需要由系統管理員或網絡管理員解決。
修復任務報告:該報告提供了針對每一隱患的修復方案。
法規遵從報告
包含了近 40 種法規和行業遵從,如著名的塞班斯(Sarbanes-Oxley Act)法案、銀行 PCI 資料安全標准(Visa CISP)、Web 應用安全委員會風險分類(WASC Threat Classification)等等,如表 1 所示。
表 2- ASE法規遵從報告標准
質量報告
斷裂鏈接報告:該報告提供了在掃描中發現的斷裂鏈接列表,幫助企業去除冗余信息,保證所有內容都可以被用戶正確訪問。
頁面深度報告:該報告列出了從主頁開始,需要訪問到某一頁面的點擊數,幫助企業了解網站信息的可訪問程度,如重要的信息是否需要用戶多次點擊才可訪問。
慢速頁面報告:該報告列出了用戶下載速度很慢的文檔頁面,幫助企業發現需要長時間下載的文件,或者占用大量 Web 服務器空間的文件。
可訪問性報告:擴大用戶群,是企業 Web 應用的目標之一。根據統計,在某些地區,殘疾人的比例接近 20%。而業界也出台了相應保障殘疾人可以正常訪問互聯網應用的指南和法規,如 World Wide Web Consortium's Web Content Accessibility Guidelines(WCAG)、美國的 U.S. government's Section 508 法規、英國的 UK's Disability Discrimination Act 等。可訪問性報告正是根據這些法規和指南,對企業的應用進行分析,得出改進意見,從而擴大企業 Web 應用的用戶群。
隱私報告
Cookie 清單:該報告提供了在 Web 站點中發現的每一個 cookie 的內容和安全信息,如在哪些頁面設置了 cookie、cookie 的安全等級如何等等,該報告可以幫助企業判斷 cookie 的使用是否符合已有的隱私策略。
表單(Form)清單:該報告提供了 Web 站點中包含表單(Form)的頁面清單,以及每個表單使用的提交方法等信息。
管理類報告
活動日志報告:該報告是由管理員創建的,主要用來統計 ASE 上的用戶使用信息,如哪些用戶正在使用系統、誰正在運行什麼掃描、誰在制作 Dashboard 等等。
詳細目錄報告:該報告列出了掃描 Web 站點後的所有相關信息,如站點主機列表、所有頁面列表、認證點列表、本地文件列表等等。
上面僅僅列舉了 ASE 中提供的部分報告,在形成報告的同時,ASE 還可以將報告導出成 XML 文件、Excel 表格、PDF 文件或者 CSV 格式的文件,方便相關人員進一步討論和分析。
除了上述豐富多彩的報告,ASE 還提供了儀表板分析(dashboard),它可以將數據再次整合,從更高層面分析 Web 站點的安全情況。如圖 9 所示,從上到下、從左到右分別展現了 Web 站點漏洞嚴重等級歷史、漏洞狀態變更歷史、按照報告包分類的漏洞嚴重等級、Web 站點漏洞按照 WASC 分類的比例。
圖 9 ASE 中儀表板示例
3. 具備問題管理流程的應用安全平台
問題管理功能可以幫助企業更好的管理和跟蹤 Web 應用中發現的漏洞,這當然可以通過和現有缺陷管理平台的集成來實現。而 ASE 則提供了內置的問題管理流程,你可以定義發現的安全漏洞哪些屬於誤報,哪些已經被解決,盡早歸類,這樣它們就可以不出現在後續的報告中;也可以讓你把狀態為“打開”(Open)的問題轉換為“已修復”(Fixed)、“進行中”(In Progress)、“已傳遞”(Passed)甚至“騷擾狀態”(Noise),這樣就可以更好的讓相關人員了解每一個問題的進展。
管理安全隱患問題,有如下好處:
減少騷擾,更專注於真正漏洞的解決
當分析已經掃描出的 Web 應用安全漏洞時,我們可以把那些不需要被解決的輕量級問題標示為“騷擾狀態”或者“已傳遞”。“騷擾狀態”的問題包括那些誤報的漏洞;“已傳遞”的問題可以包含那些需要手工驗證或再次審核的漏洞。一旦把問題歸類為“騷擾狀態”或“已傳遞”狀態,就可以專注處於“打開”、“重新打開”和“進行中”狀態的問題,這些狀態的問題很有可能是影響應用質量和安全的重點。
以修復問題為目的來跟蹤它們
安全漏洞問題管理可以確保每個被發現的隱患都能得到解決。這裡所謂的解決,可以是真正的修復,也可以是在今後的版本中修復或者根本不用修復的“誤報”。同時,根據這些狀態得出的安全漏洞趨勢曲線,也可以協助企業定位當前所處的開發水平和能力級別。
圖 10 是 ASE 中漏洞問題管理的圖示。
圖 10 ASE 中內置問題管理功能
4. 集中控制、靈活配置的應用安全平台
在前面我們提到 ASE 的系統組件設計比較靈活,可以根據企業的需要進行架構搭建和系統配置。
在部署 ASE 時,企業需要的服務器數量、使用的配置,完全依賴於打算如何使用該平台。最優化的配置包含諸多因素,如用戶數、站點規模、需要執行的任務種類以及需要生成的報告。雖然這些情況千差萬別,但是有一些基本的配置方案可供參考。
單台服務器配置
最簡單的配置就是將 ASE 所有的組件,包括數據庫安裝在一台服務器上,如圖 11 所示。該配置適合於產品評估、小型企業或者工作組。
圖 11 ASE 單台服務器配置
當應用較多,系統性能下降時,使用單台服務器模式將無法滿足企業的需要,這時,多台服務器配置將是更好的選擇。
分離部分代理的多台服務器配置
在這種配置中,可以將控制服務器、數據庫服務器和部分代理服務(如負責處理導入任務的代理服務)安裝在一台服務器上,其它的代理服務(如負責內容掃描、負責架構掃描的代理服務)安裝在不同的服務器上,如圖 12 所示。
圖 12 分離部分代理的多台服務器配置
分離數據庫的多台服務器配置
在這種配置中,可以將控制服務器、部分代理服務安裝在一台服務器上,數據庫和其它的代理服務,安裝在不同的服務器上,如圖 13 所示。
將控制服務器和數據庫分離,可以大大提高系統的性能,因為這樣可以避免在一台服務器上,執行掃描任務和存儲數據同時進行。
圖 13 分離數據庫的多台服務器配置
當安裝和配置應用時,除了多台服務器的配置之外,還可以靈活的選擇將多個控制服務器或代理的實例安裝在一台機器上。
控制服務器的多實例配置
在有些時候,可能需要安裝多個控制服務器在一台機器上。比如,如果企業中有多個部門,每個部門需要有自己的控制服務器來管理不同的虛擬目錄,同時能夠訪問自己部門的獨立數據庫。見圖 14。
圖 14 控制服務器的多實例配置
多控制服務器還可以應用到如下的場景中:當需要建立一套驗證環境而又不希望影響到現有的環境;當需要使用一部分控制服務器來掃描企業的外網(Internet)應用,同時還需要一部分控制服務器掃描企業的內網(Intranet)應用。
代理服務的多實例配置
在一台機器上安裝多個代理服務的實例,可以同時運行多個不同的掃描任務,每個掃描任務訪問不同的數據庫。當一個控制服務器上沒有掃描任務需要執行,而另一台控制服務器上有多個掃描任務時,多實例的代理服務可以繼續執行,大大減少了單實例時,代理服務器的無任務時間。
圖 15 代理服務的多實例配置
總結
從前面的介紹可以看出,企業級應用安全解決方案,已經不是對單一 Web 應用進行掃描、分析、修復的簡單過程;而是在此基礎之上,從更高的戰略層面管理企業中的應用安全,讓盡可能多的人員方便的參與到應用安全的建設中,用盡可能周到的流程和權限機制使應用安全的管理更為高效,讓盡可能靈活的產品配置使企業利用現有資源發揮最大的效益。
本文的第二部分,“企業級 Web 應用安全解決方案實例”正是基於前面介紹的 IBM Rational ASE 平台,是本平台在企業中的具體應用。