新聞中心
本文我將手把手的帶大家來,構(gòu)建一個高交互型的蜜罐。我們將會利用到兩款開源工具sysdig和falco,來幫助我們快速構(gòu)建這個系統(tǒng)。在正式開始之前,讓我們對什么是高交互型蜜罐?以及sysdig和falco做個簡單的了解!

為企業(yè)提供做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、營銷型網(wǎng)站、競價托管、品牌運營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)建站擁有網(wǎng)絡(luò)營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
一、高交互型蜜罐
一個高交互蜜罐是一個常規(guī)的計算機系統(tǒng),如商用現(xiàn)貨(commercial off-the-shelf ,COTS)計算機、路由器或交換機。該系統(tǒng)在網(wǎng)絡(luò)中沒有常規(guī)任務(wù),也沒有固定的活動用戶,因此,除了運行系統(tǒng)上的正常守護進程或服務(wù),它不應(yīng)該有任何不正常的進程,也不產(chǎn)生任何網(wǎng)絡(luò)流量。這些假設(shè)幫助檢測攻擊:每個與高交互蜜罐的交互都是可疑的,可以指向一個可能的惡意行為。因此,所有出入蜜罐的網(wǎng)絡(luò)流量都被記錄下來。此外,系統(tǒng)的活動也被記錄下來備日后分析。
相較于低交互型蜜罐,高交互型蜜罐由于運行著帶有所有漏洞的真實的操作系統(tǒng),沒有使用仿真,攻擊者可以與真實的系統(tǒng)和真實的服務(wù)交互。因此,允許我們捕獲大量的威脅信息,同時也更難被攻擊者發(fā)現(xiàn)。
二、Sysdig和Falco
sysdig是一款開源的工具,可以捕獲并保存當(dāng)前正在運行的Linux的系統(tǒng)狀態(tài)及活動。因此這對于我們進行相關(guān)進程、網(wǎng)絡(luò)和I/O活動的離線分析,提供了極大的便利。Sysdig falco是一個活動行為監(jiān)視器,用于檢測和發(fā)現(xiàn)應(yīng)用程序中的異?;顒印alco可以檢測和警告涉及使Linux系統(tǒng)調(diào)用的任何行為。借助于sysdig的核心解碼和狀態(tài)跟蹤功能,可以通過使用特定的系統(tǒng)調(diào)用其參數(shù),以及調(diào)用進程的屬性來觸發(fā)falco警報。
三、將服務(wù)器轉(zhuǎn)換為蜜罐
作為一個合格的蜜罐服務(wù)器,都應(yīng)該具有文件捕獲和cifs-utils包,以掛載到保存我們sysdig抓取文件的遠程samba共享上。
四、手動安裝
Sysdig和falco可以部署在不同的Linux發(fā)行版中。以下是在不同發(fā)行版中的安裝過程:
1.RHEL,CentOS和Fedora下的安裝:
- 信任Dralex GPG密鑰并配置yum存儲庫
- 安裝EPEL存儲庫(只有在發(fā)行版中不提供DKMS時,才需要使用)。你可以使用“yum list dkms”驗證DKMS是否可用。
- 安裝內(nèi)核頭文件
- 安裝falco
以下為命令執(zhí)行過程(注意在root權(quán)限下運行)
- rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
- curl -s -o /etc/yum.repos.d/draios.repo http://download.draios.com/stable/rpm/draios.repo
- rpm -i http://mirror.us.leaseweb.net/epel/6/i386/epel-release-6-8.noarch.rpm
- yum -y install kernel-devel-$(uname -r)
- yum -y install falco psmisc
2.Ubuntu,Debian下的安裝
基本步驟與上面一致,操作命令如下:
- curl -s https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public | apt-key add -
- curl -s -o /etc/apt/sources.list.d/draios.list http://download.draios.com/stable/deb/draios.list
- apt-get update
- apt-get -y install linux-headers-$(uname -r)
- apt-get -y install falco
五、自動安裝
為了讓大家能夠在任何Linux發(fā)行版中快速部署sysdig和falco,我們特意開發(fā)了一個簡易的chef cookbook,大家可以在GitHub上獲取到它。
當(dāng)cookbook成功執(zhí)行后,sysdig將開啟連續(xù)捕獲模式,以便持續(xù)捕獲系統(tǒng)的運行狀態(tài)和活動。同時falco也開始運行,將所有警報發(fā)送到syslog。這里我們需要確保文件捕獲已經(jīng)開啟,并將syslog發(fā)送到我們設(shè)置的集中分析的ELK堆棧。此外,我們還需要檢查 sysdig捕獲文件目錄,是否已經(jīng)存在于samba共享。最后一步配置弱口令的root帳戶,例如passw0rd和test123。
要創(chuàng)建一個蜜罐,我們需要克隆一個合適的受害者機器,并在該系統(tǒng)上運行cookbook。Red Hat,F(xiàn)edora,CentOS,Debian或Ubuntu操作系統(tǒng)都可以正常運行cookbook。注意!以下命令必須要以root身份運行。
- wget https://packages.chef.io/files/stable/chefdk/1.0.3/ubuntu/16.04/chefdk_1.0.3-1_amd64.deb
- dpkg -i chefdk_1.0.3-1_amd64.deb
以上命令是在Debian操作系統(tǒng)中獲取并安裝Chefdk。對于其他架構(gòu)包請參閱此鏈接。
現(xiàn)在讓我們來安裝git并克隆cookbook庫。
- apt-get install git -y
- mkdir ~/cookbooks
- cd ~/cookbooks
- git clone https://github.com/mwrlabs/honeypot_recipes sysdig-falco
- cd sysdig-falco
在運行cookbook之前,請確保當(dāng)前我們系統(tǒng)的內(nèi)核版本為最新版本。這樣可以避免內(nèi)核和kernel-devel包之間的版本不同問題。
然后,我們執(zhí)行以下命令來運行cookbook:
- chef-client --local-mode --runlist 'recipe[sysdig-falco]'
當(dāng)cookbook被成功執(zhí)行后,我們可以看到一個名為mysysdig的文件,在/etc/init.d/目錄下被創(chuàng)建。該init腳本將使用以下參數(shù)啟動sysdig:
- sysdig -C 5000 -W 3 -w /usr/local/src/image.$(date +"%Y%m%d-%H%M%S").gz > /dev/null 2>&1 &
Sysdig將以連續(xù)捕獲模式啟動(選項-W)。使用-C選項,指定捕獲文件的大小。最后使用-w選項,將我們捕獲的文件保存到/usr/loca/src/目錄中。此外,我們還可以通過編輯/sysdig-falco-cookbook/templates/default/目錄下cookbook中的mysysdig.erb文件來更改這些選項。
六、Samba服務(wù)器
除了蜜罐服務(wù)器,我們還需要有一個samba服務(wù)器,以便實時發(fā)送我們捕獲的文件。以下是samba服務(wù)器的設(shè)置步驟。
- apt-get install samba -y
- smbpasswd -a ubuntu
ubuntu是我們的用戶名。創(chuàng)建一個目錄,用于保存sysdig的捕獲文件。
- mkdir -p /home/ubuntu/image
然后編輯位于/etc/samba/目錄下的smb.conf文件,并在該文件的末尾附加以下內(nèi)容:
- [image]
- path = /home/ubuntu/image
- valid users = ubuntu
- read only = no
最后,讓我們來啟動samba服務(wù)。
- /etc/init.d/samba restart
現(xiàn)在我們可以來啟動init腳本了,這將啟動sysdig程序。但是在此之前,我們需要在/usr/local/src/目錄下,掛載遠程文件共享。
- apt-get install cif-utils -y
- mount.cifs -o user=ubuntu //IP_of_samba_server/image /usr/local/src/image/
出現(xiàn)密碼提示,輸入我們之前設(shè)置的密碼。
現(xiàn)在我們運行init腳本,以確保falco正在運行,并通過init腳本啟動sysdig。
- /etc/init.d/falco status
- /etc/init.d/mysysdig start
七、監(jiān)控攻擊者
我們嘗試監(jiān)測攻擊者何時與我們的蜜罐進行互動。我們的蜜罐基本架構(gòu)如下:
- 作為蜜罐的幾臺Linux機器
- 一臺作為samba服務(wù)器的Ubuntu機器
- 一臺安裝了ELK(Elasticsearch Logstash Kibana)堆棧的Ubuntu機器。
選擇ELK堆棧是因為它適合于消耗和分析,來自syslog的sysdig/falco輸出的數(shù)據(jù)。
我們在兩個蜜罐上安裝了文件捕獲,以便將syslog和auth.log都發(fā)送到ELK堆棧。
為了檢測攻擊者,我們監(jiān)控了Kibana中的身份驗證日志(auth.log)。除了身份驗證日志,我們正在監(jiān)控falco警報。例如,下圖顯示的falco警報,說明了某人與我們的一個蜜罐進行了互動。
我們還可以通過觀察sysdig捕獲文件的大小,來初步判斷是否有人與我們的蜜罐進行了互動。突然增加,則表明有人正在與我們的蜜罐進行互動,因為這些機器上本身的活動很少。
八、實例探究
為了驗證我們的Sysdig/Falco蜜罐主機,對攻擊者的監(jiān)控和檢測的有效性,我們打算將蜜罐放置在公網(wǎng)的云設(shè)備上。
1. 案例研究1
我們將蜜罐暴露在互聯(lián)網(wǎng)上,很快我們得到了第一個結(jié)果。攻擊者試圖猜解我們的root賬戶密碼,如圖。
從上圖可以看出,攻擊者的行為發(fā)生在17:25:00。在17:26:36,我們又捕獲了一個不同的IP試圖猜解root密碼,如圖。
我們確信雖然IP不同,但應(yīng)該是同一人所為。最初,攻擊者嘗試爆破的IP地址為221.194.44.216,可能使用的是爆破腳本或肉雞,而后密碼被成功爆破后,地址又回到了原IP 103.42.31.138。以下兩圖顯示了它們的相關(guān)聯(lián)性:
從上面的第一張圖,我們可以看到,IP地址221.194.44.216有2522個生成的警報(右上角)。這些警報與爆破root密碼的失敗嘗試相關(guān)聯(lián),如圖。
攻擊者獲取到root密碼后,又返回到了原IP 103.42.31.138重新訪問目標(biāo)機器。搜索與此特定IP地址相關(guān)聯(lián)的不同警報,我們發(fā)現(xiàn)只有以下兩個警報,如圖所示。
falco警告顯示,有人突破了我們的蜜罐,如下圖所示。
我們快速下載sysdig捕獲的文件,并運行以下鑿子(鑿子是用于分析sysdig捕獲的事件流的小腳本)。
- sysdig -r image.20160721-1547320 -c list_login_shells
我們使用另一個鑿子,通過使用sysdig運行以下命令,基于loginshellid來查看攻擊者運行的命令。
- sysdig -r image.20160721-1547320 -c spy_users proc.loginshellid=1743
從falco的警報,我們看到攻擊者在/etc/cron.hourly目錄中創(chuàng)建了一個名稱為zbbpxdqalfe.sh的文件。sysdig能夠幫助我們輕松的看到文件的內(nèi)容,因為sysdig記錄了每一個I/O操作。
運行以下命令:
- sysdig -r image.20160721-1547320 -A -c echo_fds fd.filename=zbbpxdqalfe.sh
我們得到以下輸出信息。
搜索攻擊者運行的命令“mv /usr/bin/wget /usr/bin/good ”,我們發(fā)現(xiàn)了一個關(guān)于嘗試DDoS不同目標(biāo)的ELF惡意軟件二進制的分析。該分析講述了一種多態(tài)惡意軟件,在“/bin”或“/usr/bin”目錄下創(chuàng)建了具有隨機名稱的不同可執(zhí)行文件,我們可以從以下falco警報中看到。
2. 案例研究2
為了更進一步的研究,我們又為系統(tǒng)添加了三個賬戶,并分別使用了僵尸網(wǎng)絡(luò)通常會嘗試爆破的賬戶及密碼,分別為user,user2,且用戶名和密碼相同。幾個小時后,我們發(fā)現(xiàn)有人用用戶名“user”進行了登錄。十四分鐘后,攻擊者又再次登錄,我們可以從auth.log到kibana看到。
我們檢查了falco警報信息,但并沒有發(fā)現(xiàn)與該事件相關(guān)的信息。我們從samba服務(wù)器下載了sysdig捕獲文件,嘗試看看發(fā)生了什么。首先,我們使用”spy user” 鑿子來查看已執(zhí)行的所有交互式命令。
- sysdig -r image.20160729-104943.gz0 -c spy_users
我們觀察了攻擊者執(zhí)行的一些命令。為了更清楚地看到攻擊者試圖做什么,我們再次運行相同的鑿子,但是這次我們使用proc.loginshellid過濾器字段來限制spy user鑿子的輸出。從上圖可以看出,攻擊者的登錄名為2308,所以我們運行:
- sysdig -r image.20160729-104943.gz0 -c spy_users proc.loginshellid=2308
并觀察以下輸出。
我們可以看到攻擊者試圖為不同的處理器架構(gòu)運行一些二進制文件。他們試圖運行的第一個二進制文件名為kaiten。在google中搜索kaiten二進制文件,我們可以看到,這個惡意軟件二進制文件是用C編寫的,并且已經(jīng)在許多漏洞利用數(shù)據(jù)庫站點中公開已久。主要目的是通過利用我們的unix和IoT設(shè)備,來實現(xiàn)對不同目標(biāo)的DDoS。更多信息請點擊鏈接。
分析二進制文件時,我們發(fā)現(xiàn)沒有一個符號被剝離,這也使得我們更容易對其進行逆向工程。經(jīng)過一些額外的研究,我們發(fā)現(xiàn)github上的一個腳本是用于設(shè)置該惡意二進制文件的。硬編碼的加密密鑰/通道密鑰都沒有被改變,這也說明攻擊者剛剛下載并運行的就是github上的這個腳本。通過對Jackmy$arch二進制文件的逆向我們發(fā)現(xiàn),這些二進制文件通過/usr/bin/sshd替換進程(proc名稱)的第一個參數(shù),在ps aux中隱藏其進程列表。
九、總結(jié)
以上我們學(xué)習(xí)了,如何利用Sysdig和falco來快速的構(gòu)建一個高交互型蜜罐。以及通過兩個研究案例,證明了該蜜罐系統(tǒng)的有效性。從中我們也可以看出,對于一個企業(yè)或組織而言,建立一套良好的防御體系的重要性和不可或缺性。在安全方面的投入,作為企業(yè)而言永遠不能吝嗇!
網(wǎng)頁標(biāo)題:構(gòu)建一個高交互型的難以發(fā)現(xiàn)的蜜罐
地址分享:http://www.dlmjj.cn/article/dpgegie.html


咨詢
建站咨詢
