Beispiele für AQL-Suchbegriffe

Verwenden Sie die Ariel -Abfragesprache (AQL), um bestimmte Felder aus den Ereignissen, Datenflüssen und Simarc-Tabellen in der Ariel -Datenbank abzurufen.

Hinweis: Wenn Sie beim Erstellen einer AQL-Abfrage Text kopieren, der einfache Anführungszeichen aus einem beliebigen Dokument enthält, und den Text in IBM QRadareinfügen, wird Ihre Abfrage nicht analysiert. Als Problemumgehung können Sie den Text in QRadar einfügen und die einfachen Anführungszeichen erneut eingeben oder Sie können den Text aus dem IBM Knowledge Center kopieren und einfügen.

Berichterstellung über Kontonutzung

Verschiedene Benutzercommunitys können unterschiedliche Indikatoren in Bezug auf Sicherheitsbedrohungen und Nutzung aufweisen.

Verwenden Sie Referenzdaten für die Berichterstellung über Benutzereigenschaften (beispielsweise Abteilung, Standort oder Manager). Sie können externe Referenzdaten verwenden.

Die folgende Abfrage gibt Metadateninformationen zum Benutzer auf Basis der zugehörigen Anmeldeereignisse zurück.

SELECT
REFERENCETABLE('user_data','FullName',username) as 'Full Name',
REFERENCETABLE('user_data','Location',username) as 'Location',
REFERENCETABLE('user_data','Manager',username) as 'Manager',
DISTINCTCOUNT(username) as 'Userid Count',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
COUNT(*) as 'Event Count'
FROM events
WHERE qidname(qid) ILIKE '%logon%'
GROUP BY 'Full Name', 'Location', 'Manager'
LAST 1 days

Einblick über mehrere Konten-IDs hinweg

In diesem Beispiel haben einzelne Benutzer mehrere Konten im Netz. Das Unternehmen benötigt eine zentrale Übersicht über die Benutzeraktivität.

Ordnen Sie mithilfe von Referenzdaten lokale Benutzer-IDs einer globalen ID zu.

Die folgende Abfrage gibt die Benutzerkonten zurück, die von einer globalen ID bei Ereignissen verwendet wird, die als verdächtig markiert wurden.

SELECT
REFERENCEMAP('GlobalID Mapping',username) as 'Global ID', 
REFERENCETABLE('user_data','FullName', 'Global ID') as 'Full Name',
DISTINCTCOUNT(username),
COUNT(*) as 'Event count'
FROM events
WHERE RULENAME(creEventlist) ILIKE '%suspicious%'
GROUP BY 'Global ID'
LAST 1 days

Die folgende Abfrage zeigt die Aktivitäten an, die von einer globalen ID ausgeführt wurden.

SELECT
QIDNAME(qid) as 'Event name', 
starttime as 'Time',
sourceip as 'Source IP', destinationip as 'Destination IP',
username as 'Event Username',
REFERENCEMAP('GlobalID_Mapping', username)as 'Global User'
FROM events
WHERE 'Global User' = 'John Doe'
LAST 1 days

Verdächtigen langfristigen Beaconbetrieb ermitteln

Viele Sicherheitsbedrohungen kommunizieren mithilfe von Befehlen und Steuerelementen laufend über Tage, Wochen und Monate hinweg.

Erweiterte Suchvorgänge können Verbindungsmuster in einem bestimmten Zeitraum aufdecken. Sie können beispielsweise eine Abfrage im Hinblick auf konsistente, kurze Verbindungen an der unteren Mengengrenze pro Tag/Woche/Monat zwischen IP-Adressen oder an einer IP-Adresse und an einem Standort durchführen.

Die folgende Abfrage erkennt potenzielle Instanzen eines stündlichen Beaconbetriebs.

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'HH')) as 'different hours',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection = 'L2R'
GROUP BY sourceip, destinationip
HAVING "different hours" > 20
AND "total flows" < 25
LAST 24 hours
Tipp: Sie können diese Abfrage ändern, um Proxy-Protokolle und andere Ereignistypen zu bearbeiten.

Die folgende Abfrage erkennt potenzielle Instanzen eines täglichen Beaconbetriebs.

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'dd'))as 'different days',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection='L2R'
GROUP BY sourceip, destinationip
HAVING "different days" > 4
AND "total flows" < 14
LAST 7 days

Die folgende Abfrage erkennt täglichen Beaconbetrieb zwischen einem Quellen-IP und einem Ziel-IP. Der Beaconbetrieb erfolgt nicht jeden Tag zur selben Zeit. Die Zeitdifferenz zwischen den Beaconnachrichten ist kurz.

