坑爹的十一假期終於完了,除了1號半夜遇到點糟心的事兒之外,其他的時間過得還好,基本上狀態就是在吃吃吃喝喝喝玩玩玩,不過回歸到正題,前面我們說了主機加固和安全監控,接下來肯定就是要進入安全運營最坑爹的兩個環節——應急回應和縱深防禦,前者是一件糟心的事兒,後者則是被很多人稱為馬奇諾防線(不懂啥意思的去百度吧),但是我先要擺明態度,縱深防禦這個東西對安全運營來說可以說是剛需,具體為什麼我們以後有時間在扯,現在先來說應急回應。
0x00 PDR模型:
說到應急回應,就不得不說一個模型也就是PDR模型,PDR是防護(Protection)、檢測(Detection)和響應(Response)三個單詞的首字母,安全運營的主要操作環節被分為防護、檢測和響應三個主要的部分,其中應急回應是安全運營工作中一個相當重要的環節。
由於在防護和檢測環節中通常比較成熟的特徵都是針對已知特徵來識別的,比如說YARA Rules、IOCs這些東西,因策應急回應可以彌補前面各個環節的不足重要組成部分。在資訊安全不對等的攻防對抗中,攻擊方通常掌握著主動性,而防禦大多數時候都是被動的,掐指一算也就只有應急回應這個環節能和攻擊方來一局人和人之間的PK。
畫張圖來說明一下PDR模型表示意義:我們現在需要四個時間作為參攷的衡量,第一個是攻擊者從發起攻擊的時間到時間現時進展的時間,我們記為Attack Time(簡稱At,圖中用紅色標記),第二個是系統從攻擊者觸及防禦的層面到完全獲取內網許可權的時間記為ProtectionTime(簡稱Pt,圖中用藍色標記),第三個是從攻擊開始知道入侵偵測體系和監控體系能够發現攻擊者這段時間記為Detection Time(簡稱Dt,用淺藍色來表示),最後一個是從發現攻擊到對攻擊行為採取措施所用的時間我們稱之為Response Time(簡稱Rt,用原諒色表示)。接下來就是數學時間,針對不同的情况,我們可以這麼表示:
At < Pt:攻击者还在对目标系统发起攻击,也就是我们的防御措施仍在延缓攻击者前进的步伐(这就是说为啥纵深防御是有效的)
At > Pt:攻击者已经完成了对系统的入侵,多出来的时间或许是擦屁股的时间
Dt < Pt - At:也就是说我们的主动防御体系能够在攻击者没达到目的之前能够识别攻击
Dt > Pt - At:防御措施无效,等你发现的时候人家已经达到目的了
Rt + Dt < At 同时 Rt + Dt << Pt:攻击者在攻击没达到目的的时候已经就死掉了。
Pt - At > Dt + Rt:防御措施有效,原因同上
Pt - At < Dt + Rt:防御体系已经尽力,但是还是系统还是被攻陷
Pt < Dt + Rt:这届信息安全部不行啊!
其實說這麼多就是想說一句話:檢測是響應的前提,響應是根據檢測結果而進行一系列的處理,如果沒有有效的檢測,防禦是相對靜態的,響應也就沒法進行,在整個PDR模型中,覈心是檢測。
大多數安全體系建設中,應急回應大多流程為:
准备阶段-》检测阶段-》抑制阶段-》根除阶段-》恢复阶段-》报告和完成阶段
0x01 *nix下的應急回應:
注:以下內容部分可以適用於其他的作業系統。
按照我們之前說的,針對*nix下的應急回應步驟理想情况下是:
断网-》通知信息安全团队及相关的业务和资源协调部门-》备份数据-》分析数据-》恢复系统
1.斷網:也就是讓受影響主機和其他外部網絡保持一個隔離狀態,因為有些蠕蟲性質的病毒諸如WannaCry這種會大面積感染內網,减小受影響設備面積並把事情控制在一個可以容忍的程度是必要的,第二個原因:由於你也不知道攻擊者把你的系統損壞到一個什麼程度,所以不讓他繼續受損也是必須的,第三個原因就是敏感數據,你懂得。但是斷網的時候記得將流量相關的數據做保存,因為這些流量數據中可能存在相關的C2數據或者是其他遠控協定。
2.通知相關部門:諸如受影響的業務部門、資源協調部門(OPS、IT)、資訊安全部門和CIRT小組,把情况迴響給這些部門,方便確定攻擊發起的時間、被攻擊的狀態(這裡推薦使用Kill-Chain去分析攻擊的行程)和緩解方案。
3.備份資料:把受影響的系統數據進行備份,方便進行離線分析,但是這裡記得要去諮詢一下保密協定哦。
4.分析數據:分析攻擊者在該系統上的行為、目的和造成的影響,比如說檢查密碼檔案(/etc/passwd和/etc/shadow)來尋找一下异常的情况,比如說可以檢查是不是有UID0或者是GID0這種,如果有除了root意外的某個用戶被賦予了一個UID和GID,那麼我們就找到了攻擊者的一些遺留資訊,用一個簡單的命令就是:
除此之外,也可以從/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怎麼做。