{
  "model_id": "SOC.010",
  "name": "Mass SSH Failures",
  "description": "Twenty or more failed SSH attempts from one IP in 5 minutes.",
  "threshold": 0.9,
  "evaluations": [
    {
      "name": "Failed",
      "type": "comparison",
      "left": "event.type",
      "operator": "==",
      "right": "auth.ssh.failed",
      "weight": 3
    },
    {
      "name": "Count",
      "type": "aggregation",
      "aggregation": "COUNT",
      "field": "event.actor.ip",
      "weight": 5
    },
    {
      "name": "Twenty",
      "type": "comparison",
      "left": "@Count",
      "operator": "\u003e=",
      "right": 20,
      "weight": 5
    },
    {
      "name": "NotLocal",
      "type": "comparison",
      "left": "event.actor.ip",
      "operator": "!=",
      "right": "127.0.0.1",
      "weight": 2
    },
    {
      "name": "Logic",
      "type": "logical",
      "operator": "AND",
      "operands": [
        "Failed",
        "Twenty",
        "NotLocal"
      ],
      "weight": 5
    }
  ],
  "actions": [
    {
      "type": "emit_alert",
      "reason": "{@Count} SSH failures from {event.actor.ip}."
    },
    {
      "type": "request_block_ip",
      "reason": "Block source IP."
    }
  ],
  "mitre_tactics": [
    "Credential Access"
  ],
  "mitre_techniques": [
    "T1110.001"
  ],
  "severity": "high",
  "observables": [
    "event.actor.ip"
  ]
}
