保護 XML Web 服務免受駭客攻擊(3)

來源:互聯網
上載者:User
web|xml|攻擊 Matt Powell
Microsoft Corporation
2001 年 9 月 19 日
在上一篇文章中,我們討論了不同種類的攻擊,以及如何進行配置以免受到攻擊。本文中,我們將集中討論如何進行設計和開發,以免受到攻擊。
首先,我想介紹兩個非常好的新工具,它們是 Microsoft® 開發的,可使您的 Web 服務器獲得最大的安全性。IIS Lockdown Tool(英文)可以最大限度地防止可能的攻擊者對您的 Microsoft® Internet Information Server (IIS) 進行訪問。鎖定工具還提供了“advanced”選項,您可以在其中選擇所需設定。此外還提供了“rollback changes”選項。當您對所做更改不滿意時可選擇該選項。請嘗試該工具。
另一個重要工具是用於 IIS 5.0 的 Hotfix Checking Tool(英文)。該工具會查詢由 Microsoft 發布的所有可用安全性Hotfix的 XML 文檔(該文檔是不斷更新的),然後將此文檔與本機安裝的文檔進行比較並報告其差異。使用該工具可以更輕鬆地管理單個 Web 服務器或大型 Web 領域的安全Hotfix。 設計問題
設計 Web 服務時必須認真考慮安全問題,以及如何能夠使遭受攻擊的危險性降到最低。許多在試圖防止攻擊時可能起作用的因素都可以在設計時予以考慮。例如考慮如何進行身分識別驗證,或希望返回哪類錯誤等問題。

確定安全需求


在 XML Web 服務設計的早期,您需要確定所需的安全層級。某些 XML Web 服務根本不需要身分識別驗證,而其他服務對於確定使用該服務的使用者有非常嚴格的要求。由 XML Web 服務接收和發送的資料需要何種隱私權等級?如果某個 XML Web 服務使用者聲明他們未請求您記錄中所指明的服務,則在工時、處理能力或法律費用方面可能要花費哪些成本?
首先,讓我們來看一下身分識別驗證。某些種類的身分識別驗證會比其他身分識別驗證更容易遭受攻擊。在低端,如果您使用“HTTP 基本驗證”,則可以看到網路上的資料包的所有使用者都能看到您的使用者名稱和密碼。如果通過 Internet 發送請求,則您無法控制能看到您的資料包的使用者。在身分識別驗證層級的高端,您可以考慮使用 SSL 用戶端憑證進行身分識別驗證,該認證提供了一個編碼的通道,並使資料包的惡意攻擊者很難進行攻擊。有關身分識別驗證選項的詳細討論,請參閱 At Your Service 專欄中 Mary Kirtland 的 Authentication and Authorization(英文)。
我們已經間接提到了身分識別驗證過程中的隱私問題,當涉及到電子欺騙時您應考慮此問題。您還需要知道與所有從 XML Web 服務發送和接收的資料有關的隱私問題,而不僅僅是使用者名稱和密碼。例如,您可能會為通過身分識別驗證的使用者產生一個工作階段金鑰,該使用者將此密鑰隨每個請求一起發送以標識自身。如果此密鑰未加密發送,則資料包的惡意攻擊者可以看到此密鑰,並用它向您的 Web 服務發送自己的請求,這樣您的 Web 服務會將其看作是原來那個合法使用者。
另一個隱私問題是由 Web 服務發送和接收的簡單資料。該資料是否因其敏感性強而需要加密?SSL 加密的代價是 Web 服務會發送和接收整個加密的通道,從而降低效能。您或許可以只加密請求中的敏感項,但您隨後可能需要在用戶端上安裝自訂編寫的軟體以啟用加密/解密。使用 SSL 加密整個通道的一個優點是:目前大多數用戶端平台都支援基本 SSL 通訊,而不需要針對應用程式編寫特定代碼。
就基本安全性設計而言,還必須考慮否認的概念,即一個使用者可以拒絕承認其通過 XML Web 服務執行的操作。例如,如果您提供股票交易服務,而某些人聲稱他們沒有要求您的系統為其出售股票,並且要否認此出售命令。很明顯,與其他服務相比,某些 XML Web 服務對這種問題可能會更為關心,但是您應該確定您的服務可能會遇到的危險,以及在方案中應採取什麼樣的有效措施。
使用安全的身分識別驗證系統肯定是避免出現這類危險的首要步驟。例如,使用 HTTP 基本驗證可能是不安全的,但是通過使用 SSL 的加密通道來使用此身分識別驗證則是安全的。如果使用者使用空密碼或容易猜到的密碼,即使具有安全的身分識別驗證系統也是沒有用的。強制使用強加密密碼是防止出現此類問題的重要步驟。總之,使用者和服務執行者都有責任防止密碼泄露。
最後,如果不審核通過服務發生的事件,當出現否認情況時,安全的身分識別驗證和強加密密碼都是毫無意義的。當事務中存在否認威脅時,應記錄這些事務及其使用者、時間、日期等足夠多的資訊以標識事務的詳細資料。否則,當出現爭論時,您可能缺少足夠的證據以證實您的觀點。

