駭客的攻擊管道越來越多元,為了了解駭客的攻擊手段、發動攻擊的方法、攻擊的目標,可藉由犯罪偵查當中的「誘捕偵查」來達到此一目的(實務上稱為釣魚執法),這些蒐集到的資訊都能夠及早因應駭客攻擊,而不致於將自己暴露於風險之中。
隨著網路的普及與發展,網路犯罪也油然而生,在這個數位時代,「資訊安全」已經成為了當代著名的顯學,隨著大家安全意識的抬頭,有更多的防護機制便隨之出現,本文將討論何謂安全機制之一的「蜜罐」,並介紹其妙用。
在古代沙場上,如果要等待被敵人攻擊後,才能看清敵人的戰術,那肯定會吃虧繞遠路,若能提前得知敵方會有什麼動作,便能夠事半功倍,減少自己兵力的耗損,在今日電腦世界裡亦然。與其被動等待攻擊後,再去分析Log檔,或從數位鑑識中發現駭客的足跡,不如主動架設一個有潛在漏洞的網站做為蜜罐,吸引駭客上門,如此一來不僅能避免實體危害,還能窺探駭客平常到底在「搞什麼鬼」,藉此學習如何強化重要系統的防禦,這就是所謂預防勝於治療。
網路的構成十分複雜,各種拓樸(Topology)架構的網路都有,包括防火牆的部署、非軍事化區域(DMZ)的規劃,乃至於入侵檢測系統(NIDS、HIDS)的擺放位置,都是一門學問。
至於駭客,在進行攻擊的時候,會盡可能地繞過各種防毒軟體的檢測、偽裝成合法流量來進入內部網路、在一些封包內加入惡意程式,或者取得管理者權限(root)進行攻擊。
「蜜罐(Honeypot)」就是一種刻意部署的陷阱,來引誘駭客進行攻擊的誘餌。設定蜜罐變成容易遭受駭客攻擊的模樣,吸引駭客來訪,並利用Shodan擷取相關數據及資訊,如此一來,除了可以分析駭客攻擊的行為模式並對其進行預測外,還能夠從結果得知什麼情況下的電腦設定最容易遭受駭客攻擊,這些資料都是草船所借來的「箭」,都為在現代「赤壁之戰」中提供了最直接的幫助,可對其他系統部署更嚴密的防護。
Shodan用途介紹
Shodan是一種搜尋引擎,它並非像Google一樣以搜尋網站文字為主,而是透過全天候掃描所有與網際網路連接的設備,擷取設備系統使用的版本、開啟的通訊埠與運作的程式等。透過蒐集探測系統所回應的Banner(標題)來建立資料庫,所以Shodan擷取資訊的技術又稱為Banner Grabbing(圖1)。
Shodan的用途十分廣泛,可以用來觀察設備使用狀況、追蹤聯網設備和使用者活動、風險分析等等,IT專業人員也經常使用Shodan來監控網路中的漏洞。Shodan只能發現具有開放埠的設備,而大多數家用電腦雖然有開放埠,但因為沒有公有IP位置,因此家用電腦可能不會出現在Shodan上。在觀察哪個通訊埠有被開啟時,Shodan會送出SYN的封包,若該通訊埠有回應ACK,就代表該通訊埠有開啟。
通訊埠是電腦系統連接到網路的通訊門戶,透過通訊埠與對應的程式,可以從客戶端應用程式接收數據,對其進行處理後再加以回應。惡意客戶端應用程式(例如Script、Bot、Malware)經常利用伺服器軟體中的漏洞,使其能夠在遠端機器上進行未經授權的存取。通訊埠掃描(Port Scanning)經常是滲透測試第一階段,透過通訊埠掃描找出目標系統上可用的所有網路入口點(常見的TCP通訊埠如表1),並進一步偵測出通訊埠上目前所運作的程式及版本等訊息。
Shodan可全天候對所有連接網際網路的設備進行掃描,因此若有新主機上線,只要存續一段時間就會被納入到Shodan的資料庫中。也因此許多駭客也會透過Shodan持續監看網路上是否有新設備上線,更重要的是,這些新設備是否有漏洞。一旦有漏洞的設備或是部署的蜜罐被納入到Shodan的資料庫,據國外文獻指出,駭客可能就會於上線後24小時內進行攻擊。
蜜罐用途介紹
在電腦術語中,蜜罐(Honeypot)是一種電腦安全機制,用於檢測未經授權使用的駭客攻擊。蜜罐會偽裝成含有看似對攻擊者有價值的訊息或資源,透過「誘捕」來達到吸引駭客攻擊的目的,並加以觀察各種攻擊手法、病毒運作機制、惡意攻擊的管道等等。
蜜罐所建立的環境是隔離於其他網路並受到監控,而這些監控資料會被記錄下來並加以分析,如此一來便能夠分析攻擊者的行為。不過,一旦攻擊者提前意識到這個環境是蜜罐,便會停止攻擊,避免自己的行蹤被他人發現。常用蜜罐的對象多是參與網路安全研究的企業或組識,用於識別和防禦來自進階持續性威脅(Advanced Persistent Threat,APT)參與者的攻擊,大型組織會用蜜罐來了解攻擊者或使用的工具、技術等,藉此了解及學習然後對重要的伺服器加強防禦,因此對網路安全研究人員的重要性不在話下。雖然維護蜜罐的成本可能很高,但它在系統測試階段帶來的效益卻讓人愛不釋手。以下就蜜罐的使用進行分類:
以欺騙手法來分類
若以欺騙手法來分類,蜜罐可以分成以下幾種:
‧惡意程式蜜罐(Malware Honeypots):這些是模仿軟體或API來吸引惡意程式進行攻擊的蜜罐。
‧垃圾郵件蜜罐(Spam Honeypots):偽裝電子郵件位址,用來檢測垃圾郵件發送者的方法,並監控他們的活動來阻止垃圾郵件的發送。
‧資料庫蜜罐(Database Honeypots):這些偽裝的資料庫會吸引攻擊者進行SQL Injection攻擊,或是針對漏洞來企圖入侵系統。
‧客戶端蜜罐(Client Honeypots):相較於被動等待攻擊,這種蜜罐會喬裝成網站、伺服器,或是基於網頁爬蟲技術的瀏覽器去「主動」拜訪網站,一旦偵測到那個網站有惡意行為,便會記錄起來,並通報資安團隊。
‧蜜網(Honeynet):如果企業部署了多個蜜罐,就會形成蜜網,相當於模擬了一套網路系統。相較於蜜罐,就不只是單一主機而是一個網路,而這個網路中除了有很多個主機以及硬體設備外,還有模擬的防火牆、入侵檢測系統、自動警報等等。蜜網並不會提供任何服務,因此所有試圖連接蜜網的都應該被視為非法的流量。蜜網本質上屬於高交互型的蜜罐,架構比較複雜,因此不容易被駭客識破,所以很適合拿來監測駭客的行為以及攻擊的手法。
‧蜜罐文件(Honeyfile):這只是把單純的一個文件當作誘餌,吸引駭客來存取,這些檔案名稱通常都會用高度敏感的檔名,例如「企業機密」、「財務報表」、「我的密碼管理」,這些檔名對於駭客而言簡直是寶藏,但實際上這些文件裡面放的都不是真實的資料。這個文件會搭配事件管理系統或是SIEM安全資訊,當有人試圖存取、修改、刪除、複製檔案時,就會觸發警報,這樣就能使用Log日誌檔分析來得知相關資訊。因為這些資料往往不會開放給一般人有存取權限,所以就可以抓到誰是罪魁禍首,有時還會發現,這個攻擊者竟然是內部員工呢!
以部署方式分類
若以部署方式分類,可分成以下幾種:
‧純蜜罐(pure Honeypots):這是發展成熟的系統,攻擊者的活動透過使用安裝在蜜罐網路超連結上的漏洞竊聽器進行監控,無須安裝其他軟體。它們是最複雜及最難維護的,但對攻擊者來說也是最不易被識破為蜜罐的環境,包括模擬機密文件和使用者資訊,所以也最不容易被識破。
‧高交互式蜜罐(High-interaction Honeypots):高交互式蜜罐模仿系統的活動,託管各種服務並捕獲大量訊息,它可在每台電腦中架設虛擬機,並在虛擬機中部署不同蜜罐,即使其中一個被攻陷,也能快速恢復,達到風險控制的效果。也因為需要很多台主機,因此維護成本也很高。高交互式蜜罐的目標是誘使攻擊者獲得對服務器的root或管理員級別的存取權限,然後監視攻擊者的活動,常見的應用有蜜網(Honeynet)。
‧低交互式蜜罐(Low-interaction Honeypots):低交互式蜜罐模擬網路上最常見的攻擊媒介,不模擬整個真正完整的伺服器,只模擬伺服器的一部分,通常是模擬單一服務或通訊埠。有別於高交互式的蜜罐,它只在一台主機上部署多個不同的虛擬機,所以降低了虛擬系統安全的複雜性。因此,它們的風險更小且更易於維護。低交互式蜜罐不會給予惡意使用者真正的root權限,因此它的缺點是有可能被攻擊者看穿是假的。Honeyd即是一個開源的低交互式蜜罐。
攻防蜜罐機制與模式
想要建構一個蜜罐,藉此分析駭客攻擊的方式、特性,並窺探Shodan的掃描機制,理解它多久會掃描一次、每次掃描要取得多少資訊,或分辨哪些是必要、哪些是不必要的資料,相關步驟如圖2所示,說明如下:
確定擺放位置
在網路拓樸中,蜜罐擺放位置通常置於網路上的非軍事區(DMZ)中,如此一來,便可以與主要網路隔離。在DMZ中,可以在攻擊者存取蜜罐時從遠處監控蜜罐,從而最大限度地降低主網路被破壞的風險。蜜罐也可以放置在外部防火牆之外,面對網際網路,以檢測進入內部網路的流量。
蜜罐的放置位置取決於它的複雜程度或是功能,放防火牆外的外網風險最高,最容易被攻破成為駭客的跳板;放在防火牆後,內網之前的DMZ可以由防火牆擋下大部分流量,只允許特定流量前往蜜罐;放置在內網,則是專門捕捉內部攻擊者,因為內網流量不是隨隨便便就能透過外網接觸到的。無論如何放置,都應該與真實環境有一定程度的隔離(圖3、表2)。
決定擺放內容
決定蜜罐要偽裝何種系統或服務,並部署多個蜜罐,進行風險分散,才不會一個通訊埠被入侵就造成整台電腦系統癱瘓,導致其他服務也受影響,沒辦法蒐集資料。
等待攻擊並分析結果
可透過Shodan來監控蜜罐是否已被納入Shodan的資料庫,並持續監控是否有攻擊者進行攻擊。透過對攻擊的紀錄分析,找出攻擊者的IP、所輸入的指令與手法等,藉此強化實際生產主機的安全。
蜜罐的優點有三,第一,它會採集真實數據,從實際攻擊和其他未經授權的活動中收集數據,為分析師提供豐富的有用訊息來源;第二,蜜罐含有較少的誤報。普通的網路安全檢測技術(如NIDS、HIDS)產生的警報可能包含大量誤報,但蜜罐減少了誤報的數量,因為合法使用者沒有理由存取蜜罐;第三,建置蜜罐成本效益相符。蜜罐是很好的工具,因為它們通常只會面對到惡意攻擊,不需要太多資源來因應。
然而,凡事沒有十全十美的東西,有優點就有缺點,缺點如下:第一,蜜罐蒐集到的數據有限。蜜罐僅在駭客對蜜罐進行攻擊時收集相關訊息,若無人嘗試存取蜜罐,就意味著沒有數據可分析;第二,它所收集到的數據僅在駭客對蜜罐網路攻擊時才會收集。如果攻擊者懷疑這個網路是蜜罐,就會意識到是陷阱而停止攻擊;第三,可能使系統處於危險之中。儘管它們與其他重要的隔離,蜜罐若設定錯誤,就不是虛擬陷阱,反而可能成為駭客攻破網路防禦的突破點,因此可以說是一把雙面刃。
因此,蜜罐必須能夠即時回報正在發生的攻擊,並提供攻擊的即時監控以及攻擊者如何入侵的資訊(證據),且應與生產網路隔離,確保攻擊者不會存取到真實資料。而蜜罐的管理者應持續確保控制權,避免非法使用者取得管理者權限,也要注意不應與重要的網路相連,才能確保安全性。
實際情境模擬
小瑜是銀行新上任的資安長,他翻閱著公司之前的資料仔細端倪著,發現公司常常受到攻擊者的攻擊,而每次的防護措施都要等到受攻擊後才會更新部署,於是他下定決心要更加積極主動來防禦。
小瑜著手建構一個蜜罐環境,用來吸引攻擊者進行攻擊,好取得關於攻擊者的相關資訊,例如透過攻擊頻率,知悉哪一個通訊埠最容易成為攻擊者下手的目標,所以他展開了以下的步驟。
首先,因為小瑜知道有些員工會在異地工作,但需要公司電腦資料時又不方便親自回公司拿取,於是會使用遠端存取的服務。遠端存取就有SSH、Telnet、RDP、VNC等服務可用,其中SSH和Telnet最容易受到攻擊,因為Telnet傳遞資訊時並不會加密,而是用明文進行傳送,因此被竊取密碼或遭受中間人攻擊;SSH的出現加入了公開金鑰加密系統,保證資料傳輸時不被竄改、破壞、洩漏,讓資料在網際網路上可以安全傳輸,但駭客依然可以透過列舉(Enumeration)常用的使用者名稱並嘗試破解登入,這種攻擊稱為暴力破解(Brute Force)。
有鑑於此,小瑜決定部署一個中高互動型蜜罐Cowrie(網址為https://github.com/cowrie/cowrie)。Cowrie可用來模擬Port 22(SSH)、23(Telnet),並可以記錄攻擊者執行的暴力破解以及在Shell(使用者互動介面)所輸入的指令,並記錄載於日誌檔中。
小瑜在設定好Cowrie蜜罐後,每當有攻擊行為發生時便會進行通知,便可透過Log檔分析攻擊者所輸入的指令,並得知攻擊者的IP位置。且攻擊都是針對蜜罐的虛擬環境,不會對主網路造成危害,但是若設定錯誤,駭客還是有可能對主網路進行攻擊。如圖4內上方框選所顯示即為攻擊者試圖以密碼123456登入root帳號,而在使用密碼password成功登入後,於圖4的下方框選中即為攻擊者所輸入的指令。
小瑜從這次結果中得出以下結論:首先,Shodan在不到一週的時間內就掃描到蜜罐系統,並在納入Shodan的資料庫後兩天就會開始受到攻擊,可見駭客也是虎視眈眈地在等待著良機。
透過對蜜罐的監控,得知攻擊者最經常針對遠端服務通訊埠進行帳號及密碼的猜測,許多常用的帳號admin、administrator、root、user等,以及常見的不安全密碼如123456、root、password等都會被拿來測試是否能登入。因此,小瑜便開始制訂計畫,逐步管制對外服務,僅事先獲得公司許可者才能遠端登入,且密碼不能少於10個字元,並且透過Shodan持續確認公司的網路主機對外的服務與版本是否有變動,避免意外洩露重要的系統資訊。
結語
蜜罐做為現代赤壁之戰中最好的草船,Shodan作為運籌帷幄的幕後諸葛為我們刺探著敵情,它們在這個數位時代裡完美詮釋了Cyber Deception主動出擊的意涵。從這次實驗當中可以知道蜜罐的種類、用途、部署的位置及部署的方式,並運用Cowrie蜜罐得知駭客發動的攻擊,另外對於Shodan如何協助分析,也有進一步的認識,藉此增加資訊安全的意識,可對未來的網路攻擊及早做好準備。
<本文作者:社團法人台灣E化資安分析管理協會(ESAM, https://www.esam.io/)中央警察大學資訊密碼暨建構實驗室(ICCL)1998年12月成立,目前由王旭正教授領軍,並致力於資訊安全、情資安全與鑑識科學, 資料隱藏與資料快速搜尋之研究,以為人們於網際網路(Internet)世界探索的安全保障(https://sites.google.com/site/iccltogether/)。>