網(wǎng)絡(luò)蜜罐的前世今生
一個接入互聯(lián)網(wǎng)的網(wǎng)站,只要能和外部產(chǎn)生通信,就有被黑客攻擊的可能;使用某種陷阱來引誘攻擊者,就可以避免自身不被攻擊,這種引誘黑客攻擊的 “陷阱” 就是 “蜜罐” 。蜜罐是存在漏洞的、暴漏在互聯(lián)網(wǎng)中的一個虛假的服務(wù)(器) 其價值在于被掃描、攻擊和攻陷。
蜜罐分類
按類型我們可以將蜜罐分為:產(chǎn)品型 (容易部署 、 實時報警),研究型(高交互、數(shù)據(jù)捕獲);按交互可分為低中交互(模擬的 TCP/IP 協(xié)議棧、模擬的服務(wù) & 漏洞),高交互( 真實的系統(tǒng) & 應(yīng)用 & 漏洞,數(shù)據(jù)捕獲、分析、控制)。
蜜罐主要優(yōu)勢
蜜罐的主要優(yōu)勢在于能誘導(dǎo)和記錄網(wǎng)絡(luò)攻擊行為,阻止或延緩其對真正目標(biāo)的攻擊,而且能記錄攻擊日志,便于審計和回溯。
if 系統(tǒng)沒有對外開放任何真實的服務(wù) then 任何一個對它的連接嘗試都是可疑的 |
蜜罐起源
”蜜罐“ 這一概念最早起源于一本上世紀(jì)出版的小說——《The Cuckoo's Egg》 ,小說描述了主人公作為一個公司的網(wǎng)管人員,如何追蹤并發(fā)現(xiàn)一起商業(yè)間諜的故事,該書的作者 CliffordStoll 還是個計算機(jī)安全專家,他在 1988 年提出 “蜜罐是一個了解黑客的有效手段” 。
在這一概念被提出 10 年后,蜜罐思想吸引到一匹網(wǎng)絡(luò)安全技術(shù)員的注意,同時也開發(fā)出一批相應(yīng)的虛擬蜜罐產(chǎn)品,該階段的 “蜜罐工具” 能夠模擬成虛擬的操作系統(tǒng)和網(wǎng)絡(luò)服務(wù),并對黑客的攻擊行為做出回應(yīng),從而欺騙黑客。
低交互式蜜罐不足
該階段的蜜罐為低交互式蜜罐,只是模擬出了真正操作系統(tǒng)的一部分,例如模擬一個 FTP 服務(wù)。雖然低交互式蜜罐容易建立和維護(hù),但模擬可能不足以吸引攻擊者,還可能導(dǎo)致攻擊者繞過系統(tǒng)發(fā)起攻擊,從而使蜜罐在這種情況下失效。
蜜罐發(fā)展
為了獲取更多攻擊者信息,于是有人就提出一些設(shè)想:
如果用蜜罐獲取到更多的攻擊者信息,比如攻擊者的 IP,就可以對攻擊來源打上標(biāo)記,這樣一來就可以直接防御來自被標(biāo)記的攻擊。
在這種思想的引領(lǐng)下,衍生出了一種高交互蜜罐。高交互蜜罐提供真實的操作系統(tǒng)和真實的服務(wù),因此,這種蜜罐的交互性最強,收集到的數(shù)據(jù)也最全面。
更多開源 “蜜罐” 可見以下列表鏈接:
https://github.com/paralax/awesome-honeypots/blob/master/README_CN.md
1. 高交互蜜罐風(fēng)險與挑戰(zhàn)
高交互蜜罐部署和維護(hù)起來十分困難,而且被攻破的系統(tǒng)可能會被用來攻擊互聯(lián)網(wǎng)上其他的系統(tǒng),這必須承擔(dān)很高的風(fēng)險,數(shù)據(jù)收集也是設(shè)置蜜罐的技術(shù)挑戰(zhàn)。
- 蜜罐監(jiān)控者需記錄下進(jìn)出系統(tǒng)的每個數(shù)據(jù)包;
- 蜜罐本身上面的日志文件也是很好的數(shù)據(jù)來源,但日志文件很容易被攻擊者刪除。
2. 高交互蜜罐優(yōu)點
它們大大減少了所要分析的數(shù)據(jù)。對于通常的網(wǎng)站或郵件服務(wù)器,攻擊流量通常會被合法流量所淹沒。而蜜罐進(jìn)出的數(shù)據(jù)大部分是攻擊流量。因而,瀏覽數(shù)據(jù)、查明攻擊者的實際行為也就更加容易。
蜜罐現(xiàn)狀
隨著新型的 APT 攻擊的出現(xiàn),很多企業(yè)意識到傳統(tǒng)安全技術(shù)手段已經(jīng)無法滿足對內(nèi)部威脅的及時發(fā)現(xiàn),于是,很多傳統(tǒng)的安全公司大佬都開始轉(zhuǎn)戰(zhàn)使用動態(tài)沙箱技術(shù)來解決問題,來探測未知威脅。
- 賣設(shè)備型: Symantec ATP 硬件配合終端的 SEP
- 威脅情報聯(lián)動型: 360 威脅情報中心
以上方式主要是針對 APT 攻擊的第一個環(huán)節(jié),黑客通過社會工程學(xué)的手段得到用戶的信息,使用網(wǎng)絡(luò)釣魚或者水坑攻擊的方式進(jìn)入企業(yè)內(nèi)網(wǎng)個人 PC。但是要拿到有價值的內(nèi)部敏感信息,黑客需要進(jìn)一步部署攻擊鏈,包括獲取憑證、內(nèi)網(wǎng)資產(chǎn)掃描等探測工作,因為很多行業(yè)包括金融機(jī)構(gòu)是不允許在業(yè)務(wù)服務(wù)器上安裝安全解決方案的,甚至配置日志系統(tǒng)都不可以,那么,目前部署蜜罐是最好的解決方案。
蜜罐作為一種解決方案,其開源產(chǎn)品和商用產(chǎn)品的不同特性、國內(nèi)外的成熟的商業(yè)蜜罐解決方案介紹、蜜罐所涉及的核心技術(shù)分析,可見:
為什么這么多創(chuàng)業(yè)公司都在做「蜜罐」?
https://www.secpulse.com/archives/50235.html
蜜罐部署實戰(zhàn)
1. 內(nèi)網(wǎng)低交互蜜罐-opencanary
opencanary 是 2015 年 blackhat 在單獨發(fā)布環(huán)節(jié)推出的的一款蜜罐工具,純 python 模擬多種應(yīng)用和服務(wù)。當(dāng)模擬的服務(wù)被某人使用(交互登錄)時,它就會產(chǎn)生相應(yīng)的日志。
項目地址:https://github.com/p1r06u3/opencanary_web
實驗環(huán)境:
- #虛擬機(jī)-1-Web
- [root@localhost ~]# cat /etc/redhat-release
- CentOS Linux release 7.5.1804 (Core)
- [root@localhost ~]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 10.0.10.208 netmask 255.255.255.0 broadcast 10.0.10.255
- #虛擬機(jī)-2-Agent
- [root@localhost ~]# cat /etc/redhat-release
- CentOS Linux release 7.5.1804 (Core)
- [root@localhost ~]# ifconfig
- ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- inet 10.0.10.209 netmask 255.255.255.0 broadcast 10.0.10.255 ......
部署:
部署方式有,自動化安裝和手工安裝,手工安裝需要自己進(jìn)行 tornado、Mysql、 supervisor、opencanary,這里采用自動化安裝方式。
Web 端:
- [root@localhost ~]#curl -O https://raw.githubusercontent.com/p1r06u3/opencanary_web/master/install/install_opencanary_web.sh
- [root@localhost ~]#chmod +x install_opencanary_web.sh
- [root@localhost ~]# ./install_opencanary_web.sh
- ###########正在初始化環(huán)境#########
- 服務(wù)端IP地址:10.0.10.208
- 192.168.122.1
- IP是否正確(y/n):y
- #########安裝依賴包############
- 已加載插件:fastestmirror, langpacks ......
- #啟動服務(wù)
- systemctl start supervisord.service
- systemctl start nginx.service
- systemctl start mariadb.service
啟動成功后,訪問:http://10.0.10.208 ,登錄管理后臺:
Client 端:
- [root@localhost ~]#curl -O https://raw.githubusercontent.com/p1r06u3/opencanary_web/master/install/install_opencanary_agent.sh
- [root@localhost ~]#chmod +x install_opencanary_agent.sh
- #啟動服務(wù)
- [root@localhost ~]#opencanaryd --start
安裝成功后,可在后臺查看 agent 端主機(jī)在線狀態(tài)。
訪問 http://10.0.10.209/index.html 可見模擬的蜜罐站點,路徑如下,為了達(dá)到更逼真的效果站點可 DIY。
- [root@localhost nasLogin]# pwd
- /usr/local/src/opencanary/opencanary/modules/data/http/skin/nasLogin
- [root@localhost nasLogin]# ls
- 403.html 404.html index.html static
Nmap探測agent 端服務(wù)開啟情況如下:
2. kippo 更改的中交互蜜罐-Cowrie
是一個具有中等交互的 SSH 蜜罐,安裝在 Linux 中,它可以獲取攻擊者用于暴力破解的字典、輸入的命令以及上傳或下載的惡意文件。攻擊者在上傳惡意文件后,執(zhí)行惡意文件的操作均會失敗,所以對蜜罐本身來說比較安全。
- 項目地址:https://github.com/cowrie/cowrie
- 部署官方文檔:https://cowrie.readthedocs.io/en/latest/INSTALL.html
實驗環(huán)境(這里使用的是 VPS):
- root@VM-0-3-debian:~# lsb_release -a
- No LSB modules are available.
- Distributor ID: Debian
- Description: Debian GNU/Linux 9.0 (stretch)
- Release: 9.0
- Codename: stretch
關(guān)于 Cowrie 的安裝主要有七個步驟:
(1) 安裝依賴項
查看 Python 版本,更新相關(guān)依賴。
- root@VM-0-3-debian:~# python -V
- Python 2.7.13
- root@VM-0-3-debian:~# apt-get install git python-virtualenv libssl-dev libffi-dev build-essential libpython-dev python2.7-minimal authbind
- Reading package lists... Done
- ......
- Processing triggers for libc-bin (2.24-11) ...
(2) 創(chuàng)建用戶帳戶
- root@VM-0-3-debian:~# useradd -r -m -s /bin/bash cowrie
- root@VM-0-3-debian:~# passwd cowrie
- Enter new UNIX password:
- Retype new UNIX password:
- passwd: password updated successfully
(3) 拉取部署文件
- root@VM-0-3-debian:/opt# su cowrie
- cowrie@VM-0-3-debian:/opt$ cd ~
- cowrie@VM-0-3-debian:~$ git clone https://github.com/cowrie/cowrie.git
- Cloning into 'cowrie'...
- remote: Enumerating objects: 26, done.
- remote: Counting objects: 100% (26/26), done.
- remote: Compressing objects: 100% (20/20), done.
- remote: Total 12330 (delta 6), reused 24 (delta 6), pack-reused 12304
- Receiving objects: 100% (12330/12330), 8.09 MiB | 1.14 MiB/s, done.
- Resolving deltas: 100% (8561/8561), done.
- cowrie@VM-0-3-debian:~$ ls
- cowrie
- cowrie@VM-0-3-debian:~$ cd cowrie/
(4) 設(shè)置虛擬環(huán)境
設(shè)置為 python2 的虛擬環(huán)境
- cowrie@VM-0-3-debian:~/cowrie$ pwd
- /home/cowrie/cowrie
- cowrie@VM-0-3-debian:~/cowrie$ virtualenv --python=python2 cowrie-env
- Running virtualenv with interpreter /usr/bin/python2
- New python executable in /home/cowrie/cowrie/cowrie-env/bin/python2
- Also creating executable in /home/cowrie/cowrie/cowrie-env/bin/python
- Installing setuptools, pkg_resources, pip, wheel...done.
激活虛擬環(huán)境并安裝包:
- cowrie@VM-0-3-debian:~/cowrie$ source cowrie-env/bin/activate
- (cowrie-env) cowrie@VM-0-3-debian:~/cowrie$ pip install --upgrade pip
- Requirement already up-to-date: pip in ./cowrie-env/lib/python2.7/site-packages (19.0.3)
- (cowrie-env) cowrie@VM-0-3-debian:~/cowrie$ pip install --upgrade -r requirements.txt
- Collecting twisted>=17.1.0 (from -r requirements.txt (line 1))
- Using cached https://files.pythonhosted.org/packages/f8/2b/a80a70f71eb2b86992ffa5aaae41457791ae67faa70927fd16b76127c2b7/Twisted-19.2.0.tar.bz2
- Collecting cryptography>=0.9.1 (from -r requirements.txt (line 2))
- ......
- Successfully built twisted tftpy pycparser......
- Successfully installed Automat-0.7.0 ......
(5) 安裝配置文件
要啟用telnet,請創(chuàng)建cowrie.cfg并僅輸入以下內(nèi)容:
- (cowrie-env) cowrie@VM-0-3-debian:~/cowrie$ pwd
- /home/cowrie/cowrie
- (cowrie-env) cowrie@VM-0-3-debian:~/cowrie$ vim cowrie.cfg
- #寫入以下文件,啟用 telnet
- [telnet]
- enabled = true
(6) 啟動 Cowrie
- (cowrie-env) cowrie@VM-0-3-debian:~/cowrie/bin$ ./cowrie start
- Join the Cowrie community at: http://bit.ly/cowrieslack
- Using activated Python virtual environment "/opt/cowrie/cowrie-env"
- Starting cowrie: [twistd --umask=0022 --pidfile=var/run/cowrie.pid --logger cowrie.python.logfile.logger cowrie ]...
- (cowrie-env) cowrie@VM-0-3-debian:/opt/cowrie/bin$ ./cowrie status
- cowrie is running (PID: 13215).
(7) 端口重定向
有三種方法可以在默認(rèn)的 SSH 端口(22)上訪問 Cowrie:iptables,authbind 和 setcap。
更多輸出配置,可參見:
https://blog.csdn.net/Kevinhanser/article/details/79282309
3. 基于 Docker 的高交互 t-pot
t-pot 是一個基于 Docker 的高交互蜜罐平臺,集成了Conpot、Cowrie、Dionaea、Honeytrap 等多個蜜罐。t-pot 對于資源的要求也比較高(t-pot 安裝需要至少 6-8 GB RAM 和128 GB可用磁盤空間 (SSD) 以及可用的互聯(lián)網(wǎng)連接),目前的最新版本為 19.03??刹捎苗R像 (ISO)的方式進(jìn)行安裝。
項目地址:https://github.com/dtag-dev-sec/tpotce
安裝部署:
下載鏡像,虛擬機(jī)安裝,安裝過程和常規(guī)的 Linux 安裝差不多,需要選擇 t-pot 安裝類型及設(shè)置賬戶及密碼,安裝好之后界面如下:
Web 控制端:https://10.0.*.**:64297,輸入賬號、密碼即可訪問:
更多 t-pot 的使用細(xì)節(jié)可參考:https://www.freebuf.com/sectool/134504.html
思考
在真正的生產(chǎn)環(huán)境中,我們不僅要考慮到安全,還需考慮部署的成本,高交互蜜罐,存在被攻陷的可能。
蜜罐的部署成本也較高,但隨之也更真實,更容易迷惑攻擊者,捕獲到高級的威脅;opencanary 這種低交互蜜獾適合部署在局域網(wǎng)用來檢測來自攻擊者橫向移動階段的掃描,Cowrie 的中交互蜜罐適合放在外網(wǎng)用來捕獲一些惡意樣本,擴(kuò)充 IOC 庫及提供給分析師分析(這一類方法是比較實在且行之有效的方式)。捕獲針對性攻擊的樣本需要部署針對性的蜜罐,t-pot 雖融合了多種蜜罐,但可重構(gòu)性不高。想利用開源的蜜罐作為捕獲威脅的一種解決方式,還需要花更多的心思。情報驅(qū)動應(yīng)急響應(yīng),數(shù)據(jù)驅(qū)動安全,蜜罐作為獲取情報的一種手段,怎么樣利用蜜罐以最小的風(fēng)險,去獲取攻擊者的攻擊方式、反向追蹤攻擊者,御敵于安全事件發(fā)生之前,這是一件看似簡單實際不簡單的事情。
更多蜜罐項目:http://www.honeynet.org/project
參考鏈接:
- http://bigsec.com/bigsec-news/wechat-16721-miguan-kepu
- https://www.secpulse.com/archives/50235.html
- https://github.com/paralax/awesome-honeypots/blob/master/README_CN.md
- http://www.myh0st.cn/index.php/archives/36/
- https://sosly.me/index.php/2017/08/23/goldenspark1/
- https://blog.csdn.net/Kevinhanser/article/details/79282309