應急響應的整體思路和基本流程
2018 年信息安全事件頻發,信息安全的技能、人才需求大增。現在,不管是普通的企業,還是專業的安全廠商,都不可避免的需要掌握和運用好信息安全的知識、技能,以便在需要的時候,能夠禦敵千里。所謂養兵千日,用兵一時,擁有一支完善的團隊或完整的流程,可以保障企業在出現重大安全事件時,能有條不紊的進行處置,及時把破壞範圍縮小。
深信服EDR安全團隊,全年參與了各種重大流行病毒和安全事件的應急響應,在此,我們將團隊一整年的思考和所形成的流程,共享出來,期望能給未來即將從事,或者長期從事應急響應、安全研究的人,一些啟迪。
我們大致從八個方面闡述,分別是:應急響應的整體思路、應急響應的基本流程、應急工具集簡介、系統日誌及日誌分析、威脅情報的作用、常見病毒及分類、理解漏洞和補丁、技能提升建議。
一、應急響應的整體思路
應急響應的整體思路,就是上層有指導性原則和思想,下層有技能、知識點與工具,共同推進和保障應急響應流程的全生命周期。
原則和指導性思路
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 startaddr endaddr將11275有效內存空間dump下來。
譬如:file為輸出文件,可以指定為 11275.dump,startaddr是起始地址,endaddr是終止地址,例 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
※新型詐騙花樣多,使用多種混淆方法繞過安全檢測
※PHP利用PCRE回溯次數限制繞過某些安全限制
TAG:FreeBuf |