上一期我們介紹了入侵偵測系統,也了解到了資訊安全的風險指數=弱點X威脅,其威脅的部份,就由如同二十四小時保全人員的入侵偵測系統在網路及主機上監控。相對地,主機上的弱點則必須靠所謂的安全漏洞掃描器來作偵測。安全漏洞掃描器,就是市面上常聽到的Security Scanner,主要的功能是模擬駭客入侵的手法去測試系統上有沒有安全上的漏洞,進而從掃描出來的安全漏洞報告裏告訴使用者系統上的安全漏洞有多少?如何去修補及到那裏下載Patches?
使用Security Scanner的理由
為什麼要使用安全漏洞掃描器呢?基本上有三點:
1.集中式的找出安全漏洞
使用安全漏洞掃描器,可以找出各系統的漏洞,並集中式的了解漏洞內容,不需要每天注意各作業系統的漏洞通報,因為各作業系統的漏洞通報不會定時的發佈,並且即使發佈了,使用者也不一定知道。
2.降低風險指數
由安全漏洞掃描器所檢測出來的漏洞,會提供修正的步驟及Patches下載網址,進而減少系統漏洞,降低風險指數。
3.駭客也使用安全漏洞掃描器
當駭客要入侵一個網站或企業時,也會使用某些工具先去了解這個網站的作業系統、服務以及漏洞,接著再開始入侵,而這些工具便是安全漏洞掃描器。因此,系統管理者可以介由掃描器來模擬駭客的手法,了解自己主機上的漏洞。更重要的是,如果系統管理者都不了解自己網路或主機上的漏洞,那誰要來了解呢?
認識Security Scanner
漏洞掃描器一般分成網路型及主機型二大類的安全漏洞掃描器及資料庫安全漏洞掃描器,分別詳述如下:
網路型安全漏洞掃描器
網路型的漏洞掃描器主要是模擬駭客經由網路端發出封包,以主機接收到封包時的回應作為判斷標準,進而了解主機的作業系統、服務、及各種應用程式的漏洞,其運作的架構如(圖一)。我們可以由圖一知道網路型掃描器可以放置於Internet端,也就是可以放在家裏去掃描自己企業主機的漏洞,這樣等於是在模擬一個駭客從Internet去攻擊企業的主機。
當然,不一定要從Internet端去作掃描,因為那樣速度會較慢,您也可以把掃描器放在防火牆之前去作掃描,由得出來的報告了解防火牆幫企業把關了多少非法封包,也可以由此知道防火牆設定的是否良好。通常,即使有防火牆把關,還是可以掃描出漏洞,因為除了人為設定的疏失外,最重要的是防火牆還是會打開一些特定的Port,讓封包流進來,如HTTP、FTP等,而這些防火牆所允許的洞,便必須由入侵偵測系統來把關了。
最後,您當然可以在DMZ區及企業內部去作掃描,以了解在沒有防火牆把關下,主機的弱點有多少?因為企業內部的人員也可能是駭客,而且更容易得逞,因為並沒有防火牆在幫你把關,同樣地除了由掃描去減少自己企業內部主機的漏洞外,還是得在企業內部裝置所謂的入侵偵測系統才可二十四小時幫企業內部作監控,因此可以知道安全漏洞掃描器和入侵偵測系統是相輔相成的。
網路型安全漏洞掃描器主要的功能如下:
1.服務掃描偵測:
提供well-known port service的掃描偵測及well-known port以外的ports掃描偵測。
2.後門程式掃描偵測:
提供PC Anywhere、NetBus、Back Orifice、Back Orifice2000(BackdoorBo2k)等遠端控制程式(後門程式)的掃描偵測。
3.密碼破解掃描偵測:
提供密碼破解的掃描功能,包括作業系統及程式密碼破解掃描,如FTP、POP3、Telnet...等。
4.應用程式掃描偵測:
提供已知的破解程式執行掃描偵測,包括CGI-BIN、Web Server漏洞、FTP Server等的掃描偵測。
5.阻斷服務掃描測試:
提供阻斷服務(Denial Of Service)的掃描攻擊測試。
6.系統安全掃描偵測:
如NT的 Registry、NT Groups、NT Networking、NT User、NT Passwords、DCOM(Distributed Component Object Model)、安全掃描偵測。
7.分析報表:
產生分析報表,並告訴管理者如何去修補漏洞。
8.安全知識庫的更新:
所謂安全知識庫就是駭客入侵手法的知識庫,必須時常更新,才能落實掃描。
主機型安全漏洞掃描器:
主機型的安全漏洞掃描器最主要是針對作業系統內部問題作更深入的掃描,如Unix、NT、Liunx,它可彌補網路型安全漏洞掃描器只從外面透過網路檢查系統安全的不足。一般採用Client/Server的架構,如(圖二),其會有一個統一控管的主控台(Console)和分佈於各重要作業系統的Agents,然後由Console端下達命令給Agents進行掃描,各Agents再回報給Console掃描的結果,最後由Console端呈現出安全漏洞報表。
主機型安全漏洞掃描器主要的功能如下:
1.重要資料鎖定:
利用安全的Checksum(SHA1)來監控重要資料或程式的完整及真實性,如Index.html檔。
2.密碼檢測:
採用結合系統資訊、字典和詞彙組合的規則來檢測易猜的密碼。
3.系統日誌檔和文字檔分析:
能夠針對系統日誌檔,如Unix的syslogs及NT的事件檢視(event log),及其它文字檔(Text files)的內容做分析。
4.動態式的警訊:
當遇到違反掃描政策或安全弱點時提供即時警訊並利用email、SNMP traps、呼叫應用程式等方式回報給管理者。
5.分析報表:
產生分析報表,並告訴管理者如何去修補漏洞。
6.加密:
提供Console 和Agent 之間的TCP/IP連接認證、確認和加密等功能。
7.安全知識庫的更新:
主機型掃描器由中央控管並更新各主機的Agents 的安全知識庫。
資料庫安全漏洞掃描器
除了二大類的掃描器外,還有一種專門針對資料庫作安全漏洞檢查的掃描器,像是ISS公司的 Database Scanner。其架構和網路型掃描類似,主要功能為找出不良的密碼設定、過期密碼設定、偵測登入攻擊行為、關閉久未使用的帳戶,而且能追蹤登入期間的限制活動等。
定期檢查每個登入帳號密碼長度是一件非常重要的事,因為密碼是資料庫系統的第一道防線。如果沒有定期檢查密碼,導致密碼太短或太容易猜測,或是設定的密碼是字典上有的單字,都很容易被破解,導致資料外洩。大部分的關聯資料庫系統都不會要求使用者設定密碼,更別提上述的安全檢查機制,所以問題更嚴重。由於系統管理員的帳號(在SQL Server和Sybase中是sa)不能改名,所以如果沒有密碼鎖定的功能,入侵者就能用字典攻擊程式進行猜測密碼攻擊,到時資料庫只能任人宰割,讓人隨便使用最高存取權限。
除了密碼的管理,作業系統保護的了資料庫嗎?一般關聯資料庫經常有「port addressable」的特性,也就是使用者可以利用客戶端程式和系統管理工具直接從網路存取資料庫,無須理會主機作業系統的安全機制。而且資料庫有extended stored procedure和其他工具程式,可以讓資料庫和作業系統以及常見的電子商務設備(譬如網頁伺服器)互動。例如xp_cmdshell是SQL Server的extended stored procedure,就可用來和NT系統互動,執行NT命令列的動作。如果資料庫的管理員帳號曝光,或伺服器設定錯誤,惡意的使用者就可能利用這個stored procedure,自行設定一個沒有密碼保護的NT使用者帳號,然後讓這個帳號有作業系統的系統管理員權限。因此,資料庫的安全掃描也是資訊安全內很重要的一環。
結論
不論是網路型或主機型的安全漏洞掃描器,或者是資料庫安全漏洞掃描器,其最重要的就是安全知識庫的更新,這樣才能完全地掃描出系統的漏洞。同時在做完更新後,一定還要再作一次新的掃描,因為作業系統的漏洞隨時都在發佈,新的駭客入侵手法也一直翻新。入侵手法就如同病毒,而安全知識庫就如同病毒碼,如果一個掃描器背後的安全知識庫不健全的話,就無法對企業資訊安全作完善的稽核了。因此,在選擇一個安全漏洞掃描器時,必須考慮到之後知識庫更新的內容及能力,才不會花了冤枉錢。