來自:信安之路(微訊號:xazlsec)
作者:Cherishao
一個接入網際網路的網站,只要能和外部產生通訊,就有被駭客攻擊的可能;使用某種陷阱來引誘攻擊者,就可以避免自身不被攻擊,這種引誘駭客攻擊的 “陷阱” 就是 “蜜罐” 。蜜罐是存在漏洞的、暴漏在網際網路中的一個虛假的服務(器) 其價值在於被掃描、攻擊和攻陷。
蜜罐分類
按型別我們可以將蜜罐分為:產品型 (容易部署 、 實時報警),研究型(高互動、資料捕獲);按互動可分為低中互動(模擬的 TCP/IP 協議棧、模擬的服務 & 漏洞),高互動( 真實的系統 & 應用 & 漏洞,資料捕獲、分析、控制)。
蜜罐主要優勢
蜜罐的主要優勢在於能誘導和記錄網路攻擊行為,阻止或延緩其對真正標的的攻擊,而且能記錄攻擊日誌,便於審計和回溯。
if 系統沒有對外開放任何真實的服務
then 任何一個對它的連線嘗試都是可疑的
蜜罐起源
”蜜罐“ 這一概念最早起源於一本上世紀出版的小說——《The Cuckoo’s Egg》 ,小說描述了主人公作為一個公司的網管人員,如何追蹤併發現一起商業間諜的故事,該書的作者 CliffordStoll 還是個電腦保安專家,他在 1988 年提出 “蜜罐是一個瞭解駭客的有效手段” 。
在這一概念被提出 10 年後,蜜罐思想吸引到一匹網路安全技術員的註意,同時也開發出一批相應的虛擬蜜罐產品,該階段的 “蜜罐工具” 能夠模擬成虛擬的作業系統和網路服務,並對駭客的攻擊行為做出回應,從而欺騙駭客。
該階段的蜜罐為低互動式蜜罐,只是模擬出了真正作業系統的一部分,例如模擬一個 FTP 服務。雖然低互動式蜜罐容易建立和維護,但模擬可能不足以吸引攻擊者,還可能導致攻擊者繞過系統發起攻擊,從而使蜜罐在這種情況下失效。
蜜罐發展
為了獲取更多攻擊者資訊,於是有人就提出一些設想:
在這種思想的引領下,衍生出了一種高互動蜜罐。高互動蜜罐提供真實的作業系統和真實的服務,因此,這種蜜罐的互動性最強,收集到的資料也最全面。
更多開源 “蜜罐” 可見以下串列連結:
https://github.com/paralax/awesome-honeypots/blob/master/README_CN.md
高互動蜜罐風險與挑戰
高互動蜜罐部署和維護起來十分困難,而且被攻破的系統可能會被用來攻擊網際網路上其他的系統,這必須承擔很高的風險,資料收集也是設定蜜罐的技術挑戰。
1、蜜罐監控者需記錄下進出系統的每個資料包;
2、蜜罐本身上面的日誌檔案也是很好的資料來源,但日誌檔案很容易被攻擊者刪除。
高互動蜜罐優點
它們大大減少了所要分析的資料。對於通常的網站或郵件伺服器,攻擊流量通常會被合法流量所淹沒。而蜜罐進出的資料大部分是攻擊流量。因而,瀏覽資料、查明攻擊者的實際行為也就更加容易。
蜜罐現狀
隨著新型的 APT 攻擊的出現,很多企業意識到傳統安全技術手段已經無法滿足對內部威脅的及時發現,於是,很多傳統的安全公司大佬都開始轉戰使用動態沙箱技術來解決問題,來探測未知威脅。
賣裝置型: Symantec ATP 硬體配合終端的 SEP
威脅情報聯動型: 360 威脅情報中心
以上方式主要是針對 APT 攻擊的第一個環節,駭客透過社會工程學的手段得到使用者的資訊,使用網路釣魚或者水坑攻擊的方式進入企業內網個人 PC。但是要拿到有價值的內部敏感資訊,駭客需要進一步部署攻擊鏈,包括獲取憑證、內網資產掃描等探測工作,因為很多行業包括金融機構是不允許在業務伺服器上安裝安全解決方案的,甚至配置日誌系統都不可以,那麼,目前部署蜜罐是最好的解決方案。
蜜罐作為一種解決方案,其開源產品和商用產品的不同特性、國內外的成熟的商業蜜罐解決方案介紹、蜜罐所涉及的核心技術分析,可見:
為什麼這麼多創業公司都在做「蜜罐」?
https://www.secpulse.com/archives/50235.html
蜜罐部署實戰
內網低互動蜜罐-opencanary
opencanary 是 2015 年 blackhat 在單獨釋出環節推出的的一款蜜罐工具,純 python 模擬多種應用和服務。當模擬的服務被某人使用(互動登入)時,它就會產生相應的日誌。
專案地址:https://github.com/p1r06u3/opencanary_web
實驗環境:
#虛擬機器-1-Web
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 10.0.10.208 netmask 255.255.255.0 broadcast 10.0.10.255
#虛擬機器-2-Agent
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@localhost ~]# ifconfig
ens33: flags=4163 mtu 1500
inet 10.0.10.209 netmask 255.255.255.0 broadcast 10.0.10.255 ......
部署:
部署方式有,自動化安裝和手工安裝,手工安裝需要自己進行 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
###########正在初始化環境#########
服務端IP地址:10.0.10.208
192.168.122.1
IP是否正確(y/n):y
#########安裝依賴包############
已載入外掛:fastestmirror, langpacks ......
#啟動服務
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
#啟動服務
[root@localhost ~]#opencanaryd --start
安裝成功後,可在後臺檢視 agent 端主機線上狀態。
訪問 http://10.0.10.209/index.html 可見模擬的蜜罐站點,路徑如下,為了達到更逼真的效果站點可 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 端服務開啟情況如下
kippo 更改的中互動蜜罐-Cowrie
是一個具有中等互動的 SSH 蜜罐,安裝在 Linux 中,它可以獲取攻擊者用於暴力破解的字典、輸入的命令以及上傳或下載的惡意檔案。攻擊者在上傳惡意檔案後,執行惡意檔案的操作均會失敗,所以對蜜罐本身來說比較安全。
專案地址:https://github.com/cowrie/cowrie
部署官方檔案:https://cowrie.readthedocs.io/en/latest/INSTALL.html
實驗環境(這裡使用的是 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
關於 Cowrie 的安裝主要有七個步驟:
1、安裝依賴項
檢視 Python 版本,更新相關依賴
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、建立使用者帳戶
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) ...
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、設定虛擬環境
設定為 python2 的虛擬環境
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.
啟用虛擬環境並安裝包:
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,請建立cowrie.cfg並僅輸入以下內容:
(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、埠重定向
有三種方法可以在預設的 SSH 埠(22)上訪問 Cowrie:iptables,authbind 和 setcap。
更多輸出配置,可參見:
https://blog.csdn.net/Kevinhanser/article/details/79282309
基於 Docker 的高互動 t-pot
t-pot 是一個基於 Docker 的高互動蜜罐平臺,集成了Conpot、Cowrie、Dionaea、Honeytrap 等多個蜜罐。t-pot 對於資源的要求也比較高(t-pot 安裝需要至少 6-8 GB RAM 和128 GB可用磁碟空間 (SSD) 以及可用的網際網路連線),目前的最新版本為 19.03。可採用映象 (ISO)的方式進行安裝。
專案地址:
https://github.com/dtag-dev-sec/tpotce
安裝部署:
下載映象,虛擬機器安裝,安裝過程和常規的 Linux 安裝差不多,需要選擇 t-pot 安裝型別及設定賬戶及密碼,安裝好之後介面如下:
Web 控制端:https://10.0.*.**:64297,輸入賬號、密碼即可訪問:
更多 t-pot 的使用細節可參考:
https://www.freebuf.com/sectool/134504.html
思考
在真正的生產環境中,我們不僅要考慮到安全,還需考慮部署的成本,高互動蜜罐,存在被攻陷的可能
蜜罐的部署成本也較高,但隨之也更真實,更容易迷惑攻擊者,捕獲到高階的威脅;opencanary 這種低互動蜜獾適合部署在區域網用來檢測來自攻擊者橫向移動階段的掃描,Cowrie 的中互動蜜罐適合放在外網用來捕獲一些惡意樣本,擴充 IOC 庫及提供給分析師分析(這一類方法是比較實在且行之有效的方式)。捕獲針對性攻擊的樣本需要部署針對性的蜜罐,t-pot 雖融合了多種蜜罐,但可重構性不高。想利用開源的蜜罐作為捕獲威脅的一種解決方式,還需要花更多的心思。情報驅動應急響應,資料驅動安全,蜜罐作為獲取情報的一種手段,怎麼樣利用蜜罐以最小的風險,去獲取攻擊者的攻擊方式、反向追蹤攻擊者,禦敵於安全事件發生之前,這是一件看似簡單實際不簡單的事情。
更多蜜罐專案:
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/7928230
朋友會在“發現-看一看”看到你“在看”的內容