- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
保護 XML Web 服務免受黑客攻擊
Matt Powell
Microsoft Corporation


簡介
在與開發人員就 XML Web 服務的將來談話的過程中我們得知,他們最大的擔心之一就是害怕軟件中存在的弱點可能使服務受到不懷好意的用戶的攻擊。這可以說既是一個壞消息,又是一個好消息。說它是壞消息,是因為攻擊可能導致服務的可用性受限制、私有數據洩露,更糟糕的情況是,使計算機的控制權落入這些不懷好意的用戶的手中。說它是好消息,是因為您可以獲得一些真正的保護,以減少這些攻擊所帶來的風險。我們將介紹已出現的攻擊類型,以及您如何保護自己在部署、設計和開發領域的心血。此主題的第一篇專欄文章將集中講述部署時應考慮的問題,下一篇專欄文章將講述在開發 XML Web 服務時需注意的設計和開發問題。

攻擊類型
要找出風險所在並了解如何避免,第一步應了解服務可能遭受的攻擊類型。在了解了可能遇到的問題種類後,就可以採取適當的措施來減小這些問題所帶來的風險。

攻擊通常可分為三大類:

欺騙
利用錯誤
拒絕服務
欺騙
在要求身份驗證的系統上,最常見的黑客攻擊之一是算出某個用戶的身份驗證證書,以該用戶登錄,然後訪問該用戶的信息。這已經很糟糕了,但如果被洩露的證書屬於系統管理員或其他某個具有更高權限的用戶,則風險會更大。因為,在這種情況下,攻擊可能不僅限於洩露單個用戶的數據,而且有洩露所有用戶數據的可能。

黑客可能會使用多種方法來確定用戶的密碼。例如:嘗試對該用戶有意義的字,如該用戶的姓名、其寵物的名字或生日。更有恆心的黑客甚至會嘗試字典中的每個字(字典攻擊)。獲取證書信息的其他方法包括:捕捉網絡數據包並讀取發送的數據中的信息;通過 DNS 欺騙,插入一台不懷好意的計算機,作為客戶端和服務器之間的中介;假裝系統管理員,以排除故障為由,要求用戶給出其證書;或者,記錄與服務器的登錄握手,然後重複這一過程,嘗試通過身份驗證。

可以通過採取諸如強制實現加強密碼等措施以及使用安全身份驗證機制,來緩解由欺騙所帶來的大多數風險。

利用錯誤
決定系統弱點的關鍵因素之一是運行在該系統上的代碼的質量。系統錯誤不僅僅局限於使某個特定的線程出現異常。黑客可能利用這些弱點在系統上執行他們自己的代碼,訪問具有較高權限的資源,或者,只是利用可能潛在地引起系統速度減慢或變得不可用的資源漏洞(由錯誤引起的)。這種攻擊中最??名的一個例子就是紅色代碼蠕蟲病毒,這種病毒利用 Index Server ISAPI 擴展中的錯誤,在受感染的系統上執行它選擇的代碼,然後繼續尋找其他有弱點的計算機。

另外一種常見攻擊就是利用輸入數據的有效性假設方面的錯誤。例如,XML Web Service 希望用戶名作為參數輸入的情況。如果您假設用戶名僅包含 ASCII 字符串,並因此將它直接放入您的 SQL 查詢,可能會使您的服務出現嚴重的弱點。例如,假設您的代碼中有一個 SQL 查詢,如下所示:

sqlQuery = "SELECT * FROM Users WHERE (Username='" & UsernameInput & "')

如果 UsernameInput 參數包含的內容恰好如下所示

Bob') or not (Username='0

那麼您的服務可能會返回所有記錄,而不只是特定用戶的記錄。

