我們大致從八個方面闡述,分別是:應急響應的整體思路、應急響應的基本流程、應急工具集簡介、系統日志及日志分析、威脅情報的作用、常見病毒及分類、理解漏洞和補丁、技能提升建議。
一、應急響應的整體思路
應急響應的整體思路,就是上層有指導性原則和思想,下層有技能、知識點與工具,共同推進和保障應急響應流程的全生命周期。

原則和指導性思路
3W1H原則:3W即Who、What、Why,1H即How,做應急響應要帶著疑問來做事,一定要收集清楚這些信息。網絡拓撲是怎么樣的?需求是啥?發生了什么事?你能做什么?用戶用了什么產品?產品版本多少?病毒庫版本多少?多少主機中了?主機是普通PC還是服務器?服務器是做什么的?……信息收集越多,對應急響應越有利。
易失性原則:做應急響應免不了要做信息收集和取證的,但這里是有一定的先后順序的,即最容易丟失的據,應該最先收集,其它的依次類推。
要素原則:做應急響應,主要是抓關鍵證據,即要素,這些要素包括樣本、流量、日志、進程及模塊、內存、啟動項。
避害原則:做應急響應,要做到趨利避害,不能問題還沒有解決,反而引入了新的問題。譬如,自己使用的工具被感染而不知情;給用戶使用不恰當的工具或軟件造成客戶主機出現問題;給別人發樣本,不加密,不壓縮,導致別人誤點中毒,最極端的場景就是給別人發勒索樣本不加密壓縮,導致別人誤點中毒。
技能、知識點與工具
應急工具集:應急響應必要的一套工具集合,可協助應急人員做分析,提高效率。
日志分析:能對日志進行分析,包括但不限于系統日志(windows/linux等)、應用日志、安全設備日志(防火墻、防病毒、態勢感知等)。
威脅情報:安全事件可能不是孤立的,安全站點或搜索站點能找到安全事件的關聯信息。
漏洞補丁知識:知道漏洞與補丁的關系,它們在應急響應中的角色,了解常見漏洞及補丁。
常見病毒及分類:知道病毒大致的分類以及常見的病毒。
樣本分析:至少能對樣本進行一次簡單動態的分析。
操作系統知識:至少對Windows系統和Linux系統的有一定的知識儲備,知道其基礎的工作原理。
二、應急響應的基本流程
應急響應大致可以分為五個部分,其基本流程包括收集信息、判斷類型、深入分析、清理處置、產出報告。

收集信息:收集客戶信息和中毒主機信息,包括樣本。
判斷類型:判斷是否是安全事件,何種安全事件,勒索、挖礦、斷網、DoS等等。
深入分析:日志分析、進程分析、啟動項分析、樣本分析。
清理處置:直接殺掉進程,刪除文件,打補丁,抑或是修復文件。
產出報告:整理并輸出完整的安全事件報告。

勒索和挖礦事件,可以占比50%以上,而且這兩種安全事件業務特征極其鮮明,因此可以單獨提流程出來處置。
信息收集表
客戶名稱什么區域的什么客戶 感染主機數 感染了多數臺主機 補丁情況 打了哪些補丁,是否存在補丁漏打 中毒現象 勒索/挖礦/DoS/僵尸網絡/后門/木馬 帳號密碼 確認是否有弱密碼 對外開發端口 對外開發了哪些端口 開啟的服務 開啟了哪些服務 操作系統版本 操作系統版本信息 客戶需求 確認客戶具體需求

取證要素:取證并非毫無頭緒的,病毒本身必然有網絡行為,內存必然有其二進制代碼,它要么是單獨的進程模塊,要么是進程的dll/so模塊,通常,為了保活,它極可能還有自己的啟動項、網絡心跳包。
總之,可以歸結為如下4點要素:流量、內存、模塊、啟動項。
流量分析可以使用Wireshark,主要分析下當前主機訪問了哪些域名、URL、服務,或者有哪些外網IP在訪問本地主機的哪些端口、服務和目錄,又使用了何種協議等等。
例如,使用Wireshark觀察到,主機訪問了sjb555.3322.org這種動態域名,即可粗略猜測這是一個C&C服務器(如何判斷一個域名是可疑域名,可以參考后文)。

