Decoder : (Facultatif) Configurer le filtrage de paquets BPF au niveau du système

Document created by RSA Information Design and Development Employee on Apr 28, 2019
Version 1Show Document
  • View in full screen mode
 

Vous pouvez utiliser les BPF (Berkeley Packet Filter) pour contrôler les paquets et les logs qui sont traités par un Decoder.

Les filtres BPF (Berkeley Packet Filters) sont appliqués au flux des paquets avant que ces derniers ne soient copiés vers l'adaptateur Decoder à des fins d'analyse. Cela permet d'abandonner efficacement le trafic indésirable. Ces paquets ignorés ne sont pas comptabilisés dans les statistiques de Decoder (taux de capture, paquets abandonnés, paquets filtrés et total des paquets).

Decoder prend également en charge le filtrage des paquets au niveau système, défini à l'aide de la syntaxe tcpdump/libpcap. En spécifiant un filtre Libpcap, vous pouvez réduire efficacement le volume des paquets en fonction des attributs de la couche 2 à la couche 4. Un filtre Libpcap s'avère approprié lorsqu'un Decoder reçoit un volume de trafic qui augmente la charge des ressources physiques de la plateforme. Dans ce scénario, le Decoder peut abandonner les paquets de manière régulière et disposer d'un grand nombre de pages de capture (/decoder/stats/capture.pagefree est élevé).
Ce qui suit est un exemple de filtre libpcap qui garde uniquement les paquets n'ayant pas à la fois une adresse source et une adresse de destination dans le sous-réseau 10.21.0.0/16.
not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)
Pour une référence complète de la syntaxe du filtre Libpcap, consultez les pages principales :

Pour ajouter un filtre de paquets Berkeley niveau système :

  1. Accédez à ADMIN > Services.
  2. Dans la Vue Services d'administration, sélectionnez un service Decoder et The actions menu > Vue > Configuration.
    La Vue Configuration des services s'ouvre sur l'onglet Général.
    This is an example of the General tab.
  3. Dans la Section Configuration de Decoder, sous Adaptateur, cliquez dans le champ en regard de Filtre de paquets Berkeley
  4. Saisissez un seul filtre dans le champ. Si vous voulez filtrer plusieurs éléments, associez plusieurs expressions en utilisant and. Plusieurs exemples sont fournis ci-dessous.
    L'interface utilisateur valide l'entrée au moment où vous saisissez votre chaîne de filtre.
  5. Pour enregistrer le filtre, cliquez sur Appliquer.
    Si la syntaxe est correcte, un message de confirmation s’affiche.
    Si la syntaxe est incorrecte, un message Filtre de paquets non valide s'affiche et un message de log correspondant suivra dans les messages de log sur le Decoder :
    164474800     2015-May-01 19:03:08     warning     Decoder     Failed to parse filter ‘example_badrule': syntax error 
  6. Pour activer le filtre, vous devez arrêter et démarrer la capture sur le Decoder :
    1. Remplacer la vue Config par la vue Système.
    2. Cliquez sur Arrêter la capture.
    3. Cliquez sur Démarrer la capture.
      Le filtre actif s'affichera dans les logs Decoder.

Exemples

