Lernen Sie das Linux -System Auditing mit Auditd Tool auf CentOS/RHEL

Lernen Sie das Linux -System Auditing mit Auditd Tool auf CentOS/RHEL

Systemprüfung bezieht sich einfach auf eine einheitliche Analyse eines bestimmten gezielten Systems: Eine Prüfung besteht aus einer Untersuchung der verschiedenen Teile, die dieses System umfassen, mit kritischer Beurteilung (und Tests, falls erforderlich) in verschiedenen Bereichen von Interesse.

Lesen Sie auch: Lynis - Sicherheitsprüfungs- und Scan -Tool für Linux -Systeme

Eines der kritischen Subsysteme auf Rhel/Centos Das Linux -Prüfungssystem, das allgemein bekannt als Auditd. Es implementiert ein Mittel, um sicherheitsrelevante Informationen zu einem System zu verfolgen: Es verwendet vorkonfigurierte Regeln, um große Mengen an Informationen über Ereignisse, die im System stattfinden.

Es kann Informationen wie Datum und Uhrzeit, Typ und Ergebnis eines Ereignisses aufzeichnen. Benutzer, die das Ereignis verursacht haben, alle Änderungen an Dateien/Datenbanken; Verwendung von Systemauthentifizierungsmechanismen wie PAM, LDAP, SSH und anderen.

Auditd Registrieren Sie auch alle Änderungen an den Audit-Konfigurationsdateien oder alle Versuche, auf Audit-Protokolldateien zuzugreifen, sowie alle Bemühungen, Informationen in oder aus dem System zu importieren oder zu exportieren, sowie viele andere Sicherheitsanlagen.

Warum ist das Linux -Audit -System wichtig??

  1. Es erfordert keine externen Programme oder Prozesse, um auf einem System auszuführen, das es selbstständig macht.
  2. Es ist sehr konfigurierbar, damit Sie alle gewünschten Systemvorgänge anzeigen können.
  3. Es hilft bei der Erkennung oder Analyse potenzieller Kompromisse eines Systems.
  4. Es kann als unabhängiges Erkennungssystem arbeiten.
  5. Es kann mit Intrusionserkennungssystemen funktionieren, um die Intrusion -Erkennung zu ermöglichen.
  6. Es ist ein wichtiges Instrument für die Prüfung der Forensikuntersuchungen.

Die Linux -Prüfsystemkomponenten

Das Prüfungssystem verfügt über zwei Kernkomponenten, nämlich:

  • Benutzer-Raum-Anwendungen und Dienstprogramme/Tools und
  • Kernel-Seite-Systemanrufverarbeitung-Dies akzeptiert Systemaufrufe von Benutzer-Raum-Anwendungen und überträgt sie über drei Arten von Filtern, nämlich: Benutzer, Aufgabe, Ausfahrt, oder ausschließen.

Der wichtigste Teil ist der Benutzerraum Audit -Daemon (Auditd) die Informationen basierend auf vorkonfigurierten Regeln aus dem Kernel sammelt und Einträge in einer Protokolldatei generiert: Das Standardprotokoll ist /var/log/pdit/prüfung.Protokoll.

Zusätzlich die audispd (Audit -Dispatcher -Daemon) ist ein Ereignis -Multiplexor, der mit interagiert mit Auditd und sendet Ereignisse an andere Programme, die Echtzeit -Ereignisverarbeitung durchführen möchten.

Es gibt eine Reihe von Benutzerraum Tools zum Verwalten und Abrufen von Informationen aus dem Prüfungssystem:

  • Auditctl - Ein Dienstprogramm zur Kontrolle des Prüfungssystems des Kernels.
  • Aussearch - Ein Dienstprogramm zum Durchsuchen von Audit -Protokolldateien für bestimmte Ereignisse.
  • Aureport - Ein Dienstprogramm zum Erstellen von Berichten über aufgezeichnete Ereignisse.

So installieren und konfigurieren Sie das Prüftool in RHEL/CentOS/Fedora

Stellen Sie zunächst sicher, dass das Audit -Tool auf Ihrem System mit dem RPM -Befehl und dem GREP -Dienstprogramm wie folgt installiert ist:

# RPM -qa | GREP -Audit 
Überprüfen Sie das Auditd -Tool

Wenn Sie nicht über die oben genannten Pakete installiert sind, führen Sie diesen Befehl als Root -Benutzer aus, um sie zu installieren.

# YUM Installieren Sie Audit 