有時候,可以根據網絡協議來直接過濾分析流量。譬如,目前IRC協議已經很少被使用了,但利用IRC建立僵尸網絡通道的現象仍比較普遍。使用Wireshark,直接在過濾條件里輸入“irc”,回車看是否有相關流量。
如下圖,剛好看到有相關的IRC協議流量,這便是可疑的。

Wireshark執行下“Follow TCP Stream”操作,查看到當前Botnet主機正在加入一個IRC頻道。另外,也可以從目的IP下手,可查到這是一個惡意IRC僵尸網絡服務器。

網絡流量這塊,如果具體到對應建立的連接,也可使用TCPView工具進行查看。如下,我們使用TCPView查到了2條連接:
chenyu-57068a53.localdomain.2671-> 170.178.191.191:6667
chenyu-57068a53.localdomain.2674-> amsterdam.nl.eu.undernet.org.6667

當我們分析病毒進程遇到困難的時候,其內存便是我們查找問題的最后一道防線。
以某Linux服務器應急事件為例子,如下圖,我們找到三個病毒進程[ksoftirqd/7]的父子關系,可以看到,11275拉起了11276和11277,但11275是1號進程拉起來的,即init是其父進程。

這意味著,實際的父進程(原始病毒文件)在當前狀態下是追查不到的了。
進程樹已經追蹤不到父進程了,能下手的地方不多。如反匯編[ksoftirqd/7]對應的病毒文件,則對于一次應急響應事件來說,時間是倉促的(不夠)。但簡單這樣想,即不管病毒文件做了何種混淆、何種加殼,在最終運行于內存之上的代碼上,終歸是原始代碼,至少堆棧就有不少信息。
Linux環境下dump內存,可以使用系統自帶的gdb,鍵入命令 gdb attach 11275,attach到病毒進程11275,在gdb環境下,使用dump binary memory file start_addr end_addr將11275有效內存空間dump下來。
譬如:file為輸出文件,可以指定為 11275.dump,start_addr是起始地址,end_addr是終止地址,例 dump binary memory /tmp/11275.dump 0x13838000 0x13839000 (這里僅僅只是舉例,實際地址在gdb中獲取)
對于內存文件11275.dump,采用命令 strings -n8 11275.dump,獲取長度8及以上的字符串內容,我們發現有如下一行:
/etc/security/ntps.conf
這是在病毒運行內存里面發現的,要么是病毒配置文件,要么是原始病毒文件。
我們 cd /etc/security 并使用 ls -al查看內容如下:

可以看到,ntps.conf并非一個配置文件,它是可執行的(使用file命令可以知道這是個ELF可執行文件),文件修改時間應該是偽造的。
三、應急工具集簡介
工欲善其事,必先利其器,所謂巧婦難為無米之炊,其實應急響應亦是如此。應急響應和安全研究人員,必須事先就備好完整一套的工具集,隨時可以取用。

應急工具類型
流量分析工具:常用的流量分析工具是Wireshark、TCPView,也可以使用科來網絡分析工具,Linux下對tcpdump比較熟悉的,也可以使用tcpdump。
進程分析工具:能對進程相關聯信息進行分析的工具,主要是ProcessHacker和PC Hunter等。
啟動項分析工具:主要是AutoRuns工具,便于定位病毒啟動項。
專殺工具:有些流行病毒家族,通常對殺軟有抑制性,或者本身有感染性,需要專殺工具去查殺和修復正常文件。
輔助工具:WinHex、文件Hash工具、Everything搜索工具、Unlocker文件解鎖工具等。
內存掃描工具:主要是MemScanner。

四、系統日志及日志分析
日志類型
Windows系統日志:Windows系統自帶的審計日志、操作日志、故障日志。
Linux系統日志:Linux系統自帶的審計日志、操作日志、故障日志。
應用日志:包括但不限于Web應用等眾多繁雜的日志。
Windows系統日志
日志路徑:C:WindowsSystem32winevtLogs
必看日志:Security.evtx、System.evtx、Application.evtx



Linux系統日志
日志路徑:/var/log
必看日志:secure、history

多數日志都是可讀易懂的,譬如很容易就能看出來,下面這個日志記錄了ssh爆破過程。

五、威脅情報的作用
在安全事件中,威脅情報有時候會給我們提供大量有用的信息,甚至直接推動了安全事件的快速響應。

