Decoder: Konfigurieren von Timeouts für die Sitzungsteilung

Document created by RSA Information Design and Development on May 9, 2018
Version 1Show Document
  • View in full screen mode
 

Das Standardverhalten des Decoder besteht darin, Sitzungen automatisch zu beenden, die eine konfigurierte Größe überschreiten oder über einen bestimmten Zeitraum inaktiv waren. Wenn die Sitzung aufgrund eines Timeouts beendet wird, werden alle nachfolgenden, in dieser Sitzung empfangenen Pakete in einer neuen Sitzung gespeichert. Sie können die Auswirkungen der Sitzungsteilung aufgrund langer Inaktivität zwischen Paketen mit folgender Vorgehensweise abmildern.

Wenn eine Decoder-Sitzung eine konfigurierte Größe überschreitet (standardmäßig 32 MB, /decoder/config/assembler.max.size) oder über einen bestimmten Zeitraum inaktiv war, wird die Sitzung geteilt. Die NetWitness Suite verfügt über das vorherige Paket und das nächste Paket und kann den Sitzungsstatus vom ersten Sitzungsfragment an das nachfolgende Sitzungsfragment weitergeben.

Jedes Sitzungsfragment ist so gekennzeichnet (mit den Metadaten session.split), dass es identifiziert und mit anderen Fragmenten der tatsächlichen Netzwerksitzung verknüpft werden kann. Durch die in der ersten Sitzung ermittelte Richtung wird die Häufigkeit von Fragmenten mit umgekehrter Richtung reduziert.

Wenn zwischen Paketen eine so große Pause auftritt, dass keine Pakete für die Sitzung mehr im Arbeitsspeicher vorhanden sind, wird die Sitzung aus dem Decoder entfernt. Wenn anschließend ein nachfolgendes Paket eingeht, wird eine neue Sitzung erstellt, die keinen Kontext der vorherigen Sitzung enthält. Das Problem ist die fehlende Möglichkeit, eine Sitzung fortzuführen, wenn die Lücke zwischen den Paketen einer Sitzung größer ist als die Pakete, die gepuffert werden können (basierend auf verfügbarem Arbeitsspeicher und Timeoutkonfigurationen). Nachdem das letzte Paket einer Sitzung aus dem Arbeitsspeicher entfernt wurde, wird auch die Sitzung entfernt und mit ihr der notwendige Kontext für eine konsistente Richtung.

Es gibt zwei Timeouteinstellungen in einem Packet Decoder: /decoder/config/assember.timeout.session und assembler.timeout.packet. Standardmäßig gilt für beide 60 Sekunden. Die Einstellung assembler.timeout.session steuert, wie lange sich eine Sitzung im Assembler befinden kann, ohne ein weiteres Paket zu empfangen. Die Einstellung assembler.timeout.packet steuert, wie lange eine Sitzung in der Warteschlange bleiben kann, bevor sie analysiert wird. Wenn die Sitzung vor diesem Timout aus dem Assembler entfernt wird, wird sie automatisch analysiert.

Das Sitzungstimeout ist die Anzahl der Sekunden, seitdem dieser Sitzung das letzte Paket hinzugefügt wurde. Daher wird dieses Timeout jedes Mal zurückgesetzt, wenn der Sitzung ein Paket hinzugefügt wird. Das Pakettimeout ist die Anzahl der Sekunden, seitdem das erste Paket für diese Sitzung hinzugefügt wurde (das ist das Paket, das die Sitzung erstellt hat). Dies wird niemals zurückgesetzt und sobald das Timeout abläuft, wird die Sitzung analysiert.

Der wichtige Punkt ist hier, dass eine Sitzung analysiert werden kann und dennoch im Assembler verbleiben kann. Einer Sitzung im Assembler können noch Pakete hinzugefügt werden, selbst wenn sie bereits analysiert wurde. Pakete, die hinzugefügt werden, nachdem die Sitzung analysiert wurde, werden nie von Parsern verarbeitet, aber an die Sitzung angehängt. Sie können durch einen nachfolgenden Aufruf von /sdk content oder /sdk packets angezeigt werden.

