Decoder: (Optional) Konfigurieren der Paketfilterung auf Systemebene (BPF)

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

Sie können mit den Berkeley Packet Filters festlegen, welche Pakete und Protokolle von einem Decoder verarbeitet werden.

Berkeley Packet Filters (BPF) werden auf den Paketstream angewendet, bevor die Pakete auf den Decoder-Adapter zur Analyse kopiert werden. Dies ermöglicht das effiziente Verwerfen ungewollten Datenverkehrs. Diese verworfenen Pakete werden in keiner Decoder-Statistik berücksichtigt (Erfassungsrate, Paketverluste und gefilterte Pakete und Pakete gesamt).

Der Decoder unterstützt auch Paketfilterung auf Systemebene, die mithilfe der Syntax tcpdump/libpcap definiert wird. Die Angabe eines Libpcap-Filters kann das Paketvolumen basierend auf Attributen der Schicht 2 - Schicht 4 effizient reduzieren. Ein Libpcap-Filter eignet sich, wenn ein Decoder ein hohes Datenvolumen empfängt, das die physischen Ressourcen der Plattform belastet. In diesem Szenario verwirft der Decoder möglicherweise beständig Pakete und erfasst sehr viele Seiten (/decoder/stats/capture.pagefree ist hoch).
Hier ist ein Beispiel für einen libpcap-Filter, der nur Pakete behält, deren Quell- und Zieladresse nicht beide im Subnetz 10.21.0.0/16 liegen.
not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)
Eine vollständige Referenz der Syntax des Libpcap-Filters finden Sie auf den Hauptseiten für:

So fügen Sie einen Berkeley Packet Filter auf Systemebene hinzu:

  1. Navigieren Sie zu ADMIN > Services.
  2. Wählen Sie in der Ansicht „Administration Services“ einenDecoder-Service und Menü „Aktionen“ > Ansicht > Konfiguration aus.
    Die Ansicht Ansicht „Service-Konfiguration“ wird mit geöffneter Registerkarte „Allgemein“ angezeigt.
    Dies ist ein Beispiel für die Registerkarte „Allgemein“.
  3. Klicken Sie im Abschnitt Decoder-Konfiguration unter Adapter in das Feld neben Berkeley Packet Filter
  4. Geben Sie nur einen Filter in das Feld ein. Wenn Sie mehrere Elemente filtern möchten, verknüpfen Sie mehrere Ausdrücke mithilfe von and. Unten werden verschiedene Beispiele gezeigt.
    In der Benutzeroberfläche wird die Filterzeichenfolge validiert, während Sie sie eingeben.
  5. Klicken Sie zum Speichern des Filters auf Anwenden.
    Ist die Syntax korrekt, wird eine Bestätigungsmeldung angezeigt.
    Wenn die Syntax falsch ist, wird die Meldung Paketfilter ist ungültig angezeigt, gefolgt von einer entsprechenden Protokollmeldung auf dem Decoder:
    164474800     2015-May-01 19:03:08     warning     Decoder     Failed to parse filter ‘example_badrule': syntax error 
  6. Zum Aktivieren des Filters müssen Sie die Erfassung auf dem Decoder beenden und wieder starten:
    1. Wechseln Sie von der Ansicht Konfiguration zur Ansicht System.
    2. Klicken Sie auf Erfassung beenden.
    3. Klicken Sie auf Erfassung starten.
      Der aktive Filter wird in den Decoder-Protokollen angezeigt.

Beispiele

Es folgen einige Beispiele für Filter:

  • Verwerfen von Paketen zu oder von Adressen im 10.21.0.0/16-Subnetz:
    not (net 10.21.0.0/16)
  • Verwerfen von Pakten, die sowohl Quell- als auch Zieladressen im 10.21.0.0/16-Subnetz haben:
    not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)
  • Verwerfen von Paketen, die aus dem 10.21.1.2-Subnetz stammen oder an das 10.21.1.3-Subnetz gesendet werden sollen:
    not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Kombinieren von IP und HOST:
    not (host 192.168.1.10) and not (host api.wxbug.net)
  • Verwerfen sämtlichen Datenverkehrs auf dem TCP- und UDP-Port 53:
    not (port 53)
  • Verwerfen des Datenverkehrs nur auf dem UDP-Port 53:
    not (udp port 53)
  • Verwerfen sämtlichen IP-Protokoll-50-Datenverkehrs (IPSEC):
    not (ip proto 50)
  • Verwerfen sämtlichen Datenverkehrs auf den TCP-Ports 133 bis 135:
    not (tcp portrange 133-135

Die folgenden Filter kombinieren einige der oben genannten Filter, um zu demonstrieren, wie mehrere Richtlinien in einem Filter vereint werden können: 

  • Verwerfen sämtlichen Port-53(DNS)-Datenverkehrs, der vom 10.21.1.2-Subnetz stammt oder an das 10.21.1.3-Subnetz gesendet werden soll:
    not (port 53) and not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Verwerfen sämtlichen Datenverkehrs über IP-Protokoll 50 oder Port 53 oder Datenverkehr von net 10.21.0.0/16 zu net 10.21.0.0/16
    not (ip proto 50 or port 53) or not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)