威脅情報的元素,包括但不限于域名、URL、IP、文件Hash、文件路徑、文件名、數字簽名、備案信息、排名信息。
威脅情報的獲取源
谷歌:www.google.com
百度:www.baidu.com
Virustotal:www.virustotal.com
微步在線:x.threatbook.cn
騰訊哈勃:habo.qq.com
Virscan:virusscan.jotti.org
Freebuf:www.freebuf.com
Jotti:virusscan.jotti.org
Scandir:www.scandir.com
Alexa排名:www.alexa.com
備案查詢:beian.cnDNS.com
深信服安全中心:sec.sangfor.com.cn
深信服威脅分析平臺:wiki.sec.sangfor.com.cn
深信服EDR安全軟件中心:edr.sangfor.com.cn
威脅情報中,域名扮演著極為基礎和關鍵的角色,URL也是以域名為基礎的。這里列舉若干類域名,是屬于黑客常用(偏愛)的域名,取證過程中需要重點關注這類域名的信息。
隨機域名(DGA):
內網IP利用特定的隨機算法生成域名(DGA),同時黑客會利用該隨機算法注冊域名,這樣就可以避免因為長期與某個域名或者IP通信而被封堵。
例如,內網某個源IP短時間內大量解析了如下域名(日志截圖)

觀察這些域名,可以發現,這些域名的“字符特征”看上去就是隨機的。域名的發明(DNS)就是為了人類方便記憶而誕生的,所以,我們往往會去注冊一些容易記憶且讀起來朗朗上口的域名,顯然例子中的域名就不具備這一特征。DGA這種反其道而行之的行為顯然不是人訪問網站發出來的,必然是病毒利用某種算法來實現的。
動態域名:
動態域名是子域名開放給其他人使用,并且子域名綁定的IP是可以動態獲取的,大多數是免費的,因此常被黑客所使用,如 abc.3322.org (3322.org就是動態域名提供者,子域名abc.3322.org可以被別人所使用)。
常見的動態域名提供商:
'f3322.net','3322.org','7766.org','8866.org','9966.org','8800.org','2288.org','6600.org', 'f3322.org', 'ddns.net','xicp.net', 'vicp.net','wicp.net','oicp.net','xicp.net','vicp.cc','eicp.net','uicp.cn','51vip.biz','xicp.cn','uicp.net','vicp.hk','5166.info','coyo.eu','imblog.in','imzone.in','imshop.in','imbbs.in','imwork.net','iego.cn','vicp.co','iego.net','1366.co','1866.co','3utilities.com','bounceme.net','ddnsking.com','gotdns.ch','hopto.org','myftp.biz','myftp.org','myvnc.com','no-ip.biz','no-ip.info','no-ip.org','noip.me','redirectme.net','servebeer.com','serveblog.net','servecounterstrike.com','serveftp.com','servegame.com','servehalflife.com','servehttp.com','serveminecraft.net','servemp3.com','servepics.com','servequake.com','sytes.net','webhop.me','zapto.org','dynamic-dns.net','epac.to','longmusic.com','compress.to','wikaba.com','zzux.com','dumb1.com','1dumb.com','onedumb.com','wha.la','youdontcare.com','yourtrap.com','2waky.com','sexidude.com','mefound.com','organiccrap.com','toythieves.com','justdied.com','jungleheart.com','mrbasic.com','mrbonus.com','x24hr.com','dns04.com','dns05.com','zyns.com','my03.com','fartit.com','itemdb.com','instanthq.com','xxuz.com','jkub.com','itsaol.com','faqserv.com','jetos.com','qpoe.com','qhigh.com','vizvaz.com','mrface.com','isasecret.com','mrslove.com','otzo.com','sellclassics.com','americanunfinished.com','serveusers.com','serveuser.com','freetcp.com','ddns.info','ns01.info','ns02.info','myftp.info','mydad.info','mymom.info','mypicture.info','myz.info','squirly.info','toh.info','xxxy.info','freewww.info','freeddns.com','myddns.com','dynamicdns.biz','ns01.biz','ns02.biz','xxxy.biz','sexxxy.biz','freewww.biz','www1.biz','dhcp.biz','edns.biz','ftp1.biz','mywww.biz','gr8domain.biz','gr8name.biz','ftpserver.biz','wwwhost.biz','moneyhome.biz','port25.biz','esmtp.biz','sixth.biz','ninth.biz','got-game.org','bigmoney.biz','dns2.us','dns1.us','ns02.us','ns01.us','almostmy.com','ocry.com','ourhobby.com','pcanywhere.net','ygto.com','ddns.ms','ddns.us','gettrials.com','4mydomain.com','25u.com','4dq.com','4pu.com','3-a.net','dsmtp.com','mynumber.org','ns1.name','ns2.name','ns3.name','changeip.name','ddns.name','rebatesrule.net','ezua.com','sendsmtp.com','trickip.net','trickip.org','dnsrd.com','lflinkup.com','lflinkup.net','lflinkup.org','lflink.com','dns-dns.com','proxydns.com','myftp.name','dyndns.pro','changeip.net','mysecondarydns.com','changeip.org','dns-stuff.com','dynssl.com','mylftv.com','mynetav.net','mynetav.org','ikwb.com','acmetoy.com','ddns.mobi','dnset.com','authorizeddns.net','authorizeddns.org','authorizeddns.us','cleansite.biz'。
f3322.net、3322.org、7766.org等等這些就是動態域名提供商。

