用rpcinfo查詢
使用rpcinfo和showmount(對于Linux的某些版本,還可以使用kshowmount),你可以查詢自己機器的sunrpc提供了哪些服務。如果NFS正在運行,就有可能從服務器獲得已導出文件系統(tǒng)的清單。
# rpcinfo -p www.example.server program vers proto port 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper
|
可以看到,www.example.server的sunrpc服務開放了對外部機器的連接。這是沒有必要的,我們可以安裝帶有訪問控制的rpcbind程序或者配置防火墻阻斷它。
由于NFS默認值極不合理,把文件系統(tǒng)完全不受保護地以可讀寫方式顯露給外界就成了一種極為常見的錯誤。下面是一個實例:
# /usr/sbin/kshowmount -e center2.sample-university.netExport list for center2.sample-university.net:/usr/lib/cobol (everyone)/usr/sys/inst.images (everyone)/stadtinf (everyone)/var/spool/mail (everyone)/usr/lpp/info (everyone)/usr/local (everyone)/pd-software (everyone)/u1 (everyone)/user (everyone)/fix (everyone)/u (everyone)/ora rzws01/install (everyone)/ora-client 192.168.15.20
|
所有注明了“everyone”的目錄都是向公眾開放的,其中包括:保存了數百個用戶郵件的“/var/spool/mail”目錄,以及用戶的主目錄“/u”和“/u1”。另外“/usr/local”和“/usr/lib/cobol”也是允許寫入的,這使得它很容易被安裝上特洛伊木馬。任何人都可以進入這個系統(tǒng),且不會遇到什么值得一提的阻力。
[page]
私有數據的安全性
我們要討論的第二類安全問題涉及到服務器公用目錄下的私有數據。許多Web空間提供商提供的只有“Web空間”,它們會把用戶FTP目錄的根映射到Web服務器的根。也就是說,用戶可以通過FTP以“/”訪問服務器目錄“/home/www/servers/www.customer.com/”,同時任何人可以通過URL“http://www.customer.com/”訪問它,用FTP方式保存的“/password”文件可以通過URL“http://www.customer.com/password”訪問。如果用戶Web應用需要保存一些私有的、不能從Web訪問的數據,則根本無法找到滿足要求的位置。
許多Web商店把訂單日志和調試輸出寫入一個或多個日志文件,或者用配置文件來保存密碼和商品數據。如果這些數據保存到頁面文檔根目錄之下,那么它們就有相應的URL而且可以通過Web訪問。此時攻擊者所要做的只是猜出這些文件的名字。只要了解了20種主流在線商店系統(tǒng)的默認設置并正確地識別出目標網站所用的系統(tǒng),要猜出這些文件名字是相當簡單的。
如果Web服務器既提供私有數據存儲又提供公用頁面目錄,上述問題就不會再出現。例如在這些方案中,FTP根目錄“/”映射到“/home/www/servers/www.customer.com/”,但頁面文檔的根目錄卻在它的下一級目錄“/home/www/servers/www.customer.com/pages”,可以通過FTP以“/pages”形式訪問。在這種目錄配置下,用戶可以另外創(chuàng)建和頁面文檔根目錄平行的目錄,然后把敏感數據放到這些目錄中。由于這些目錄可以通過FTP訪問,但不能通過HTTP訪問,所以它們是無法通過Web訪問的。
如果系統(tǒng)沒有采用上述根目錄分離的目錄結構,我們還有一種解決問題的辦法,即在頁面文檔根目錄下創(chuàng)建專用的私有數據存儲目錄,如“/shop”,然后在這個目錄中創(chuàng)建.htaccess文件,通過.htaccess文件拒絕所有HTTP訪問(適用于Apache服務器):
$ cat /shop/.htaccessorder deny, allowdeny from all
|
該目錄中的文件只能通過FTP傳輸,因為FTP傳輸忽略.htaccess文件。但與前面采用頁面文檔根目錄之外獨立目錄的方法相比,這種方法的風險更多一點,因為如果服務器管理員在服務器主配置文件中意外地關閉了該目錄必不可少的“AllowOverride Limit”優(yōu)先權,這種保護將不再有效。
上述問題還有各種變化形式。如果一臺機器上運行著多個客戶網站,那么客戶就能夠欺騙機器,訪問在其自己目錄層次之外的路徑,例如“/home/www/servers/www.customer.com”目錄之外的文件。通常,只需創(chuàng)建各種符號鏈接(指向保存在用戶虛擬服務器之外的文件)就有可能實現這一點。最有可能成為鏈接目標的是包含文件和私有密匙,這是為了獲取數據庫密碼和其他必須保密的信息(為了讓應用能夠正常運行這些信息往往以明文形式保存在這類文件中)。其他可能的攻擊目標還包括保存在非公用目錄中的訂單記錄和其他有用數據。