■河南 郭建偉
在眾多的惡意軟件中,木馬具有隱蔽性強(qiáng),危害大等特點(diǎn),成為防火墻重點(diǎn)防御的目標(biāo)。當(dāng)然,木馬當(dāng)然不甘于束手就擒,會(huì)使出各種手段對(duì)自身進(jìn)行偽裝。
作為下一代防火墻,F(xiàn)irePower 防火墻擁有更加強(qiáng)大的功能,可以輕松應(yīng)對(duì)日益復(fù)雜的安全形式。利用其提供的DNS 安全管理功能,可以攔截并定位木馬所在的位置,從源頭上切斷其傳播途徑,讓其徹底現(xiàn)出原形。
當(dāng)服務(wù)器被植入木馬后,木馬就會(huì)開(kāi)啟后門,竊取該機(jī)中重要數(shù)據(jù),并將其發(fā)送給遠(yuǎn)方的黑客所控制的主機(jī)上。當(dāng)木馬在發(fā)送數(shù)據(jù)時(shí),必然會(huì)產(chǎn)生一定的流量,這就需要進(jìn)行DNS 解析。這是因?yàn)閷?duì)于黑客主機(jī)來(lái)說(shuō),其IP 地址是經(jīng)常變動(dòng)的。
因此,黑客在編寫木馬時(shí),一般都是寫入目標(biāo)DNS地址,而不是IP 地址,這樣當(dāng)木馬上線后,就會(huì)解析預(yù)設(shè)的DNS 名稱的IP 地址,得到黑客主機(jī)的IP 后,木馬才可以和黑客進(jìn)行聯(lián)系。
利用FirePower 防火墻提供的DNS SinkHole 功能,可以對(duì)木馬的DNS 解析行為進(jìn)行攔截,使其無(wú)法和黑客進(jìn)行聯(lián)絡(luò),并找到被木馬控制的內(nèi)網(wǎng)主機(jī),將木馬徹底清除。DNS SinkHole 允許FirePower 防火墻針對(duì)已知的惡意域名回應(yīng)DNS 請(qǐng)求,將其解析到一個(gè)預(yù)先定義好的IP 上。
即針對(duì)木馬解析的DNS域名,在防火墻上創(chuàng)建一個(gè)虛擬的IP,使其和木馬使用的DNS 域名綁定起來(lái)。讓木馬誤以為解析到了真實(shí)的IP,木馬就會(huì)和該IP 建立連接并發(fā)送流量,這樣防火墻就可以據(jù)此對(duì)該木馬進(jìn)行分析和處理,找到被其控制的內(nèi)網(wǎng)主機(jī),并將該木馬徹底清除。
例 如 在網(wǎng)絡(luò)中發(fā)現(xiàn)某臺(tái)主機(jī)被木馬控制,其頻繁的對(duì)“www.eyidns.con”域名其進(jìn)行解析,可以確定這是一個(gè)惡意的DNS。使用FirePower 提供的Sinkhole 功能,將其映射到“1.1.1.1”的IP 上,并定位該木馬木馬所在的主機(jī)。
對(duì)于硬件FirePower 設(shè)備來(lái)說(shuō),也可以激活自身的設(shè)備管理功能,對(duì)其進(jìn)行圖形化管理。但是,這種管理方式同F(xiàn)MC 統(tǒng)一管理相比存在很多不足,F(xiàn)MC 可以在各個(gè)設(shè)備上統(tǒng)一監(jiān)控和配置,統(tǒng)一收集各種信息,F(xiàn)MC 可以對(duì)于內(nèi)網(wǎng)的設(shè)備進(jìn)行滲透測(cè)試,實(shí)現(xiàn)高級(jí)的自動(dòng)化管理。
在內(nèi)網(wǎng)中的客戶機(jī)上打開(kāi)瀏覽器,訪問(wèn)“https://x.x.x.x”地址,“x.x.x.x”為FMC 主機(jī)地址。在FMC 登錄界面中輸入賬戶名和密碼,進(jìn)入FMC 網(wǎng)管中心界面。
在其工具欄上依次點(diǎn)擊“Objects”→“Object Management”項(xiàng),在左側(cè)選擇“Security Intelligence”→“Sinkhole”項(xiàng),在右側(cè)點(diǎn)擊“Add Sinkhole”按鈕,在打開(kāi)窗口中輸入其名稱(例如“Sinkhole1”),在“IPv4 Address”欄中輸入合適的IP,例如“1.1.1.1”。
注意,在“IPv6”欄中必須輸入某個(gè)地址(例如“2001:1::1”),該地址keyi隨意設(shè)置,但是不能保持空白。在“Type”列表中選擇器類型(例如“Phishing”等),點(diǎn)擊“Save”按鈕保存該項(xiàng)目。
使用記事本創(chuàng)建名為“sinkhole.txt”的文件,在其中輸入惡意DNS 地址,可以輸入多個(gè)惡意DNS 信息。當(dāng)木馬對(duì)這些惡意DNS 地址進(jìn)行解析時(shí),就會(huì)被映射到防火墻的預(yù)設(shè)的IP 上。在工具欄上選擇“Objects”→“Object Management”項(xiàng),在左側(cè)選擇“Security Intelligence”→“DNS Lists and Feeds”項(xiàng),在右側(cè)點(diǎn)擊“Add DNS Lists and Feeds”按鈕,在打開(kāi)窗口中的“Name”欄中輸入“Sinkholelist”,在“Type”列表中選擇“List”項(xiàng),點(diǎn)擊“Browse”按鈕,選擇上述“sinkhole.txt”文件,點(diǎn)擊“Upload”按鈕將加載該文件,點(diǎn)擊“Save”按鈕保存配置。
在工具欄上依次選擇“Policies”→“Access Control”→“DNS”項(xiàng),在工具欄上選擇“Policies”→“Access Control”→“DNS”項(xiàng),在右側(cè)點(diǎn)擊“Add DNS Policy”按鈕,在策略窗口中顯示默認(rèn)的針對(duì)DNS 的全局黑白名單項(xiàng)目,點(diǎn)擊“Add DNS Rule”按鈕,在新建規(guī)則窗口中輸入其名稱(例如“Sinkholerule”),在“Action”列表中顯示可用的動(dòng)作,包括“Whitelist”(允許使用),“Monitor”(僅僅對(duì)DNS 訪問(wèn)訪問(wèn)進(jìn)行監(jiān)控并記錄日志),“Domain Not Found”(告訴客戶目標(biāo)DNS未找到),“Drop”(丟棄相關(guān)數(shù)據(jù)包),“Sinkhole”(對(duì)付惡意DNS)等。這里選擇“Sinkhole”項(xiàng),表示管控惡意DNS 解析。
在“Sinkhole”列表中選擇上述“Sinkholelist”列表項(xiàng)目。在“Zones”面板左側(cè)選擇“Inside”項(xiàng),點(diǎn)擊“Add to Source”按鈕,將其添加到右側(cè)列表中。打開(kāi)“Networks”面板,在其中可以選擇預(yù)設(shè)的網(wǎng)絡(luò)項(xiàng)目,也可以點(diǎn)擊“+”按鈕,來(lái)自定義網(wǎng)絡(luò)項(xiàng)目。在打開(kāi)窗口中輸入合適的名稱(例如“Winsrv”),輸入其描述信息,在“Network”欄中輸入合適的網(wǎng)段,例如“10.1.1.100/32”等。點(diǎn)擊“Save”按鈕保存該網(wǎng)絡(luò)信息。選擇該網(wǎng)段項(xiàng)目,點(diǎn)擊“Add to Source”按鈕,將其添加到右側(cè)列表中。
打開(kāi)“DNS”面板,在左側(cè)選擇所有的項(xiàng)目,注意需要排除“Global-Whitelistf or-DNS”,“Global-Blacklist-for-DNS”等全局DNS 黑白名單項(xiàng)目,以及自定義的DNS 黑白名單等正常的項(xiàng)目。點(diǎn)擊“Add to Rule”按鈕,將其添加到右側(cè)列表中。在規(guī)則列表窗口頂部點(diǎn)擊“Save”按鈕,保存該規(guī)則。之后選擇工具欄上的“Depoly”按鈕,將其推送到FirePower 防火墻進(jìn)行部署。
這樣,當(dāng)木馬試圖解析惡意DNS 域名時(shí),是可以順利進(jìn)行的,只是會(huì)得到防火墻上預(yù)設(shè)的虛擬的IP。之后木馬就會(huì)將竊取的信息發(fā)送到該地址上,F(xiàn)irePower 防火墻就可以毫不費(fèi)力的得到這些流量,F(xiàn)irePower 利用內(nèi)置的IPS 模塊,可以對(duì)其進(jìn)行深入分析,選擇工具欄上的“Anal ysis”→“Connections”→“Secu rity Intelligence Events”項(xiàng),在日志列表中可以看到和Sinkhole 相關(guān)的信息,可以清晰的查看究竟哪些主機(jī)被木馬控制。之后在這些主機(jī)上進(jìn)行分析,進(jìn)而找到并清除木馬。
利用FirePower 提供的DNS 黑白名單功能,可以有效保護(hù)DNS 安全。先使用記事本創(chuàng)建名為“DNSPermit.txt”的文件,其中包含允許放行的DNS 地址列表。創(chuàng)建名為“DNSBlock.txt”的文件,其中包含所有禁用的域名地址。創(chuàng)建名為“DNSpermitk.txt”的文件,其中包含所有允許使用的域名地址。
在FMC 管理界面工具欄上選擇“Objects”→“Object Management”項(xiàng),在左 側(cè) 選 擇“Security Intelligence”→“DNS Lists and Feeds”項(xiàng),在右側(cè)點(diǎn)擊“Add DNS Lists and Feeds”按鈕,在打開(kāi)窗口中的“Name”欄中輸入“DNSBlock”,在“Type”列表中選擇“List”項(xiàng),點(diǎn)擊“Browse”按鈕,選擇上述“DNSBlock.txt”文件。點(diǎn)擊“Upload”按鈕將加載該文件,點(diǎn)擊“Save”按鈕保存。
按照同樣方法,創(chuàng)建名為“DNSPermit”的列表項(xiàng)目,并加載“DNSPermit.txt”的文件。在工具欄上選擇“Policies”→“Access Control”→“DNS”項(xiàng),在右側(cè)點(diǎn)擊“Add DNS Policy”按鈕,在策略窗口右側(cè)點(diǎn)擊“Add DNS Rule”按鈕,在新建規(guī)則窗口中輸入其名稱(例如“RulesBlock”),在“Action”列表中選擇“Domain Not Found”項(xiàng),表示對(duì)客戶發(fā)送沒(méi)有找到對(duì)應(yīng)DNS 的信息。
注意,該信息不是由Internet 上的服務(wù)器發(fā)送的,而是由FirePower 防火墻直接回饋給客戶的。在“Zones”面板左側(cè)選擇“Inside”項(xiàng),點(diǎn)擊“Add to Source”按鈕,將其添加到右側(cè)列表中。打開(kāi)“Networks”面板,在其中點(diǎn)擊“+”按鈕,可以自定義網(wǎng)絡(luò)項(xiàng)目。在打開(kāi)窗口中輸入合適的名稱(例如“Win7PC”),輸入其描述信息,在“Network”欄中輸入合適的網(wǎng)段,例如“10.1.1.200/32”等。點(diǎn)擊“Save”按鈕保存該網(wǎng)絡(luò)信息。選擇該網(wǎng)段項(xiàng)目,點(diǎn)擊“Add to Source”按鈕,將其添加到右側(cè)列表中。
打開(kāi)“DNS”面板,在左側(cè)選擇上述名為“DNSBlock”的列表項(xiàng),點(diǎn)擊“Add to Rule”按鈕,將其添加到到右側(cè)列表中。這樣,當(dāng)內(nèi)部指定網(wǎng)段的主機(jī)在訪問(wèn)黑名單中的DNS 地址時(shí),就會(huì)被防火墻攔截。
在規(guī)則列表窗口頂部點(diǎn)擊“Save”按鈕,保存該規(guī)則。之后選擇工具欄上的“Policies”→“Access Control”→“Access Control”項(xiàng),在目標(biāo)訪問(wèn)控制策略右側(cè)的編輯按鈕,其編輯窗口中打開(kāi)“Security Intelligence”面板,在“DNS Policy”列表中選擇上述“RulesBlock”規(guī)則項(xiàng)。點(diǎn)擊“Save”按鈕,加載到訪問(wèn)控制策略中。
對(duì)于FirePower 防火墻來(lái)說(shuō),訪問(wèn)控制策略才是最核心的控制機(jī)制。點(diǎn)擊工具欄上的“Depoly”按鈕,將其推送到FirePower 防火墻進(jìn)行部署。這樣,當(dāng)指定網(wǎng)段的主機(jī)在訪問(wèn)DNS 黑名單中的地址時(shí),就會(huì)被防火墻攔截。按照同樣方法,可以為FirePower 防火墻配置DNS白名單功能,所不同的是,在創(chuàng)建DNS 規(guī)則時(shí)需要選擇“Whitelist”項(xiàng)目,其余的設(shè)置與上述基本相同。
注意,如果白名單中存在和黑名單相同的DNS 域名,那么防火墻照樣對(duì)其進(jìn)行攔截。