Frage:
Wie kann verhindert werden, dass Administratoren von ihrer eigenen Aktivität aus auf Protokolle zugreifen?
lalebarde
2018-09-21 22:22:16 UTC
view on stackexchange narkive permalink

Die Idee wäre, einen Angreifer zu verhindern, der ein Root- / Administratorkonto gestohlen oder eskaliert hat, um seine eigenen Aktivitäten zu löschen oder sogar die Spuren dessen zu lesen, was er tut. Nehmen wir an, wir arbeiten unter Linux, protokollieren mit auditd, haben zentralisierte Protokolle und können MAC mit SELinux verwenden. Ich bin aber auch an Antworten unter Windows interessiert.

Eine Lösung wäre, allen Root-Konten den Zugriff auf die Protokolle zu verbieten. Protokolle werden nur von autorisierten Prozessen auf bestimmten Servern aus logrotate, syslog und allen SIEM-Inhalten verwaltet. Daher kann nur der SOC die Protokolle der Administratoren lesen und analysieren. Nur ein Bereinigungsprozess kann alte Protokolle löschen. Kann jemand bestätigen, dass dies machbar ist?

Ist es möglich, etwas Flexibleres zu haben, bei dem Administratoren mit eigenen Root-Rechten die Protokolle anderer Root-Konten lesen können?

Die verallgemeinerte Version der Antworten: * Jedes Protokoll sollte an einem Ort erstellt werden, der für die protokollierte Entität nicht erreichbar ist *.Bei Linux-Roots bedeutet dies hauptsächlich die Remote-Protokollierung auf anderen Servern.So kann er das Protokoll ausschalten, aber seine Ablaufverfolgung vorher nicht verbergen (einschließlich des Ausschaltens der Protokollierung), es sei denn, er macht es sehr klug.
`*. * / dev / lp0`.
Windows hat eine Version von RBAC.Ich bin kein Windows-Typ, daher müssen Sie die Details selbst recherchieren, aber es könnte sich lohnen, dies als Alternative zu überprüfen.
Ich bin damit einverstanden, dass Protokolle zentralisiert werden.Was ist mit meiner flexiblen Anfrage, wenn Sie jedes von auditd bereitgestellte Administratorereignis in einer Protokolldatei abrufen oder kopieren, die diesem Administratorkonto zugeordnet ist, und den Zugriff auf diese Protokolldateien mit einer Richtlinie verwalten, die verhindert, dass ein Administrator mithilfe von SELinux auf seine Protokolle zugreift?Das Abrufen oder Kopieren würde beispielsweise durch einen 1'-Cron-Job durchgeführt.
Mit der Tatsache, dass Sie bereits über eine zentralisierte Protokollierung verfügen, sind die restlichen Details weniger sinnvoll.
Warum?Administratoren können normalerweise auf den zentralen Protokollserver zugreifen.Das Verhindern, dass ein Administrator auf seine eigenen Traces zugreift oder diese ändert, ist selbst mit ACL und SELinux nicht offensichtlich.Ihre Antwort §2 sieht richtig aus.Ein detailliertes Beispiel wäre willkommen.
Ein Administrator eines Servers hat nicht automatisch Zugriff auf irgendetwas auf dem Protokollserver.Wenn Sie über die Einschränkung des Zugriffs des Stammbenutzers des Protokollservers auf den Protokollserver sprechen, ist Ihre Beschreibung der Tatsache, dass Ihre Protokolle zentralisiert sind, umstritten.Und selbst meine vorgeschlagene Antwort unten ist nutzlos.Es scheint wirklich so, als hätten Sie die grundlegenden Aspekte Ihrer Frage geändert, nachdem Sie Antworten erhalten haben.
Nein, in der Erstbeschreibung war mir klar, dass die Protokolle zentralisiert waren: _ "Protokolle werden verwaltet ..... auf bestimmten Servern" _.Aber es sieht so aus, als hätte ich mich geirrt.Ich schlage vor, meine EDIT zu entfernen, eine der Antworten auszuwählen und eine neue Frage auf dem Protokollserver zu öffnen.Was denkst du ist das Beste?
Sieben antworten:
schroeder
2018-09-21 23:01:14 UTC
view on stackexchange narkive permalink

Die akzeptierte Lösung hierfür besteht darin, die Protokolle nicht lokal, sondern auf einem Protokollserver zu speichern. Sobald die Protokolle vorhanden sind, können Sie den Zugriff nach Belieben einschränken oder einschränken.

In einigen Protokollserver- / Aggregatorlösungen können Sie einen Benutzer daran hindern, Einträge anzuzeigen, die Verweise auf bestimmte Daten enthalten (z. B. deren Benutzerkonten oder Computer-IPs). Dies bedeutet, dass Sie Administratoren ermöglichen können, andere Administratoraktivitäten anzuzeigen, jedoch nicht ihre eigenen.

