美團云技術分享:一場攻防廝殺后的思考與沉淀
云主機提供給不同的用戶,對外開放服務具有多樣性,風險點較多。而且用戶的安全水平參差不齊,往往出現一些漏洞,比如弱口令。同時,多數用戶在使用一些開源產品,比如cms時,不能正確使用,導致很容易被攻擊者利用。下面就是這周美團云的工程師幫助用戶和入侵者斗智斗勇的事件回顧。
事件概況:
2015年6月29日 ,美團云接到用戶反饋,有主機對外做大量的ssh爆破的行為,疑似被入侵。我們迅速對該情況做了分析并還原了整個入侵過程。
取證過程:
我們對遭入侵的主機分別做了白盒和黑盒的測試。在用戶的協助下,我們登陸該主機收集了該主機存在所有的日志;然后簡單對該服務器做了個黑盒下的測試,服務器出了開放ssh之外還開放了redis nginx,不過nginx沒有放任何程序,這點來講應用層就不存在常見攻擊者利用的漏洞了。對于redis來說如果運維不當很容易出現安全問題,這里嘗試下容易出現的問題。
目前存在匿名訪問的問題。因為不知道網站路徑,所以這只能算是個雞肋漏洞,攻擊者無法利用該問題直接入侵該服務器然后對外進行ssh暴力破解。如果可以找網站網站路徑就可以順利getshell。
對該服務器開放6080端口掃描,發現存在一個test1.php phpinfo文件,這里可以清晰的看到整個配置信息,得到路徑一枚,下面就可以利用以上兩個信息進行getshell操作了。
利用redis控制臺的config set命令獲得網站shell權限,至此通過兩個問題就可以獲得網站的權限了,攻擊者是否通過這些問題入侵的服務器呢,白盒下通過日志來證明我的猜想。
#p#
白盒測試:
通過secure日志可以看到發現最近一段時間內每天有大量的ssh爆破日志,但并未發現root賬號有暴力破解成功的跡象
統計了下登陸失敗的日志次數,可以清晰的看到數以千計的失敗次數。
可以成功登陸該服務器,
過了一會發現入侵者又登陸上來了,所以可以確定入侵者就是通過這種方式入侵主機。將該登陸的session踢下去,iptables封禁了該IP,然后設置nagios nologin。
確定原因(反滲透取證)
在可以做取證的情況下,我們來判斷這一次定點攻擊還是批量掃描的結果,攻擊者是哪一類人群。日志中發現攻擊者留下的IP地址存在bash的shellshock漏洞,訪問網站時在user_agent中注入惡意代碼即可執行任意命令。
獲得服務器權限后,查看該服務器上有大量的掃描工具,并使用saltstack控制了很多肉雞。。我們挑了一臺精壯的服務器以后跑密碼用,然后刪除了他所有程序。。沒錯,我們的工程師就是這么好的一個人,一個紅領巾。
通過Google該程序發現早期被人寫成了蠕蟲感染程序做自動化抓取肉雞,攻擊者在獲得該服務器控制權后,利用該服務器作為跳板進行二次攻擊。
#p#
結論:
攻擊者成功入侵了該云主機,并且利用該主機對外做了二次攻擊,暴力破解ssh。
確定了被入侵的原因,美團云向客戶提交了加固方案:
1. 如果沒有重要數據的話,建議重置系統,這樣即便有內核級別的rootkit可清除。
2. 刪除或加強nagios賬號口令。
3. 加強redis口令,設置訪問ip。
4. 刪除6080端口的test1.php文件。
用戶在應用加固方案后,成功阻止了入侵者。