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

來源:互聯網
上載者:User
web|xml|攻擊 Matt Powell
Microsoft Corporation
2001 年 9 月 5 日 簡介
在與開發人員就 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 有這樣一個錯誤:當出現某個特定類型的錯誤時,會顯示一個訊息框,駭客可以利用這一缺陷向您的電腦發送數目相對較少的請求,使該訊息框顯示出來。這會鎖定所有的線程處理請求,因此有效地阻止了其他人訪問您的服務。

相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。