网络安全应急响应的基本流程
1.了解情況
發生時間:詢問客戶發現異常事件的具體時間,后續的操作要基于此時間點進行追蹤分析。
受影響系統類型:詢問具體的操作系統類型及相關情況,以便后續的應急處置。
windows/linux
財務系統/OA系統/官網,系統重要性,是否可關停
是否有弱口令,遠程管理端口是否開放
都開放了什么端口,有什么服務,服務是否存在風險性
必要的話現場檢測,不要完全相信聽來的東西
異常情況:
文件被加密
設備無法正常啟動
勒索信息展示
CPU利用率過高
網頁掛馬/黑鏈
對外發送異常請求
對外發送垃圾短信
等非正常的情況
已有的處置措施:
之前是否存在此類問題
是否在出現問題后配置了新的策略
是否已有第三方已進行了應急處理,處理結果是什么
是否有其他處置措施
系統架構/網絡拓撲:是否能提供網絡拓撲圖
能否提供以下日志
服務器日志
應用日志,重點web日志
數據庫日志
已有的安全設備
終端殺軟
防火墻
WAF
流量分析設備
基本的應急處置方案
臨時處置方案
勒索病毒處置方案
挖礦程序處置預案
網頁掛馬處置預案
DDOS處置預案
內部數據泄露處置預案
其他處置預案
應急報表:
包含下述應急方法
端口開放情況,及各個端口應用分析,處置建議
2.遏制傳播風險
禁止被感染主機使用U盤,移動硬盤。如必須使用做好備份
禁用所有無線/有線網卡或直接拔網線
關閉相關端口
劃分隔離網絡區域
封存主機,相關數據備份
被感染主機應用服務下線
被感染主機部分功能暫停
被感染主機相關賬號降權,更改密碼
勒索病毒處置 - 核心是止損,這點非常重要
通過各類檢查設備和資產發現,確定感染面;
通過網絡訪問控制設備或斷網隔離感染區域,避免病毒擴散;
迅速啟動殺毒或備份恢復措施,恢復受感染主機的業務,恢復生產。(這點最重要,因為是保障業務的關鍵動作)
啟動或部署監測設備,針對病毒感染進行全面監測,避免死灰復燃。
在生產得到恢復并無蔓延之后,收集所有相關的樣本、日志等,開展技術分析,并尋找感染源頭,并制定整改計劃。
3.已知高危漏洞排查
可與下面的步驟同時進行,掃描高危漏洞。但要注意掃描產生的大量日志不要影響漏洞排查
4.系統基本信息查詢
Windows
1)查看當前系統的補丁信息 systeminfo
Linux
1)列出系統arp表,重點查看網關mac地址 arp -a
2)文件搜索命令 find / -name “.asp”
重點關注
1)系統內是否有非法賬戶
2)系統中是否含有異常服務程序
3)系統是否存在部分文件被篡改,或發現有新的文件
4)系統安全日志中的非正常登陸情況
5)網站日志中是否有非授權地址訪問管理頁面記錄
6)根據進程、連接等信息關聯的程序,查看木馬活動信息。
7)假如系統的命令(例如netstat ls 等)被替換,為了進一步排查,需要下載一新的或者從其他未感染的主機拷貝新的命令。
8)發現可疑可執行的木馬文件,不要急于刪除,先打包備份一份。
9)發現可疑的文本木馬文件,使用文本工具對其內容進行分析,包括回連IP地址、加密方式、關鍵字(以便擴大整個目錄的文件特征提取)等。
5.異常連接排查
Windows
1)查看目前的網絡連接,定位可疑的 ESTABLISHED netstat -ano
netstat -ano | findstr ESTABLISH
參數說明:
-a 顯示所有網絡連接、路由表和網絡接口信息
-n 以數字形式顯示地址和端口號
-o 顯示與每個連接相關的所屬進程 ID
-r 顯示路由表
-s 顯示按協議統計信息、默認地、顯示 IP
LISTENING 偵聽狀態
ESTABLISHED 建立連接
CLOSE_WAIT 對方主動關閉連接或網絡異常導致連接中斷
2)查看端口對應的pid netstat -ano | findstr “port”
3)netstat -nb 顯示在創建每個連接或偵聽端口時涉及的可執行程序,需要管理員權限,這條指令對于查找可疑程序非常有幫助。
Linux
1)列出所有打開了網絡套接字(TCP和UDP)的進程
lsof -i
lsof -i|grep -E “LISTEN|ESTABLISHED”
2)列出所有打開的端口及連接狀態
netstat -antlp
netstat -an
說明
-a 顯示所有連線中的 Socket。
-n 直接使用 IP 地址,而不通過域名服務器。
-t 顯示 TCP 傳輸協議的連線狀況。
-u 顯示 UDP 傳輸協議的連線狀況。
-v 顯示指令執行過程。
-p 顯示正在使用 Socket 的程序識別碼和程序名稱。
-s 顯示網絡工作信息統計表
6.正在運行的異常進程排查
Windows
1)查看異常進程 任務管理器
2)顯示運行在本地或遠程計算機上的所有進程 tasklist | findstr 11223
根據netstat定位出的異常進程的pid,再通過tasklist命令進行進程定位
1)根據 wmic process 獲取進程的全路徑 wmic process | findstr “xx.exe”
2)查看進程的詳細信息,比如進程路徑,進程ID,文件創建日期,啟動時間等
“開始->運行->msinfo32->軟件環境 -> 正在運行任務”
1)關閉某個進程 wmic process where processid=“2345” delete
Linux
1)查找進程pid
netstat -antlp 先找出可疑進程的端口
lsof -i:port 定位可疑進程pid
2)通過pid查找文件
linux每個進程都有一個對應的目錄
cd /proc/pid號 即可進入到該進程目錄中
ls -ail 結果中exe對應的就是該pid程序的目錄
ls -ail |grep exe
3)查看各進程占用的內存和cpu top
4)顯示當前進程信息 ps
5)實現某個進程的精確查找 ps -ef | grep apache
6)結束進程 kill -9 pid
kill -9 4394
7)查看進程樹 pstree -p 查找異常進程是否有父進程
8)也可以直接搜索異常進程的名程來查找其位置, find / -name ‘xxx’
7.異常賬號排查
Windows
1)圖形化界面查看當前的賬戶和用戶組 lusrmgr.msc
2)查看當前賬戶情況 net user
3)查看某個賬戶的詳細信息 net user Guest
4)查看當前組的情況 net localgroup administrators
5)查看當前系統會話,比如查看是否有人使用遠程終端登陸服務器 query user
踢出該用戶 logoff ID ID是上面查詢出來的。也可能是用戶名
Linux
1)查看utmp日志,獲得當前系統正在登陸賬戶的信息及地址 w
2)獲得系統前N次的登陸記錄 last | more
3)查看賬號情況 cat /etc/passwd
查找/etc/passwd 文件, /etc/passwd 這個文件是保存著這個 linux 系統所有 用戶的信息,通過查看這個文件,我們就可以嘗試查找有沒有攻擊者所創建的用 戶,或者存在異常的用戶。我們主要關注的是第 3、4 列的用戶標識號和組標識 號,和倒數一二列的用戶主目錄和命令解析程序。一般來說最后一列命令解析程 序如果是設置為 nologin 的話,那么表示這個用戶是不能登錄的,所以可以結合 我們上面所說的 bash_history 文件的排查方法。首先在/etc/passwd 中查找命令 解釋程序不是 nologin 的用戶,然后再到這些用戶的用戶主目錄里,找到 bash_history,去查看這個用戶有沒執行過惡意命令。
/etc/passwd中一行記錄對應著一個用戶,每行記錄又被冒號(:)分隔為7個字段, 其格式和具體含義如下:
用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄 Shell
注意:無密碼只允許本機登陸,遠程不允許登陸,某個版本之后好像因為安全問題,passwd文件不再有密碼了
4)查看賬號情況 cat /etc/shadow
root:666oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留
這里查賬號感覺好一點,一般系統的賬號都是沒有密碼的,所以找最長的那幾個,那就是有密碼的賬戶,很可能就是被黑客添加的后門賬戶
5)linux非root用戶文件夾所在位置 /home
6)查看所有賬戶最后一次登陸時間 lastlog
7)顯示用戶登陸錯誤的記錄 lastb 檢查暴力破解
8)顯示用戶最近登陸信息 last
數據源為
/var/log/wtmp
/var/log/wtmp.1
/var/log/btmp
/var/log/btmp.1
9)查看當前登陸用戶 who (tty本地登陸 pts遠程登錄)
10)查看當前時刻用戶行為 w
11)查看登陸多久,多少用戶,負載 uptime
12)禁用賬戶,賬號無法登陸,/etc/shadow 第二欄為!開頭 usermod -L user
13)刪除user用戶 userdel -r user
14)創建用戶
useradd admin #創建一個用戶,在home目錄下不創建文件夾
passwd admin #修改之前創建的賬號的密碼
adduser admin2 #是一個比較完善的創建用戶的命令,會在home目錄下生成一個admin2的文件夾
15)刪除用戶
userdel admin2 #這樣刪除的話不完全,home目錄下的admin2目錄不會刪除
userdel -rf admin #-r 完全刪除一個賬戶 -f強制刪除
如果遇到賬戶刪除顯示已經刪除,但創建同名的用戶提示用戶已存在的情況,嘗試以下方法進行刪除。
手動刪除passwd、shadow、group里面用戶相關字段,以及用戶相關的log和mail,并強制刪除home目錄下用戶的文件夾。
/home
/etc/passwd
/etc/group
/var/spool/mail
8.異常文件分析
Windows
1)查看文件時間 右鍵查看文件屬性,查看文件時間
2)Recent 是系統文件夾,里面存放著你最近使用的文檔的快捷方式,查看用 戶 recent 相關文件,通過分析最近打開分析可疑文件 %UserProfile%\Recent
3)通過文件時間屬性來定位可疑文件:根據文件夾內文件列表時間進行排序,查找可疑文件。當然也可以搜索指 定日期范圍的文件及文件 查看文件時間,創建時間、修改時間、訪問時間,黑客通過菜刀類工具改 變的是修改時間。所以如果修改時間在創建時間之前明顯是可疑文件
Linux
1)分析文件日期 stat xx.asp
2)返回最近24小時內修改過的文件 find ./ -mtime 0
返回的是前48~24小時修改過的文件 find ./ -mtime 1
返回10天內修改過的文件,可以把最近幾天的數據一天天的加起來 find ./ -mtime 0 -o -mtime 1 -o -mtime 2
查找 24 小時內被修改的 php 文件 find ./ -mtime 0 -name “*.php”
3)敏感目錄的文件分析 [類/tmp 目錄,命令目錄/usr/bin /usr/sbin 等], 查看 tmp 目錄下的文件? ls –alt /tmp/ | head -n 10 這樣是按時間順序查出來的結果
4)特殊權限文件查找
find / *.jsp -perm 777
find / -perm 777 |more
find / *.sh -perm 777|grep .sh
5)隱藏的文,以 "."開頭的具有隱藏屬性的文件,當前目錄查找 ls -ar |grep “^.”
6)i linux文件不可修改權限
chattr +I filename 給文件添加不可修改權限
chattr -I filename 將文件的不可修改權限去掉
lsattr filename 查看文件是否設置了相關權限
如果設置了該參數,則無論任何人想要刪除改文件均需要將此權限去掉
7)a linux文件不可修改權限
chattr +a filename 給文件添加只追加權限
chattr -a filename 將文件的只追加權限去掉
lsattr filename 查看文件的相關權限設置
這個權限讓目標只能追加,不能刪除,而且不能通過編輯器追加
8)查看ssh相關目錄有無可疑的公鑰存在
Redis(6379) 未授權惡意入侵,即可直接通過redis到目標主機導入公鑰
目錄:/etc/ssh ./.ssh/
9.啟動項排查
Windows
1)查看開機啟動有無異常文件 msconfig
2)win10開機啟動文件夾
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
快捷查找方法,找一個安裝好的程序的快捷方式,右鍵打開文件位置,再進入該目錄下的啟動目錄即可。StartUp
3)win7開機啟動文件夾
C:\Users\rpkr\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
查找方式,開始>所有程序>啟動 ,03查找同此方法
4)在注冊表中查看開機啟動項是否異常
開始->運行->regedit,打開注冊表,查看開機啟動項是否正常,特別注意如下三個注冊表項:
HKEY_CURRENT_USER\software\micorsoft\windows\currentversion\run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
檢查右側是否有啟動異常的項目,如有請刪除,并建議安裝殺毒軟件進行病毒查殺,清除殘留病毒或木馬
Linux
1)查看開機啟動項內容
ls -alt /etc/init.d/
/etc/init.d 是 /etc/rc.d/init.d 的軟連接
2)啟動項文件 more /etc/rc.local
/etc/rc.d/rc[0~6].d
ls -l /etc/rc.d/rc3.d/
ll /etc |grep rc
3)定時任務-基本使用
1.利用crontab創建計劃任務
crontab -l 列出某個用戶 cron 服務的詳細內容
2.刪除每個用戶cront任務(慎重:刪除所有的計劃任務)
crontab -r
3.使用編輯器編輯當前的crontab文件
crontab -e
如:*/1 * * * * echo ““hello word”” >> /tmp/test.txt 每分鐘寫入文件
4.利用anacron實現異步定時任務調度
每天運行 /home/bacup.sh 腳本
vi /etc/anacrontab
#daily 10 example.daily /bin/bash /home/backup.sh
當機器在backup.sh期望被運行時是關機的,anacron會在機器開機十分鐘后運行它,而不用再等待7天
ls -al /var/spool/cron/ 查看隱藏的計劃任務
Tips:默認編寫的crontab文件會保存在(/var/spool/cron/用戶名 例如:/var/loop/cron/root)
5.查看分析任務計劃
crontab -u <-l, -r, -e>
-u 指定一個用戶
-l 列出某個用戶的任務計劃
-r 刪除某個用戶的任務
-e 編輯某個用戶的任務(編輯的是/var/spool/cron下對應用戶的cron文
件,也可以直接修改/etc/crontab文件)
10.計劃任務排查(定時任務)
Windows
1)查看Windows 計劃任務 taskschd.msc
或者 【程序】?【附件】?【系統工具】?【任務計劃程序】
Linux
1)查看當前計劃任務有哪些 crontab -l 是否有后門木馬程序啟動相關信息
2)查看分析計劃任務 crontab -u <-l, -r, -e>
解釋
-u 指定一個用戶
-l 列出某個用戶的任務計劃
-r 刪除某個用戶的任務
-e 編輯某個用戶的任務(編輯的是/var/spool/cron 下對應用戶的 cron 文件,也可以直接修改
/etc/crontab 文件)
3)查看 etc 目錄任務計劃相關文件 ls -al /etc/cron* cat /etc/crontab
4)此處要注意隱藏的計劃任務,在linux中以.開頭的文件為隱藏文件,要使用ls -al來查看
5)定時任務 - 入侵排查
重點關注以下目錄中是否存在惡意腳本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
小技巧:more /etc/cron.daily/* 查看目錄下所有文件
11.日志排查
Windows
查看防護設備的日志
打開日志管理器 eventvwr.msc
查看暴力破解問題,篩選事件ID,win2008 4625
Linux
1)查看歷史命令記錄文件 cat /root/.bash_history |more ,每個賬戶對應的文件夾下都有這樣一個日志文件,但感覺記錄的不是特別全。可以直接在root下搜索 .bash_history 這個文件。
2)如有/var/log/secure日志,可觀察其進行暴力破解溯源
3)ubuntu 建議使用lastb和last進行暴力破解溯源
/var/log/message 系統啟動后的信息和錯誤日志,
/var/log/secure 與安全相關的日志信息
/var/log/maillog 與郵件相關的日志信息
/var/log/cron 與定時任務相關的日志信息
/var/log/spooler UUCP和news設備相關日志信息
/var/log/boot.log 進程啟動和停止相關的日志消息
4)linux系統日志相關配置文件為/etc/rsyslog.conf(syslog.conf) 主要找 wget\ssh\scp\tar\zip 添加賬戶修改密碼一類的
web服務器
1)無論任何web服務器,都需要關注以下的日志
access_log
error_log
access.log
error.log
2)apache日志位置
應通過httpd.conf配置來判斷。
在httpd.conf中搜索未被注釋的、以指令字CustomLog為起始的行,該行即指定了日志的存儲位置。
搜索可使用文本搜索,也可使用grep進行:grep -i CustomLog httpd.conf | grep -v ^#
搜索結束后會獲得類似如下的搜索結果:
CustomLog /var/mylogs/access.log common
其中 /var/mylogs/access.log即為客戶日志的路徑。
若此處未指明日志的完整路徑而只是列舉日志的文件名(如:access.log),
則意指該文件存儲與默認的日志存儲目錄下(即,/var/log/httpd 或 /var/httpd 目錄)。
3)IIS日志位置
IIS日志默認存儲于 %systemroot%\system32\LogFiles\W3SVC目錄中,
日志命名方式為exYYMMDD.log(YYMMDD指:年 月 日)。
但IIS日志路徑也可通過用戶配置來指定,通過WEB站點配置可確認其位置:
WEB站點 — 屬性 — 網站 — W3C擴展日志文件格式 — 屬性 — 日志文件目錄
數據庫
1)mysal - cat mysql.log|grep union
12.恢復階段
此階段以客戶為主,僅提供建議
webshell/異常文件清除
相關樣本取樣截圖留存
恢復網絡
應用功能恢復
補丁升級
提供安全加固措施,推薦切合的安全產品
13.跟蹤總結
分析事件原因
攻擊來源,IP
攻擊行為分析,弱口令、可以導致命令執行的漏洞等
輸出應急報告
事后觀察
提供加固建議
總結
以上是生活随笔為你收集整理的网络安全应急响应的基本流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ftp服务器vsftpd配置文件,vsf
- 下一篇: EKG表结构