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