linux系統安全應急響應

        ~~~~~~~~因爲想要面對一個新的開始,一個人必須有夢想、有希望、有對未來的憧憬。如果沒有這些,就不叫新的開始,而叫逃亡。 ​​​​
                                                                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ————瑪麗亞·杜埃尼亞斯

前言

在linux環境下處理應急響應事件往往會比較棘手,因爲相對於windows,linux沒有像autorun、procexp這樣的應急響應利器,也沒有統一的應急響應處理流程。
linux可能出現的入侵情況及現象
1、存在非法外聯佔用帶寬
2、存在異常進程或者異常端口
3、CPU、內存報警
4、服務器無法正常連接
5、出現異常登錄和異常賬號
6、網站被注入木馬、webshell

應急響應流程

處理linux應急響應主要分爲4個環節:識別現象-> 清除病毒-> 閉環兜底-> 系統加固
首先從客戶場景的主機異常現象出發
[1]先識別出病毒的可疑現象。
[2]然後定位到具體的病毒進程以及病毒文件,進行清除。
[3]完成前2步還不夠,病毒一般會通過一些自啓動項及守護程序進行重複感染,所以我們要執行閉環兜底確保病毒不再被創建。
[4]將主機上的病毒項清除乾淨後,最後就是進行系統加固了,防止病毒從Web再次入侵進來。
在這裏插入圖片描述

識別現象

這個環節要求我們通過系統的運行狀態,安全設備告警,發現主機異常現象,以及確認病毒的可疑行爲。
當我們登錄主機後做的第一件事就應該先用history查看主機的歷史命令。
排查用戶相關信息

whoami       #查看當前用戶
who          #查看當前登錄系統的所有用戶
w            #顯示已經登陸系統的用戶列表,並顯示用戶正在執行的指令
users        #顯示當前登錄系統的所有用戶的用戶列表
last         #查看最近登錄成功的用戶及信息,查看的是 /var/log/wtmp 文件
lastb        #查看最近登錄失敗的用戶及信息,查看的是 /var/log/btmp 文件
lastlog      #顯示系統中所有用戶最近一次登錄信息,讀取的是 /var/log/lastlog 文件
cat  /etc/passwd                        #查看用戶信息
cat /home/"用戶名".bash_history          #查看普通賬號的歷史命令
cat  /etc/passwd | grep /bin/bash       #查看可以登錄系統的用戶
awk -F: '$3==0{print $1}' /etc/passwd   #查看超級用戶(uid=0),有些黑客將普通用戶的uid改爲0,則該普通用戶也擁有了超級權限
awk '/\$1|\$6/{print $1}' /etc/shadow   #查看可以遠程登錄的用戶
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"  #查看擁有sudo權限的用戶

舉例說明一下,lastb查看一下最近登錄失敗的用戶信息
在這裏插入圖片描述
last查看一下最近有哪些用戶登錄成功
在這裏插入圖片描述

排查進程端口相關信息

top                          #動態查看進程
ps -aux                      #查看佔用內存和CPU較高的PID和實際的指令位置
ls -l /proc/18176/exe        #查看PID爲18176的進程的可執行程序
ls -l /etc/init.d            #查看啓動項
lsof -p 18176                #查看PID爲18176的進程打開的文件
lsof -c sshd                 #查看進程sshd打開的文件
lsof -i:33946                #查看33946端口對應的一些進程
ps -p PID -o lstart          #查看進程的啓動時間點
netstat -pantu | grep 18176  #查看端口連接情況,過濾含有18176的行,就可以查看連接的端口
fuser -n tcp 33946           #查看33946端口對應的進程PID
ps aux  /  ps -ef            #靜態查看進程
pstree  -h pid -p -a         #查看某個進程的進程樹
ps aux --sort -pcpu          #靜態查看進程,根據cpu使用情況排行,從高到低
ps aux --sort -pmem          #靜態查看進程,根據內存使用情況排行,從高到低

舉例說明一下比如top,如果cpu佔用率超過70%且名字可疑,大概率是中了挖礦病毒了。
在這裏插入圖片描述
ps -aux 看下是否有可疑進程 ,當你看見命令行中帶有url等奇怪的字符串時候,它很有可能就是個病毒downloader。
在這裏插入圖片描述

清除病毒

通過第一個環節中的各項現象的排查,可以幫助我們定位到病毒進程和病毒文件。到這一步,我們就需要將其殺死。

清除可疑進程的進程鏈,結束病毒進程

ps -elf | grep [pid]
kill -9 [pid]

定位病毒進程對應的文件路徑,刪除病毒文件

ls -al /proc/[pid]/exe
rm -f [exe_path]

閉環兜底

當我們發現,殺掉了惡意進程後,過一段時間,該進程又會重新啓動,則說明該進程有守護進程。則我們第一想到了就是crontab定時任務了。
檢查是否存在可疑定時任務

crontab -l            #查看定時任務
more   /var/log/cron  #查看定時日誌文件
cat /etc/anacrontab   #查看anacrontab異步定時任務

枚舉主機所有服務,查看是否有惡意服務

service --status-all

枚舉系統文件夾的文件,按修改事件排序查看7天內被修改過的文件

find /usr/bin/ /usr/sbin/ /bin/ /usr/local/bin/ -type f -mtime +7 | xargs ls -la

檢查是否存在病毒守護進程

lsof -p [pid]

跟蹤進程運行情況

strace -tt  -T -e  trace=all  -p $pid

掃描是否存在惡意驅動

lsmod

查看authorized_keys是否有攻擊者上傳的ssh私鑰

ls -l  /etc/.ssh

安裝chkrootkit 進行掃描:

wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar zxvf chkrootkit.tar.gz
cd chkrootkit-0.52
make sense
./chkrootkit

安裝rkhunter 進行掃描:

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

系統加固

最後一個環節也是非常重要的,我要通過此次的分析,知道黑客是如何入侵主機的,進而修復該漏洞,防止黑客再次入侵。
查看 /var/log/secure文件

cat /var/log/secure* | grep Accepted   #查看登錄成功的記錄
cat /var/log/secure* | grep Failed     #查看登錄失敗的記錄
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'  #查看登錄成功的日期、用戶名及ip
grep "Failed password for root" /var/log/secure | awk '{print $11}'  #查看有哪些ip在爆破主機的root賬號
grep "Failed password" /var/log/secure | awk {'print $9'} | sort | uniq -c | sort -nr  #查看爆破用戶名字典

日誌分析

/var/log/message              包括整體系統信息
/var/log/auth.log             包含系統授權信息,包括用戶登錄和使用的權限機制等
/var/log/userlog              記錄所有等級用戶信息的日誌
/var/log/cron                 記錄crontab命令是否被正確的執行
/var/log/xferlog(vsftpd.log)  記錄Linux FTP日誌
/var/log/lastlog              記錄登錄的用戶,可以使用命令lastlog查看
/var/log/secure               記錄大多數應用輸入的賬號與密碼,登錄成功與否
/var/log/wtmp                 記錄登錄系統成功的賬戶信息,等同於命令last
/var/log/faillog              記錄登錄系統不成功的賬號信息,一般會被黑客刪除

linux平臺下的惡意軟件威脅以殭屍網絡蠕蟲和挖礦病毒爲主,大多作爲服務器暴露在公網,web應用漏洞多。通常包括redis未授權漏洞入侵、ssh弱口令暴力破解、web程序漏洞入侵等。我們要養成不使用弱密碼,勤打補丁的好習慣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章