Normalerweise möchten Sie Warnungen innerhalb des Protokollservers / Aggregators platzieren, um sie auszulösen, wenn Protokolle von einem Computer nicht mehr eingehen oder eingehen Reduziert unter bestimmte Schwellenwerte, um festzustellen, ob ein lokaler Administrator verhindert hat, dass die Protokolle an den Protokollserver / Aggregator gesendet werden.

Syslog-Server, SIEMs, Protokollaggregatoren, ELK-Stapel usw. Es gibt zahlreiche Optionen, die Sie erkunden können.

Meine Lieblingslösung der alten Schule.Füllen Sie den Datenträger aus, auf dem die Protokollierung durchgeführt wird.Wenn diese Festplatte nicht mehrere zehn TB groß ist, werde ich sie in kurzer Zeit mit Dummy-Protokollen füllen.
Ich dachte, die alte Lösung für sichere Protokolle sei ein Zeilendrucker ...
Dies wirft natürlich nur die Frage auf: "Wie partitioniere ich Berechtigungen in einem verteilten System?"Das ist meiner Meinung nach weitaus interessanter.
Die Protokollierungssoftware @Joshua drosselt häufig übermäßig ausgelöste Protokolle und priorisiert Meldungen auf Notfall- oder Alarmstufe.Es ist schwierig, die Festplatte zu füllen, indem Sie eine Aktion spammen, die ein Protokoll erstellt (z. B. das Schreiben in einen veralteten procfs-Eintrag). Wenn Sie nicht über root verfügen, können Sie die gesamte Festplatte ohnehin nicht füllenEin gewisser zusätzlicher Speicherplatz ist für Dämonen (wie das Protokollieren von Dämonen) reserviert, die zumindest auf bestimmten Dateisystemen als Root ausgeführt werden.
@forest: Der Trick ist gezielt zum Entfernen von Fernprotokollierungssystemen geeignet.Bei lokalen funktioniert es weniger gut, da Sie wirklich root benötigen, um Protokolleinträge mit lokalen Protokollierern zu fälschen.
@Paul obwohl [Cliff Stoll mit Zeichendruckern und Terminals auskommen musste] (https://en.wikipedia.org/wiki/The_Cuckoo%27s_Egg)
@schroeder ein konkretes Beispiel Ihres §2 mit einer Standard-Log-Server / Aggregator-Lösung wäre bitte willkommen
@lalebarde Splunk möchte kein bestimmtes Produkt bewerben und kann dies tun.Ich weiß, dass die Logik auch von anderen Produkten verwendet werden kann.Wenn das Produkt beispielsweise Kreditkartennummern oder nationale ID-Nummern maskieren kann, kann es den Benutzerzugriff auf bestimmte Daten (wie Benutzernamen) blockieren.
Tim Brigham
2018-09-21 23:02:11 UTC
view on stackexchange narkive permalink

Alle Protokolle auf einem gefährdeten Host sind verdächtig. Sie benötigen eine zentralisierte Protokollierungsplattform, entweder einen zentralen Syslog-Server / splunk / logrhythm / was auch immer. Führen Sie einen anderen Satz von Administratoren und Konten. Das ist die ganze Idee.

Sobald Sie eine Plattform eingerichtet haben, können Sie die Rechte zum Anzeigen ihrer Aktionen delegieren, entweder ihre eigenen oder andere Administratoren - können ausgeführt werden. Wir hatten Rechte, bestimmte Protokollquellen zu lesen und Hosts zu delegieren.

iBug
2018-09-23 06:28:35 UTC
view on stackexchange narkive permalink

Wenn ein Angreifer hohe Berechtigungen auf einem Computer erworben hat, ist der gesamte Computer nicht mehr vertrauenswürdig , geschweige denn Controller zu protokollieren.

Ein Remote-Protokollierungsserver ist hier die einzige Option. Details können jedoch variieren. Sie können Protokolle verwalten und Zugriffskontrollen sicherer verwalten als die lokalen Protokolle.

Ángel
2018-09-23 04:16:51 UTC
view on stackexchange narkive permalink

Der erste Schritt besteht darin, die Protokolle an einen anderen Server zu senden, damit dieser Protokollserver diese Protokolleinträge hat, nachdem der erste Server kompromittiert wurde (und somit ihre Protokolle geändert werden könnten). Und dieser Server kann (sollte) strenger geschützt werden.

Dennoch muss jemand in der Lage sein, diesen Server zu verwalten, wenn auch nur, damit der Server aktualisiert werden kann! P. >

Möglichkeiten, wie Sie die Protokolle auf diesem Server zusätzlich schützen können:

  • Für jede (nicht triviale) Aktion sind mehrere Administratoren erforderlich (z. B. eingeführte Befehle erfordern die Bestätigung von N Administratoren)
  • Die Protokolle können in einem Merkle-Baum mit Links zu früheren Protokollen verknüpft werden, sodass sich das Entfernen oder Ändern eines Eintrags auf spätere auswirken würde¹
  • Der Hash des Das aktuelle Protokoll kann an eine externe Partei gesendet werden (von einem Zeitstempelserver, einem Partnerunternehmen oder einfach an einen Twitter-Feed²).

¹ Wenn Sie argumentieren, dies zu verwenden, kann dies der Fall sein Verkaufen Sie besser, um anzugeben, dass hierfür die Blockchain-Technologie verwendet wird.

² Oder wenn die Protokolle selbst nicht vertraulich sind, können Sie sogar einige Protokollserverereignisse klarstellen: "jdoe angemeldet den Protokollserver und führen Sie rm -rf / "

aus
Eine häufig zitierte Methode zum Veröffentlichen des Protokoll-Hashs besteht heutzutage darin, den Hash in einer vorhandenen öffentlichen Blockchain zu veröffentlichen, die beliebige Nachrichten wie Bitcoin zulässt.Dadurch ist das Protokoll so manipulationssicher wie die Blockchain selbst.Beachten Sie jedoch, dass dies immer noch nur nicht nachweisbare Manipulationen verhindert, aber nicht die Zerstörung des Protokolls verhindert.Dafür benötigen Sie eine ordnungsgemäße Sicherung.
Was sind die konkreten Werkzeuge hinter Ihren Lösungen, insbesondere die Mehrfachadministratoren und Merkle-Baum-Tools?
Lie Ryan
2018-09-23 08:07:34 UTC
view on stackexchange narkive permalink

Einige Möglichkeiten zum Schutz von Protokollen vor dem Administrator:

  • Remote-Protokollierung auf einem Computer, der nicht vom betreffenden Administrator gesteuert wird
  • Schreiben Sie das Protokoll in einen Schreib- Wenn ein Medium (z. B. Bluray Recordable) vorhanden ist, benötigen Sie möglicherweise auch eine Strategie, um ein Überfüllen des Mediums zu verhindern, z. B. das Trennen aller Administratoren, wenn die Protokolle bald voll sind.
  • Veröffentlichen Sie den Hash der Protokolle für eine Öffentlichkeit Blockchain erkennt Manipulationen, jedoch keine Protokollzerstörung.
  • erzwingt den Zugriff auf den Computer über einen Mitm-Server. Administratoren können nur über den Mitm-Server eine Verbindung zum verwalteten Computer herstellen, der alle Schlüssel- / Mauseingaben und den Bildschirm aufzeichnet / terminal output (entweder mit ssh mitm oder vnc / rdp mitm)
Einmal beschreibbare Medien sind ein logistischer Albtraum, aber eine einfache und effektive Lösung, um Änderungen an erfassten Protokollen zu verhindern (aber keinen Zugriff auf die Protokolle).Privilegierte Zugriffsserver sind eine großartige Lösung für den Administratorzugriff, helfen jedoch nicht, wenn ein Zugriff mit hohem Privileg auf das Ziel durch Zugriff mit niedrigem Privileg (Exploits) erreicht wird.
Würde die Bereitstellung eines Mitm-Servers die Angriffsfläche nicht zu stark erhöhen?Ist es einfach zu sichern?
lalebarde
2018-09-25 20:44:09 UTC
view on stackexchange narkive permalink

Eine Lösung besteht darin, eine Datendiode zu verwenden, um den Zugriff auf den zentralen Protokollkollektorserver zu schützen, auf den dann nur physisch zugegriffen werden kann, was leicht zu steuern ist. Darüber hinaus können zum besseren Schutz bestimmte individuelle Benutzerkonten erstellt werden.

Warum sollte eine Datendiode eine Lösung sein?Was ist das Problem bei der bidirektionalen Kommunikation mit dem Server, wenn auf dem Server Authentifizierungsprozesse ausgeführt werden?Eine Datendiode ist eine überentwickelte Lösung für diesen Anwendungsfall.
In der Tat ist es ein bisschen teuer
lalebarde
2018-10-02 14:43:34 UTC
view on stackexchange narkive permalink

Filter auditd-Protokolle mit rsyslog pro UID, um eine Datei pro UID zu erhalten. Dann kann SELinux angewendet werden, um eine beliebige Richtlinie zu implementieren, insbesondere um zu verhindern, dass ein Administrator auf seine eigenen Protokolle zugreift. Mit der hier vorgeschlagenen Lösung wird vermieden, dass ein unabhängiges Team von Administratoren auf die Protokolle auf den Protokollservern zugreifen muss, wenn Sie eine restriktive Richtlinie haben.

Wie von anderen gesagt, müssen Protokolle zentralisiert werden. Darüber hinaus darf der Zugriff auf diese zentralen Protokollserver nur mit lokalen Konten erfolgen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...