Mitre-Att-ck-table

Mitre Att&ck detection coverage tracking with Kibana

Elastic SIEM app comes with many built-in detections that can be found in this open github repository and they all come with at least one Mitre Att&ck technique and one tactic. To read more about Mitre Att&ck framework click here

It is critical to know what detection gaps you have in your environment. This visualization can help you identify your gaps a little better so that you can better allocate your time and effort to create the detections accordingly. The article is going to walk you through the process how to get this visualization built in your Kibana for better detection coverage visibility.

Step 1: Identify where the Elastic Signals metadata can be found in Elastic.

Step 2: Copy the Elastic signal metadata out to a different index using Elastic Reindex API

POST _reindex
{
  "source": {
    "index": ".kibana",
    "query": {
      "bool": {
        "must": [],
        "filter": [
          {
            "match_all": {}
          },
          {
            "exists": {
              "field": "alert.name.keyword"
            }
          }
        ],
        "should": [],
        "must_not": []
      }
    }
  },
  "dest": {
    "index": "kibana-detections",
    "version_type": "external"
  }
}

Step 3: Automate the reindex process with watcher or any script with cronjob

{
  "trigger": {
    "schedule": {
      "interval": "5m"
    }
  },
  "input": {
    "http": {
      "request": {
        "scheme": "https",
        "host": "<your Elasticsearch URL>",
        "port": 9200,
        "method": "post",
        "path": "/_reindex",
        "params": {},
        "headers": {},
        "auth": {
          "basic": {
            "username": "elastic",
            "password": "::es_redacted::"
          }
        },
        "body": """{"source": {"index": ".kibana","query": {"bool": {"must": [],"filter": [{"match_all": {}},{"exists": {"field": "alert.name.keyword"}}],"should": [],"must_not": []}}},"dest": {"index": "kibana-detections","version_type": "external"}}"""
      }
    }
  },
  "condition": {
    "always": {}
  },
  "actions": {
    "my-logging-action": {
      "logging": {
        "level": "info",
        "text": "Finished reindex detections"
      }
    }
  }
}

Step 5: Create the Vega visualization

By now you should have something that looks like this.

mitre table

Hope you find this useful.

Ready to get started? Sign up for a free trial of Elastic Cloud, learn more about Vega Visualization.

Thanks to Aaron Nimocks for helping me along the way with my Vega questions