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

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

注意:针对Load Elastic prebuilt rules及Create new rule,你必须启动https配置。详细请参阅我的文章“Elastic:为Elasticsearch启动https访问”。

我们在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中操作,否则它将被当做index而写入到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 规则已经被成功创建了。

参考:

【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

发布了517 篇原创文章 · 获赞 126 · 访问量 91万+

猜你喜欢

转载自blog.csdn.net/UbuntuTouch/article/details/104966614