Als nächstes prüfen Sie, ob Auditd IS aktiviert und ausgeführt, geben Sie die folgenden SystemCTL -Befehle auf dem Terminal aus.

--------------- Auf CentOS/rhel 7 --------------- # SystemCTL IS-fähiges Auditd # SystemCTL Status Auditd # SystemCTL START AUDITD [START] # systemctl aktivieren auditd [enable] --------------- Auf CentOS/rhel 6 --------------- # Service Auditd Status # Service Auditd Start [Start] # Chkconfig Auditd auf [aktivieren] 
Überprüfen Sie den Status des Auditd -Tools

Jetzt werden wir sehen, wie man konfiguriert Auditd Verwenden der Hauptkonfigurationsdatei /etc/audit/prüfungd.Conf. Mit den Parametern hier können Sie steuern, wie der Dienst ausgeführt wird, z. B. das Definieren des Speicherorts der Protokolldatei, die maximale Anzahl von Protokolldateien, das Protokollformat, die Umstellung mit vollständigen Festplatten, Protokollrotation und vielen weiteren Optionen.

# VI/etc/prüfung/prüfung.Conf 

Aus der folgenden Probenausgabe sind die Parameter selbsterklärend.

Auditd -Konfigurationsdatei

Prüfungsregeln verstehen

Wie wir bereits erwähnt haben, Auditd Verwendet Regeln, um bestimmte Informationen aus dem Kernel zu sammeln. Diese Regeln sind im Grunde genommen Auditctl Optionen (siehe Mannseite), die Sie in der Regeln vor der Konfiguration konfigurieren können /etc/prüfung/Regeln.D/Audit.Regeln Datei (in CentOS 6 verwenden Sie die /etc/audit/prüfung.Regeln Datei), damit sie beim Start geladen werden.

Es gibt drei Arten von Prüfungsregeln, die Sie definieren können:

  • Kontrollregeln - Diese ermöglichen die Änderung des Verhaltens des Prüfungssystems und einige seiner Konfigurationen.
  • Dateisystemregeln (Auch als Dateiwächer bezeichnet) - Aktivieren Sie die Prüfung des Zugriffs auf eine bestimmte Datei oder ein Verzeichnis.
  • Systemaufrufregeln - Ermöglicht die Protokollierung von Systemanrufen, die von jedem Programm getätigt wurden.

Öffnen Sie nun die Hauptkonfigurationsdatei für die Bearbeitung:

# vi/etc/prüfung/Regeln.D/Audit.Regeln 

Beachten Sie, dass der erste Abschnitt dieser Datei enthalten ist Kontrollregeln. Fügen Sie dann Ihre Prüfungsregeln (Dateibeobachtungen und Systemanrufregeln) im mittleren Abschnitt hinzu, und schließlich enthält der letzte Abschnitt Unveränderlichkeitseinstellungen, die auch Kontrollregeln sind.

Beispiele für Auditd -Kontrollregeln

-D #Removes Alle vorherigen Regeln -B 3074 #define Puffergröße -f 4 #Panic auf Fehler -r 120 #create höchstens 120 Prüfmeldungen pro Sekunde 

Beispiele für Auditd -Dateisystemregeln

Sie können Datei Uhren mit dieser Syntax definieren:

-w/path/to/Datei/oder/Verzeichnis -p Berechtigungen -k KEY_NAME 

Wo die Option:

  • w - wird verwendet, um eine Datei oder ein Verzeichnis anzugeben, das Sie übersehen können.
  • P - Berechtigungen angemeldet werden, R - Für Lesenzugriff, w - Für Schreibzugriff, X - zum Ausführen von Zugriff und A - Für die Änderung der Datei- oder Direktorattribut.
  • -k - Ermöglicht das Festlegen einer optionalen Zeichenfolge, um zu identifizieren, welche Regel (oder eine Reihe von Regeln) eine bestimmte Protokolleingabe erstellt hat.

Diese Regeln ermöglichen die Prüfung, Ereignisse zu beobachten, die Änderungen an diesen kritischen Systemdateien vornehmen.

-w /etc /passwd -p wa -k passwd_changes -w /etc /gruppe -p wa -k Group_changes -W /etc /Shadow -p Wa -k Shadow_Changes -W /etc /sudoers -p wa -k sudoers_changes 

Beispiele für Auditd -System -Anrufregeln

Sie können eine Systemaufrufregel mit dem folgenden Formular festlegen:

-Eine Aktion, Filter -S system_call -f field = value -k key_name 

