監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設(shè)計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關(guān)閉
上海OA信息化

當(dāng)前位置:工程項目OA系統(tǒng) > 泛普各地 > 上海OA系統(tǒng) > 上海OA信息化

保護XML Web服務(wù)免受黑客攻擊 [第一部分] [第二部分]

申請免費試用、咨詢電話:400-8352-114

AMTeam.org

保護XML Web服務(wù)免受黑客攻擊 [第一部分] [第二部分]


Matt Powell

Microsoft Corporation

2001 年 9 月 5 日

簡介

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

攻擊類型

要找出風(fēng)險所在并了解如何避免,第一步應(yīng)了解服務(wù)可能遭受的攻擊類型。在了解了可能遇到的問題種類后,就可以采取適當(dāng)?shù)拇胧﹣頊p小這些問題所帶來的風(fēng)險。

攻擊通??煞譃槿箢悾?/P>

欺騙

利用錯誤

拒絕服務(wù)

欺騙

在要求身份驗證的系統(tǒng)上,最常見的黑客攻擊之一是算出某個用戶的身份驗證證書,以該用戶登錄,然后訪問該用戶的信息。這已經(jīng)很糟糕了,但如果被泄露的證書屬于系統(tǒng)管理員或其他某個具有更高權(quán)限的用戶,則風(fēng)險會更大。因為,在這種情況下,攻擊可能不僅限于泄露單個用戶的數(shù)據(jù),而且有泄露所有用戶數(shù)據(jù)的可能。

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

可以通過采取諸如強制實現(xiàn)加強密碼等措施以及使用安全身份驗證機制,來緩解由欺騙所帶來的大多數(shù)風(fēng)險。

利用錯誤

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

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

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

如果 UsernameInput 參數(shù)包含的內(nèi)容恰好如下所示

Bob') or not (Username='0

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

拒絕服務(wù)

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

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

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

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

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

部署問題

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

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

安裝安全性更新

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

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

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

限制 Web 服務(wù)器的訪問者

如果您對攻擊的問題很關(guān)注,尤其是如果您的 XML Web 服務(wù)上包含私有信息,那么您應(yīng)限定僅合法的用戶可以訪問您的站點。這可以用多種方法來實現(xiàn),但下面講述的幾種方法可以防止黑客訪問您的 XML Web 服務(wù)。

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

 


圖 1:設(shè)置 Web 站點的 IP 地址限制

要求與客戶端證書具有安全套接字層 (SSL) 連接。這可能是對訪問您站點的用戶進行身份驗證的最安全的方法。SSL 限制也是在“目錄安全性”選項卡的“安全通信”下進行設(shè)置。

將路由器配置為僅允許符合要求的訪問

路由器就是您的防火墻。它可以阻斷發(fā)送到您計算機的大量不合法的請求。流行的路由器大多都可以將訪問限制在特定的 TCP 端口上,因此您可以只允許從端口 80(默認的 HTTP 端口)傳入請求。這可以防止防火墻外的任何人試圖連接到您計算機上的其他任何服務(wù)。打開其他服務(wù)的端口時請務(wù)必小心。您可以很方便地從終端服務(wù)客戶端打開一個端口,連接到您的 Web 服務(wù)器,以便進行遠程管理。但隨后,任何人都可以通過終端服務(wù)器連接嘗試連接到您的計算機。即便黑客不知道有效的用戶名和密碼,也仍然可以通過同時建立只顯示登錄屏幕的多個會話,來用完您計算機上的大量資源。

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

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

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

配置 TCP/IP 篩選以限制接受連接的端口

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

圖 2:配置 TCP/IP 篩選

刪除不必要的服務(wù)和軟件

計算機上運行的軟件越多,就越有可能受到攻擊,尤其是在您作為某種具有較高權(quán)限的用戶運行服務(wù)的時候更是如此。如果您的計算機專門運行 Web 服務(wù),且 Web 服務(wù)獨立于其他服務(wù),那么應(yīng)在您的計算機上禁用其他某些服務(wù),包括 FTP 服務(wù)、SMTP 服務(wù)以及諸如終端服務(wù)客戶端等的 Windows 服務(wù)。

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

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

使用 Microsoft Internet Information Server 安全性核對表

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

總結(jié)

根據(jù)您計算機和網(wǎng)絡(luò)配置的不同,會有多種保護措施,您應(yīng)采取相應(yīng)的措施保護您的 Web 服務(wù)器免受黑客攻擊。在下一篇專欄文章中,我們將研究開發(fā)人員和設(shè)計人員在創(chuàng)建其 XML Web Service 時需注意的問題,并繼續(xù)探討保護您的 XML Web Service 免受黑客攻擊的方法。

發(fā)布:2007-03-24 17:59    編輯:泛普軟件 · xiaona    [打印此頁]    [關(guān)閉]
相關(guān)文章:
上海OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