sjb555.3322.org就是一個動態域名,在VirusTotal上被標記為惡意的。

這類域名常常是病毒的溫床,不管是國家互聯網應急中心,還是中國反網絡病毒聯盟,都是重點觀察對象。企業級用戶很少會主動去使用動態域名。

近期域名:
域名都是有創建時間(注冊時間)的,Alexa全球排名百萬之內的域名,都是很早之前就注冊了的,從幾年到十幾、二十幾年不等。黑客攻擊要逃避防火墻的封堵,極可能在實施的時候,再去注冊一個域名。注冊一個字母長度大于7的域名,費用并不高,甚至可以低至 8元/年(還有些是免費的)。黑客之所以傾向這么做,是因為舊域名,很可能已經被安全機構列入黑名單中(也就是說,已經被封堵了)。
試想,企業級用戶,無緣無故為什么要去訪問一個剛剛注冊的域名呢?
例如,防火墻產生日志如下,觀察到,日志產生時間為 2016年1月27日,訪問的站點為 cazwmwez.info。

接下來,我們來查查該域名的注冊時間。
方式:通過VirusTotal查詢即可。在Whois lookup這一欄,如圖,觀察Creation Date即注冊時間為 2016年1月12日,RegistryExpiry Date即過期時間 為 1年之后。很明顯,這個是一個剛剛注冊且很短命的域名(此域名來源于某一真實中毒客戶,當時介入取證調查時間點為2016年2月初,也就是說不到1個月),域名的所有者并沒有打算長期維護。此外,域名的所有者也不是客戶的(詢問客戶得知)。

暗網代理域名:
暗網,也叫Tor網絡,此網絡的訪問、傳輸流量是不可追蹤溯源的,因此是黑色產業鏈的溫床。要訪問暗網,要么病毒自己實現Tor客戶端,要么通過Tor代理來訪問Tor網絡,而通過Tor代理訪問的流量是未加密的,其直接使用Tor代理訪問Tor站點服務器。
因此,暗網代理域名是可以被檢測到的。
例如訪問https://abbujjh5vqtq77wg.onion.link/由于二級域名onion.link屬于Tor代理域名,所以認定此次訪問行為是Tor網絡訪問行為,且為非法訪問可能性極高。
頂級域名:
不是所有的頂級域名都需要特別關注,要從客戶業務出發,去反推客戶主機為何要訪問相關的頂級域名。也就是說,這里面有一批頂級域名,實際客戶業務是不需要去訪問的,那么剩下的就只有黑客行為了。下表給出的,就是這樣一批頂級域名(包括但不限于以下頂級域名):
頂級域名申請地區或機構為何重點關注 .ru 俄羅斯 俄羅斯盛產黑客 .ws 東薩摩亞 不知名國家,易申請,難追蹤注冊者 .cc 科科斯群島 不知名國家,易申請,難追蹤注冊者 .pw 帕勞 不知名國家,易申請,難追蹤注冊者 .bz 伯利茲 不知名國家,易申請,難追蹤注冊者 .su 蘇聯 前蘇聯雖然解體了,頂級域名還在使用,且多與黑產有關 .bw 伯茲瓦納 不知名國家,易申請,難追蹤注冊者 .gw 幾內亞比紹 不知名國家,易申請,難追蹤注冊者 .ms 蒙塞拉特島 不知名國家,易申請,難追蹤注冊者 .mz 莫桑比克 不知名國家,易申請,難追蹤注冊者
這里舉個例子,我們在某臺告警主機上,使用Wireshark抓網絡網絡,直接過濾DNS協議如下:

