步驟三:檢查目錄許可
在關閉了無用端口并禁用了多余的賬號后,仔細檢查一下程序所用到的數據庫和服務器目錄的權限設置。很多攻擊利用了配置失誤的權限,這種方法經常被用來攻擊Web服務器。
例如,使用CGI腳本的Web站點有時允許寫訪問。通過它,一個惡意的供給者可以很簡單地在CGI二進制目錄下放置一個文件。然后他就能夠調用這個腳本文件,Web服務器會運行它,典型地在管理員權限下。能夠寫并執行腳本是非常危險的,要開放這些權限應該格外小心。
另一個例子,幾年前,我給一個安全實驗室里的一個非常重要的系統作測試。通過配置失誤的權限,我可以在很短的時間內破壞整個實驗室以及所有17個被認為是安全的機器。在端口掃描之后,我發現每個服務器都運行了一個FTP監聽器,而且每個都允許匿名訪問,使得我可以訪問每個服務器系統。
FTP監聽器給了我對每臺機器上真正存放密碼文件的訪問權限,真是一個巨大的配置失誤。由于權限如此設置,我不僅可以下載存放密碼的文件,而且可以通過把密碼文件中的密碼修改后再上傳給服務器覆蓋源文件而使這些用戶“中毒”。當然我將自己授予了root訪問權,從而取得了機器的管理員權限。
如果正確地設置了目錄權限,我就不能訪問被指定給匿名用戶使用的FTP目錄以外的任何東西。因此,我本不能夠得到真正存放密碼的文件,更別提將其替換了。當然,如果他們曾經做過任何自己的端口掃描,就像我在步驟一里提到的,那么用這種方法我將哪里也到不了。
步驟四:對數據庫也進行和上面同樣的設置
文件系統不是唯一因權限設置不當而會受到攻擊的對象。大多數的數據庫系統有很多安全漏洞。它們的默認權限設置通常不正確,如打開了不必要的端口、創建了很多演示用戶。一個著名的例子是Oracle的演示用戶Scott,密碼為Tiger。加強數據庫安全的措施與操作系統一樣:關閉任何不需要的端口、刪除或禁用多余的用戶,并只給一個用戶完成其任務所必需的權限。
步驟五:關上后門
你對必須經過幾個步驟來測試被應用程序包裝得很深的功能感到厭倦了嗎?能夠建立一個直觀的快捷方式嗎?其實大家都這么想。問題在于這些快捷方式——也被叫做后門,經常被忽略或遺忘,而有時它們又會不經意地連同應用程序一起被發布。任何嚴格的安全測試程序都因該包括檢查程序代碼中不經意留下的后門。
另一個真實的因后門而引發安全問題的例子是Solaris操作系統的早期版本的[Ctrl]K錯誤。上世紀90年代早期的Solaris用戶只需以一般用戶身份登陸并按兩次[Ctrl]K就可以獲得root權限。
為了尋找后門,必須完整地檢查源代碼,查找基于非預期參數的條件跳轉語句。例如,如果某個程序是通過雙擊圖標而被調用的,那么要確保代碼不會因為從命令行用特殊參數調用而跳轉到某個管理或特權模式。
原文轉自:http://www.anti-gravitydesign.com