Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 四)

本文详细介绍了在ElasticSIEM中创建自定义规则的方法,包括通过Kibana界面和API接口创建规则的步骤,以及如何配置规则的查询、严重程度和运行间隔。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在之前的这个系列文章“Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 三)”,我们讲到了 SIEM 的 detections。在今天的这篇文章中,我们来讲述一下如何来创建一个rule。简单地说 rule 定期运行,并在指定的索引中搜索符合其条件的文档。

注意:针对 Load Elastic prebuilt rules 及 Create new rule,你必须启动 https 配置。详细请参阅我的文章 “Elastic:为Elasticsearch 启动 https 访问”。 或者阅读另外一篇文章 “Security:如何安装 Elastic SIEM 和 EDR”。

我们在 Kibana 中的 SIEM 里打开我们的 Detection tab,我们可以看到:

我们可以点击 Load prebuilt detection rules 来装载在 Elastic 预先设置好的检测规则。如果你已经加载这些规则,那么你会看到如下的画面:

在它的旁边,我们可以看到一个叫做 Create your own rules 的按钮。这个按钮是用来创建我们自己的规则的。那么我们该如何创建一个规则呢?这些规则到底长的是啥个样子呢?

在今天的教程中,我们将以 winlogbeat 所生产的索引来生产一个可以检测当执行 Windows 命令 “vssadmin delete shadows” 而生产的信号。

我们点击 Create your own rules 按钮:

如上图所示,它首先让我们选择我们所需要的 index pattern。针对我们的情况,我们选择 winlogbeat-*。同时,它需要让我们输入一个 custom query。针对我们的需求,我们需要输入:

event.action:"Process Create (rule: ProcessCreate)" and process.name:"vssadmin.exe" and process.args:("delete" and "shadows")

填完后的情况是:

event.action:"Process Create (rule: ProcessCreate)" and process.name:"vssadmin.exe" and process.args:("delete" and "shadows")

我们点击 Contiue 按钮:

按照上面的要求我们填入我们需要的信息,同时我们也设置这个事件的严重程度及 Risk score。等我们配置完后,我们点击 Continue 按钮:

在上面我们可以看出来这个 rule 的总体情况。在这里我们可以配置这个 rule 的运行间隔。等我们配置完后,我们点击 Create & activate rule 按钮:

等过一段时间过后,我们可以看到我们的状态显示 succeeded,表明我们的创建是已经成功的。

在我们 Windows 中,我们可以通过 vssadmin 命令来创建一个 shadow,并删除它。那么在 Elastic SIEM 应用中将会看到一个这个事件的 signal 来供我们分析。

 

使用 API 来创建 rule

除了我们上面讲的利用 Kibana 的界面来创建所需要的rule之外,我们也可以通过接口的方式来创建一个 rule。在下面我们创建一个 rule,检查被 MS office 启动的进程:

POST api/detection_engine/rules
{
  "rule_id": "process_started_by_ms_office_program_possible_payload",
  "risk_score": 50,
  "description": "Process started by MS Office program - possible payload",
  "interval": "1h", 
  "name": "MS Office child process",
  "severity": "low",
  "tags": [
   "child process",
   "ms office"
   ],
  "type": "query",
  "from": "now-70m", 
  "query": "process.parent.name:EXCEL.EXE or process.parent.name:MSPUB.EXE or process.parent.name:OUTLOOK.EXE or process.parent.name:POWERPNT.EXE or process.parent.name:VISIO.EXE or process.parent.name:WINWORD.EXE",
  "language": "kuery",
  "filters": [
     {
      "query": {
         "match": {
            "event.action": {
               "query": "Process Create (rule: ProcessCreate)",
               "type": "phrase"
            }
         }
      }
     }
  ],
  "enabled": true
}

为了能够使得我们把上面的 rule 写入到 Kibana 中,我们可以使用 Postman 来完成。如果大家对 Postman 不是很熟悉的话,你可以参考 “Elastic:使用 Postman 来访问 Elastic Stack”。在这里,请注意:上面的接口时针对 Kibana 而不是 Elasticsearch 的。我们不可以在 Kibana 的 Dev tools 中操作,否则它将被当做i ndex 而写入到 Elasticsearch 的存储中。

我们打开 Postman:

我们需要在 body 里输入我们上面的接口的内容:

等我们设置好后,点击 Send 按钮,我们可以看到如下的输出:

{
    "created_at": "2020-03-20T03:52:44.335Z",
    "updated_at": "2020-03-20T03:52:44.435Z",
    "created_by": "elastic",
    "description": "Process started by MS Office program - possible payload",
    "enabled": true,
    "false_positives": [],
    "filters": [
        {
            "query": {
                "match": {
                    "event.action": {
                        "query": "Process Create (rule: ProcessCreate)",
                        "type": "phrase"
                    }
                }
            }
        }
    ],
    "from": "now-70m",
    "id": "7b96b5cb-c732-43e5-9b41-44eb27e7f37f",
    "immutable": false,
    "interval": "1h",
    "rule_id": "process_started_by_ms_office_program_possible_payload",
    "language": "kuery",
    "output_index": ".siem-signals-default",
    "max_signals": 100,
    "risk_score": 50,
    "name": "MS Office child process",
    "query": "process.parent.name:EXCEL.EXE or process.parent.name:MSPUB.EXE or process.parent.name:OUTLOOK.EXE or process.parent.name:POWERPNT.EXE or process.parent.name:VISIO.EXE or process.parent.name:WINWORD.EXE",
    "references": [],
    "severity": "low",
    "updated_by": "elastic",
    "tags": [
        "child process",
        "ms office"
    ],
    "to": "now",
    "type": "query",
    "threat": [],
    "version": 1
}

上面显示我们的调用是成功的。这个时候,我们打开 Kibana SIEM 应用的 Detections,我们可以看到如下的画面:

在上面我们可以看到 MS Office child process 规则已经被成功创建了。

你可以继续阅读这个系里的最后一篇文章 “Solutions:Elastic SIEM - 适用于家庭和企业的安全防护 ( 五)

 

参考:

【1】https://www.elastic.co/guide/en/siem/guide/current/rules-ui-create.html

【2】https://www.elastic.co/guide/en/siem/guide/current/rules-api-create.html#rules-api-create

【3】https://www.elastic.co/guide/en/siem/guide/master/rule-api-overview.html

【4】https://www.elastic.co/guide/en/elasticsearch/reference/current/get-started-enable-security.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值