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