拒絕服務
拒絕服務攻擊的目的不在於闖入一個站點,或更改其數據,而在於使站點無法服務於合法的請求。紅色代碼蠕蟲病毒不僅感染計算機,並繼而尋找並感染其他計算機,而且,還使得被感染的計算機向官方的白宮 Web 站點發送大量的數據包。因為數千台計算機被感染,所以發往白宮 Web 站點的請求的數目極高。因為紅色代碼蠕蟲病毒會導致從大量計算機發出請求,所以被視作“分布式拒絕服務攻擊”。由於涉及到如此眾多的計算機,因此這種攻擊極難限制。

拒絕服務請求可能有多種形式,因為可以通過多種級別發送偽請求,以攻擊您的系統。例如,您的站點可能允許用戶 PING 您的 IP 地址,從而使 ICMP 消息被發送到您的服務器,然後又被返回。這是一種排除連接故障的有效方法。但是,如果數百台計算機同時向您的服務器發送數千個數據包,您會發現您的計算機忙於處理 PING 請求,而無法獲得 CPU 時間來處理其他正常的請求。

級別稍高的是 SYN 攻擊,這種攻擊需要編寫一個低級網絡程序,所發送的數據包看起來有如 TCP 連接握手中的第一個數據包(SYN 包)。這種攻擊比 PING 請求攻擊危害更大,因為對於 PING 請求,您可以在必要時將其忽略,但對於 SYN 攻擊,只要有應用程序在偵聽 TCP 端口(如 Web 服務器),則無論您何時收到看似有效的連接請求,都需要花費資源。

最高級別的拒絕服務攻擊可以呈現一種向 XML Web Service 發送多個基本有效的 SOAP 請求的形式,這種請求將導致數據庫開始查找操作。數據庫查找可能需要花費一段很長的時間。因此,如果每秒鐘向服務器發送數千個這樣的請求,會使得接收請求的 Web 服務器和後端數據庫服務器變得非常忙。而且,這也會使您的服務無法及時處理其他請求。

如果您的計算機上有包含錯誤的代碼,那麼拒絕服務攻擊會更加容易。例如,如果投入使用的 Web Service 有這樣一個錯誤:當出現某個特定類型的錯誤時,會顯示一個消息框,黑客可以利用這一缺陷向您的計算機發送數目相對較少的請求,使該消息框顯示出來。這會鎖定所有的線程處理請求,因此有效地阻止了其他人訪問您的服務。

部署問題
到目前為止,我們已介紹了幾種不同的攻擊類型,那麼我們能對這些可惡的攻擊採取什麼措施呢?有一個好消息可以告訴您,您可以採取很多種方法來保護自己的服務,而且,這些保護大都十分簡單。讓我們首先來看一看只需控制 Web 服務器和後端服務器的配置方法就可以實現的保護類型。

應採取許多重要的保護措施確保您的 Web 服務器不會受到攻擊的破壞,包括一些眾所周知的措施,如確保具有最新的安全性更新。下面列出了自我保護措施中最重要的步驟。其中的許多步驟並不特別針對托管 Web 服務,而是適用於所有的 Web 服務器托管內容。

安裝安全性更新
首先,確保您具有最新的更新,以避免受到紅色代碼蠕蟲病毒的攻擊。可以在 Installing the patch that stops the Code Red worm(英文)中找到有關安裝更新的說明和下載修補程序的鍊接。

對紅色代碼蠕蟲病毒的修復以及其他修復最終會包含在 Microsoft® Windows® 2000 的下一個服務包中,並已在 Microsoft® Windows® XP 中得到解決。

當然,更大的問題是如何避免其他潛在的弱點,並保護自己免受將來可能出現的問題的侵害。有關 Microsoft 產品安全問題的信息,可以訂閱“Microsoft 安全性通知列表”。對於出現的任何新問題,都將以電子郵件的形式通知訂閱者。有關如何訂閱的說明,請查看 Product Security Notification(英文)網頁。

