Daten aus der Ariel-Datenbank entfernen
Das ACP-Tool (Ariel Copy) liest eine Ariel-Datenbank, wendet Kriterien an und schreibt die gefilterten Daten an eine andere Position um. Dieses Tool ist nützlich für die Einhaltung der Datenschutz-Grundverordnung (DSGVO). Sie möchten beispielsweise alle Daten entfernen, die mit einem bestimmten Benutzernamen oder einer bestimmten Quellen-IP-Adresse markiert sind.
Verwendung
Stellen Sie dem Tool die Datenbank (Ereignisse | Datenflüsse), die Start-und Endzeiten, die gefiltert werden müssen, die AQL-Abfrage (-q) oder die anzuwendende Kombination aus Schlüsselersteller und -wert (-k/-p), den Benutzer, der sie ausführen muss (-u) und das Zielverzeichnis (-d) zur Verfügung.
Das ACP-Tool liest die Ariel-Datenbank für die angegebenen Zeiten, wendet den Filter an und stellt alle Datensätze, die mit dem Filter übereinstimmen, in das angegebene Zielverzeichnis.
[root@m5arch06 templates]# /opt/qradar/bin/runjava.sh com.q1labs.ariel.io.ACP
data base name is required
Configured data bases:
flows
hc
simarc
events
simevent
usage: ACP -n events -d /store/new_ariel -b "2013/11/21 1:00:00" -e
"2013/11/21 4:00:00"
ACP -n events -d /store/new_ariel -b "2013/11/21 1:00:00" -e "2013/11/21
4:00:00" -q "username is not null and sourceip = '127.0.0.1'" -u admin
Options:
-n,--name data base name, for example -n events
-b,--begintime begin time, for example -t "2018/08/28 09:04",
optional, by default current system time
-e,--endtime end time, for example -t "2018/08/28 10:04",
optional, by default current system time
-d,--destination Destination directory i.e. /store/filtered_ariel/
-h,--help print this message
-k,--keycreator class for IKeyCreator
-p,--param optional parameter for IKeyCreator
-q,--query AQL 'where clause' to copy records
-u,--user username (default=admin)
-v,--testedvalue value to compare createKey with
[root@m5arch06 templates]#
Primer zur Ariel-Dateistruktur
Bevor wir weiter gehen, lassen Sie uns überprüfen, wie Ariel-Daten -Layout auf Platte sind. Ariel ist eine zeitreihenbasierte Datenbank. Ariel weiß nicht, welche Daten sich auf der Platte befinden, bis er sie durchsucht. Sie können Ariel-Daten zwischen Systemen kopieren, ohne dass sich dies auf die Ariel-Datenbank auswirkt. Ariel-Daten werden in Minutendatensätzen in einem Format ähnlich dem folgenden gespeichert:
/store/ariel/[events | flows ]/[records | payloads | md]/YYYY/MM/dd/hh/Ereignisse oder Datenflüsse ist der Name der Ariel-Datenbank
- Datensätze ist der normalisierte Ereignisdatensatz
- Nutzdaten sind die Rohnutzdaten, die den Datensätzen zugeordnet sind.
- Md sind die Hashsignaturen oder Nachrichtenauszüge (optional mit HMAC verschlüsselt) der Ariel-Daten.
Im Allgemeinen haben die Ariel-Datendateien die folgende Struktur:
identifier~Minute#_File#~UUID~UUID~RetentionBucketNumber
- events~5_0~35c5c6bddcb24578~ad5711e8c1337858~0
Dieser Datensatz stellt den normalisierten Ereignisdatensatz für die 5th -Minute und das 0th -Aufbewahrungsbucket (Standardbucket) dar.
- SourceIP~5_0~35c5c6bddcb24578~ad5711e8c1337858~0
Der Index sourceIP für die 5th Minute und das 0th Aufbewahrungsbucket (Standardbucket)
Im Verzeichnis payloads werden Dateien wie die folgenden angezeigt:
payload_events~5_0~35c5c6bddcb24578~ad5711e8c1337858~0Die unaufbereiteten Nutzdaten für die 5th -Minute und das 0th -Aufbewahrungsbucket (Standardbucket).
Im Verzeichnis md werden Dateien wie die folgende Datei angezeigt:
- events~5_0~35c5c6bddcb24578~ad5711e8c1337858~0.HMACSHA512
Die HMAC-SHA512 -Signatur für die normalisierten Ereignisdatensätze für das 5th Minuten-und 0th Aufbewahrungsbucket
- payload_events~5_0~35c5c6bddcb24578~ad5711e8c1337858~0.HMACSHA512
Die HMAC-SHA512 -Signatur für die unformatierten Nutzdaten für die 5th -Minute und das Aufbewahrungsbucket 0th .
Hinweis: Das ACP-Tool erstellt ein Verzeichnis namens hashes anstelle von md. Wenn Sie das Datei-Hashing oder das Integritätshashing aktiviert haben, achten Sie auf dieses Problem.
Beispiel-Entfernen von Ereignissen mit dem Benutzernamen 'root'
In diesem Beispiel sollen alle Ereignisse mit dem Benutzernamen root aus der Ariel-Ereignisdatenbank für einen Zeitraum zwischen 09:00 und 10:00 Uhr entfernt werden.
- Zuerst suchen wir und zeigen, was wir entfernen wollen.Der folgende Screenshot zeigt alle Ereignisse:
Abb. 1. Alle Veranstaltungen 
- Führen Sie anschließend das ACP-Tool aus:
[root@m5arch06 ~]# /opt/qradar/bin/runjava.sh com.q1labs.ariel.io.ACP -n events -b "2018/08/28 09:00:00" -e "2018/08/28 10:00:00" -q "username not like 'root'" -u admin -d /store/new_ariel AQL criteria: [username not like 'root'] User: admin Copying: [events] to /store/new_ariel Timeline from Tue Aug 28 09:00:00 NDT 2018 to Tue Aug 28 09:59:00 NDT 2018 Trying to copy dir: /store/ariel/events/records/2018/8/28/9[18-08-28,09:00:00] Reader started ... Processing interval /store/ariel/events/records/2018/8/28/9/events~59_0~13e6848042143d0~92f58da705b4b452~0[18-08-28,09:59:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~58_0~23b0a632f1df4d10~bbe50149b34453d8~0[18-08-28,09:58:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~57_0~745684fd0cca424c~a9857807a2952671~0[18-08-28,09:57:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~56_0~89c02507d81940c3~a54edd654c2ce796~0[18-08-28,09:56:00] …. … ... Processing interval /store/ariel/events/records/2018/8/28/9/events~4_0~2c48501471734615~b8ca3cb590a16e05~0[18-08-28,09:04:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~3_0~3e369b679aa64306~a97b95e8528a1a9b~0[18-08-28,09:03:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~2_0~4e370db759d44bd2~81f695b0164b5a66~0[18-08-28,09:02:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~1_0~cdbe9e25b9ee4dbd~982ef0da1ab7e85d~0[18-08-28,09:01:00] Processing interval /store/ariel/events/records/2018/8/28/9/events~0_0~ecd2e4bf6bbb425a~b2acfe04fda202a6~0[18-08-28,09:00:00] Reader stopped. Written 9507759 records, Skipped 2654 records Completed copying dir: /store/ariel/events/records/2018/8/28/9[18-08-28,09:00:00] [root@m5arch06 ~]#Der folgende Screenshot zeigt alle Ereignisse ohne den Benutzernamen Root :Abbildung 2. Alle Ereignisse mit Rootbenutzernamen
Der folgende Screenshot zeigt alle Ereignisse ohne den Benutzernamen Root .Abb. 3 Alle Ereignisse ohne Rootbenutzernamen 
Wie bereits erläutert, wurden alle Ereignisse von 09:00 bis 10:00 Uhr entfernt, die mit dem Stammelement username übereinstimmen. Mit dem ACP-Tool haben wir in unseren Kriterien angegeben, dass username NICHT root war.
Außerdem haben wir die gefilterten Datensätze im Verzeichnis /store/new_Ariel abgelegt.
- Ersetzen Sie die alten Ariel-Daten durch die neuen Ariel-Daten.
Im Verzeichnis /store/new_ariel (das Ziel, das wir in diesem Beispiel ausgewählt haben) können wir sehen, dass wir Daten im Wert von einer Stunde verarbeitet haben:
[root@m5arch06 new_ariel]# find /store/new_ariel -maxdepth 6 /store/new_ariel /store/new_ariel/events /store/new_ariel/events/hashes /store/new_ariel/events/hashes/2018 /store/new_ariel/events/hashes/2018/8 /store/new_ariel/events/hashes/2018/8/28 /store/new_ariel/events/hashes/2018/8/28/9 /store/new_ariel/events/records /store/new_ariel/events/records/2018 /store/new_ariel/events/records/2018/8 /store/new_ariel/events/records/2018/8/28 /store/new_ariel/events/records/2018/8/28/9 /store/new_ariel/events/payloads /store/new_ariel/events/payloads/2018 /store/new_ariel/events/payloads/2018/8 /store/new_ariel/events/payloads/2018/8/28 /store/new_ariel/events/payloads/2018/8/28/9 [root@m5arch06 new_ariel]#In diesem Beispiel wurden die Daten so ausgewählt, dass sie an Stundengrenzen angerechnet werden, um die Archivierung und Kopien zu vereinfachen (der Befehlmv kann verwendet werden). Wenn Ihre Daten nicht an Stundengrenzen anstehen, müssen Sie Datei für Datei umlagern.
- Archivieren Sie die alten Daten aus dem Verzeichnis ariel im Verzeichnis ariel_archive , indem Sie den folgenden Befehl eingeben:
[root@m5arch06 store]# mv /store/ariel/events/records/2018/8/28/9 /store/ariel_archive/events/records/2018/8/28/ [root@m5arch06 store]# mv /store/ariel/events/payloads/2018/8/28/9 /store/ariel_archive/events/payloads/2018/8/28/ [root@m5arch06 store]# mv /store/ariel/events/md/2018/8/28/9 /store/ariel_archive/events/hashes/2018/8/28/ [root@m5arch06 store]#Zu diesem Zeitpunkt ist die Stunde der Daten nicht durchsuchbar. Die Ariel-Datenbank kann sie nicht finden, da sich die Dateien nicht mehr in der Ariel-Datenbank befinden.
- Kopieren oder verschieben Sie die neuen Daten aus dem Verzeichnis new_ariel in das Verzeichnis ariel , indem Sie den folgenden Befehl eingeben:
[root@m5arch06 store]# cp -a /store/new_ariel/events/records/2018/8/28/9 /store/ariel/events/records/2018/8/28 [root@m5arch06 store]# cp -a /store/new_ariel/events/payloads/2018/8/28/9 /store/ariel/events/payloads/2018/8/28 [root@m5arch06 store]# cp -a /store/new_ariel/events/hashes/2018/8/28/9 /store/ariel/events/md/2018/8/28 [root@m5arch06 store]#Hinweis: Wir haben von hashes zu mdgewechselt. Lesen Sie den Hinweis im Abschnitt "Ariel file structure primer".Da wir die Suchvorgänge für diese Daten ausgeführt haben, bevor wir begonnen haben, entfernen wir diese Suchvorgänge, damit wir den Cursor-Cache nicht erhalten, wenn wir identische Suchvorgänge ausführen. Entfernen Sie die Suchen aus Suchergebnisse verwalten auf der Registerkarte Protokollaktivität .
- Führen Sie die Suche nach allen Daten von 09:00 bis 10:00 Uhr aus.
Abbildung 4. Neue Suche
Anmerkung: Die Gesamtergebnisse sind mit den Ergebnissen des Rootbenutzernamens identisch, die vor der Ausführung des ACP-Tools erzielt wurden. - Suchen Sie nach dem Rootbenutzernamen.
Abbildung 5. Neue Suche nach Rootbenutzernamen
Anmerkung: Einige meiner Indizes wurden nicht neu generiert. Die regulären minutenweise eigenschaftsbasierten Indizes werden erstellt, aber die Superindizes werden nie generiert und die Freitextsuche /Lucene wird auch nicht generiert. (Bekanntes Problem) Glücklicherweise haben wir für uns das Tool /opt/qradar/bin/ariel_offline_indexer.sh !
Syntax für das Offline-Indexer-Script
Verwenden Sie /opt/qradar/bin/ariel_offline_indexer.sh , um die Superindizes zu generieren.
Usage is:
[root@m5arch06 store]# /opt/qradar/bin/ariel_offline_indexer.sh --help
usage: options
-R,--repair re-build corrupted super indices
-d,--duration time duration to look files for in minutes, for
example -d 5
-n,--name ariel data base name, for example -n events
-t,--endtime end time, for example -t "2018/08/28 11:00",
optional, by default current system time
-F,--renamefrom rename from (internal use)
-L,--light load minimal QRadar frameworks
-T,--renameto rename to (internal use)
-V,--validate validate super indices
-a,--auto backfill all active indexes
-b,--batchmode run in batch mode with options in a file
-f,--fts create free text search indices
-h,--help print this message
-k,--key property java class name
-l,--list list all enabled indices from the configuration
-p,--param optional paramiter for property (key creator
construction)
-r,--remove remove indices for a property
-s,--superindices create super indices from the minute indices
-v,--verbose verbose (optional, default = false)
-w,--threads maximum number of threads to produce minute indices
if requested, default is 48
[root@m5arch06 store]#
[root@m5arch06 store]# /opt/qradar/bin/ariel_offline_indexer.sh -n events -t "2018/08/28 10:00" -d 60 -f -s
2018/08/28 11:04 Running command [-n, events, -t, 2018/08/28 10:00, -d, 60, -f, -s] ...
Trying to index dir: /store/ariel/events/records/2018/8/28/9/lucene[18-08-28,09:00:00]
Completed indexing dir: /store/ariel/events/records/2018/8/28/9/lucene[18-08-28,09:00:00]
All done in 0:02:39.840
[root@m5arch06 store]#
Jetzt sind unsere Freitextindizes und Superindizes gefüllt.