<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    Elastic威脅分析與規則編寫

    VSole2021-12-01 13:26:09

    聲明

    由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測及文章作者不為此承擔任何責任。

    雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。

    星火實驗室 專注于實戰攻防與研究,研究涉及實戰攻防、威脅情報、攻擊模擬與威脅分析等,團隊成員均來自行業具備多年實戰攻防經驗的紅隊、藍隊和紫隊專家。本著以攻促防的核心理念,通過落地ATT&CK攻防全景知識庫、紅隊武器庫和漏洞庫,全面構建實戰化、常態化、體系化的企業安全建設與運營。

    NO.1 前言

    在實際測試中,發現Elastic自帶的告警規則具有局限性且容易繞過。針對一些場景,比如通過注冊表創建計劃任務、諸如atexec類通過遠程調用命名管道創建計劃任務、powershell/iexplore遠程落地文件等行為,會出現檢測不到的情況。所以需要結合攻擊手法以及攻擊過程中產生的特征編寫適合的規則。

    NO.2 ECS

    Elastic使用ECS規范定義了EDR在 Elasticsearch 中存儲事件數據時要使用的一組通用字段,遵從ECS規范的數據在kibana中可以使用簡潔的語法篩選出匹配的數據。

    ECS定義了許多字段集,用于對Agent產生的數據源進行分類。例如:process集、agent集、file集、event集、network集等。顧名思義,process對應的是產生數據源的進程相關數據,agent集是收集該數據源的agent相關數據,而file集則是該數據源或者說是產生數據源進程對文件系統操作的數據。event集和network集則是操作日志和網絡活動產生的數據。在字段集下,還定義了字段名去區分每個字段代表的信息。字段集和字段之間用 . 號連接。例如:process.name字段對應的是進程名。

    直觀展示如下:

    常用的字段:

    process.name 進程名process.pe.original_file_name 進程最終調用的PE鏡像文件process.parent.name  父進程process.args 進程參數dns.question.name dns解析域名registry.key  注冊表鍵file.path 包含文件名的文件絕對路徑file.directory 文件路徑
    

    ECS詳見:Elastic Common Schema

    https://www.elastic.co/guide/en/ecs/current/index.html

    NO.3 kibana查詢語法KQL

    KQL是一種使用自由文本搜索或基于字段的搜索過濾 Elasticsearch 數據的簡單語法。KQL 僅用于過濾數據,并沒有對數據進行排序或聚合的作用。KQL是簡化了的EQL。

    語法:

    1、簡單搜索

    process.name:"net.exe"  關鍵字匹配file.name:aaa bbb     空格會自動分詞,語句會搜索出文件名是aaa或bbb的結果,要匹配包含空格的字段需要用雙引號包起來
    

    2、條件運算符

    > >= < <=age >= 10
    

    3、邏輯運算符

    and or not和編程語言易一樣
    

    4、優先級

    ()
    

    5、字段運算簡化

    age:(10 or 20) 等價于 age=10 or age=20
    

    6、通配符

    *    匹配多個任意字符通配符支持字段名通配和值通配file.pat*:ddddd.txtfile.path:*ddd*.txt
    

    在kibana中,還可以使用Lucene語法查詢

    https://www.cnblogs.com/xing901022/p/4974977.html

    NO.4 創建自定義告警規則

    進入kibana

    Security-告警-管理規則-創建新規則

    kibana提供了五種規則類型,可以靈活使用。以KQL為例,創建一條檢測schtasks.exe創建計劃任務的簡單規則。

    創建查詢規則

    設置規則告警嚴重性以及分線分數、標簽

    高級設置里可以設置規則引用的來源,映射ATT&CK以及處理告警的調查指南

    設置規則運行間隔時間

    繼續創建完規則之后可以在定制規則欄里查看新建的規則

    效果展示

    NO.5 規則對比

    以自帶規則和自定義規則對比說明自定義規則的必要性,以創建計劃任務為例,elastic給出檢測計劃任務的相關規則有9條,可在rules/windows頁面下搜索scheduled查看。

    5.1 自帶規則的局限性

    以比較詳細的persistence_local_scheduled_task_creation

    https://github.com/elastic/detection-rules/blob/main/rules/windows/persistence_local_scheduled_task_creation.toml

    分析,其規則如下EQL語言

    https://www.elastic.co/guide/en/elasticsearch/reference/current/eql-syntax.html# eql-basic-syntax

    sequence with maxspan=1m  [process where event.type != "end" and    ((process.name : ("cmd.exe", "wscript.exe", "rundll32.exe", "regsvr32.exe", "wmic.exe", "mshta.exe",                      "powershell.exe", "pwsh.exe", "powershell_ise.exe", "WmiPrvSe.exe", "wsmprovhost.exe", "winrshost.exe") or    process.pe.original_file_name : ("cmd.exe", "wscript.exe", "rundll32.exe", "regsvr32.exe", "wmic.exe", "mshta.exe",                                     "powershell.exe", "pwsh.dll", "powershell_ise.exe", "WmiPrvSe.exe", "wsmprovhost.exe",                                     "winrshost.exe")) or    process.code_signature.trusted == false)] by process.entity_id  [process where event.type == "start" and    (process.name : "schtasks.exe" or process.pe.original_file_name == "schtasks.exe") and    process.args : ("/create", "-create") and process.args : ("/RU", "/SC", "/TN", "/TR", "/F", "/XML") and    /* exclude SYSTEM SIDs - look for task creations by non-SYSTEM user */    not user.id : ("S-1-5-18", "S-1-5-19", "S-1-5-20")] by process.parent.entity_id
    

    該規則的大意是按時間序列查找在1分鐘內,擁有相同程序ID的cmd.exe、rundll32.exe之類的程序以及無簽名文件,以不是system用戶、本地服務用戶、網絡服務用戶權限且擁有相同父進程調用schtasks.exe創建計劃任務的動作。規則假想了攻擊者在1分鐘內執行完畢創建計劃任務的命令,且攻擊這只有調用schtasks.exe創建計劃任務的一種方式。然而,在實際的攻擊行為中,攻擊者用于創建計劃任務的手法還有直接調用API、atexe.exe等橫向工具遠程通過atsvc命名管道調用SchRpcRegisterTask創建計劃任務、寫注冊表等。或者攻擊者啟動了cmd.exe卻忘記了schtasks的用法需要去查詢,等查詢到再執行命令,已經過了一分鐘。在上述兩種情況下,規則無法檢測出創建計劃任務也就無法告警。

    5.2 自建規則

    上文說到攻擊者用于創建計劃任務的手法有調用API、通過atsvc命名管道調用SchRpcRegisterTask、寫注冊表、schtasks.exe等。這些方法除了寫注冊表直接注冊任務之外,均會在C:\Windows\System32\Tasks路徑下落地以計劃任務名命名的文件。所以檢測計劃任務的更詳細和全面的規則可以這么寫(KQL)

    (registry.key :*CurrentVersion\\Schedule\\TaskCache\\Tree* and process.name:(regedit.exe or cmd.exe or powershell.exe )) or (file.path:C\:\\Windows\\System32\\Tasks\\* and event.type:"creation")  and not user.id:(S-1-5-18* or S-1-5-19* or S-1-5-20*)
    

    拆開來看

    registry.key :*CurrentVersion\\Schedule\\TaskCache\\Tree* and process.name:(regedit.exe or cmd.exe or powershell.exe )   //監測寫注冊表創建計劃任務 process.name可替換為process.pe.original_file_name
    file.path:C\:\\Windows\\System32\\Tasks\\* and event.type:"creation"http://監測非寫注冊表創建的加護任務。可以監測到atexec等遠程執行命令程序在本機創建的計劃任務,創建此類計劃任務的進程為svchost.exe且一般沒有參數。
    and not user.id:(S-1-5-18* or S-1-5-19* or S-1-5-20*)  監測非system、  LOCAL SERVICE 、NET SERVICE創建的計劃任務。
    

    5.3 對比

    在兩條規則都開啟的前提下

    查看告警,可以看到自帶的規則無論是命令行執行schtasks(cmd和schtask命令間隔超過1分鐘)還是atexec創建的計劃任務都沒有告警。

    箭頭標注的第一條告警為atexec創建計劃任務的告警,第二條為schtask的告警。

    查看告警詳情:

    atexec的的告警詳情

    cmd調用schtasks的告警詳情

    注:這里需要在進程樹里找到并點擊schtask.exe查看進程參數等

    NO.6 總結

    本文介紹了Elastic Seim如何創建自定義告警規則,以及創建的規則和原有規則效果的對比,可以看到原有規則的不足之處。對某些攻擊場景的監測,須要深入了解攻擊者潛在的攻擊手法,提煉攻擊特征,才能寫出更全面更精準的監測規則。未知攻,焉知防。

    注冊表elastic
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    近日,Lightspin安全分析師在Amazon ECR(彈性容器注冊表)公共庫中發現一個嚴重漏洞,允許攻擊者刪除任何容器映像或將惡意代碼注入其他AWS賬戶的鏡像。
    聲明由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測及文章作者不為此承擔任何責任。雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。event集和network集則是操作日志和網絡活動產生的數據。
    用戶名:加密密碼:密碼最后一次修改日期:兩次密碼的修改時間間隔:密碼有效期:密碼修改到期到的警告天數:密碼過期之后的寬限天數:賬號失效時間:保留。查看下pid所對應的進程文件路徑,
    高級進程注入總結
    2022-03-13 16:29:22
    本文為看雪論壇優秀文章看雪論壇作者ID:coneco本文將重點描述值得留意的方法,和一些思路新穎的方法。
    Dissect是一款功能強大的事件響應和數字取證框架,廣大研究人員和企業安全專家可以使用該工具實現快速訪問和分析各種磁盤和文件格式的取證數據。
    一個內網安全攻防的知識倉庫
    防御者可以利用操作系統的原生設施和支持框架來構建質量檢測。檢測潛在有趣的 .NET 行為的一種方法是監控 .NET 執行事件的公共語言運行時 使用日志。這篇文章中,我們將確定防御者如何(可能)利用 .NET 使用日志進行檢測和取證響應,調查規避檢測日志監控的方法,并討論捕獲使用日志篡改行為的潛在監控機會。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类