{
  "$id": "http://example.com/example.json",
  "$schema": "http://json-schema.org/draft-07/schema",
  "additionalProperties": true,
  "description": "schema for detections",
  "properties": {
    "author": {
      "$id": "#/properties/author",
      "default": "",
      "description": "Author of the detection",
      "examples": [
        "Patrick Bareiss, Splunk"
      ],
      "type": "string"
    },
    "date": {
      "$id": "#/properties/date",
      "default": "",
      "description": "date of creation or modification, format yyyy-mm-dd",
      "examples": [
        "2019-12-06"
      ],
      "type": "string"
    },
    "description": {
      "$id": "#/properties/description",
      "default": "",
      "description": "A detailed description of the detection",
      "examples": [
        "dbgcore.dll is a specifc DLL for Windows core debugging. It is used to obtain a memory dump of a process. This search detects the usage of this DLL for creating a memory dump of LSASS process. Memory dumps of the LSASS process can be created with tools such as Windows Task Manager or procdump."
      ],
      "type": "string"
    },
    "how_to_implement": {
      "$id": "#/properties/how_to_implement",
      "default": "",
      "description": "information about how to implement. Only needed for non standard implementations.",
      "examples": [
        "This search requires Sysmon Logs and a Sysmon configuration, which includes EventCode 10 for lsass.exe."
      ],
      "type": "string"
    },
    "id": {
      "$id": "#/properties/id",
      "default": "",
      "description": "UUID as unique identifier",
      "examples": [
        "fb4c31b0-13e8-4155-8aa5-24de4b8d6717"
      ],
      "type": "string"
    },
    "known_false_positives": {
      "$id": "#/properties/knwon_false_positives",
      "default": "",
      "description": "known false postives",
      "examples": [
        "Administrators can create memory dumps for debugging purposes, but memory dumps of the LSASS process would be unusual."
      ],
      "type": "string"
    },
    "name": {
      "$id": "#/properties/name",
      "default": "",
      "examples": [
        "Access LSASS Memory for Dump Creation"
      ],
      "title": "Name of detection",
      "type": "string"
    },
    "references": {
      "$id": "#/properties/references",
      "additionalItems": true,
      "default": [],
      "description": "A list of references for this detection",
      "examples": [
        [
          "https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf"
        ]
      ],
      "items": {
        "$id": "#/properties/references/items",
        "default": "",
        "description": "An explanation about the purpose of this instance.",
        "examples": [
          "https://2017.zeronights.org/wp-content/uploads/materials/ZN17_Kheirkhabarov_Hunting_for_Credentials_Dumping_in_Windows_Environment.pdf"
        ],
        "title": "The Items Schema",
        "type": "string"
      },
      "type": "array"
    },
    "search": {
      "$id": "#/properties/search",
      "default": "",
      "description": "The Splunk search for the detection",
      "examples": [
        "`sysmon` EventCode=10 TargetImage=*lsass.exe CallTrace=*dbgcore.dll* OR CallTrace=*dbghelp.dll* | stats count min(_time) as firstTime max(_time) as lastTime by Computer, TargetImage, TargetProcessId, SourceImage, SourceProcessId | rename Computer as dest | `security_content_ctime(firstTime)`| `security_content_ctime(lastTime)` | `access_lsass_memory_for_dump_creation_filter`"
      ],
      "type": "string"
    },
    "tags": {
      "$id": "#/properties/tags",
      "additionalProperties": true,
      "default": {},
      "description": "An array of key value pairs for tagging",
      "examples": [
        {
          "analytics_story": "credential_dumping",
          "custom_key": "custom_value"
        }
      ],
      "minItems": 1,
      "type": "object",
      "uniqueItems": true
    },
    "type": {
      "$id": "#/properties/type",
      "default": "",
      "description": "type of detection",
      "examples": [
        "ESCU"
      ],
      "items": {
        "enum": [
          "ESCU",
          "SSE",
          "RBA"
        ],
        "type": "string"
      },
      "type": "string"
    },
    "version": {
      "$id": "#/properties/version",
      "default": 0,
      "description": "version of detection, e.g. 1 or 2 ...",
      "examples": [
        2
      ],
      "type": "integer"
    }
  },
  "required": [
    "name",
    "id",
    "version",
    "date",
    "description",
    "type",
    "author",
    "search",
    "known_false_positives",
    "tags"
  ],
  "title": "Detection Schema",
  "type": "object"
}