審核、報告和監視


審核對減少否認危險程度起著重要的作用;在識別其他種類的攻擊過程中,也起著關鍵作用。例如,如果不是您的審核記錄中的統計資料表明您的服務存在異常使用方式,您可能根本意識不到您的服務正在遭受攻擊。例如,您是否注意到某個人正在對登入方式進行字典攻擊?所以,我們將講述在審核、報告和監視時需要考慮的問題,以保護 XML Web 服務免受攻擊。
審核的概念就是記錄所發生的每個事件的所有資訊。但是,當通過 XML Web 服務的資料量很大時,此想法可能是不切實際的。審核記錄至少應包括所有請求的時間、日期和 IP 位址。如果 XML Web 服務經過身分識別驗證,您需要在每個審核記錄中包括使用者名稱。如果您的服務支援多種方法或訊息格式,您需要標識調用的是哪一個。最後,您需要包括足夠的資訊以滿足您標識調用詳細資料的需要。例如,如果 XML Web 服務使用了一種方法,您可能希望記錄傳遞給該方法的所有參數。
您還需要考慮其他需要,例如當網站遭到攻擊時您可能需要復原事務。而且,您的審核記錄往往是某些報告的最佳資訊源。由於審核記錄可能相當大,您需要協調審核設計和備份策略。
審核處理的是通過您的服務同時發生的所有事件的記錄,報告則是向使用者、操作員和管理員彙報系統的使用資訊。報告是保護 XML Web 服務免受攻擊的一個重要部分,因為通過它可以觀察服務的使用方式。一種主要的報告類型是報告發生的錯誤。報告 XML Web 服務所遇到的錯誤的能力是最重要的。同樣,您還需要報告那些可能指出惡意用戶端企圖的錯誤。例如,如果所接收請求中的某個參數是一個異常的長字串,則您需要以一種容易引人注意的方式來報告該錯誤。對於這種類型的錯誤,您應該在應用程式事件記錄檔中建立事件,這樣可以相應地對它們進行監視。有關如何將事件寫入事件記錄的詳細資料,請參閱作業系統平台 SDK 中的 Event Logging(英文)。
另一種對您的服務至關重要的報告類型是匯總服務使用方式的報告。它應該有兩種形式:首先,建立供您個人進行分析的全域報告,您可以使用該報告檢測使用層級或異常模式。應該對正常報告的外觀具有足夠的瞭解,這樣您才能夠發現異常使用的情況。其次,需要為您的使用者提供報告。您的使用者還應能夠監視他們對服務的使用方式。很有可能出現這樣的情況:在全域報告中未記錄攻擊行為,而個別使用者卻能立即在其各自的報告中發現問題。
如果 XML Web 服務正在 Internet Information Server (IIS) 上運行,那麼我們就有必要提及一種能免費得到的非常有用的報告類型。即,為所有傳入的 HTTP 要求(包括對您服務的請求)進行的 IIS 日誌記錄。您可以使用 IIS 日誌中提供的資訊來改進自己的報告。 '
最後,實施了審核及適當的報告方法後,您需要使用某種機制以發現所報告的問題。這就是監視。
可以以不同層級進行監視。當然,定期手動查看報告是監視 XML Web 服務的使用方式的一種方式,但是還應檢查事件記錄中已報告的錯誤,使用效能監控日誌,並利用可以監視 Web 服務器停機時間的多種工具中的一種。效能監控對於檢測攻擊可能是非常關鍵的。幸好,與 IIS 關聯的大量效能計數器可以為檢測問題提供許多重要的統計資料。
您可能還希望為 XML Web 服務建立自己的效能計數器。有關建立您自己的效能計數器的詳細資料,請參閱 Performance Monitoring(英文)。為了確保引起您對異常情況的特殊關注,應以某種形式通知您正在發生的事件,這點是非常重要的。可以在例外狀況事件發生時,利用效能監控警報發送彈出式訊息,或運行某個程式。圖 1 顯示的效能監控警報會監視未完成的 IIS ISAPI 請求的數量,以及當前隊列中的 ASP 請求的數量。

圖 1:建立效能監控警報
如果不對可能發生的問題採取一些措施,則對濫用的操作進行審核、報告和監視不會有任何用處。拒絕服務的攻擊可能會被定義到特定的 IP 位址,這意味著您可能需要在路由器中過濾來自該地址的請求。但是,拒絕服務的攻擊或電子欺騙攻擊可能與 XML Web 服務的特定使用者相關。您必須能夠在這種問題發生時禁用帳戶。完成此操作可能僅需在 Microsoft® Active Directory™ 中禁用 Windows 使用者帳戶。或者,如果使用的是自己設計的身分識別驗證方式,則意味著必須在使用者記錄中添加一個可以表示禁用帳戶的狀態欄位。您還應確認 XML Web 服務的使用者同意“服務條款”文檔,該文檔指明在何種情況下您可以刪除或禁用他們的帳戶。

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。