1 概述
蜜罐系統(tǒng)是一種情報(bào)收集系統(tǒng)。
蜜罐作為故意讓人攻擊的目標(biāo)配紫,引誘黑客前來攻擊视搏,收集黑客所用的各種工具等审孽。
蜜罐通常具備數(shù)據(jù)捕獲、數(shù)據(jù)分析和數(shù)據(jù)控制方面的功能浑娜。數(shù)據(jù)捕獲主要收集主機(jī)數(shù)據(jù)或者網(wǎng)絡(luò)數(shù)據(jù)佑力,主機(jī)上可以捕獲攻擊者的TCP連接情況、執(zhí)行的命令筋遭、各種日志信息等打颤,網(wǎng)絡(luò)數(shù)據(jù)包括防護(hù)系統(tǒng)日志、網(wǎng)絡(luò)流量數(shù)據(jù)等漓滔。但蜜罐的價(jià)值通常需要對(duì)捕獲的數(shù)據(jù)進(jìn)行分析后才能體現(xiàn)编饺,主要包括網(wǎng)絡(luò)協(xié)議類型分析、攻擊行為分析和攻擊數(shù)據(jù)包內(nèi)容分析等响驴。數(shù)據(jù)控制主要是指通過對(duì)蜜罐的對(duì)外數(shù)據(jù)發(fā)送和網(wǎng)絡(luò)進(jìn)行限制透且,使得當(dāng)蜜罐系統(tǒng)被攻擊者攻破時(shí),也不會(huì)造成更多的危害豁鲤。數(shù)據(jù)控制主要用來保障蜜罐本身的安全秽誊。
2 分類
2.1 按交互程度分類
蜜罐的交互程度通常取決于蜜罐對(duì)相應(yīng)服務(wù)的模擬程度。
①低交互蜜罐
該類蜜罐通常只提供少量的交互功能琳骡,蜜罐在特定端口監(jiān)聽連接并記錄數(shù)據(jù)包锅论,可以用來實(shí)現(xiàn)端口掃描和暴力破解的檢測(cè)。低交互蜜罐結(jié)構(gòu)簡(jiǎn)單楣号,易于安裝部署棍厌,由于模擬程度低功能較少,收集信息有限但風(fēng)險(xiǎn)也較低竖席。
②高交互蜜罐
高交互蜜罐通常基于真實(shí)的應(yīng)用環(huán)境來構(gòu)建敬肚,能提供真實(shí)的服務(wù)毕荐。高交互蜜罐可用來獲取大量的信息,能夠捕獲攻擊者多種操作行為艳馒,從而具備發(fā)現(xiàn)新的攻擊方式和漏洞利用方法的能力憎亚。由于高交互蜜罐給攻擊者提供了一個(gè)相對(duì)真實(shí)的應(yīng)用環(huán)境,因此風(fēng)險(xiǎn)較大弄慰,通常會(huì)注重?cái)?shù)據(jù)控制方面的功能第美。
2.2 按具體實(shí)現(xiàn)分類
蜜罐按照實(shí)現(xiàn)的方式可以分為物理蜜罐和虛擬蜜罐。
①物理蜜罐
物理蜜罐通常指真實(shí)的物理計(jì)算機(jī)陆爽,安裝了相應(yīng)的操作系統(tǒng)并具備網(wǎng)絡(luò)環(huán)境什往,它能提供部分或完全真實(shí)的應(yīng)用服務(wù)。物理蜜罐通常成本較高慌闭。
②虛擬蜜罐
虛擬蜜罐通常是利用虛擬機(jī)技術(shù)模擬而成的蜜罐别威,成本相對(duì)物理蜜罐較低躯舔。但由于虛擬機(jī)本身的特點(diǎn),虛擬蜜罐容易被有經(jīng)驗(yàn)的攻擊者識(shí)別省古。還有這兩年流行的基于Docker的蜜罐粥庄。
2.3 按用途分類
蜜罐可以按照使用用途的不同分為研究型蜜罐和產(chǎn)品型蜜罐。
①研究型蜜罐
主要用來捕獲和分析攻擊者的行為數(shù)據(jù)豺妓,對(duì)攻擊者進(jìn)行追蹤和分析惜互。通過研究攻擊者的行為信息,了解攻擊者的目的意圖琳拭,學(xué)習(xí)其所使用的工具和方法训堆。雖然研究型蜜罐本身并不能提高網(wǎng)絡(luò)的安全性,但可以通過對(duì)攻擊者的研究和分析臀栈,間接的提高網(wǎng)絡(luò)的安全防御能力蔫慧,在一定程度上做到主動(dòng)防御未知的網(wǎng)絡(luò)攻擊。研究型蜜罐需要部署人員投入大量的時(shí)間和精力對(duì)進(jìn)出蜜罐的流量進(jìn)行監(jiān)控和分析权薯。
②產(chǎn)品型蜜罐
主要用來提高企業(yè)等組織機(jī)構(gòu)的網(wǎng)絡(luò)安全性姑躲,具有攻擊事件檢測(cè)和引誘欺騙黑客攻擊的功能,通過部署在真實(shí)系統(tǒng)周圍盟蚣,迷惑和引誘攻擊者實(shí)施攻擊黍析,從而降低真實(shí)系統(tǒng)被攻擊的概率。且能夠在不影響正常服務(wù)的情況下屎开,提供離線接受安全人員分析檢測(cè)的功能阐枣。
3 設(shè)計(jì)思路
盡最大的可能模擬完整業(yè)務(wù)系統(tǒng)的輸入輸出(包括操作系統(tǒng)、中間件奄抽、業(yè)務(wù)代碼)蔼两。
盡最大的可能去收集攻擊者產(chǎn)生的數(shù)據(jù)(資產(chǎn)信息、武器信息)逞度。
盡最大的可能去捕獲較多的新的在野攻擊(受影響組件熱切換)额划。
盡最大的可能去保證蜜罐不對(duì)外發(fā)起真實(shí)的攻擊(容易被相關(guān)部門查水表)。
4 常見攻擊檢測(cè)
①端口掃描檢測(cè)
端口掃描是一種攻擊初期的信息收集技術(shù)档泽,主要用來判斷目標(biāo)主機(jī)是否開放相應(yīng)的端口和服務(wù)俊戳,通過向目標(biāo)主機(jī)發(fā)送端口連接請(qǐng)求,然后根據(jù)目標(biāo)主機(jī)的回應(yīng)信息判斷目標(biāo)對(duì)應(yīng)端口是否開放馆匿。在掃描到目標(biāo)系統(tǒng)對(duì)應(yīng)端口開放后抑胎,攻擊者可能會(huì)對(duì)需要登陸的服務(wù)進(jìn)行弱口令嘗試、未授權(quán)訪問渐北、暴力破解等阿逃,比如對(duì)21端口的FTP服務(wù)進(jìn)行反復(fù)登錄嘗試。
端口掃描檢測(cè)思路相對(duì)明確,通撑桕迹可采用監(jiān)聽本地端口的方式羽历,被動(dòng)等待連接,可對(duì)常用端口和服務(wù)進(jìn)行監(jiān)聽淡喜,也可對(duì)全端口進(jìn)行監(jiān)聽秕磷。監(jiān)聽對(duì)應(yīng)端口后便可對(duì)該端口的連接請(qǐng)求進(jìn)行檢測(cè)并對(duì)來源和頻率進(jìn)行記錄。
②ARP攻擊檢測(cè)
ARP地址解析協(xié)議(Address Resolution Protocol)位于TCP/IP四層協(xié)議的網(wǎng)絡(luò)層炼团,負(fù)責(zé)解析IP地址和MAC地址的對(duì)應(yīng)關(guān)系澎嚣。ARP欺騙通常通過在局域網(wǎng)中發(fā)送偽造IP地址和MAC地址的ARP應(yīng)答包對(duì)目標(biāo)進(jìn)行攻擊,在目前主流的基于路由器的局域網(wǎng)中瘟芝,ARP欺騙攻擊同樣適用易桃,ARP欺騙攻擊可使受害者無法上網(wǎng),造成拒絕服務(wù)锌俱,也可通過偽造網(wǎng)關(guān)的ARP應(yīng)答包進(jìn)行中間人攻擊晤郑,嗅探內(nèi)網(wǎng)敏感數(shù)據(jù),甚至能獲取到內(nèi)網(wǎng)用戶的用戶名口令等信息贸宏。
ARP欺騙能夠成功的關(guān)鍵點(diǎn)在于由于協(xié)議本身的特點(diǎn)造寝,當(dāng)攻擊者發(fā)送偽造的ARP應(yīng)答包冒充網(wǎng)關(guān)時(shí),被攻擊者沒有對(duì)聲稱者的MAC地址和IP地址的真實(shí)性進(jìn)行確認(rèn)吭练。因此诫龙,假設(shè)局域網(wǎng)內(nèi)的檢測(cè)設(shè)備,每次啟動(dòng)時(shí)鲫咽,記錄當(dāng)前網(wǎng)關(guān)的IP和MAC地址签赃,先假設(shè)當(dāng)前網(wǎng)關(guān)可信,并通過一段時(shí)間內(nèi)網(wǎng)關(guān)IP和MAC地址對(duì)應(yīng)關(guān)系的變化來再次確認(rèn)分尸。當(dāng)突然發(fā)現(xiàn)ARP協(xié)議中聲稱的網(wǎng)關(guān)IP和MAC地址發(fā)生變化時(shí)锦聊,可對(duì)新的IP和MAC對(duì)應(yīng)關(guān)系的真實(shí)性進(jìn)行判斷和確認(rèn),從而檢測(cè)是否遭受了ARP攻擊箩绍,并記錄攻擊源的MAC地址孔庭。可通過定期讀取本地IP-MAC對(duì)應(yīng)表的方式,對(duì)局域網(wǎng)內(nèi)的設(shè)備地址和對(duì)應(yīng)關(guān)系進(jìn)行記錄伶选,從而及時(shí)發(fā)現(xiàn)ARP攻擊。
③DNS劫持檢測(cè)
DNS(Domain Name System)域名服務(wù)主要是提供域名到IP地址的映射和轉(zhuǎn)換尖昏。在Internet的普及過程中仰税,因?yàn)橛蛎菼P更容易記憶,所以Internet的用戶通常只會(huì)通過域名來訪問一個(gè)站點(diǎn)抽诉,因此DNS服務(wù)的作用非常關(guān)鍵陨簇。通常局域網(wǎng)網(wǎng)關(guān)會(huì)在網(wǎng)絡(luò)配置中設(shè)置可信的DNS服務(wù)器地址,但基于現(xiàn)有的路由器網(wǎng)絡(luò),由于種種路由器漏洞河绽、弱口令等安全問題己单,路由器一旦被攻擊者控制,攻擊者便可通過篡改DNS指向自己控制的可定制的DNS服務(wù)器耙饰,就能實(shí)現(xiàn)區(qū)域的網(wǎng)絡(luò)流量劫持和篡改纹笼,竊取敏感信息,甚至通過替換返回流量植入遠(yuǎn)控木馬苟跪,從而控制內(nèi)網(wǎng)計(jì)算機(jī)廷痘,極大危害整個(gè)內(nèi)部網(wǎng)絡(luò)的安全。
檢測(cè)DNS的思路主要有兩種件已,可以定期讀取本地的DNS配置笋额,然后通過建立可信DNS白名單的方式對(duì)本地DNS的安全性進(jìn)行判斷。通過ping命令篷扩,ping若干知名站點(diǎn)兄猩,如百度(www.baidu.com)、若返回IP為當(dāng)前DNS的IP或某一個(gè)相同的IP鉴未,則可判斷已受到上述這種DNS劫持攻擊枢冤。
5 開源項(xiàng)目示例
5.1 MHN(http://threatstream.github.io/mhn/)
MHN(Modern Honey Network,現(xiàn)代蜜網(wǎng))是一個(gè)開源軟件歼狼,它簡(jiǎn)化了蜜罐的部署掏导,同時(shí)便于收集和統(tǒng)計(jì)蜜罐的數(shù)據(jù)。用ThreatStream來部署羽峰,MHN使用開源蜜罐來收集數(shù)據(jù)趟咆,整理后保存在Mongodb中,收集到的信息也可以通過web接口來展示或者通過開發(fā)的API訪問梅屉。
MHN能夠提供多種開源的蜜罐值纱,可以通過web接口來添加他們。一個(gè)蜜罐的部署過程很簡(jiǎn)單坯汤,只需要粘貼虐唠,復(fù)制一些命令就可以完成部署,部署完成后惰聂,可以通過開源的協(xié)議hpfeeds來收集的信息疆偿。
支持以下蜜罐:
1.Snort:https://www.snort.org/,用C語言開發(fā)的開源入侵檢測(cè)系統(tǒng)搓幌。
2.Suricata:http://suricata-ids.org/杆故,開源高性能的入侵檢測(cè)系統(tǒng)。
3.Dionaea:http://dionaea.carnivore.it/,是一個(gè)低交互式的蜜罐溉愁,能夠模擬MSSQL, SIP, HTTP, FTP, TFTP等服務(wù)处铛。
4.Conpot:http://conpot.org/,低交互工控系統(tǒng)和Scada蜜罐,能夠提供一些列工業(yè)控制協(xié)議撤蟆,模擬復(fù)雜的工控基礎(chǔ)設(shè)施奕塑。
5.Kippo:https://github.com/desaster/kippo,是一個(gè)中等交互的蜜罐家肯,能夠下載任意文件龄砰。?
6.Amun:http://amunhoney.sourceforge.net/,是一個(gè)低交互式蜜罐息楔,但是已經(jīng)從2012年之后不在維護(hù)了寝贡。
7.Glastopf:http://glastopf.org/,是一個(gè)Python Web應(yīng)用程序蜜罐值依。
8.Wordpot:https://github.com/gbrindisi/wordpot圃泡。是一個(gè)Wordpress蜜罐。
9.ShockPot:https://github.com/threatstream/shockpot愿险,模擬的CVE-2014-6271颇蜡,即破殼漏洞。
10.p0f:https://github.com/p0f/p0f辆亏,是一個(gè)純粹的被動(dòng)指紋識(shí)別工具风秤,它在不干涉雙方通信的情況下,通過嗅探的方式來分析流經(jīng)某一網(wǎng)卡的流量以達(dá)到指紋識(shí)別的目的扮叨。
11.dionaea:https://github.com/DinoTools/dionaea缤弦,是一款低交互式蜜罐,是Honeynet Project 的開源項(xiàng)目彻磁。Dionaea 蜜罐的設(shè)計(jì)目的是誘捕惡意攻擊碍沐,獲取惡意攻擊會(huì)話與惡意代碼程序樣本。它通過模擬各種常見服務(wù)衷蜓,捕獲對(duì)服務(wù)的攻擊數(shù)據(jù)累提,記錄攻擊源和目標(biāo) IP、端口磁浇、協(xié)議類型等信息斋陪,以及完整的網(wǎng)絡(luò)會(huì)話過程,自動(dòng)分析其中可能包含的shellcode及其中的函數(shù)調(diào)用和下載文件置吓,并獲取惡意程序无虚。
5.2 T-Pot(https://github.com/dtag-dev-sec/tpotce)
T-Pot 蜜罐是德國(guó)電信下的一個(gè)社區(qū)蜜罐項(xiàng)目,是一個(gè)基于 Docker 容器的集成了眾多針對(duì)不同應(yīng)用蜜罐程序的系統(tǒng)衍锚。
組成部分包含:
1.Elastic-Search:https://www.elastic.co/products/elasticsearch友题,是一個(gè)性能十分強(qiáng)大的全文搜索引擎,他可以快速的進(jìn)行海量數(shù)據(jù)的查詢构拳。在 T-Pot 的實(shí)際應(yīng)用中咆爽,各個(gè)蜜罐所產(chǎn)生的日志都會(huì)導(dǎo)入到 Elastic Search 中,因此可以使用 Elastic Search 來進(jìn)行檢索置森,同時(shí)也可以使用他對(duì)數(shù)據(jù)進(jìn)行各種復(fù)雜條件的查詢和導(dǎo)出等斗埂。
2.Logstash:https://www.elastic.co/products/logstash,用于接收從蜜罐傳遞過來的日志凫海,然后對(duì)數(shù)據(jù)進(jìn)行過濾和格式化后交由 Elastic Search 進(jìn)行存儲(chǔ)和建立索引呛凶。
3.Kibana:https://www.elastic.co/products/kibana,用于對(duì)進(jìn)行數(shù)據(jù)的可視化查詢行贪,支持以柱狀圖漾稀、線狀圖、餅圖建瘫、旭日?qǐng)D等等輸出各種圖形崭捍,也能通過時(shí)間序列對(duì)蜜罐日志某個(gè)特征的趨勢(shì)進(jìn)行分析。
4.Head:https://mobz.github.io/elasticsearch-head/啰脚,是一個(gè)網(wǎng)頁前端殷蛇,主要用于與 Elastic Search 集群進(jìn)行交互。和上面的 Kibana 不同的是橄浓,他的可視化程度相對(duì)較低粒梦,但是更便于直接對(duì)數(shù)據(jù)進(jìn)行操作,類似與 phpMyAdmin 的存在荸实。
5.Conpot:http://conpot.org/匀们,是一個(gè)低交互式的工業(yè)控制系統(tǒng)的蜜罐,內(nèi)置了一系列常見的工業(yè)控制協(xié)議准给,并且易于修改和拓展泄朴,盡其所能的欺騙攻擊者,以獲得攻擊者的最終目的
6.Cowrie:http://www.micheloosterhof.com/cowrie/圆存,是一個(gè)中等交互式的 SSH / Telnet 蜜罐叼旋,設(shè)計(jì)上用來記錄暴力破解以及登錄后 Shell 執(zhí)行的操作。
主要功能有:
提供了虛假的文件系統(tǒng)(類似 Debian5.0)沦辙,并且可以進(jìn)行文件的增加和刪除夫植;
隨機(jī)增加某些文件的內(nèi)容以便攻擊者使用?cat?功能,例如?/etc/passwd油讯;
提供 UML 兼容格式的回話日志详民,可供用來重放會(huì)話;
保存通過 wget 和 curl 下載的文件供后續(xù)的分析陌兑。
7.Dionaea:https://github.com/DinoTools/dionaea沈跨,是一系列基于 Python 語言開發(fā)、libemu 作為 Shellcode 分析的蜜罐系統(tǒng)兔综,支持多種不同協(xié)議饿凛,如下:
blackhole狞玛,epmap,ftp涧窒,http心肪,memcache,mirror纠吴,mqtt硬鞍,mssql,mysql戴已,pptp固该,sip,smb糖儡,tftp伐坏,upnp。
8.ElasticPot:https://github.com/schmalle/ElasticpotPY握联, 是一個(gè) Elasticsearch 的蜜罐
9.eMobility:https://github.com/dtag-dev-sec/emobility著淆,?是一個(gè)高交互式的蜜罐,針對(duì)的是下一代的交通基礎(chǔ)設(shè)施(充電樁系統(tǒng))拴疤,用于收集攻擊者的動(dòng)機(jī)和方法永部。系統(tǒng)主要包括中央充電系統(tǒng)、充電點(diǎn)以及模擬的用戶交易呐矾。
10.Glastopf:https://github.com/mushorg/glastopf苔埋,是一個(gè) Python 語言開發(fā)的 Web 蜜罐,能提供各種基于漏洞類型的模擬蜒犯。
11.HoneyTrap:https://github.com/armedpot/honeytrap组橄,是一個(gè)低交互式的蜜罐,通過監(jiān)聽 NFQUEUE 用戶態(tài)數(shù)據(jù)包罚随,相當(dāng)與就監(jiān)聽了所有其他未監(jiān)聽的端口玉工,主要功能用于觀察攻擊者的行為,同時(shí)也可以解析攻擊的字符串淘菩,并且進(jìn)行相應(yīng)的下載保存遵班。
12.Mailoney:https://github.com/awhitehatter/mailoney,是一個(gè) SMTP 蜜罐潮改。
13.Rdpy:https://github.com/citronneur/rdpy狭郑,是一個(gè)用 Python 實(shí)現(xiàn)的 RDP 和 VNC 協(xié)議,可以用作服務(wù)端以及客戶端汇在,同時(shí)也提供 RDP 的蜜罐翰萨,用于記錄 RDP 的過程。
14.vnclowpot:https://github.com/magisterquis/vnclowpot糕殉,是一個(gè)低交互式的 VNC 蜜罐亩鬼,主要用于記錄 VNC 的認(rèn)證過程
15.Suricata:https://github.com/OISF/suricata殖告,是一個(gè)網(wǎng)絡(luò) IDS、IPS 和 NSM 引擎雳锋,主要分析并記錄下連接中一些有用的信息丛肮。
16.p0f:http://lcamtuf.coredump.cx/p0f3/,利用一系列復(fù)雜的流量指紋識(shí)別魄缚,被動(dòng)的來識(shí)別 TCP/IP 通信的對(duì)方信息,例如可以識(shí)別出對(duì)方的系統(tǒng)焚廊、在線時(shí)間等冶匹。