SELECT
sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG( hourofday*hourofday) - (AVG(hourofday)^2))as variance,
COUNT(*) as 'total flows'
FROM flows
GROUP BY sourceip, destinationip
HAVING variance < 01 and "total flows" < 10
LAST 7 days

Die folgende Abfrage erkennt täglichen Beaconbetrieb bei einer Domäne unter Verwendung von Proxy-Protokollereignissen. Der Beaconbetrieb erfolgt nicht jeden Tag zur selben Zeit. Die Zeitdifferenz zwischen den Beaconnachrichten ist kurz.

SELECT sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG(hourofday*hourofday) - (AVG(hourofday)^2)) as variance,
COUNT(*) as 'total events'
FROM events
WHERE LOGSOURCEGROUPNAME(devicegrouplist) ILIKE '%proxy%'
GROUP BY url_domain
HAVING variance < 0.1 and "total events" < 10
LAST 7 days

Die Eigenschaft url_domain ist eine angepasste Eigenschaft aus Proxy-Protokollen.

Externe Informationsbeschaffung zu Sicherheitsbedrohungen

Nutzungs- und Sicherheitsdaten, die mit Daten aus einer externen Informationsbeschaffung zu Sicherheitsbedrohungen (Threat Intelligence-Daten) korrelieren, können wichtige Indikatoren für Sicherheitsbedrohungen sein.

Erweiterte Suchvorgänge können Querverweise zwischen Indikatoren aus einer externen Informationsbeschaffung zu Sicherheitsbedrohungen und sonstigen Sicherheitsereignissen und Nutzungsdaten herstellen.

Diese Abfrage zeigt, wie Sie über viele Tage, Woche oder Monate hinweg ein Profil der externen Sicherheitsbedrohungsdaten erstellen und die Risikostufe von Assets und Konten priorisieren können.

Select
REFERENCETABLE('ip_threat_data','Category',destinationip) as 'Category',
REFERENCETABLE('ip_threat_data','Rating', destinationip) as 'Threat Rating',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
DISTINCTCOUNT(destinationip) as 'Destination IP Count'
FROM events
GROUP BY 'Category', 'Threat Rating'
LAST 1 days

Assetdaten und Konfiguration

Die Sicherheitsbedrohungs- und Nutzungsindikatoren variieren je nach Assettyp, Betriebssystem, Sicherheitslückenneigung, Servertyp, Klassifizierung und sonstigen Parametern.

In dieser Abfrage bieten erweiterte Suchvorgänge und das Assetmodell einen operativen Einblick in einen Standort.

Die Funktion Assetproperty ruft Eigenschaftswerte aus Assets ab. Dadurch können Sie Assetdaten in die Ergebnisse einbeziehen.

SELECT
ASSETPROPERTY('Location',sourceip) as location,
COUNT(*) as 'event count'
FROM events
GROUP BY location
LAST 1 days

Die folgende Abfrage zeigt, wie Sie erweiterte Suchvorgänge und die Überwachung der Benutzeridentität im Assetmodell verwenden können.

Die Funktion AssetUser ruft den Benutzernamen aus der Assetdatenbank ab.

SELECT 
APPLICATIONNAME(applicationid) as App,
ASSETUSER(sourceip, now()) as srcAssetUser,
COUNT(*) as 'Total Flows'
FROM flows
WHERE srcAssetUser IS NOT NULL
GROUP BY App, srcAssetUser
ORDER BY "Total Flows" DESC
LAST 3 HOURS

Funktion "Network LOOKUP" (Netzsuche)

Mit der Funktion Network LOOKUP können Sie den Netznamen abrufen, der einer IP-Adresse zugeordnet ist.

SELECT NETWORKNAME(sourceip) as srcnet,
NETWORKNAME(destinationip) as dstnet
FROM events

Funktion "Rule LOOKUP" (Regelsuche)

Mit der Funktion Rule LOOKUP können Sie den Namen einer Regel anhand ihrer ID abrufen.

SELECT RULENAME(123) FROM events

Die folgende Abfrage gibt Ereignisse zurück, die einen bestimmten Regelnamen ausgelöst haben.

SELECT * FROM events
WHERE RULENAME(creEventList) ILIKE '%my rule name%'

Angepasste Eigenschaft

Sie können auf die angepassten Eigenschaften für Ereignisse und Datenflüsse zugreifen, wenn Sie die Option Erweiterte Suche verwenden.

Die folgende Abfrage verwendet die angepasste Eigenschaft "MyWebsiteUrl", um Ereignisse nach einer bestimmten Web-URL zu sortieren:
SELECT "MyWebsiteUrl", * FROM events ORDER BY "MyWebsiteUrl"