1 Pluspunkt 0 Minuspunkte

Ich habe diesen Wazuh Query

GET /wazuh-alerts-4.x-2025.02.28/_search
{
  "query": {
    "match": {
      "data.win.eventdata.authenticationPackageName": "NTLM",
      "data.win.eventdata.workstationName": "srv03"
    }
  }
}

Wazuh meldet dabei das 

{
  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "[match] query doesn't support multiple fields, found [data.win.eventdata.authenticationPackageName] and [data.win.eventdata.workstationName]",
        "line" : 5,
        "col" : 45
      }
    ],
    "type" : "parsing_exception",
    "reason" : "[match] query doesn't support multiple fields, found [data.win.eventdata.authenticationPackageName] and [data.win.eventdata.workstationName]",
    "line" : 5,
    "col" : 45
  },
  "status" : 400
}

Ich habe auch statt "match" schon alle anderen Optionen versucht (match_all, match_phrase, match_phrase_prefix, etc) versucht aber das hat alles nicht funktioniert. Wie kann ich nach mehreren Feldern gleichzeitig suchen?

von  

2 Antworten

0 Pluspunkte 0 Minuspunkte

Du kannst einen "multi_query" absetzen der definierte Felder nach einem Begriff durchsucht.

GET /wazuh-alerts-4.x-2025.02.28/_search
{
  "query": {
    "multi_match": {
      "query": "NTLM",
      "fields": [
        "data.win.eventdata.authenticationPackageName",
        "data.win.eventdata.logonType"
      ]
    }
  }
}
von (1.2k Punkte)  
0 Pluspunkte 0 Minuspunkte

Dazu eignet sich eine "bool" Abfrage mit mehreren "match" Bedingungen, um spezifischere Suchkriterien zu definieren.

GET /wazuh-alerts-4.x-2025.02.28/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "data.win.eventdata.authenticationPackageName": "NTLM"
          }
        },
        {
          "match": {
            "data.win.eventdata.logonType": "NTLM"
          }
        }
      ],
      "minimum_should_match": 1
    }
  }
}
von (986 Punkte)