限制 Web 服務器的訪問者
如果您對攻擊的問題很關注,尤其是如果您的 XML Web 服務上包含私有信息,那麼您應限定僅合法的用戶可以訪問您的站點。這可以用多種方法來實現,但下面講述的幾種方法可以防止黑客訪問您的 XML Web 服務。

通過使用 HTTP 身份驗證來對用戶進行驗證,然後限定他們可以訪問哪些資源。身份驗證的配置方法:用鼠標右鍵單擊 Internet 服務管理器中的 Web 站點、虛擬目錄或單個文件;從彈出菜單中選擇“屬性”;進入“目錄安全性”選項卡,單擊“匿名訪問和身份驗證控制”下面的“編輯”按鈕。
限定可以訪問您的 Web 服務器的 IP 地址。如果有一些可以使用您站點的合法用戶,那麼可以只允許這些用戶的特定 IP 地址訪問您的 Web 站點。您還可以限定某些 IP 地址範圍具有訪問權限,或拒絕某個 IP 地址或某個 IP 地址範圍的訪問權限。甚至可以根據域名進行限定,但在與您計算機連接的 IP 地址上,可能需要花費很長的時間來進行域名查找。修改 IP 地址限制的方法:轉至步驟 1 中提到的“目錄安全性”選項卡,單擊“IP 地址及域名限制”下面的“編輯”按鈕。圖 1 顯示了“IP 地址及域名限制”對話框,其中將訪問權限限制為三個特定的 IP 地址。


圖 1:設置 Web 站點的 IP 地址限制

要求與客戶端證書具有安全套接字層 (SSL) 連接。這可能是對訪問您站點的用戶進行身份驗證的最安全的方法。SSL 限制也是在“目錄安全性”選項卡的“安全通信”下進行設置。
將路由器配置為僅允許符合要求的訪問
路由器就是您的防火牆。它可以阻斷發送到您計算機的大量不合法的請求。流行的路由器大多都可以將訪問限制在特定的 TCP 端口上,因此您可以只允許從端口 80(默認的 HTTP 端口)傳入請求。這可以防止防火牆外的任何人試圖連接到您計算機上的其他任何服務。打開其他服務的端口時請務必小心。您可以很方便地從終端服務客戶端打開一個端口,連接到您的 Web 服務器,以便進行遠程管理。但隨後,任何人都可以通過終端服務器連接嘗試連接到您的計算機。即便黑客不知道有效的用戶名和密碼,也仍然可以通過同時建立只顯示登錄屏幕的多個會話,來用完您計算機上的大量資源。

在篩選掉可能用完您計算機資源的非法數據包時,也需要用到路由器這一重要工具。對於明顯存在問題的數據包,只需將它丟棄即可(大多數路由器都會自動執行這一功能)。但是,目前已有許多路由器具有檢測諸如 TCP SYN 包的能力,這些數據包慌稱它們是從某個 IP 地址發送過來的,但實際並非如此。通過啟用這種保護措施,可以避免前面在拒絕服務攻擊中提到的那些 SYN 攻擊。

而且,請記住,防火牆限制只會影響到防火牆處的流量。這似乎是顯而易見的事情,但假定您從 Internet 服務提供商 (ISP) 處購買了一根 T1 線,並在您所在的 T1 線的那一端放置了一個具有安全配置的路由器。如果 ISP 無法在他們的路由器上啟用非法 SYN 請求檢測功能,那麼他們的路由器就有可能受到 SYN 攻擊,從而潛在地拒絕對您的 T1 線另一端的服務,最後結果是有效地切斷了對您站點的訪問。

考慮更複雜的環境,如某個特定連接的兩端都放置有多個路由器,由於每個路由器都有可能遭受攻擊,因此可能會影響到為您站點的合法用戶提供服務。要列出數據包到達您的服務器途中所要經過的路由器,請使用 TRACERT.EXE 實用工具。