Nachdem eine Sitzung analysiert wurde, werden die Sitzung UND seine Metadaten auf die Festplatte geschrieben. An diesem Punkt können sie aggregiert und und von sdk-Befehlen „gesehen“ werden. Pakete werden in der Reihenfolge der Erfassung geschrieben und nicht entsprechend der Sitzung, zu der sie gehören, neu sortiert. Außerdem werden sie auch nicht unbedingt geschrieben, wenn die Sitzung und die Metadaten geschrieben werden.

Sie können beide Timeout-Nodes (/decoder/config/assembler.timeout.session und assembler.timeout.packet) deaktivieren, indem Sie sie im Ansicht zum Durchsuchen zu einem Service auf Null setzen.

Wenn beide Timeouts deaktiviert sind, werden die Sitzungen nach wie vor aufgrund von Dauer oder Größe geteilt. Dennoch überwacht der Decoder den Netzwerkstream, solange er über ausreichend Arbeitsspeicher verfügt. Wenn in einem Netzwerkstream mehr Pakete eingehen, fügt der Decoder den nachfolgenden Sitzungen split-Metaelemente hinzu. Durch eine Kombination aus den split Metadaten und dem Streamschlüssel, ist es möglich, den Netzwerkstream aus mehreren Sitzungen rekonstruieren.

Die Zeitdauer, für die Sitzungen überwacht werden können, wird durch die Anzahl der auf dem Decoder verfügbaren Sitzungspooleinträge beschränkt, und daher variiert das tatsächliche Zeitfenster entsprechend der Geschwindigkeit, mit der neue Sitzungen hinzugefügt werden. Wenn neue Sitzungen mit hoher Geschwindigkeit hinzugefügt werden, verringert sich die Größe des Zeitfensters. Die Größe des Pools wird mit dem Konfigurationseintrag /decoder/config/assembler.session.pool festgelegt. Hierdurch wird die maximale Anzahl der Sitzungen definiert, die jeweils gleichzeitig überwacht werden können.

In der Statistik /decoder/stats/assembler.timespan können Sie sehen, wenn der Decoder keine Sitzungsteilungen mehr überwacht, da die Aufnahmerate zu hoch ist und der Decoder nicht mehr über genügend Arbeitsspeicher verfügt. Diese Statistik zeigt die Anzahl der überwachten Sekunden in der Sitzungstabelle. Dies ist das effektive Zeitfenster, in dem der Decoder Sitzungen verknüpfen kann. Im normalen Betrieb entspricht diese Statistik dem Wert von /decoder/config/assembler.timeout.session, aber bei der Ausführung im Modus „Zeitaufteilung“ wächst oder schrumpft die Statistik /decoder/stats/assembler.timespan abhängig von der Aufnahmerate.

Um den Modus „Zeitaufteilung“ zu konfigurieren, legen Sie die folgenden Konfigurationsparameter fest und starten Sie den Decoder neu:

  1. Wählen Sie in der Ansicht „Administration“ > „Services“ den Decoder-Service und Menü „Aktionen“ > Ansicht > Durchsuchen aus.
  2. Wählen Sie in der Ansicht zum Durchsuchen zu einem Service-Ansicht den Eintrag decoder > config.
    Dies ist ein Beispiel für die Ansicht „Durchsuchen“ des Decoders.
  3. Klicken Sie neben dem Parameter in die Spalte Wert und legen Sie diese beiden Parameter fest:
    /decoder/config/assembler.session.flush = 0
    /decoder/config/assembler.timeout.session = 0
  4. Um zu prüfen, ob der Decoder eventuell keine Sitzungsteilungen mehr überwacht, da die Aufnahmerate zu hoch ist und der Decoder nicht mehr über genügend Arbeitsspeicher verfügt, schauen Sie sich die Statistik /decoder/stats/assembler.timespan an: Wählen Sie in der Ansicht zum Durchsuchen zu einem Service decoder > stats aus.
    Dies ist ein Beispiel für die Ansicht „Durchsuchen“ des Decoders.
You are here
Table of Contents > Decoder und Log Decoder – zusätzliche Verfahren > Konfigurieren von Timeouts für die Sitzungsteilung

Attachments

    Outcomes