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

Document created by RSA Information Design and Development on Feb 3, 2017
Version 1Show Document
  • View in full screen mode
  

Cette rubrique décrit comment utiliser les Berkeley Packet Filters (BPF) pour contrôler les paquets et logs qui sont traités par un Decoder.

Vous pouvez utiliser les BPF (Berkeley Packet Filter) pour contrôler les paquets et les logs qui sont traités par un Decoder. Decoder prend en charge le filtrage des paquets au niveau système, défini à l'aide de la syntaxe tcpdump/libpcap. La spécification d'un filtre Libpcap peut réduire efficacement le volume du paquet en fonction d'attributs Couche 2 - Couche 4. 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. Toutefois, les 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).

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é).

Ajouter des filtres de paquets niveau système

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

  1. Dans le menu Security Analytics, sélectionnez Administration > Services.
  2. Dans la vue Services d'administration, sélectionnez un service Decoder, puis Menu Actions détouré > Vue >Configuration.
    La vue Configuration des services s'ouvre sur l'onglet Général.
    Vue Configuration des services - Decoder
  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 et.
    L'interface utilisateur SA 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 l'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 effet important et potentiellement perturbateur sur l'utilisation de filtres de paquets. À titre de 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 à formater 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 ça n'est pas le résultat d'une logique au sein du logiciel NetWitness.

Tests

Avant de les mettre en œuvre, et afin de s'assurer qu'ils fourniront 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 niveau système, vous pouvez le convertir. Il y a peu d'éléments à mémoriser lors de la réalisation de conversions.

  • && ou 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 à et.

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 du port UDP 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 > Procédures requises > Étape 2. Configurer les paramètres de capture > Configurer le filtrage de paquets BPF au niveau du système

Attachments

    Outcomes