可以看到,此主機解析了大量.pw站點的域名,如koqqveoukgjc.pw,.pw是帕勞國家頂級域名,此國家是一個非常小的島國,跟中國大陸都沒有建交,國內企業有需要訪問他們站點的可能性低到零(或者有業務在帕勞的可能性)。
六、常見病毒及分類
勒索病毒:能對用戶文件進行加密的病毒。

挖礦病毒:消耗用戶CPU、GPU資源,進行大量運算,獲取加密貨幣的病毒。

蠕蟲:自動復制自身的副本到其它主機的病毒。
木馬:隱蔽性強,多用于監控用戶行為或盜取用戶數據的病毒。
感染型病毒:能將自身惡意代碼插入正常文件的病毒。
腳本病毒:使用腳本編寫的病毒。
宏病毒:宏是微軟公司為其office軟件包設計的一個特殊功能,由于其功能強大,使得黑客可以通過精心構造的宏代碼來實現惡意操作,這些代碼就叫做宏病毒。宏病毒常以垃圾郵件的方式對用戶進行攻擊,因為偽造的Office文檔不容易引起用戶的懷疑,所以當用戶毫無防備的打開Office文檔并啟用宏之后,宏病毒便開始了運行,對用戶主機進行惡意操作。
僵尸網絡病毒:能形成大型的一對多,多對多控制的遠程控制病毒。
后門:在主機上開放端口允許遠程非授權訪問。
以感染型病毒為例,需要知道并了解其原理:
正常PE文件的執行流程入下:

[1] 從PE頭中提取入口點地址EP。
[2] 定位到EP處的PE代碼。
[3] 開始執行PE代碼。
被感染的PE文件的執行流程入下,其中多了惡意代碼環節:

[1] 從PE頭中提取入口點地址EP。
[2] 通過篡改EP或覆蓋原始入口點代碼的方式,使EP指向惡意代碼。
[3] 執行惡意代碼。
[4] 惡意代碼執行完后,跳回到原PE代碼處執行。

雖然感染的總體思路都是讓宿主文件先執行惡意代碼,執行完后再跳回到原始代碼,但每種病毒家族實現的方式卻不盡相同。我總結為四類,復雜度由低到高依次為:偏移式、覆蓋式、加密式、混淆式。
專業術語:入口點EP(Entry Point),原始入口點OEP(Original Entry Point)。
偏移式是最多感染型病毒使用的感染方式,病毒會將惡意代碼注入到宿主文件的一個空閑位置,然后修改PE頭中的EP地址,使其指向惡意代碼起始處。被感染文件運行后就會先執行惡意代碼,惡意代碼執行完成后,會獲取OEP的偏移(每個病毒家族的OEP偏移值藏在不同的地方),然后將執行流跳回到OEP處,執行宿主文件原始代碼。
七、理解漏洞和補丁
漏洞和補丁,在應急響應中是不可或缺。如果黑客是通過某種漏洞入侵系統的,而在應急響應中,無法找出黑客所利用的漏洞,就會意味著,入侵行為可以反復發生。在終端側,就會表現為病毒清理不干凈,殺了又來,所以一定要找出漏洞。
找到漏洞后,就需要打上相應的補丁,這樣才是一次完整的處置。
怎么查看系統補丁情況?以Windows為例,直接打開cmd,輸入命令systeminfo即可獲取。


漏洞是什么:漏洞是指一個系統存在的弱點或缺陷。
怎么來的:系統設計時的缺陷或編碼時產生的錯誤。
有什么后果:黑客的侵入及病毒的駐留,數據丟失和篡改、隱私泄露,系統被控制并作為入侵其他主機系統的跳板,等等。
解決方法:打補丁。
八、技能提升建議
多關注安全信息:多關注安全公司發布的一些安全信息,多關注,多學習。
多研讀安全書籍:多研讀安全書籍,推薦《惡意代碼分析實戰》等。

多逛安全論壇:推薦多看看Freebuf、看雪學院等。
多在安全溝通群里問:不懂就問。
多實踐:多實踐,出了安全問題,多嘗試自己動手解決。
本文作者:千里目安全實驗室,轉自 FreeBuf.COM