Voici plusieurs exemples de filtres :

  • Abandonner des paquets vers ou depuis toute adresse dans le sous-réseau 10.21.0.0/16 :
    not (net 10.21.0.0/16)
  • Abandonner des paquets associés à la fois à des adresses source et destination dans le sous-réseau 10.21.0.0/16 :
    not (src net 10.21.0.0/16 and dst net 10.21.0.0/16)
  • Abandonner des paquets venant de 10.21.1.2 ou se dirigeant vers 10.21.1.3.
    not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Associer IP et HOST :
    not (host 192.168.1.10) and not (host api.wxbug.net)
  • Abandonner tout le trafic port 53, TCP et UDP :
    not (port 53)
  • Abandonner uniquement le trafic port 53 UDP :
    not (udp port 53)
  • Abandonner tout trafic de protocole IP 50 (IPSEC) :
    not (ip proto 50)
  • Abandonner tout trafic sur les ports TCP 133 à 135.
    not (tcp portrange 133-135

Les filtres suivants associent certains des susmentionnés pour démontrer comment placer plusieurs directives dans un filtre : 

  • Abandonner n'importe quel trafic de port 53(DNS) provenant de 10.21.1.2 ou à destination de 10.21.1.3.
    not (port 53) and not (src host 10.21.1.2 or dst host 10.21.1.3)
  • Abandonner n'importe quel trafic utilisant IP proto 50 ou le port 53 ou tout trafic depuis le net 10.21.0.0/16 destiné au 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)

Attention : L'utilisation des parenthèses peut avoir un impact important et potentiellement perturbateur sur l'utilisation des filtres de paquets. Au titre des bonnes pratiques, conservez les opérations « not » en dehors des parenthèses et testez toujours vos règles avant de les déployer. Si vous ne parvenez pas à mettre en forme correctement vos règles (en dépit d'une validation de saisie), un filtre de paquets peut en conséquence abandonner TOUT trafic ou se comporter d'autres manières inattendues. Cela est dû à la manière dont les filtres de paquets Libpcap fonctionnent et cela n'est pas le résultat d'une logique au sein du logiciel NetWitness Platform.

Tests

Avant de les mettre en œuvre, et afin de s'assurer qu'ils auront pour résultat le comportement attendu, les filtres BPF peuvent et doivent être testés en utilisant tcpdump ou windump. Cet exemple illustre un d'un filtre en utilisant windump :

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

Conversions

Si à des fins de performance, vous avez décidé qu'un filtre Règle réseau existant s'exécuterait mieux en tant que Filtre de paquets au niveau du système, vous pouvez le convertir. Il y a peu d'éléments à mémoriser lors de la réalisation de conversions.

  • && devient and
  • ip.addr devient host dans le cas d'un hôte unique ou net dans le cas d'un réseau.
  • ip.src devient src host dans le cas d'un hôte unique ou src net dans le cas d'un réseau.
  • ip.dst devient dst host dans le cas d'un hôte unique ou dst net dans le cas d'un réseau.
  • Utilisez la notation CIDR lorsque vous répertoriez un réseau (à savoir, 10.10.10.0/24).
  • || devient or
  • ! devient not
  • Plusieurs règles doivent être associées à and.

Le manuel pour TCPDump donne également des exemples de filtres et de chaînes qui peuvent être utilisés :
http://www.tcpdump.org/tcpdump_man.html

En outre, le site suivant fournit une excellente référence pour les filtres de paquets type BPF :
http://biot.com/capstats/bpf.html

Attention : Si vous capturez des paquets à marquage vlan, le filtre BPF standard ci-dessus pourra ne pas fonctionner. Par exemple, si vous utilisez not (udp port 123)pour filtrer le trafic NTP à marquage vlan sur un port UDP 123, cela ne fonctionnera pas. Cela est dû au fait que le dispositif du filtre BPF est simple et ne prend pas en compte les protocoles non référencés dans la règle. Ainsi, le système d'exploitation exécutant le filtre BPF recherchera les valeurs udp port au décalage d'octet auquel elles se produiraient dans un paquet Ethernet/UDP standard ; mais les champs de balise vlan en option dans l'en-tête Ethernet pousse ces valeurs de 4 octets, ce qui fait que la règle de filtre BPF va échouer. Pour résoudre ce problème, vous devez remplacer le filtre BPF comme suit : not (vlan and udp port 123).

You are here
Table of Contents > Configurer les paramètres communs sur un Decoder > Configurer les paramètres de capture > (Facultatif) Configurer le filtrage de paquets BPF au niveau du système

Attachments

    Outcomes