如何徹底保護你的網站不受RDS攻擊的威脅

來源:互聯網
上載者:User
攻擊


http://www.wiretrip.net/rfp/
相關內容:
- 1. 問題
- 2. 解決方案
- 3. 形勢
- 4. 所有相關資源

如果你沒有時間來讀完本文,那麼你所需要做的就是刪除這個檔案:

?:\Program Files\Common Files\System\Msadc\msadcs.dll

最迅速和最徹底的取消對RDS的支援。(但是如果你確實需要RDS,那麼你最好往下讀)
----------------------------------------------------------------------
-

----[ 1. 問題
RDS攻擊不是一個簡單的問題,雖然IIS 4.0存在許多各種各樣的安全性漏洞,
但是微軟從來沒有為同一個安全性漏洞發布過如此多的補丁程式,一共是發布了三個不同的補丁程式,但是RDS仍然存在問題。
所以我們需要的是真正掌握什麼是RDS。然後你就會知道如何來自己修補
這個問題。這個問題從根本上說,是由於Jet 3.5允許調用VBA的shell()函數造成的。
該函數允許你執行外殼命令,具體的過程我想還是不詳細介紹了。
現在的問題是,IIS 4.0預設的情況下是安裝有MDAC 1.5的,它包含有RDS,
從而允許通過瀏覽器遠端存取ODBC組件,具體的實現是通過一個位
於/msadc/msadcs.dll
的特定的dll檔案來實現的。現在你應該可以明白,問題其實是由兩部分組成。其實還有個“第三者”,那就是跟隨RDS SDK包安裝附帶的例子程式組件VbBusObj,它可以允許你
饒過那些就是已經安裝了微軟發布的RDS補丁的情況。
下面將分別就上面三種情況做詳細的解決方案描述。

----[ 2. 解決方案
問題是目前有許多種方法來解決,同時這些方法還可以被不同的組合使用。
在這裡盡量描述詳細。
-解決方案 #1: 移走cmd.exe (ULG推薦的補丁方法)
http://www.aviary-mag.com/News/Powerful_Exploit/ULG_Fix/ulg_fix.html

我推薦ULG的解決方案,雖然該方法仍然存在問題。因為雖然mdac.pl是使用了
cmd.exe
來實現RDS攻擊的,但是,要知道
CMD.EXE並不是RDS攻擊方法的唯一實現途徑


-解決方案 #2: 升級MDAC 1.5 到 2.0

MDAC 2.0將Jet 3.5升級到Jet 3.52。但是仍然存在VBA shell()攻擊問題(而這恰好是
RDS攻擊的必要條件),並且預設情況下還是支援使用RDS的。事實上,就是你刪除了RDS系統還是會重新安裝的,其中一些應該注意的事情是:

* 預設的Jet引擎變成了3.52 (仍然有安全性漏洞)
* 允許自訂處理 (可以解決匿名RDS使用問題)
* 產生 Microsoft.Jet.OLEDB.3.51* 提供
注意這種解決方案,它的預設設定不是非常好。你需要修改註冊表來限制自訂使用RDS處理。註冊表中位置是:
HKEY_LOCAL_MACHINE\Software\Microsoft\DataFactory\HandlerInfo\

Keyname: HandlerRequired
Value: DWORD:1 (safe) or 0 (unsafe)
推薦是將它的數值改成1。這其實也是使用微軟提供的補丁'handsafe.exe/.reg'完成的。
現在,你可以保護你的系統不被遠程RDS攻擊了,但是你仍然存在被ODBC其他方式攻擊的可能性,
包括Excel, Word, 和 Access木馬檔案等。所以這個解決方案也有一些不足。

-解決方案 #3: 升級你的MDAC 1.5 到 2.1

MDAC 2.1 將Jet 3.5 升級到Jet 4.0引擎,這個引擎不存在RDS攻擊安全性漏洞。
但是同時也印證了一個亙古不變的法則,東西越安全它的相容性能也就越差,
由於3.5和4.0之間存在太大的差異,許多人不願意為了這些相容性能而升級。
因為一旦升級後許多現在正在使用的程式將完全不能夠使用。具體細節是:

* 預設的資料庫引擎為Jet 4.0 (沒有這個安全性漏洞)
* 支援自訂處理 (可以禁止匿名使用RDS)

但是,自訂處理預設的情況下並不是使用的。你同樣需要象上面一樣來修改註冊表。

-解決方案 #4: 升級你的MDAC 1.5到2.0,然後再到2.1
現在,如果你是一個優秀的管理員,你應該保證你一直升級你的系統。如果你經常升級,就應該服從按順序升級的次序。雖然同樣你需要修改註冊表使
能'HandlerRequired'
,同樣由於使用了2.1的Jet 4.0(沒有漏洞)作為預設的資料庫引擎。但是由於你是通過
從2。0的升級,所以你將擁有Microsoft.Jet.OLEDB.3.51.
這意味著你的運用程式(包括RDS)對資料庫的調用情況都能夠被日誌記錄下來。而那些
老版本的OLEDB是實現不了的。
你應該從註冊表中將老的hooks/providers數值去掉。一個方法是刪除下面的索引值入口:
HKEY_CLASSES_ROOT\Microsoft.Jet.OLEDB.3.51
HKEY_CLASSES_ROOT\Microsoft.Jet.OLEDB.3.51Errors
但是,你仍然需要面對的問題是相容性能問題。

-解決方案 #5: 安裝JetCopkg.exe (見微軟發布的資訊安全諮詢MS99-030)

JetCopkg.exe是一個修改過的Jet 3.5引擎,它增強了更多的安全特性來防止被攻擊。
它主要是對註冊表中下列索引值的修改:
HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\engines\SandboxMode
它的值如下:
0 禁止一切
1 使能訪問ACCESS,但是禁止其它
2 禁止訪問ACCESS,但是使能其他
3 使能一切

(詳細的解釋可以參考
http://support.microsoft.com/support/kb/articles/q239/1/04.asp)
值得注意的是,預設的允許修改索引值許可權是不安全的。你必須只能夠讓有許可權的
帳號才能夠修改該索引值。不然該索引值會帶來很多安全上的隱患。切記,切記。
只要將索引值該成2或則3就可以將一切對RDS的攻擊拒絕了。所以,這個解決方案是最好的。
並且由於它仍然使用的是Jet 3.5引擎,所以你不用擔心相容性能的問題。並且同時你還是可以
使用RDS的,雖然已經不能夠再使用RDS進行攻擊了,但是問題是匿名使用RDS還是會將你的資料庫中的資訊給
泄露出去的。所以你需要對RDS有較深入的編程基礎,我可以建議你禁止使用RDS或則將ODBC升級到
MDAC 2.0,這樣你就可以只讓有許可權的人才能夠使用RDS,而拒絕匿名使用者使用。

-解決方案 #6: 刪除/禁止RDS功能
就是我在本文最開始的位置提到的方法,刪除下面這個檔案:
?:\Program Files\Common Files\System\Msadc\msadcs.dll
就是它提供了RDS的調用介面。下面是一些更詳細徹底清除RDS(如果你確信你的網站不需要該功能的話)的步驟:

* 從IIS控制台刪除/msadc虛擬目錄
* 刪除下面的註冊表索引值:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\
ADCLaunch
* 刪除下面這個檔案目錄
?:\Program Files\Common Files\System\Msadc

----[ 3. 情況
-情況 #1: 我確實需要RDS
首先你需要升級你的系統到MDAC 2.0。記住別忘了安裝JetCopkg,或者你直接升級到MDAC 2.1.
確保你修改了'HandlerRequired'註冊表中的數值,解釋見上。同時確保你已經刪除了所有的
RDS的例子程式。同時取消匿名帳號對/msadc目錄的存取權限,而使用自訂帳號來進行處理。
詳細的步驟可以參考:
http://www.microsoft.com/Data/ado/rds/custhand.htm
如果你對英文感冒的話,也可以參考我發表在joy ASP精華區中的如何自訂處理RDS的文章。

-情況 #2:我還是想使用那些例子該怎麼辦?
那麼唯一的方法就是你必須禁止匿名帳號對RDS的存取權限。但是例子中的
VbBusObjcls會跳過自訂
訪問的限制,如果例子是安裝在
?:\Program Files\Common Files\System\Msadc\Samples
的話,那麼你應該按照下面的步驟來解決:
*刪除下面這個目錄下所有的東西
?:\Progam Files\Comman Files\System\Msadc\Samples
* 刪除註冊表中的索引值
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\
ADCLaunch\VbBusObj.VbBusObjCls

----[ 4. 所有相關資源

- 官方Jet 3.5升級檔案(i386)
http://www.wiretrip.net/rfp/bins/msadc/jetcopkg.exe
http://officeupdate.microsoft.com/isapi/gooffupd.asp?
TARGET=/downloaditems/JetCopkg.exe


- Microsoft資料庫訪問首頁
http://www.microsoft.com/data/

- MDAC 2.1.2.4202.3 (GA) (aka MDAC 2.1 sp2) 升級版本 (i386)
http://www.wiretrip.net/rfp/bins/msadc/mdac_typ.exe
http://www.microsoft.com/data/download_21242023.htm


- MDAC 2.1.1.3711.11 (GA) (aka MDAC 2.1 sp1) hotfix
http://www.microsoft.com/data/download/jetODBC.exe

- MDAC 2.1
http://www.microsoft.com/data/MDAC21info/MDAC21sp2manifest.htm

- MDAC 2.1 安裝常見問題
http://www.microsoft.com/data/MDAC21info/MDACinstQ.htm

- RDS 1.5, IIS 3.0 or 4.0, 和ODBC中的安全問題
http://support.microsoft.com/support/kb/articles/q184/3/75.asp

- 未授權訪問ODBC Data Access 的RDS資訊安全諮詢 (MS99-004)
http://www.microsoft.com/security/bulletins/ms98-004.asp

- 資訊安全諮詢 MS99-004 (MS99-025)
http://www.microsoft.com/security/bulletins/ms99-025.asp

- MS99-025常見問題
http://www.microsoft.com/security/bulletins/MS99-025faq.asp

- MS99-30: 官方ODBC安全性漏洞補丁大全
http://www.microsoft.com/security/bulletins/ms99-030.asp

- Jet引擎可以執行不安全的VBA函數
http://support.microsoft.com/support/kb/articles/q239/1/04.asp

- 如何?自訂操縱RDS 2.0
http://www.microsoft.com/Data/ado/rds/custhand.htm

- 安全修改註冊表補丁
http://www.wiretrip.net/rfp/bins/msadc/handsafe.exe
http://www.microsoft.com/security/bulletins/handsafe.exe

- RFP9901: NT ODBC遠端存取漏洞
http://www.wiretrip.net/rfp/p/doc.asp?id=3&iface=2

- RFP9902: RDS/IIS 4.0安全性漏洞及破壞
http://www.wiretrip.net/rfp/p/doc.asp?id=1&iface=2

- RDS攻擊(msadc.pl v1 and v2)
http://www.wiretrip.net/rfp/p/doc.asp?id=16&iface=2

- ULG 推薦的補丁方法
http://www.aviary-mag.com/News/Powerful_Exploit/ULG_Fix/ulg_fix.html

- CERT公告
http://www.cert.org/current/current_activity.html#0

- Attrition公告
http://www.attrition.org/mirror/attrition




相關文章

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