蜜罐技術
誘騙攻擊方的防禦手段
蜜罐技術本質上是一種對攻擊方進行欺騙的技術,通過布置一些作為誘餌的主機、網路服務或者信息,誘使攻擊方對它們實施攻擊,從而可以對攻擊行為進行捕獲和分析,了解攻擊方所使用的工具與方法,推測攻擊意圖和動機,能夠讓防禦方清晰地了解他們所面對的安全威脅,並通過技術和管理手段來增強實際系統的安全防護能力。
蜜罐好比是情報收集系統。蜜罐好像是故意讓人攻擊的目標,引誘黑客前來攻擊。所以攻擊者入侵后,你就可以知道他是如何得逞的,隨時了解針對伺服器發動的最新的攻擊和漏洞。還可以通過竊聽黑客之間的聯繫,收集黑客所用的種種工具,並且掌握他們的社交網路。
首先我們要弄清楚一台蜜罐和一台沒有任何防範措施的計算機的區別,雖然這兩者都有可能被入侵破壞,但是本質卻完全不同,蜜罐是網路管理員經過周密布置而設下的“黑匣子”,看似漏洞百出卻盡在掌握之中,它收集的入侵數據十分有價值;而後者,根本就是送給入侵者的禮物,即使被入侵也不一定查得到痕迹……因此,蜜罐的定義是:“蜜罐是一個安全資源,它的價值在於被探測、攻擊和損害。”
設計蜜罐的初衷就是讓黑客入侵,藉此收集證據,同時隱藏真實的伺服器地址,因此我們要求一台合格的蜜罐擁有這些功能:發現攻擊、產生警告、強大的記錄能力、欺騙、協助調查。另外一個功能由管理員去完成,那就是在必要時候根據蜜罐收集的證據來起訴入侵者。
蜜罐是用來給黑客入侵的,它必須提供一定的漏洞,但是我們也知道,很多漏洞都屬於“高危”級別,稍有不慎就會導致系統被滲透,一旦蜜罐被破壞,入侵者要做的事情是管理員無法預料的。例如,一個入侵者成功進入了一台蜜罐,並且用它做“跳板”(指入侵者遠程控制一台或多台被入侵的計算機對別的計算機進行入侵行為)去攻擊別人,那麼這個損失由誰來負責?設置一台蜜罐必須面對三個問題:設陷技術、隱私、責任。
設陷技術關係到設置這台蜜罐的管理員的技術,一台設置不周全或者隱蔽性不夠的蜜罐會被入侵者輕易識破或者破壞,由此導致的後果將十分嚴重。
由於蜜罐屬於記錄設備,所以它有可能會牽涉到隱私權問題,如果一個企業的管理員惡意設計一台蜜罐用於收集公司員工的活動數據,或者偷偷攔截記錄公司網路通訊信息,這樣的蜜罐就已經涉及法律問題了。
對於管理員而言,最倒霉的事情就是蜜罐被入侵者成功破壞了。有人也許會認為,既然蜜罐是故意設計來“犧牲”的,那麼它被破壞當然合情合理,用不著小題大做吧。對,蜜罐的確是用來“受虐”的,但是它同時也是一台連接網路的計算機,如果你做的一台蜜罐被入侵者攻破並“借”來對某大學伺服器進行攻擊,因此引發的損失恐怕只能由你來承擔了。還有一些責任是誰也說不清的,例如,你做的一台蜜罐不幸引來了Slammer、Sasser、Blaster等大名鼎鼎的“爬蟲類”病毒而成了傳播源之一,那麼這個責任誰來負擔?
世界上不會有非常全面的事物,蜜罐也一樣。根據管理員的需要,蜜罐的系統和漏洞設置要求也不盡相同,蜜罐是有針對性的,而不是盲目設置來無聊的,因此,就產生了多種多樣的蜜罐……
實系統蜜罐
實系統蜜罐是最真實的蜜罐,它運行著真實的系統,並且帶著真實可入侵的漏洞,屬於最危險的漏洞,但是它記錄下的入侵信息往往是最真實的。這種蜜罐安裝的系統一般都是最初的,沒有任何SP補丁,或者打了低版本SP補丁,根據管理員需要,也可能補上了一些漏洞,只要值得研究的漏洞還存在即可。然後把蜜罐連接上網路,根據目前的網路掃描頻繁度來看,這樣的蜜罐很快就能吸引到目標並接受攻擊,系統運行著的記錄程序會記下入侵者的一舉一動,但同時它也是最危險的,因為入侵者每一個入侵都會引起系統真實的反應,例如被溢出、滲透、奪取許可權等。
偽系統蜜罐
什麼叫偽系統呢?不要誤解成“假的系統”,它也是建立在真實系統基礎上的,但是它最大的特點就是“平台與漏洞非對稱性”。
大家應該都知道,世界上操作系統不是只有Windows一家而已,在這個領域,還有Linux、Unix、OS2、BeOS等,它們的核心不同,因此會產生的漏洞缺陷也就不盡相同,簡單的說,就是很少有能同時攻擊幾種系統的漏洞代碼,也許你用LSASS溢出漏洞能拿到Windows的許可權,但是用同樣的手法去溢出Linux只能徒勞。根據這種特性,就產生了“偽系統蜜罐”,它利用一些工具程序強大的模仿能力,偽造出不屬於自己平台的“漏洞”,入侵這樣的“漏洞”,只能是在一個程序框架里打轉,即使成功“滲透”,也仍然是程序製造的夢境——系統本來就沒有讓這種漏洞成立的條件,談何“滲透”?實現一個“偽系統”並不困難,Windows平台下的一些虛擬機程序、Linux自身的腳本功能加上第三方工具就能輕鬆實現,甚至在Linux/Unix下還能實時由管理員產生一些根本不存在的“漏洞”,讓入侵者自以為得逞的在裡面瞎忙。實現跟蹤記錄也很容易,只要在後台開著相應的記錄程序即可。
這種蜜罐的好處在於,它可以最大程度防止被入侵者破壞,也能模擬不存在的漏洞,甚至可以讓一些Windows蠕蟲攻擊Linux——只要你模擬出符合條件的Windows特徵!但是它也存在壞處,因為一個聰明的入侵者只要經過幾個回合就會識破偽裝,另者,編寫腳本不是很簡便的事情,除非那個管理員很有耐心或者十分悠閑。
既然蜜罐不是隨隨便便做來玩的,管理員自然就不會做個蜜罐然後讓它賦閑在家,那麼蜜罐做來到底怎麼用呢?
迷惑入侵者,保護伺服器
一般的客戶/伺服器模式里,瀏覽者是直接與網站伺服器連接的,換句話說,整個網站伺服器都暴露在入侵者面前,如果伺服器安全措施不夠,那麼整個網站數據都有可能被入侵者輕易毀滅。但是如果在客戶/伺服器模式里嵌入蜜罐,讓蜜罐作為伺服器角色,真正的網站伺服器作為一個內部網路在蜜罐上做網路埠映射,這樣可以把網站的安全係數提高,入侵者即使滲透了位於外部的“伺服器”,他也得不到任何有價值的資料,因為他入侵的是蜜罐而已。雖然入侵者可以在蜜罐的基礎上跳進內部網路,但那要比直接攻下一台外部伺服器複雜得多,許多水平不足的入侵者只能望而卻步。蜜罐也許會被破壞,可是不要忘記了,蜜罐本來就是被破壞的角色。
在這種用途上,蜜罐不能再設計得漏洞百出了。蜜罐既然成了內部伺服器的保護層,就必須要求它自身足夠堅固,否則,整個網站都要拱手送人了。
抵禦入侵者,加固伺服器
入侵與防範一直都是熱點問題,而在其間插入一個蜜罐環節將會使防範變得有趣,這台蜜罐被設置得與內部網路伺服器一樣,當一個入侵者費儘力氣入侵了這台蜜罐的時候,管理員已經收集到足夠的攻擊數據來加固真實的伺服器。
採用這個策略去布置蜜罐,需要管理員配合監視,否則入侵者攻破了第一台,就有第二台接著承受攻擊了……
誘捕網路罪犯
這是一個相當有趣的應用,當管理員發現一個普通的客戶/伺服器模式網站伺服器已經犧牲成肉雞的時候,如果技術能力允許,管理員會迅速修復伺服器。那麼下次呢?既然入侵者已經確信自己把該伺服器做成了肉雞,他下次必然還會來查看戰果,難道就這樣任由他放肆?一些企業的管理員不會罷休,他們會設置一個蜜罐模擬出已經被入侵的狀態,做起了姜太公。同樣,一些企業為了查找惡意入侵者,也會故意設置一些有不明顯漏洞的蜜罐,讓入侵者在不起疑心的情況下乖乖被記錄下一切行動證據,有些人把此戲稱為“監獄機”,通過與電信局的配合,可以輕易揪出IP源頭的那雙黑手。
蜜罐主要是一種研究工具,但同樣有著真正的商業應用。把蜜罐設置在與公司的Web或郵件伺服器相鄰的IP地址上,你就可以了解它所遭受到的攻擊。
當然,蜜罐和蜜網不是什麼“射后不理”(fire and forget)的安全設備。據蜜網計劃聲稱,要真正弄清楚攻擊者在短短30分鐘內造成的破壞,通常需要分析30到40個小時。系統還需要認真維護及測試。有了蜜罐,你要不斷與黑客鬥智斗勇。可以這麼說:你選擇的是戰場,而對手選擇的是較量時機。因而,你必須時時保持警惕。
蜜罐(Honeypot)是一種在網際網路上運行的計算 機系統。它是專門為吸引並誘騙那些試圖非法闖 入他人計算機系統的人(如電腦黑客)而設計的,蜜罐系統是一個包含漏洞的誘騙系統,它通過模擬一個或多個易受攻擊的主機,給攻擊者提供一個容易攻擊的目標。由於蜜罐並沒有向外界提供真正有價值的服務,因此所有對蜜罐嘗試都被視為可疑的。蜜罐的另一個用途是拖延攻擊者對真正 目標的攻擊,讓攻擊者在蜜罐上浪費時間。簡單點一說:蜜罐就是誘捕攻擊者的一個陷阱。
蜜罐技術
不過,設置蜜罐並不是說沒有風險。這是因為,大部分安全遭到危及的系統會被黑客用來攻擊其它系統。這就是下游責任(downstream liability),由此引出了蜜網(honeynet)這一話題。
數據收集是設置蜜罐的另一項技術挑戰。蜜罐監控者只要記錄下進出系統的每個數據包,就能夠對黑客的所作所為一清二楚。蜜罐本身上面的日誌文件也是很好的數據來源。但日誌文件很容易被攻擊者刪除,所以通常的辦法就是讓蜜罐向在同一網路上但防禦機制較完善的遠程系統日誌伺服器發送日誌備份。(務必同時監控日誌伺服器。如果攻擊者用新手法闖入了伺服器,那麼蜜罐無疑會證明其價值。)
近年來,由於黑帽子群體越來越多地使用加密技術,數據收集任務的難度大大增強。如今,他們接受了眾多計算機安全專業人士的建議,改而採用SSH等密碼協議,確保網路監控對自己的通訊無能為力。蜜網對付密碼的計算就是修改目標計算機的操作系統,以便所有敲入的字元、傳輸的文件及其它信息都記錄到另一個監控系統的日誌裡面。因為攻擊者可能會發現這類日誌,蜜網計劃採用了一種隱蔽技術。譬如說,把敲入字元隱藏到NetBIOS廣播數據包裡面。
蜜罐系統的優點之一就是它們大大減少了所要分析的數據。對於通常的網站或郵件伺服器,攻擊流量通常會被合法流量所淹沒。而蜜罐進出的數據大部分是攻擊流量。因而,瀏覽數據、查明攻擊者的實際行為也就容易多了。
自1999年啟動以來,蜜網計劃已經收集到了大量信息。部分發現結果包括:攻擊率在過去一年增加了一倍;攻擊者越來越多地使用能夠堵住漏洞的自動點擊工具(如果發現新漏洞,工具很容易更新);儘管虛張聲勢,但很少有黑客採用新的攻擊手法。
蜜網是指另外採用了技術的蜜罐,從而以合理方式記錄下黑客的行動,同時盡量減小或排除對網際網路上其它系統造成的風險。建立在反向防火牆後面的蜜罐就是一個例子。防火牆的目的不是防止入站連接,而是防止蜜罐建立出站連接。不過,雖然這種方法使蜜罐不會破壞其它系統,但同時很容易被黑客發現。
蜜罐領域最讓人興奮的發展成果之一就是出現了虛擬蜜網。虛擬計算機網路運行在使用VMware或User-Mode Linux等虛擬計算機系統的單一機器之上。虛擬系統使你可以在單一主機系統上運行幾台虛擬計算機(通常是4到10台)。虛擬蜜網大大降低了成本、機器佔用空間以及管理蜜罐的難度。此外,虛擬系統通常支持“掛起”和“恢復”功能,這樣你就可以凍結安全受危及的計算機,分析攻擊方法,然後打開TCP/IP連接及系統上面的其它服務。
對大組織的首席安全官(CSO)來說,運行蜜網最充分的理由之一就是可以發現內部不懷好意的人。
出乎意料的是,監控蜜罐也要承擔相應的法律後果,譬如說,有可能違反《反竊聽法》。雖然目前沒有判例法,但熟悉這方面法律的人士大多數認為,雙方同意的標語是出路所在。也就是說,給每個蜜罐打上這樣的標語:“使用該系統的任何人同意自己的行為受到監控,並透露給其他人,包括執法人員。”
《特洛伊》里龐大的希臘艦隊、《終結者2》里隨意改變形體的“液體金屬”、《侏羅紀公園》里滿地亂跑的恐龍們、《黑客帝國》里的“子彈時間”…… 隨著計算機技術的不斷發展,越來越多的電腦特技被應用在電影領域,不需要工資的虛擬演員不知辛勞地日夜工作,這些電腦技術使得導演可以構思現實中不可能存在的情節環境,也減少了影片開支。但是,在計算機的信息安全領域裡,網路管理員要面對的是黑客真槍實幹的入侵破壞,難道在電腦技術大量應用的今天,安全領域卻得不到一點援助?答案是有的,它就是在安全領域裡代替網路管理員上陣的“虛擬演員”——蜜罐技術。
蜜罐,或稱Honeypot,與應用於電影的特技相比,它並不神秘——所謂蜜罐,就是一台不作任何安全防範措施而且連接網路的計算機,但是與一般計算機不同,它內部運行著多種多樣的數據記錄程序和特殊用途的“自我暴露程序”——要誘惑貪嘴的黑熊上鉤,蜂蜜自然是不可少的。在入侵者的角度來看,入侵到蜜罐會使他們的心情大起大落——從一開始偷著樂罵管理員傻帽到最後明白自己被傻帽當成猴子耍的過程。
《終結者2》里阿諾讓約翰把自己放入熔爐,《特洛伊》里Achilles被王子射殺,戰爭片里的機槍掃射,甚至《黑衣人》裡外星人發射的核彈毀滅了北極!如果這一切是真實的話,我們的明星已經成為牆上的照片了,拍一部片要死多少人?況且,我們只有一個地球,值得為了一部影片炸掉某個地區?所以人們必須採用電腦特技完成這些不能真實發生的劇情。同樣,管理員也不會為了記錄入侵情況而讓入侵者肆意進入伺服器搞破壞,所以蜜罐出現了。
前面說過了,蜜罐是一台存在多種漏洞的計算機,而且管理員清楚它身上有多少個漏洞,這就像狙擊手為了試探敵方狙擊手的實力而用槍支撐起的鋼盔,蜜罐被入侵而記錄下入侵者的一舉一動,是為了管理員能更好的分析廣大入侵者都喜歡往哪個洞里鑽,今後才能加強防禦。
另一方面是因為防火牆的局限性和脆弱性,因為防火牆必須建立在基於已知危險的規則體繫上進行防禦,如果入侵者發動新形式的攻擊,防火牆沒有相對應的規則去處理,這個防火牆就形同虛設了,防火牆保護的系統也會遭到破壞,因此技術員需要蜜罐來記錄入侵者的行動和入侵數據,必要時給防火牆添加新規則或者手工防禦。
既然使用蜜罐能有那麼多好處,那麼大家都在自己家裡做個蜜罐,豈不是能最大程度防範黑客?有這個想法的讀者請就此打住!蜜罐雖然在一定程度上能幫管理員解決分析問題,但它並不是防火牆,相反地,它是個危險的入侵記錄系統。蜜罐被狡猾的入侵者反利用來攻擊別人的例子也屢見不鮮,只要管理員在某個設置上出現錯誤,蜜罐就成了打狗的肉包子。而一般的家庭用戶電腦水平不可能達到專業水平,讓他們做蜜罐反而會引火燒身——蜜罐看似簡單,實際卻很複雜。雖然蜜罐要做好隨時犧牲的準備,可是如果它到最後都沒能記錄到入侵數據,那麼這台蜜罐根本就是純粹等著挨宰的肉雞了,蜜罐就複雜在此,它自身需要提供讓入侵者樂意停留的漏洞,又要確保後台記錄能正常而且隱蔽的運行,這些都需要專業技術,如果蜜罐能隨便做出來,我們在家裡也能拍攝《黑客帝國》了——故意開著漏洞卻沒有完善的記錄處理環境的伺服器不能稱為蜜罐,它只能是肉雞。
隨著網路入侵類型的多樣化發展,蜜罐也必須進行多樣化的演繹,否則它有一天將無法面對入侵者的肆虐。這也對網路管理員的技術能力有了更高的要求,因為蜜罐——這個活躍在安全領域的虛擬演員,它的一舉一動,都是通過你來設計的,無法讓蜜罐像T-X那樣變化無常,但是,至少要防止設計的阿諾再次被T-X踏斷脖子注入反叛指令。