判斷Linux系統(tǒng)是否被非法進(jìn)入,你需要幾步?9個(gè)小技巧分享!
對(duì)于在線運(yùn)行的業(yè)務(wù)系統(tǒng),安全性是一個(gè)至關(guān)重要的問(wèn)題。服務(wù)器被非法進(jìn)入最常見(jiàn)的表現(xiàn)有:由內(nèi)向外發(fā)送大量數(shù)據(jù)包(被DDOS肉雞)、服務(wù)器資源被耗盡(被挖礦)、不正常的端口連接(反向shell)、服務(wù)器日志被惡意刪除等..排除Linux系統(tǒng)管理員操作不當(dāng)?shù)那闆r,如何檢測(cè)自己的系統(tǒng)是否被非法進(jìn)入呢?下面跟大家簡(jiǎn)單分享實(shí)用的幾個(gè)小技巧~
一、檢查系統(tǒng)日志
1.1 檢查系統(tǒng)登陸日志,統(tǒng)計(jì)IP重試登陸的次數(shù)。
對(duì)于惡意登陸的系統(tǒng)行為,在日志中會(huì)留下蛛絲馬跡,通過(guò)檢查系統(tǒng)登陸日志,統(tǒng)計(jì)重試登陸的次數(shù),能看到哪些IP及哪些用戶在惡意登陸系統(tǒng)。
- # lastb root | awk '{print $3}' | sort | uniq -c | sort -nr| more
說(shuō)明:
lastb命令,該命令需要root權(quán)限,可以顯示所有登陸信息,也可以顯示指定用戶的信息,后面直接跟相關(guān)的用戶即可。
二、檢查系統(tǒng)用戶
對(duì)于非法進(jìn)入行為,往往通過(guò)檢查系統(tǒng)用戶,可以發(fā)現(xiàn)一些蛛絲馬跡,比如有沒(méi)有異常新增用戶及提權(quán)用戶。通過(guò)對(duì)系統(tǒng)用戶的檢查,是檢測(cè)的重要方面。
2.1 查看是否有異常的系統(tǒng)用戶
- cat /etc/passwd
2.2 檢查是否有新用戶尤其是UID和GID為0的用戶
- awk -F":" '{if($3 == 0){print $1}}' /etc/passwd
2.3 檢查是否存在空口令賬戶
- awk -F: '{if(length($2)==0) {print $1}}' /etc/passwd
三、檢查系統(tǒng)異常進(jìn)程
對(duì)于被非法進(jìn)入的系統(tǒng),可以通過(guò)查看進(jìn)程,確認(rèn)有哪些異常非系統(tǒng)及非業(yè)務(wù)的進(jìn)程在運(yùn)行,通過(guò)對(duì)這些異樣進(jìn)程的檢查,查找惡意程序的來(lái)源。
3.1 使用ps -ef命令查看進(jìn)程
- ps -ef
尤其注意UID為root的進(jìn)程
3.2 查看該進(jìn)程所打開(kāi)的端口和文件
- lsof -p pid
3.3 檢查隱藏進(jìn)程
說(shuō)明:
- ps -ef | awk '{print $2}'| sort -n | uniq >1; ls /proc |sort -n|uniq >2;diff -y -W 40 1 2
lunux所有的進(jìn)程在/proc均有記錄,需要注意,這里的信息是最詳細(xì)。
四、檢查系統(tǒng)異常文件
對(duì)于被非法進(jìn)入的系統(tǒng),通過(guò)檢查系統(tǒng)異常文件,可以追蹤非法進(jìn)入的信息,比如檢查一下SUID的文件,一些空格文件等。
4.1 檢查一下 SUID的文件
- # find / -uid 0 -perm 4000 -print
4.2 檢查大于10M的文件
- # find / -size +10000k –print
4.3 檢查空格文件
- # find / -name “…” –print
- # find / -name “.. ” –print
- # find / -name “. ” –print
- # find / -name ” ” –print
4.4 檢查系統(tǒng)中的core文件
- # find / -name core -exec ls -l {} ()
五、檢查系統(tǒng)文件的完整性
系統(tǒng)文件的完整性是非法進(jìn)入檢測(cè)的重要方面,尤其通過(guò)對(duì)一些常用系統(tǒng)命令的md5值的檢查,可以判斷系統(tǒng)是否被非法進(jìn)入,比如ls,ping等 這些常用 的命令被惡意程序篡改后,我們?cè)趫?zhí)行這些系統(tǒng)命令的時(shí)候,實(shí)際上在執(zhí)行惡意程序。
5.1 檢查linux系統(tǒng)文件的完整性
尤其注意以下幾個(gè)目錄 /sbin,/bin,/usr/bin
- 例如:
- # whereis ls
- # md5sum /usr/bin/ls
當(dāng)然也可以寫成腳本的形式,對(duì)批量生成系統(tǒng)文件md5值與正常系統(tǒng)做比對(duì),如果md5值與正常系統(tǒng)不一樣。那說(shuō)明你的系統(tǒng)可能被非法進(jìn)入了。
5.2 利用工具AIDE檢查系統(tǒng)文件的完整性
通過(guò)手動(dòng)檢查系統(tǒng)文件的md5方面,效率不是很高,可以通過(guò)AIDE軟件來(lái)輔助檢查系統(tǒng)文件的完整性,該軟件的具體使用方法詳見(jiàn)官方文檔
六、檢查網(wǎng)絡(luò)
網(wǎng)絡(luò)方面通過(guò)檢查網(wǎng)卡的是不是處于混雜模式,檢查系統(tǒng)中網(wǎng)絡(luò)監(jiān)聽(tīng)的端口,對(duì)于一些非系統(tǒng),非業(yè)務(wù)的端口尤其是要重點(diǎn)關(guān)注。
6.1 檢查網(wǎng)卡模式
- # ip link | grep PROMISC(正常網(wǎng)卡不該在promisc混雜模式,可能存在sniffer)
- 網(wǎng)卡處于混雜模式,這樣通過(guò)網(wǎng)卡的流量都會(huì)被監(jiān)聽(tīng)
6.2 檢查惡意程序開(kāi)放的端口及打開(kāi)的文件
- #netstat -ntlup
- #lsof -i: 端口號(hào)
七、檢查系統(tǒng)計(jì)劃任務(wù)
系統(tǒng)的定時(shí)任務(wù)也是非法進(jìn)入檢測(cè)的重要方面,有些惡意的程序通過(guò)系統(tǒng)的計(jì)劃任務(wù),定時(shí)調(diào)度任務(wù),通過(guò)對(duì)定時(shí)任務(wù)的檢查,可以發(fā)現(xiàn)一些被非法進(jìn)入的重要信息。
- # crontab –u root –l
- # cat /etc/crontab
- # ls /etc/cron.*
注意:
root和UID是0的schedule
八、檢查系統(tǒng)服務(wù)
8.1 centos 6版本
查看系統(tǒng)啟動(dòng)的服務(wù)
- # chkconfig —list
這個(gè)主要檢測(cè)的是啟動(dòng)服務(wù),目前在centos7以上都采用systemd 來(lái)管理相應(yīng)的服務(wù)。Systemd是一個(gè)系統(tǒng)管理守護(hù)進(jìn)程、工具和庫(kù)的集合,用于取代System V初始進(jìn)程。Systemd的功能是用于集中管理和配置類UNIX系統(tǒng)。
查看所有的可用單元# systemctl list-unit-files
九、檢查rootkit
9.1 通過(guò)rkhunter檢查
通過(guò)rkhunter輸出的信息提示,是判斷系統(tǒng)是否被rootkit的要重要手段,除OK之外的提示是重點(diǎn)關(guān)注的對(duì)象。
- # rkhunter -c
參數(shù)說(shuō)明:
-c:檢查本地文件系統(tǒng)
9.2通過(guò)chkrootkit 檢查
- # chkrootkit -q
9.3 通過(guò)Tripwire檢查
具體使用方法詳見(jiàn)官方文檔資料https://www.tripwire.com/,這里就不作詳細(xì)介紹。