Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Améliorations du langage de signature IDP

Les constructions du langage de signature IDP permettent à IDP de générer des signatures plus efficaces qui contribuent à réduire le nombre de faux positifs. Pour ce faire, vous pouvez utiliser le langage de signature, qui définit les modèles d’attaque à l’aide de la syntaxe, des contextes et des conditions de correspondance basés sur des règles.

Comprendre les structures du langage de signature

Les constructions du langage de signature IDP dans Junos OS sont les constructions disponibles dans le langage de signature IDP. Les structures sont conçues pour améliorer les capacités de détection et de prévention des mesures de sécurité du réseau. Il fournit un ensemble d’outils et de capacités permettant de définir des signatures capables de détecter divers types d’activités malveillantes et de schémas de trafic anormaux. Les administrateurs réseau peuvent créer des signatures de sécurité efficaces. Les structures incluent des options permettant de définir des modèles de trafic, de spécifier des conditions pour les alertes et d’incorporer des informations contextuelles pour améliorer la précision et la pertinence des détections.

Les constructions suivantes sont prises en charge dans le code du moteur IDP :

  • Depth: spécifie la profondeur d’un paquet pour rechercher le modèle donné. La valeur de profondeur n’est pas relative. Par exemple, vous pouvez spécifier une profondeur de 100.
  • Offset: permet de spécifier l’emplacement de la recherche d’un motif dans un paquet. La valeur de décalage n’est pas relative. Par exemple, vous pouvez spécifier une valeur de décalage de 100.
  • Within: assure qu’il y a un maximum de N octets entre les correspondances de motif. La correspondance de motif est toujours relative à une correspondance précédente. Par exemple, si la valeur de N est 10. Comme dans l’exemple, après la correspondance m01, la correspondance m02 se produit dans les 10 octets pour déclencher une notification d’attaque.
  • Distance: permet de spécifier où le moteur IDP doit rechercher le modèle spécifié par rapport à la correspondance de modèle précédente. Ceci est toujours relatif à la correspondance précédente et la valeur de distance peut être négative. Par exemple, si la valeur de N est 10, une fois que m01 correspond, m02 doit apparaître 10 octets après la fin de la correspondance m01 :
  • Ipopts—Tous les ipopts répertoriés ont des anomalies correspondantes définies dans le package de sécurité et peuvent être détectées lorsqu’ils sont configurés sur l’appareil ou le moteur IDP :

    • rr - Enregistrer l’itinéraire

    • eol - Fin de la liste

    • nop - Pas d’opération

    • ts - Horodatage

    • sec - Sécurité IP

    • esec - Extension de la sécurité IP

    • lsrr - Routage de source lâche

    • ssrr - Routage de source strict

    • satid - Identifiant de flux

  • Byte extract—Le mot-clé Byte extract permet d’écrire des signatures par rapport à des protocoles codés en longueur, de lire la charge utile du paquet en octets et de l’enregistrer en tant que variable pour une utilisation ultérieure. L’extrait d’octet peut être à la fois relatif et non relatif. Il peut y avoir n’importe quel nombre d’extraits d’octets utilisés par attaque en chaîne.Par exemple:

    Le tableau 1 répertorie les champs de la Byte extract construction.

    Tableau 1 : champs de sortie d’extrait d’octets

    Champ

    Description du champ

    align

    Spécifiez l’alignement des octets.

    bitmask

    Spécifiez le masque de bits (1 à 4 octets) pour l’opération AND au format hexadécimal.

    bytes

    Spécifiez le nombre d’octets à extraire du paquet (1-10).

    endianness

    Spécifiez l’endianness avec lequel les octets lus par le moteur IDP doivent être traités.

    multiplier

    Spécifiez la valeur à multiplier par rapport aux octets lus.

    offset

    Spécifiez le nombre d’octets de décalage dans la charge utile à partir de laquelle le moteur IDP doit commencer le traitement.

    relative

    Indiquez si vous souhaitez ou non utiliser un décalage par rapport à la dernière correspondance de motif.

    string

    Spécifiez le type de données dans lequel les données de chaîne doivent être analysées.

    var-name

    Spécifiez le nom de la variable à référencer dans d’autres options de règle.

  • Byte test: le mot-cléByte test vous permet de tester le champ d’octet avec une valeur opérationnelle. Le test d’octet peut être à la fois relatif et non relatif. > , < , =, &, ^ ,<=,>= sont les opérateurs pris en charge et le nombre maximal d’octets extraits est de 4.Par exemple:

    Le tableau 2 répertorie les champs de la Byte test construction.

    Tableau 2 : champs de sortie du test d’octets

    Champ

    Description du champ

    bitmask

    Spécifiez le masque de bits (1 à 4 octets) pour l’opération AND au format hexadécimal.

    bytes

    Spécifiez le nombre d’octets à extraire du paquet (1-10).

    endianness

    Spécifiez l’endianness avec lequel les octets lus par le moteur IDP doivent être traités.

    negate

    Vérifiez si l’opérateur n’est pas vrai.

    offset

    Mentionnez le nom de la variable de décalage ou la valeur de décalage

    operator

    Spécifiez l’opération à effectuer sur une valeur extraite.

    relative

    Indiquez si vous souhaitez ou non utiliser un décalage par rapport à la dernière correspondance de motif.

    rvalue

    La valeur convertie est testée à l’aide de rvalue. .

    string

    Spécifiez le type de données dans lequel les données de chaîne doivent être analysées.

  • Byte jump: le mot-clé Byte jump est utilisé pour les signatures écrites pour des protocoles codés en longueur afin de sauter des portions spécifiques de la charge utile et d’effectuer une détection à des emplacements très spécifiques. La valeur de saut d’octet peut être à la fois relative et non relative.Par exemple:

    Le tableau 3 répertorie les champs de la Byte jump construction.

    Tableau 3 : champs de sortie de saut d’octet

    Champ

    Description du champ

    align

    Spécifiez l’endianness avec laquelle les octets lus par le moteur IDP doivent être traités.

    bitmask

    Spécifiez le masque de bits (1 à 4 octets) pour l’opération AND au format hexadécimal.

    bytes

    Spécifiez le nombre d’octets à extraire du paquet (1-10).

    endianness

    Spécifiez l’endianness avec lequel les octets lus par le moteur IDP doivent être traités.

    from-beginning

    Activez le saut à partir du début de la charge utile.

    from-end

    Activez le saut à partir de la fin de la charge utile.

    multiplier

    Spécifiez la valeur à multiplier par rapport aux octets lus.

    offset

    Mentionnez le nom de la variable de décalage ou la valeur de décalage à utiliser.

    post-offset

    Spécifiez le nombre d’octets à sauter vers l’avant ou vers l’arrière (-65535..65535).

    relative

    Indiquez si vous souhaitez ou non utiliser un décalage par rapport à la dernière correspondance de motif.

    string

    Spécifiez le type de données dans lequel les données de chaîne doivent être analysées.

  • Byte math: le mot-clé Byte math vous permet d’effectuer une opération mathématique sur une valeur extraite, une valeur spécifiée ou une variable existante. La valeur mathématique de l’octet stocke le résultat dans une nouvelle variable résultante. Les opérations telles que sont 1) '+' | '-' | '*' | '/' | '<<' | '>>' prises en charge. Il peut être à la fois relatif et non relatif.Par exemple:

    Le tableau 4 répertorie les champs de la Byte math construction.

    Tableau 4 : champs de sortie d’octets mathématiques

    Champ

    Description du champ

    bitmask

    Spécifiez le masque de bits (1 à 4 octets) pour l’opération AND au format hexadécimal.

    bytes

    Spécifiez le nombre d’octets à extraire du paquet (1-10).

    endianness

    Spécifiez l’endianité avec laquelle les octets lus doivent être traités.

    offset

    Spécifiez le nombre d’octets dans la charge utile à traiter (0..65535).

    operator

    Spécifiez l’opération à effectuer sur la valeur extraite.

    relative

    Indiquez si vous souhaitez ou non utiliser un décalage par rapport à la dernière correspondance de motif.

    result

    Spécifiez le nom de la variable dans laquelle le résultat doit être stocké.

    rvalue

    Spécifiez la valeur à utiliser pour l’opération mathématique spécifique.

    string

    Spécifiez le type de données dans lequel les données de chaîne doivent être analysées.

  • Is-data-at— Le mot-clé is-data-at vous permet de vérifier que la charge utile contient les données requises à un emplacement spécifié. Par exemple:

    Le tableau 5 répertorie les champs de la Is-data-at construction.

    Tableau 5 : Champs de sortie Isdataat

    Champ

    Description du champ

    negate

    Annule les résultats du test is-data-at .

    offset

    Mentionnez le nom de la variable de décalage ou la valeur de décalage.

    relative

    Indiquez si vous souhaitez ou non utiliser un décalage par rapport à la dernière correspondance de motif

  • Detection Filter— Le filtre de détection définit la vitesse à laquelle l’attaque doit correspondre. Un nombre est conservé pour la source ou la destination, conformément à la valeur d’option spécifiée dans la signature. Le filtre de détection se trouve à l’extérieur <SLE_Constructs> et est spécifié par attaque et non par membre de l’attaque. Si une attaque est détectée 5 fois dans un intervalle de 10 secondes à partir de la même adresse IP source, elle sera signalée comme une attaque. Par exemple: