TroutTrout

Log-Weiterleitung an Elastic SIEM

Empfangen Sie Access Gate-Sicherheitsereignisse in Elastic Stack und stellen Sie diese in Kibana für Erkennung und Suche bereit.

4 min read · Last updated 2026-04-24

Access Gate leitet seine Audit- und Alert-Streams über Syslog (RFC 5424) weiter. Diese Anleitung beschreibt die Konfiguration auf Elastic-Seite, um diese Ereignisse über Logstash zu erfassen, in Elasticsearch zu speichern und in Kibana anzuzeigen.

Voraussetzungen

  • Access Gate ist so konfiguriert, dass Logs per TCP-Syslog an Ihren Logstash-Host weitergeleitet werden. Siehe Log-Weiterleitung und SIEM-Export.
  • Elastic Stack 8.x — Elasticsearch, Logstash und Kibana — vom Access Gate-Gerät aus erreichbar.
  • Ein Logstash-Listener-Port. Die folgenden Beispiele verwenden 5514/TCP, um Konflikte mit dem privilegierten Port 514 zu vermeiden.

Logstash-Pipeline konfigurieren

Access Gate-Ereignisse werden vom Prozess vigil im strukturierten RFC 5424-Datenformat ausgegeben. Der Standard-Logstash-syslog-Input parst nur RFC 3164. Verwenden Sie daher den tcp-Input mit einem grok-Filter, um die strukturierten Felder von Access Gate zu extrahieren.

Erstellen Sie /etc/logstash/conf.d/access-gate.conf:

input {
  tcp {
    port => 5514
    type => "access-gate"
  }
}

filter {
  if [type] == "access-gate" {
    grok {
      match => {
        "message" => "<%{POSINT:priority}>%{INT:version} %{TIMESTAMP_ISO8601:event_time} %{HOSTNAME:host_name} %{WORD:program} %{POSINT:procid} %{WORD:severity} \[%{DATA:sd_id} Log=\"%{DATA:event_log}\" Mitre=\"%{DATA:mitre}\" PrincipalIp=\"%{IP:src_ip}\" Rule=\"%{DATA:rule}\"\]"
      }
    }
    date {
      match => ["event_time", "ISO8601"]
      target => "@timestamp"
    }
    mutate {
      remove_field => ["message", "priority", "version", "procid", "sd_id"]
    }
  }
}

output {
  if [type] == "access-gate" {
    elasticsearch {
      hosts => ["https://elasticsearch:9200"]
      index => "access-gate-%{+YYYY.MM.dd}"
      user => "${ELASTIC_USER}"
      password => "${ELASTIC_PASSWORD}"
    }
  }
}

Laden Sie Logstash nach jeder Pipeline-Änderung neu:

sudo systemctl restart logstash

Dieser Filter extrahiert fünf Felder aus jedem Access Gate-Ereignis:

FeldQuelleBeispiel
event_logLoguser Alice Salmon logged in using screen CUI Access
mitreMitre-----
src_ipPrincipalIp192.168.100.59
ruleRuleAccess Screen Login Attempt
severityRFC 5424 MSGIDALERT

Index-Template anwenden

Ohne ein Index-Template leitet Elasticsearch die Feldtypen aus dem ersten Dokument ab und wählt möglicherweise den falschen Typ für src_ip (String statt ip). Wenden Sie dieses Template an, bevor das erste Dokument eintrifft:

curl -u "$ELASTIC_USER:$ELASTIC_PASSWORD" -X PUT \
  "https://elasticsearch:9200/_index_template/access-gate" \
  -H "Content-Type: application/json" -d '{
  "index_patterns": ["access-gate-*"],
  "template": {
    "mappings": {
      "properties": {
        "@timestamp":  { "type": "date" },
        "event_log":   { "type": "text" },
        "mitre":       { "type": "keyword" },
        "src_ip":      { "type": "ip" },
        "rule":        { "type": "keyword" },
        "severity":    { "type": "keyword" },
        "host_name":   { "type": "keyword" }
      }
    }
  }
}'

Pipeline validieren

Senden Sie mit nc ein Beispielereignis an Logstash, um das Parsing zu prüfen, bevor Sie Access Gate darauf ausrichten:

echo '<130>1 2026-04-24T20:53:10.313Z access-gate vigil 334 ALERT [context@60446 Log="user Alice Salmon logged in using screen CUI Access" Mitre="-----" PrincipalIp="192.168.100.59" Rule="Access Screen Login Attempt"]' \
  | nc -q1 logstash 5514

Bestätigen Sie, dass das Dokument angekommen ist:

curl -u "$ELASTIC_USER:$ELASTIC_PASSWORD" \
  "https://elasticsearch:9200/access-gate-*/_search?q=rule:%22Access+Screen+Login+Attempt%22&pretty"

Der Treffer sollte src_ip, rule und event_log mit Werten enthalten.

Kibana-Datenansicht erstellen

Öffnen Sie in Kibana Stack ManagementData ViewsCreate data view:

  • Name: access-gate
  • Index pattern: access-gate-*
  • Timestamp field: @timestamp

Öffnen Sie Discover, wählen Sie die Datenansicht access-gate und setzen Sie den Zeitraum auf die letzten 15 Minuten. Ein über die Access Gate-Oberfläche ausgelöstes Login-Ereignis sollte mit allen extrahierten Feldern erscheinen.

Erkennungsregel hinzufügen

Verwenden Sie in Kibana unter SecurityRulesCreate new rule eine Custom query-Regel mit folgenden Einstellungen:

  • Index pattern: access-gate-*
  • Query: severity:"ALERT" AND rule:"Access Screen Login Attempt"
  • Severity: Medium

Diese Regel löst aus, sobald Access Gate eine authentifizierte Anmeldung an einem privilegierten Screen protokolliert — passen Sie die Abfrage an die gewünschten Regeln an.

Verwandte Themen