Achtung: Die Verwendung von Klammern kann eine erhebliche und potenziell störende Auswirkung auf die Verwendung von Paketfiltern haben. Als Best Practice sollten „not“-Vorgänge außerhalb der Klammern platziert werden. Testen Sie Regeln stets, bevor Sie sie bereitstellen. Wenn die Regeln nicht ordnungsgemäß formatiert sind (trotz Validierung der Eingabe), kann ein Paketfilter möglicherweise SÄMTLICHEN Datenverkehr verwerfen oder auf andere Weise unerwartet reagieren. Dies ist auf die Funktionsweise der Libpcap-Paketfilter zurückzuführen und nicht das Ergebnis einer Logik in der NetWitness Suite-Software.

Tests

BPF-Filter können und sollten vor der Implementierung mithilfe von tcpdump oder windump getestet werden, um sicherzustellen, dass sie wie erwartet reagieren. Dieses Beispiel zeigt einen Filtertest mithilfe von „windump“:

windump -nni 2 not (port 53 or port 443) or not (ip proto 50)

Konvertierungen

Wenn Sie feststellen, dass ein vorhandener Netzwerkregelfilter aus Performancegründen eher als Paketfilter auf Systemebene ausgeführt werden sollte, können Sie ihn konvertieren. Bei der Konvertierung sind einige Punkte zu berücksichtigen.

  • && wird zu and
  • ip.addr wird zu host, wenn es sich um einen einzigen Host handelt, oder zu net, wenn es sich um ein Netzwerk handelt.
  • ip.src wird zu src host, wenn es sich um einen einzigen Host handelt, oder zu src net, wenn es sich um ein Netzwerk handelt.
  • ip.dst wird zu dst host, wenn es sich um einen einzigen Host handelt, oder zu dst net, wenn es sich um ein Netzwerk handelt.
  • Verwenden Sie beim Auflisten eines Netzwerks die CIDR-Notation (d. h., 10.10.10.0/24).
  • || wird zu or
  • ! wird zu not
  • Mehrere Regeln müssen mit and verknüpft werden.

Im Handbuch für TCPDump finden Sie ebenfalls Beispiele für Filter und Zeichenfolgen, die verwendet werden können:
http://www.tcpdump.org/tcpdump_man.html

Darüber hinaus stellt die folgende Website eine hervorragende Referenz für BPF-Paketfilter dar:
http://biot.com/capstats/bpf.html

Achtung: Beim Erfassen von Paketen, die vlan-Tags aufweisen, funktionieren die oben genannten BPF-Standardfilter möglicherweise nicht. Wenn Sie beispielsweise not (udp port 123) zum Filtern des mit vlan-Tags versehenen NTP-Datenverkehrs auf UDP-Port 123 verwenden, funktioniert der Filter nicht. Dies liegt daran, dass der BPF-Filtermechanismus einfach ist und keine Protokolle berücksichtigt, auf die nicht in der Regel verwiesen wurde. Daher sucht das Betriebssystem, das den BPF-Filter ausführt, die udp port-Werte an dem Byteoffset, der in einem Standard-Ethernet/UDP-Paket gelten würde. Jedoch verschieben die optionalen, mit vlan-Tags versehenen Felder im Ethernet-Header diese Werte um 4 Byte, sodass die BPF-Filterregel fehlschlägt. Um dieses Problem zu beheben, müssen Sie den BPF-Filter wie folgt ändern: not (vlan and udp port 123).

You are here
Table of Contents > Konfigurieren von allgemeinen Einstellungen auf einem Decoder > Konfigurieren von Erfassungseinstellungen > (Optional) Konfigurieren der Paketfilterung auf Systemebene (BPF)

Attachments

    Outcomes