安全運營之攻擊溯源
前言
根據美國國防部安全事故處置流程,攻擊溯源作為安全事故中事后響應的重要組成部分,一定程度上還原攻擊者的攻擊路徑與攻擊手法,從切入角度上看,安全告警事件,漏洞視角,網絡和主機層面的異常以及APT攻擊都可以幫助安全運營人員發現攻擊源頭,并且幫助其完成溯源工作。在傳統的安全運營工作中,如果我們不知道黑客是怎么進入到系統內部,其實我們無法徹底根除安全隱患。從用戶角度也會常常碰到這種情況,特別是高層無法理解為啥安全事件層出不窮。那么加大對溯源能力的投入,可以緩解這種情況的出現。

溯源切入詳細分析
從安全運營的角度上切入,用戶最想要的是,通過安全系統的分析,能捕捉到整個攻擊鏈事件。知道攻擊路徑和攻擊手段。攻擊階段一般定義為:攻擊入口、載荷投放、權限提升、逃逸檢測、權限未知、橫向移動、遠程公職、數據泄露、痕跡清楚、影響破壞。
首先聊聊攻擊入口,ATT&CK其實也定義的非常明晰,針對服務器端攻擊,最常用的方式:
@1、T1190、公開漏洞攻擊&0day攻擊 (自定義掃描腳本,比如這次HW用的比較多的fastjson漏洞等)
@2、T1133、外部遠程服務攻擊(暴力破解)
@3、T1078、合法賬號攻擊(弱口令/社工庫)
檢測手段:
@1、通過WAF感知到漏洞入侵,或者通過主機安全發現漏洞利用程序運行事件,發送告警事件到安全運營中心綜合分析。
@2、通過主機安全產品感知,暴力破解成功(SSH/RDP)、Redis執行異常指令、Java應用執行異常指令、Postgres導出功能被誤用寫入可疑UDF庫文件、Mysql導出功能誤用寫入可疑文件、Redis入侵后修改Crontab、Linux可疑命令序列、訪問敏感文件,發送告警事件到安全運營中心綜合分析。
@3、異地登錄、異常IP、異常時間登陸、弱口令賬戶登錄,發送告警事件到安全運營中心綜合分析。
處置手段:
@1、當安全運營中心通過綜合分析,發現主機層面存在相關的漏洞,并且進程正在運行,并且有網路層數據已經觸達到主機,可調用WAF阻斷該IP的訪問。
@2、主機層暴力破解阻斷,這個目前主機安全軟件都有。
@3、禁用賬號,還有一些攻擊切入點主要是通過入侵客戶端,然后進入數據中心的曲線救國方法,也就是我們常說的APT攻擊。
T1189、水坑攻擊
T1093、附件釣魚攻擊、T1092鏈接釣魚攻擊、T1094、服務釣魚攻擊
T1095、供應鏈攻擊
T1200、硬件添加攻擊
T1199、利用可靠關系
檢測手段:需要通過OA網絡中的終端安全產品來完成。需要同時把這部分告警日志接入到安全運營中心分析。
處置手段:隔離終端電腦
真實的海蓮花(APT32)攻擊事件,攻擊鏈分析:T1093(附件釣魚攻擊)- > T1037(安裝木馬) - > T1563(橫向移動) - >T1189(水坑攻擊) - > T1567(通過web服務泄漏數據)
由于篇幅有限,先分析到這。其他攻擊技術都可以按照以上的方法分析。
產品解決方案
要想實現攻擊鏈分析展示,我們需要組成攻擊鏈的ATT&CK告警事件;要想得到ATT&CK告警事件就需要圖分析、時序分析、統計分析等多種計算形式組合;同時也需要安全運營人員的手工編寫規則的加持;要想自動或者人工的規則有更好的效果,我們需要提供有價值的基礎數據。那么整個產品解決方案可通過架構圖展示:

1.數據采集層
主要是分兩個層面:在網絡層面需要獲取netflow流信息,主要是對外信息泄露監控。DNS對外請求的信息主要是為了分析外聯,http流量解析對比IDS規則、對比威脅情報;通過LB或者硬件解密卡處理https流量對比IDS規則,對比威脅情報。更重要的一點是需要和CMDB資產服務對接,找到這些網絡連接所對應的主機。
在主機層,針對linux服務器,需要采集與主機進程關聯的網絡連接、文件訪問、計劃任務、賬號、登陸流水、軟件信息等。這些數據都可以導入圖分析軟件中,分析出攻擊路徑,根據不同時間段的過濾會得出不同的結論。
針對windows服務器,我們可通過集成sysmon中采集指標達到我們的目的,包括:主機進程、與主機進程關聯網絡連接、文件訪問、注冊表、命令行、DNS請求、WMI等。
2.規則處理層
主要是安全運營人員編寫ATT&CK攻擊規則,并且通過規則轉換器,轉換成上層分析引擎能識別的機器語言。
例如:T1168 - Local Job Scheduling
There are 2 ways to capture Crontab replace
1.bash_history : track the command "crontab" - you may need to look for the commands crontab index=linux sourcetype=bash_history bash_command="crontab *" | table host, user_name, bash_command
2. /var/log/cron : look for "crontab" & "REPLACE" in the cron logsindex=linux crontab replace
3. /var.log/crom - track CMD command cat /var/log/cron | grep CMD | cut -d " " -f 9 |sort | uniq -c | sort -rn will give you all the jobs which run in the environment with its number starting from high to low. You can look for a suspecious job/s which are not a part of a whitelisted jobs.
4. index=linux sourcetype=bash_history at
3.規則引擎層
這部分可以通過上一步安全運營人員編寫的規則,并且通過規則轉換器轉換,上層的全量日志分析引擎可快速的把人容易理解的規則轉換成可機讀的規則。
4.業務展示層
這部分主要有3個業務需求,ATT&CK攻擊告警事件展示,攻擊鏈展示,監管溯源查詢。
運營效率提升
通過產品化攻擊溯源,安全運營人員投入比現有降低50%。