如何解決幾類常見的服務(wù)器安全問題
Web服務(wù)器將成為下一代黑客施展妖術(shù)的對象。在很大程度上,進行這種攻擊只需一個Web瀏覽器和一個創(chuàng)造性的頭腦。以前,黑客的攻擊對象集中在操作系統(tǒng)和網(wǎng)絡(luò)協(xié)議上,但隨著這些攻擊目標(biāo)的弱點和漏洞逐漸得到修補,要進行這類攻擊已經(jīng)變得非常困難。操作系統(tǒng)正在變得更加穩(wěn)健,對攻擊的抵抗能力日益提高。隨著身份驗證和加密功能漸漸被內(nèi)置到網(wǎng)絡(luò)協(xié)議中,網(wǎng)絡(luò)協(xié)議也變得更加安全。此外,防火墻也越來越智能,成為網(wǎng)絡(luò)和系統(tǒng)的外部保護屏障。
另一方面,電子商務(wù)技術(shù)正在日益普及開來,其復(fù)雜性有增無減。基于Web的應(yīng)用程序正在與基本的操作系統(tǒng)和后端數(shù)據(jù)庫更加緊密地集成在一起。遺憾的是,人們在基于Web的基礎(chǔ)設(shè)施安全性方面所做的工作還很不夠。Web服務(wù)器和Web應(yīng)用程序中的弱點被發(fā)現(xiàn)的速度為何這么快呢?
有很多因素促成了這種Web黑客活動的快速增加。其中最主要的原因是防火墻允許所有的Web通信都可以進出網(wǎng)絡(luò),而防火墻無法防止對Web服務(wù)器程序及其組件或Web應(yīng)用程序的攻擊。第二個原因是,Web服務(wù)器和基于Web的應(yīng)用程序有時是在\"功能第一,安全其次\"的思想指導(dǎo)下開發(fā)出來的。
當(dāng)您的Web服務(wù)器面臨巨大威脅時,怎樣保障它們的安全呢?這就需要您不斷了解新信息,新情況,每天跟蹤您所用服務(wù)器的有關(guān)網(wǎng)站,閱讀相關(guān)新聞并向它進行咨詢。為了讓你著手這方面的工作,下面介紹黑客對NT系統(tǒng)的四種常用攻擊手段,同時介紹如何防止這類攻擊。
Microsoft IIS ism.dll緩沖區(qū)溢出
受影響的服務(wù)器:運行IIS 4.0并帶有\(zhòng)"Service Pack 3/4/5\"的Windows NT服務(wù)器Microsoft IIS緩沖區(qū)溢出這一安全弱點是Web服務(wù)器無時不有的重大缺陷之一。該弱點被稱為IIS eEye,這個名稱來自發(fā)現(xiàn)此問題的一個小組。在實施緩沖區(qū)溢出攻擊時,黑客向目標(biāo)程序或服務(wù)輸入超出程序處理能力的數(shù)據(jù),導(dǎo)致程序突然終止。另外,還可以通過設(shè)置,在執(zhí)行中的程序終止運行前,用輸入的內(nèi)容來覆蓋此程序的某些部分,這樣就可以在服務(wù)器的安全權(quán)限環(huán)境下執(zhí)行任意黑客命令。
eEye發(fā)現(xiàn),IIS用來解釋HTR文件的解釋程序是ism.dll,它對緩沖區(qū)溢出攻擊的抵抗力十分脆弱。如果攻擊者將一個以.htr結(jié)尾的超長文件名(大約3,000個字符,或更多)傳遞給IIS,那么輸入值將在ism.dll中造成輸入緩沖區(qū)溢出,并導(dǎo)致IIS崩潰。如果攻擊者輸入的不是一串字母而是可執(zhí)行代碼(通常稱為\"雞蛋\"或\"外殼代碼\"),那么在IIS終止之前將執(zhí)行該代碼。由eEye小組發(fā)現(xiàn)的這一攻擊方法包括三個步驟:
1.創(chuàng)建一個用于偵聽任意TCP端口上連接活動的程序。一旦接收到連接信號,該程序?qū)?zhí)行一個Windows命令外殼程序(cmd.exe),并將該外殼與連接綁定在一起。這個程序是經(jīng)過修改的Netcat。Netcat是一個流行的網(wǎng)絡(luò)連接實用程序,其源代碼可以免費獲得。
2.在IIS的ism.dll中制造緩沖區(qū)溢出,并使IIS從外部Web站點下載偵聽程序(由步驟1產(chǎn)生)。
3.執(zhí)行剛下載的程序(由步驟2產(chǎn)生),該程序?qū)⒌却齻魅氲倪B接并使攻擊者進入Windows命令外殼程序中。由于緩沖區(qū)溢出導(dǎo)致IIS在崩潰之前轉(zhuǎn)而運行Windows命令外殼,所以該外殼程序?qū)⒃贗IS的安全權(quán)限背景下運行,而該安全權(quán)限背景等價于NT Administrator權(quán)限。這樣,攻擊者要做的只是與被攻擊的IIS服務(wù)器的偵聽端口建立連接,然后等著出現(xiàn)c:>提示就萬事大吉了?,F(xiàn)在,攻擊者擁有對整個NT服務(wù)器的管理權(quán)限,可以做任何事,比如,添加新用戶、修改服務(wù)器的內(nèi)容、格式化驅(qū)動器,甚至將該服務(wù)器用作攻擊其它系統(tǒng)的踏腳石。運行IIS 4.0并帶有\(zhòng)"Service Pack 3/4/5\"的Windows NT服務(wù)器容易受到此類攻擊。Microsoft已經(jīng)發(fā)布了對該弱點的修補程序。Windows NT Service Pack6也已經(jīng)修補了該問題。
Microsoft IIS MDAC RDS安全弱點
受影響的服務(wù)器:運行IIS 4.0并安裝了MDAC 2.1或更早版本的Windows NT服務(wù)器在發(fā)現(xiàn)IIS eEye安全弱點的大約一個月后,IIS 4.0的另一個弱點又暴露出來。使用Microsoft數(shù)據(jù)訪問組件(MDAC)和遠(yuǎn)程數(shù)據(jù)服務(wù)(RDS),攻擊者可以建立非法的ODBC連接,并獲得對Web服務(wù)器上的內(nèi)部文件的訪問權(quán)。如果安裝了Microsoft Jet OLE DB提供程序或Datashape提供程序,攻擊者可以使用Visual Basic for Applications shell()函數(shù)發(fā)出能夠在服務(wù)器上執(zhí)行的命令。
在安裝了MDAC 2.1或更高版本的IIS 4.0上,從位于其公共目錄中的msadcmsa-dcs.dll,可以找到MDAC RDS弱點。Rain Forest Puppy在其站點中對該弱點進行了詳細(xì)說明。該弱點利用了IIS上MDAC默認(rèn)安裝時的不適當(dāng)配置和安全機制的缺乏這一漏洞。在等價于NT Administrator的IIS Web服務(wù)器進程的安全權(quán)限背景下,進行這種攻擊的黑客可以在NT系統(tǒng)上遠(yuǎn)程執(zhí)行任意命令。
MDAC的弱點不是由于技術(shù)造成的,而是由于用戶對它的配置方式所致。很多站點是通過NT Option Pack 4.0安裝IIS 4.0的。如果NT Option Pack 4.0是以典型或默認(rèn)配置安裝的,那么MDAC就容易遭到這種攻擊。大多數(shù)使用默認(rèn)安裝的系統(tǒng)管理員都沒有具體調(diào)整過這些設(shè)置,從而使Web服務(wù)器的安全性大大降低。Foundstone公司的George Kurtz、Purdue大學(xué)的Nitesh Dhanjani和我曾經(jīng)共同設(shè)計了一個只有一行的命令字符串,該命令將利用MDAC RDS弱點,使遠(yuǎn)程NT系統(tǒng)啟動一個通過FTP或TFTP進行的文件傳輸過程。這個命令將告訴服務(wù)器到從某個外部系統(tǒng)下載并執(zhí)行Netcat。Netcat將運行Windows命令外殼程序,并建立一個返回攻擊者計算機的連接,這樣,攻擊者就獲得了對遠(yuǎn)程NT系統(tǒng)的完全管理控制權(quán)。
Microsoft已經(jīng)發(fā)布了相應(yīng)的安全公告,并對使IIS 4.0免受該弱點攻擊的保護措施進行了說明。
Allaire ColdFusion 4.0弱點
受影響的服務(wù)器:運行在Windows NT上的Allaire ColdFusion Server 4.0
作為還算容易使用的、功能強大的腳本語言,ColdFusion已經(jīng)廣泛流行起來。但流行并不意味著安全。ColdFusion的問題不在于該服務(wù)器自身,而是在于它附帶的腳本。
ColdFusion 4.0提供了示范應(yīng)用程序和范例,它們可以在位于Web服務(wù)器根目錄中的cfdocsexampleapp和cfdocsexpeval目錄中找到。當(dāng)用戶執(zhí)行典型安裝時,將安裝這些應(yīng)用程序和腳本。ColdFusion所附帶的部分范例經(jīng)過修改后,將允許非法訪問服務(wù)器上所包含的敏感數(shù)據(jù)。這些弱點表明,基本的應(yīng)用程序服務(wù)器可以被編寫得不好的應(yīng)用程序腳本歪曲利用。
存在這種弱點的一個范例應(yīng)用程序是cfdocsexampleappdocssourcewindow.cfm。因為ColdFusion是作為具有Administrator權(quán)限的系統(tǒng)服務(wù)運行的,所以,該程序可以被用來任意訪問和查看NT Web服務(wù)器上的任何文件,包括boot.ini。用這種方法可以檢索任何文件。Packet Storm對該弱點做了完整解釋。而更嚴(yán)重的弱點存在于cfdocsexpevalopenfile.cfm、cfdocsexpevaldisp layopenedfile.cfm和cfdocsexpevalexprcalc.cfm中。這三個文件可以用來查看服務(wù)器上的任何文件,更為嚴(yán)重的是,它們還能將任意文件上載到服務(wù)器。對該弱點如何發(fā)作的討論超出了本文的范圍,欲了解詳細(xì)信息請訪問L0pht Heavy Industries的咨詢信息。表達(dá)式求值程序exprcalc.cfm用于讓開發(fā)人員計算被上載文件中的Cold-Fusion表達(dá)式的值。作為預(yù)防手段,該腳本在進行表達(dá)式計算時便會把被上載的文件刪除掉,但要避免刪除卻是件容易的事。這樣,攻擊者可以上載惡意文件,并最終控制服務(wù)器。
這些就是ColdFusion的示范腳本中最嚴(yán)重的弱點。要防止出現(xiàn)問題,請從任何運行中的服務(wù)器中刪除ColdFusion示范腳本。Allaire的Security Zone提供了補丁程序,并提供了如何保護ColdFusion服務(wù)器的進一步信息。
Sambar 4.3 hello.bat
受影響的服務(wù)器:運行在Windows NT上的Sambar 4.3 beta 7和更早版本Sambar是提供給開發(fā)者的免費Web服務(wù)器。它提供了對CGI和WinCGI腳本、ODBC腳本以及ISAPI的支持。它甚至捆綁了Perl 5解釋器。
Sambar 4.3 beta 7版和更早版本附帶兩個名為hello.bat和echo.bat的文件,它們是將Windows批處理文件用作CGI腳本的范例。這兩個腳本本身沒有問題,hello.bat顯示字符串\"Hello World\",而echo.bat顯示字符串\"Place Holder\"。但當(dāng)批處理文件被用作CGI腳本時,Web服務(wù)器將使用Windows命令外殼程序cmd.exe來運行它們。這樣,攻擊者可以利用該弱點針對目標(biāo)服務(wù)器運行任意命令。例如,假如攻擊者把URL
Windows命令外殼使用\"&”在相同命令行上分隔多個命令。如果用戶將“&”放在hello.bat的后面,并在其后添加一個命令,那么將在執(zhí)行hello.bat后執(zhí)行第二個命令。 由于已經(jīng)刪除了文件hello.bat和echo.bat,Sambar 4.3 beta 8版和更高版本沒有該弱點。但是,由于Windows命令外殼程序解析命令行的方式無法改變,所以并沒有辦法能真正修正該問題。如果您安裝了4.3 beta 7版或更低版本,請一定要刪除hello.bat和echo.bat。 【編輯推薦】