配置 TCP/IP 篩選以限制接受連接的端口
如果您沒有路由器作為防火牆,或者,如果您由於任何原因無法管理自己的路由器,都可以通過限制您計算機將接收的傳入連接種類,有效地使您自己的計算機成為防火牆。在 Windows 2000 中,單擊“開始”按鈕,選擇“設置”,選擇“網絡和撥號連接”,用鼠標右鍵單擊連接到 Internet 上的網卡,然後選擇“屬性”。選擇“Internet 協議 (TCP/IP)”,單擊“屬性”按鈕,單擊“高級”按鈕,進入“選項”選項卡。選擇“TCP/IP 篩選”,然後單擊“屬性”按鈕。將出現如圖 2 所示的一個對話框。您可以在該對話框中限制將接受連接的端口。在如圖 2 所示的示例中,限制了只允許在端口 80 和 443 上分別進行 HTTP 和 HTTPS 連接。



圖 2:配置 TCP/IP 篩選

刪除不必要的服務和軟件
計算機上運行的軟件越多,就越有可能受到攻擊,尤其是在您作為某種具有較高權限的用戶運行服務的時候更是如此。如果您的計算機專門運行 Web 服務,且 Web 服務獨立於其他服務,那麼應在您的計算機上禁用其他某些服務,包括 FTP 服務、SMTP 服務以及諸如終端服務客戶端等的 Windows 服務。

也應限制可通過 Internet Information Server 運行或訪問的軟件數量。確保僅配置了您需要的虛擬站點和目錄。首先,應該刪除管理 Web 站點。其次,還應該刪除 IISSamples 虛擬目錄。同樣,如果您的計算機專門運行 Web 服務,應刪除其他任何虛擬目錄。

即便對於已經安裝某些軟件的虛擬目錄,也必須弄清楚哪種軟件是訪問您的 Web 站點時可以使用的。在 Internet 服務管理器中,用鼠標右鍵單擊某個站點或虛擬目錄,從所出現的菜單中選擇“屬性”,選擇“虛擬目錄”選項卡,然後單擊“配置”按鈕,將出現“應用程序映射”選項卡,其中列出了與不同的 ISAPI 擴展或 CGI 應用程序相關聯的所有擴展。如果您沒有使用這些擴展,請將它們從列表中刪除。.IDQ 文件的索引服務器擴展自身存在錯誤,紅色代碼蠕蟲病毒就利用了這個錯誤。如果您是在虛擬站點級進行此項更改,那麼您不需要為所創建的每個虛擬目錄都進行此項工作。

使用 Microsoft Internet Information Server 安全性核對表
Microsoft 為 Internet Information Server 4.0 創建了一個安全性核對表,其中除了我在本文中提到的所有安全事項以外,還提到了其他更多的安全事項。使用此核對表來確保您至少已經考慮了所有的安全性選項。雖然您運行的可能不是 Internet Information Server 4.0(5.0 版是隨 Windows 2000 一起發佈的版本),但本文中的大多數步驟仍然適用,而且,對於將來 Internet Information Server 版本,也仍然適用。可以從 Microsoft Internet Information Server 4.0 Security Checklist(英文)中找到此核對表。

總結
根據您計算機和網絡配置的不同,會有多種保護措施,您應採取相應的措施保護您的 Web 服務器免受黑客攻擊。在下一篇專欄文章中,我們將研究開發人員和設計人員在創建其 XML Web Service 時需注意的問題,並繼續探討保護您的 XML Web Service 免受黑客攻擊的方法。





--------------------------------------------------------------------------------

At Your Service

Matt Powell 是 MSDN Architectural Samples Team 的成員,他幫助開發了最新的 SOAP Toolkit 1.0。Matt 的其他成就包括與他人合??了由微軟出版社出版的《Running Microsoft Internet Information Server》一書以及為各種雜誌撰寫了大量的文章。他有一個幸福美滿的家庭,是他每天眷戀的地方。




頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2017 COOLASP All Rights Reserved