維護網絡安全不僅要識別威脅,還要找到有效的方法把威脅從網絡上消滅掉。近日,全球最大的電信運營商Level3與思科塔羅斯(Talos)安全團隊,聯合調查并打掉了一個掃描全球互聯網并發動DDoS攻擊的僵尸網絡--SSH精神病(Psychos)。
發現
2014年9月底, 安全博客“惡意軟件必死”報道了一種新型的Linux惡意軟件和工具包,用來發動DDoS攻擊。四個月后,火眼發現了一起異乎尋常的SSH暴力嘗試登陸攻擊,使用就是這個工具。不久之后,思科塔羅斯安全團隊的蜜罐捕捉到來自同一攻擊者的海量認證嘗試 (103.41.125.0/23 and 43.255.190.0/23)。
今年3月底,Level 3開始與塔羅斯團隊聯手對付這個超級僵尸網絡。Level 3通過與整個互聯網的SSH流量對比,確定了攻擊者擁有的流量規模。數據顯示,僅此一個攻擊者就占到整個互聯網SSH流量的35%還多。
發現威脅后,安全機構的職責就是盡可能的把它從網絡上剔除。但在實施這樣的行為之前,還需要考慮到后果。因為在阻擊這些攻擊流量的過程中,將影響到許多被利用的無害的主機。為了減少傷及無辜,安全人員對攻擊者的工具和基礎設施要有更多的了解。
分析
塔羅斯團隊的蜜罐數據顯示,在SSH暴力登錄成功之后,會從兩個IP23.234.60.140和23.234.19.202的網頁服務器上下載文件。前者在/install目錄下提供命名為從8000.rar到8008.rar的文件下載,后者在/i目錄下提供命名為從a06到a11的文件下載。
第一臺主機的文件是shell腳本,可以從中看出更多攻擊手法的細節。盡管以.rar的擴展名命名,但實際上是一個Unix的shell腳本,與去年9月底發現的惡意軟件使用相同的混淆處理。
dec(){ echo $@|tr “[a-zA-Z0-9;-=+*/]” “[.0-9a-zA-Z//:]”; }
這句轉譯字符串沒有任何改變。
這個簡單的bash函數dec()攜帶混淆的文本并把字符轉譯回真正的文本。通過這個函數,可以從8000.rar文件中找到有趣的字符串:
圖中最重要的二行代碼是_download_url__……和__remote__ ……,前者是可執行程序的地址,后者負責命令控制通信。而各個名字按順序排列的文件,互相之間唯一的不同就是下載路徑和與文件名相匹配的端口號,可用__remote__ 的代碼進行改變。
在確定了惡意軟件中沒有根本結構性的改變之后,Level 3的安全團隊將其下載到CentOS 7的虛擬機中以root權限運行,以觀察它的運行結果。
在執行從__download_url__ 取回的惡意文件后,肉機立刻開始搜索它的命令控制(C2)主機。惡意文件將8.8.8.8和8.8.8.4作為它的DNS解析,并嘗試對配置的主機名進行域名解析。接著,便試圖連接IP并解析在__remote__語句中包含的主機名。
在虛擬機中運行的不同版本的惡意軟件分別與不同的C2建立連接:
103.240.140.152 (解析自ndns.dsaj2a.org和ns2.hostasa.org)
162.218.112.7 (解析自ndns.dsaj2a1.org)
104.143.5.25 (解析自ndns.dsaj2a1.org和ns1.hostasa.org)
103.240.141.54 (解析自ndns.dsaj2a.com、ndns.hcxiaoao.com和ns3.hostasa.org)
連接建立之后,C2就可以指揮肉機發動SYN洪水攻擊。SYN的流量包被設成最小帶寬使用,也沒有隱瞞本身的來源。從C2接收的攻擊指令被確認為與之前的惡意軟件使用相同的密鑰(BB2FA36AAA9541F0) 進行異或保護。
其他值得注意的通信,包括每過30分鐘就會從原始惡意主機23.234.60.140上取回/config.rar。取回這個文件使用的是user-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; TencentTraveler ; .NET CLR 1.1.4322)
config.rar與其他的惡意文件一樣,也不是RAR壓縮文件。它是一個用128位相同密鑰進行異或(XORed)的C2通信文件。通過解碼,安全人員發現了一個包含下列名稱的配置文件:md5、denyip、filename和rmfile。這些名稱與其他已知的木馬和惡意軟件有關,用來移除和殺死肉機上感染的其他惡意軟件,以獲得對肉機的充分控制權。解碼后的文件內容見:
http://www.level3.com/~/media/files/misc/config.txt
在確認了該惡意軟件的運行目的、通信手段和指令源之后,安全人員開始評估它在整個互聯網上造成的影響。
在3月底到4月初的二個星期中,安全人員監控到攻擊者掃描了大量IP,識別出僵尸網絡中的活動主機,并發現C2通信是通過8000至80008和3306的TCP端口進行的。但之前版本的惡意軟件使用的通信端口是3502至3508。
在評估完這個僵尸網絡的規模、影響和持續時間后,Level 3和塔羅斯小組決定是時候把這個毒瘤從互聯網上清除出去了。
行動
4月7日,Level 3把“SSH精神病”互聯網上所有的攻擊流量放入黑洞,保證其流量再也無法通過Level 3發出,然后行動人員又聯系了其他網絡運營商,給他們通報威脅情況并請求對方把這些流量永久的從互聯網上剔除。
提醒
如果你使用開啟了sshd服務的Linux系統,最好確保你的sshd配置文件禁止root登錄。這種操作將把ssh精神病拒之門外。此外,如果在非標準端口運行ssh服務的話也會是一個不錯的方法。大多數商業掃描器和惡意軟件是不會非標準端口的服務的。
最后,密碼設置要避免普通密碼字典的猜解。下面這個地址是思科塔羅斯小組蜜罐系統捕獲的447萬多個口令,從中可以看出簡單的字母組合和多位數的有規律的字母數字已經無法避免破解。
http://www.level3.com/~/media/files/misc/SSHPsycho_Passwords.xlsx