Wo:

  • Aktion - hat zwei mögliche Werte: immer oder nie.
  • Filter - Gibt an, dass der Kernel-Regeln-Matching-Filter (Aufgabe, Beenden, Benutzer und Ausschluss) auf das Ereignis angewendet wird.
  • Systemanruf - Systemanrufname.
  • Feld - Gibt zusätzliche Optionen wie Architektur, PID, GID usw. an, um die Regel zu ändern.

Hier sind einige Regeln, die Sie definieren können.

-A Immer, beenden -f arch = b64 -s attopex -s setTimeofday -k time_change -a immer, beenden -s Sethostname -s setDomainname -k system_locale 

Fügen Sie dann zuletzt die Unveränderlichkeitseinstellungen am Ende der Datei hinzu, zum Beispiel:

-e 1 #Enable Auditing -E 2 #Machen Sie die Konfiguration unveränderlich -Rebart ist erforderlich, um die Prüfungsregeln zu ändern 
Beispiel für Auditd -Regeln Konfigurationsdatei
Auditd Rules -Konfigurationsdatei

So setzen Sie Prüfungsregeln mithilfe von AuditCtl -Dienstprogramme

Alternativ senden Sie die Optionen an die Optionen Auditd Während es läuft, nutzen Sie die Auditctl Wie in den folgenden Beispielen. Diese Befehle können Regeln in der Konfigurationsdatei überschreiben.

Um alle aktuell geladenen Prüfungsregeln aufzulisten, bestehen Sie die -l Flagge:

# Auditctl -l 

Versuchen Sie als nächstes, ein paar Regeln hinzuzufügen:

# auditctl -w /etc /passwd -p wa -k passwd_changes # auditctl -w /etc /gruppe -p wa -k Group_changes # auditctl -w /etc /sudoers -p wa -k sudoers_changes # auditctl -l -l 
Fügen Sie Auditd -Regeln mit AuditCTL hinzu

Auditd -Protokolldateien verstehen

Alle Prüfmeldungen werden in aufgezeichnet /var/log/pdit/prüfung.Protokoll Datei standardmäßig. Um das Protokolleintragsformat zu verstehen, laden wir eine Regel und überprüfen die nach einem Ereignis erzeugte Protokolleingabe, die der Regel entspricht.

Angenommen, wir haben ein geheimes Backups -Verzeichnis, protokolliert diese Prüfungsregel alle Versuche, auf dieses Verzeichnis zuzugreifen oder zu ändern:

# Auditctl -W/Backups/Secret_files/-p rwa -k secret_backup 

Versuchen Sie nun, in einem anderen Systemkonto in das obige Verzeichnis zu ziehen und den Befehl LS auszuführen:

$ cd/backups/secry_files/$ ls 

Der Protokolleintrag sieht so aus.

Überprüfen Sie die Prüfprotokolle auf Änderungen

Das obige Ereignis besteht aus drei Arten von Prüfungsunterlagen. Das erste ist Typ = syscall:

Typ = syscall msg = prüfung (1505784331.849: 444): Arch = C000003E SYSCALL = 257 Erfolg = Ja Exit = 3 A0 = ffffffffffffffff9c A1 = 8AD5C0 A2 = 90800 A3 = 0 Punkte = 1 ppid = 2191 PID = 2680 AUID = 1000 UID = 1000 GID = 1000 EUID = 1000 EUID = 1000 EUID = 1000 EUID = 1000 EUID = 1000 EUID suid=1000 fsuid=1000 egid=1000 sgid=1000 fsgid=1000 tty=pts1 ses=3 comm="ls" exe="/usr/bin/ls" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.C1023 KEY = "Secret_backup" 

Das zweite ist Typ = CWD.

Typ = CWD msg = Audit (1505784331.849: 444): cwd = "/backups/secry_files" 

Und der letzte ist Typ = Pfad:

Typ = Pfad msg = Audit (1505784331.849: 444): item = 0 name = "."Inode = 261635 Dev = 08: 01 Modus = 040755 OUID = 0 OGID = 0 RDEV = 00: 00 OBJ = CONCONDICED_U: Object_R: default_t: s0 objtype = normal 

Sie finden eine vollständige Liste aller Ereignisfelder (wie MSG, Bogen, SES usw.) und deren Bedeutungen in der Referenzsysteme zur Prüfungssysteme.

Das ist alles fürs Erste. Im nächsten Artikel werden wir untersuchen. Wenn Sie Fragen haben, erreichen Sie uns bitte über den Kommentarbereich unten.