第十五章 FrontPage服務器擴展分析與安全策略(1 / 3)

第十五章 FrontPage服務器擴展分析與安全策略

過去幾年中發生了許多針對FontPageServerExtensions的重大攻擊事件,所以FontPageServerExtensions的名聲似乎不是很好,一些安全教程甚至認為不值得去想辦法提高FrontPageServerExtensions的安全性,建議直接予以刪除。但是,如果你確實要使用FrontPageServerExtensions提供的諸多功能,例如對網站創作的支持,那就不得不認真考慮這樣一個問題:是否有可能保障FrontPageServerExtensions的安全?答案是肯定的,隻是必須花些時間進行規劃和配置。

雖然有許多人對FrontPageServerExtensions的安全性表示懷疑,但在年複一年的不斷發展中,它的安全性也在不斷提高。保障FrontPageServerExtensions的安全性是完全有可能的,但前提是要深入理解到底什麼是FrontPageServerExtensions,以及它是如何運作的。

一、運行原理

FrontPageServerExtensions即FrontPage的服務器端擴展模塊,它增強了Web服務器的功能,使得創作者能夠遠程管理和發布網站,例如通過FontPage直接與ServerExtensions交互,實現文件上載、連接到數據源、修改Web授權等操作。FrontPageServerExtensions還有一個稱為WebBots的運行時組件,它提供了許多高級功能,諸如表單發布、討論頁麵、內容鏈接等。

在服務器上安裝FrontPageServerExtensions之後,可以看到它包括三個二進製文件--admin.dll,author.dll,和shtml.exe,分別實現管理、創作、運行支持。FrontPageServerExtensions的版本不同,這三個文件的擴展名可能不同,例如.dll可能變成.exe,.exe可能變成.dll。另一方麵,IIS允許指定任意一種擴展名,因為IIS有一個名為fpexedll.dll的ISAPI篩選器,它會把請求指向正確的位置。

這三個二進製文件駐留在_vti_bin虛擬目錄中,_vti_bin虛擬目錄映射到物理目錄\programfiles\commonfiles\microsoftshared\webserverextensions\40\isapi(或者,對於FrontPageServerExtensions2002,物理目錄是\programfiles\commonfiles\microsoftshared\webserverextensions\50\isapi)。所有FrontPageWeb網站(指安裝和啟用了FrontPageServerExtensions的網站,下同)都有一個虛擬目錄映射到該路經。FrontPage通過向這些二進製文件發送HTTPPOST請求,實現與Web服務器的通信,POST請求的正文中包含一些特殊的命令(稱為vti_rpc命令),指示服務器執行一些特定的操作。

FrontPageServerExtensions的服務對象不限於FrontPage,微軟的其他許多技術,包括Web文件夾、OfficeWeb發布、SharePoint小組服務,都離不開FrontPageServerExtensions,它甚至還有一個ADO驅動程序,可以用來查詢FrontPageWeb頁麵。顯然,在微軟的Web戰略規劃中FrontPageServerExtensions有著重要地位,短期之內不可能被放棄。

二、風險分析

雖然微軟在不斷地改進FrontPageServerExtensions的安全性,但它不可避免地增加了Web服務器麵臨攻擊的機會(一般而言,越是複雜的係統,弱點總是越多)。例如,FrontPageServerExtensions提供了一種進入Web服務器的通道。用FrontPage連接Web服務器時要求輸入一個密碼,密碼保護雖然不無益處,但同時也給攻擊者提供了猜測密碼的機會,攻擊者可以方便地利用腳本程序執行暴力破解,很快就可以嚐試數百、數千個常用的密碼,一旦密碼泄露,攻擊者就可以隨心所欲地修改Web內容了。

FrontPageServerExtensions麵臨的另一個安全問題是它可以用來收集服務器信息。隻要向shtml.exe發送一個適當的HTTPPOST請求,就可以得到FrontPageServerExtensions版本、Web服務器軟件版本、OS平台、匿名Web用戶帳號、FrontPageWeb網站的名稱等信息,雖然這些信息本身不算機密,但方便了攻擊者采取更具有針對性的動作。

由於所有FrontPageServerExtensions命令都是作為POST數據發送給各個二進製文件,IIS的日誌中隻能記錄對這些二進製文件的POST請求,卻不能記錄具體的_vti_rpc命令。

雖然我們可以配置FrontPageServerExtensions,使其記錄創作類的動作(默認不記錄),但日誌仍不能保證包含命令的參數。例如,如果一個管理員修改了FrontPageWeb網站的配置,日誌中會有一個"設置服務元數據"的條目,但沒有進一步的具體信息,也就是說,它隻能說明"確實有配置被改變了",但不能告訴我們"到底哪些配置被改變了"。另外,日誌文件的位置也很難改變,一般總是保存在FrontPageWeb網站的_vti_log目錄下。