0xB3 再談應急響應Pt.1 ——*nix主機應急響應

坑爹的十一假期終於完了,除了1號半夜遇到點糟心的事兒之外,其他的時間過得還好,基本上狀態就是在吃吃吃喝喝喝玩玩玩,不過回歸到正題,前面我們說了主機加固和安全監控,接下來肯定就是要進入安全運營最坑爹的兩個環節——應急響應和縱深防禦,前者是一件糟心的事兒,後者則是被很多人稱為馬奇諾防線(不懂啥意思的去百度吧),但是我先要擺明態度,縱深防禦這個東西對安全運營來說可以說是剛需,具體為什麼我們以後有時間在扯,現在先來說應急響應。

0x00 PDR模型:

說到應急響應,就不得不說一個模型也就是PDR模型,PDR是防護(Protection)、檢測(Detection)和響應(Response)三個單詞的首字母,安全運營的主要操作環節被分為防護、檢測和響應三個主要的部分,其中應急響應是安全運營工作中一個相當重要的環節。

由於在防護和檢測環節中通常比較成熟的特徵都是針對已知特徵來識別的,比如說YARA Rules、IOCs這些東西,因策應急響應可以彌補前面各個環節的不足重要組成部分。在信息安全不對等的攻防對抗中,攻擊方通常掌握著主動性,而防禦大多數時候都是被動的,掐指一算也就只有應急響應這個環節能和攻擊方來一局人和人之間的PK。

畫張圖來說明一下PDR模型表示意義:我們現在需要四個時間作為參考的衡量,第一個是攻擊者從發起攻擊的時間到時間目前進展的時間,我們記為Attack Time(簡稱At,圖中用紅色標記),第二個是系統從攻擊者觸及防禦的層面到完全獲取內網許可權的時間記為Protection Time(簡稱Pt,圖中用藍色標記),第三個是從攻擊開始知道入侵檢測體系和監控體系能夠發現攻擊者這段時間記為Detection Time(簡稱Dt,用淺藍色來表示),最後一個是從發現攻擊到對攻擊行為採取措施所用的時間我們稱之為Response Time(簡稱Rt,用原諒色表示)。接下來就是數學時間,針對不同的情況,我們可以這麼表示:

At < Pt:攻擊者還在對目標系統發起攻擊,也就是我們的防禦措施仍在延緩攻擊者前進的步伐(這就是說為啥縱深防禦是有效的)nnAt > Pt:攻擊者已經完成了對系統的入侵,多出來的時間或許是擦屁股的時間nnDt < Pt - At:也就是說我們的主動防禦體系能夠在攻擊者沒達到目的之前能夠識別攻擊nnDt > Pt - At:防禦措施無效,等你發現的時候人家已經達到目的了nnRt + Dt < At 同時 Rt + Dt << Pt:攻擊者在攻擊沒達到目的的時候已經就死掉了。nnPt - At > Dt + Rt:防禦措施有效,原因同上nnPt - At < Dt + Rt:防禦體系已經儘力,但是還是系統還是被攻陷nnPt < Dt + Rt:這屆信息安全部不行啊!n

其實說這麼多就是想說一句話:檢測是響應的前提,響應是根據檢測結果而進行一系列的處理,如果沒有有效的檢測,防禦是相對靜態的,響應也就沒法進行,在整個PDR模型中,核心是檢測。

大多數安全體系建設中,應急響應大多流程為:

準備階段-》檢測階段-》抑制階段-》根除階段-》恢復階段-》報告和完成階段n

0x01 *nix下的應急響應:

註:以下內容部分可以適用於其他的操作系統。

按照我們之前說的,針對*nix下的應急響應步驟理想情況下是:

斷網-》通知信息安全團隊及相關的業務和資源協調部門-》備份數據-》分析數據-》恢復系統n

1.斷網:也就是讓受影響主機和其他外部網路保持一個隔離狀態,因為有些蠕蟲性質的病毒諸如WannaCry這種會大面積感染內網,減小受影響設備面積並把事情控制在一個可以容忍的程度是必要的,第二個原因:由於你也不知道攻擊者把你的系統損壞到一個什麼程度,所以不讓他繼續受損也是必須的,第三個原因就是敏感數據,你懂得。但是斷網的時候記得將流量相關的數據做保存,因為這些流量數據中可能存在相關的C2數據或者是其他遠控協議。

2.通知相關部門:諸如受影響的業務部門、資源協調部門(OPS、IT)、信息安全部門和CIRT小組,把情況反饋給這些部門,方便確定攻擊發起的時間、被攻擊的狀態(這裡推薦使用Kill-Chain去分析攻擊的進程)和緩解方案。

3.備份數據:把受影響的系統數據進行備份,方便進行離線分析,但是這裡記得要去諮詢一下保密協議哦。

4.分析數據:分析攻擊者在該系統上的行為、目的和造成的影響,比如說檢查密碼文件(/etc/passwd和/etc/shadow)來尋找一下異常的情況,比如說可以檢查是不是有UID0或者是GID0這種,如果有除了root意外的某個用戶被賦予了一個UID和GID,那麼我們就找到了攻擊者的一些遺留信息,用一個簡單的命令就是 :

grep 『:0:』 /etc/passwdn

除此之外,也可以從/var/log/messages、/var/log/audit/audit.log或者其他與系統相關的日誌文件去尋找一些攻擊者留下來的數據,比如說我們發現web站點被人家貼了標語,我們查找的時候就可以通過web相關的日誌來查看是有哪些IP地址曾經訪問過這個站點,可以去查找一下有沒有比較可疑的行為。此外我們還可以去看一下有沒有異常的程序,比如說在3級引導上使用lsof > ~/lsof.out來輸出系統中的哪些文件處於打開狀態,這個的話就要看經驗了。當然使用top、ps這些命令去查看正在執行的位置進程或者資源佔用異常的進程也是方法。使用netstat命令查看埠狀態可以查看是不是被掛了後門,比如說使用netstat -tuln或者是lsof -Pnl +M -i4,你就會看到一些信息:

5.恢復系統:徹底的分析完入侵的過程之後,我們就應該著手恢復受損的系統,但是修復的過程中一定要注意去替換掉所有的有關認證的用戶名和密碼,同時修復完成之後需要進行安全測試,防止類似問題再生。

——————————————————————————————————————————

One More Thing。。。

——————————————————————————————————————————

以上基本上就是*inx如何去做應急響應了,下次我們再來談談Windows怎麼做。


推薦閱讀:

解謎:「銀行大劫案」的幕後黑手與攻擊索尼的Lazarus組織相關
「奇異熊」黑客組織黑航空航天公司幹啥?
據稱和稜鏡門同期暴露的藏寶圖計劃和怪獸心靈計劃是什麼?
IoT Security Guideline 2 - Service Ecosystem

TAG:网络安全 | 信息安全 | 运营 |