Inspecteur HTTP Inspect

Présentation de l’inspecteur HTTP Inspect

Type

Inspecteur (service)

Usage

Inspecter

Type d’instance

Multiton

Autres inspecteurs requis

stream_tcp

Activé

vrai

Le protocole HTTP (Hypertext Transfer Protocol) est un protocole de couche application qui permet l’échange d’hypermédias (audio, vidéo, images et texte) entre un client et un serveur. HTTP est un protocole sans état qui nécessite une transmission fiable des messages. La communication client-serveur s’effectue au moyen de demandes et de réponses HTTP.

Un serveur HTTP/1.1 utilise généralement le port 80 sur TCP/IP. La version sécurisée de HTTP (HTTP/TLS ou HTTPS) utilise le port 443. Le protocole HTTP intègre des mécanismes de contrôle d’accès et d’authentification.

HTTP/2 contient des améliorations visant à accroître la vitesse et à transmettre plus d’informations que le client n’en a demandées, mais fonctionne sur les mêmes ports et protocoles que HTTP/1.1. Les règles spécifiques à HTTP/2 sont configurées avec service:http2.

HTTP/3 est sans connexion, utilise le protocole QUIC (Quick UDP Internet Connections) plutôt que TCP, et peut prendre en charge davantage de flux actifs avec une meilleure récupération des pertes. HTTP/3 utilise le même système de messagerie que les versions précédentes de HTTP. Les règles spécifiques à HTTP/3 sont configurées avec service:http3.

L’inspecteur HTTP prend en charge les trois versions de HTTP de la même manière.

L’inspecteur http_inspect détecte et analyse l’unité de données de protocole (PDU) du message HTTP. http_inspect reçoit la charge utile TCP du flux TCP et examine le message HTTP encapsulé.

L’inspecteur HTTP peut détecter les sections suivantes des messages HTTP :

  • Ligne de demande

  • Ligne d’état

  • En-têtes

  • Corps du message Content-Length (corps du message défini par l’en-tête Content-Length)

  • Corps du message segmenté

  • Corps du message précédent (corps du message sans en-tête Content-Length)

  • « Trailers »

L’inspecteur http_inspect détecte et normalise tous les champs d’en-tête HTTP et les composants de l’URI HTTP. L’inspecteur http_inspect ne normalise pas le port TCP.

L’inspecteur http_inspect peut détecter quatre types d’URI :

  • Astérisque (*) : non normalisé

  • Autorité : URI utilisé avec la méthode HTTP CONNECT

  • Origine : URI qui commence par une barre oblique (aucun schéma ou autorité présent)

  • Absolu : URI qui comprend un schéma, un hôte et un chemin absolu

Un URI HTTP peut inclure ce qui suit :

  • Schéma (ftp, http ou https)

  • Hôte (nom de domaine du serveur)

  • Port TCP

  • Chemin (répertoire et fichier)

  • Requête (paramètres de la demande)

  • Fragment (portion du fichier)

Vous pouvez configurer l’inspecteur http_inspect pour qu’il génère des alertes sur les sections du message HTTP. Par exemple :

  • Spécifier le nombre d’octets à lire dans le corps de la demande ou de la réponse HTTP

  • Activer la détection et la normalisation de JavaScript

  • Gérer différents types de décompression de fichiers

  • Personnaliser le décodage de l’URI HTTP


Remarque


http_inspect peut effectuer une inspection partielle de la charge utile du flux TCP.

Bonnes pratiques en matière de configuration de l’inspecteur HTTP Inspect

Tenez compte des bonnes pratiques suivantes lors de la configuration de l’inspecteur http_inspect :

  • Définissez les paramètres request_ depth et response_ depth si votre trafic HTTP comprend des fichiers vidéo volumineux.

  • Utilisez les paramètres par défaut pour l’inspection des URI HTTP :

    "utf8": "true"
    "plus_to_space": "true"
    "percent_u": "true"
    "utf8_bare_byte": "true"
    "iis_unicode": "true"
    "iis_double_decode": "true"

Paramètres de l’inspecteur HTTP Inspect

Configuration du service HTTP

L’inspecteur binder configure le service HTTP. Pour obtenir plus d'informations, reportez-vous à la Présentation de l’inspecteur de binder.

Exemple :
[
    {
        "when": {
             "service": "http",
             "role": any
        },
        "use": {
            "type": "http_inspect"
        }            
    }
]

request_depth

Spécifie le nombre d’octets à lire dans le corps du message de demande HTTP.

Spécifiez -1 pour n’appliquer aucune limite au nombre d’octets à inspecter. Nous vous recommandons de spécifier les paramètres request_depth et response_depth pour limiter le volume de données du corps HTTP à analyser.

Pour n’inspecter que les en-têtes HTTP, définissez request_ depth sur 0.

Type : entier

Plage valide : de -1 à 9 007 199 254 740 992 (max53)

Valeur par défaut : -1

response_depth

Spécifie le nombre d’octets à lire dans le corps du message de réponse HTTP.

Spécifiez -1 pour n’appliquer aucune limite au nombre d’octets à inspecter. Nous vous recommandons de spécifier les paramètres request_depth et response_depth pour limiter le volume de données du corps HTTP à analyser.

Pour n’inspecter que les en-têtes HTTP, définissez response_depth sur 0.

Type : entier

Plage valide : de -1 à 9 007 199 254 740 992 (max53)

Valeur par défaut : -1

unzip

Indique si les fichiers gzip et le corps des messages doivent être décompressés avant de les inspecter. Lorsque vous désactivez la décompression, l’inspecteur HTTP ne peut pas traiter toutes les parties du corps du message HTTP. L’inspecteur http_inspect peut traiter les en-têtes HTTP.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

maximum_host_length

Spécifie le nombre maximal d’octets autorisés dans la valeur d’en-tête HTTP Host.

Spécifiez -1 pour ne pas limiter la longueur de la valeur d’en-tête.

Type : entier

Plage valide : de -1 à 9 007 199 254 740 992 (max53)

Valeur par défaut : -1

maximum_chunk_length

Spécifie le nombre maximal d’octets autorisés dans un bloc de corps de message HTTP.

Spécifiez -1 pour n’appliquer aucune limite au nombre d’octets d’un bloc HTTP.

Type : entier

Plage valide : de -1 à 9 007 199 254 740 992 (max53)

Valeur par défaut : -1

normalize_utf

Indique si les encodages UTF (UTF-8, UTF-7, UTF-16LE, UTF-16BE, UTF-32LE et UTF-32BE) trouvés dans le corps de la réponse HTTP doivent être normalisés. L’inspecteur http_inspect détermine l’encodage des caractères UTF à partir de l’en-tête HTTP Content-Type.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

decompress_pdf

Indique si les parties compressées au format deflate des fichiers application/pdf (PDF) trouvés dans le corps de la réponse HTTP doivent être décompressés. L’inspecteur http_inspect décompresse les fichiers PDF à l’aide du filtre de flux /FlateDecode.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

decompress_swf

Indique si les fichiers application/vnd.adobe.flash-movie (SWF) trouvés dans le corps de la réponse HTTP doivent être décompressés.


Remarque


Seules les parties compressées des fichiers trouvés dans les réponses HTTP GET peuvent être décompressées.


Type : booléen

Valeurs valides : true, false

Valeur par défaut :false

decompress_vba

Indique si les fichiers de macros Microsoft Office Visual Basic for Applications trouvés dans le corps de la réponse HTTP doivent être décrompressés.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

decompress_zip

Indique si les fichiers application/zip (ZIP) trouvés dans le corps de la réponse HTTP doivent être décompressés.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

script_detection

Indique si le contenu JavaScript doit être inspecté après la détection de l’élément de fin de script (<\script>). Lorsque http_inspect détecte la fin d’un script, il transmet immédiatement le corps du message partiellement lu pour permettre une détection précoce. La détection des scripts permet à Snort de bloquer rapidement les messages de réponse susceptibles de contenir du code JavaScript malveillant.

Type : booléen

Valeurs valides : true, false

Valeur par défaut :false

normalize_javascript

Indique si le mécanisme existant doit être utilisé pour normaliser JavaScript dans le corps de la réponse HTTP. Cette option configure le normalisateur JavaScript existant. L’inspecteur http_inspect normalise les données JavaScript obscurcies, y compris les fonctions unescape et decodeURI, et la méthode String.fromCharCode. L’inspecteur HTTP normalise les encodages dans les fonctions unescape, decodeURI et decodeURIComponent : %XX, %uXXXX, XX et uXXXXi.

L’inspecteur http_inspect détecte les espaces consécutifs et les normalise en un seul espace. Lorsque normalize_javascript est activé, vous pouvez définir max_javascript_whitespaces pour limiter le nombre d’espaces consécutifs dans les données Javascript obscurcies.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

js_norm_bytes_depth

Spécifie le nombre d’octets JavaScript d’entrée à normaliser. Cette option est propre au normalisateur JavaScript amélioré.


Remarque


Si vous utilisez le normalisateur JavaScript amélioré, les paramètres par défaut du LSP et de Snort 3 sont utilisés. Les configurations spécifiques à JavaScript sont bloquées dans l’interface utilisateur de la politique d’analyse de réseau (NAP). Pour remplacer les paramètres par défaut et personnaliser les paramètres du normalisateur, vous pouvez modifier le fichier NAPOverride.lua situé sous /ftd/app_data/Volume/root1/ngfw/var/cisco/deploy.

L’inspecteur http_inspect détecte les espaces consécutifs et les normalise en un seul espace. L’inspecteur assure le suivi des scripts répartis sur différentes PDU, où la balise de début <script> is in one PDU and the end </script> se trouve dans une PDU et la balise de fin dans une autre pour une normalisation efficace du trafic. Un nouveau tampon js_data a été ajouté au tampon IPS de Snort 3. Celui-ci utilise l’approche « Juste à temps » pour détecter et normaliser le code JavaScript, le normalisateur n’étant appelé que lorsque cette option est utilisée dans la règle.

L’inspecteur http_inspect normalise le nom de la fonction, le nom de la variable et le nom de l’étiquette associés au code JavaScript. En outre, l’inspecteur normalise le code JavaScript transféré sous forme de script externe en utilisant le type MIME application/javascript ou un type similaire. Le normalisateur insère automatiquement des points-virgules lorsque la fonctionnalité JavaScript n’est pas modifiée par rapport à l’entrée d’origine côté client.

L’inspecteur http_inspect normalise les données JavaScript obscurcies, y compris les fonctions unescape, decodeURI et decodeURIComponent, ainsi que les méthodes String.fromCharCode et String.fromCodePoint. L’inspecteur HTTP normalise les encodages dans les fonctions unescape, decodeURI et decodeURIComposant : %XX, %uXXXX, \uXX, \u{XXXX}\xXX, le point de code décimal et le point de code hexadécimal.

L’inspecteur http_inspect normalise également l’opérateur Javascript plus (+) et concatène les chaînes à l’aide de cet opérateur.

Spécifiez -1 pour n’appliquer aucune limite au nombre d’octets JavaScript.

Type : entier

Plage valide : de -1 à 9 007 199 254 740 992 (max53)

Valeur par défaut : -1

js_norm_identifier_depth

Spécifie le nombre maximal d’identifiants JavaScript uniques à normaliser. Cette option est propre au normalisateur JavaScript amélioré.


Remarque


Si vous utilisez le normalisateur JavaScript amélioré, les paramètres par défaut du LSP et de Snort 3 sont utilisés. Les configurations spécifiques à JavaScript sont bloquées dans l’interface utilisateur de la politique d’analyse de réseau (NAP). Pour remplacer les paramètres par défaut et personnaliser les paramètres du normalisateur, vous pouvez modifier le fichier NAPOverride.lua situé sous /ftd/app_data/Volume/root1/ngfw/var/cisco/deploy.

Type : entier

Plage valide : de 0 à 65 536

Valeur par défaut : 65 536

js_norm_max_bracket_depth

Spécifie la profondeur maximale de l’imbrication des crochets JavaScript à normaliser. Cette option est propre au normalisateur JavaScript amélioré.


Remarque


Si vous utilisez le normalisateur JavaScript amélioré, les paramètres par défaut du LSP et de Snort 3 sont utilisés. Les configurations spécifiques à JavaScript sont bloquées dans l’interface utilisateur de la politique d’analyse de réseau (NAP). Pour remplacer les paramètres par défaut et personnaliser les paramètres du normalisateur, vous pouvez modifier le fichier NAPOverride.lua situé sous /ftd/app_data/Volume/root1/ngfw/var/cisco/deploy.

Type : entier

Plage valide : de 1 à 65 535

Valeur par défaut : 256

js_norm_max_scope_depth

Spécifie la profondeur maximale de l’imbrication de la portée JavaScript à normaliser. Cette option est propre au normalisateur JavaScript amélioré.


Remarque


Si vous utilisez le normalisateur JavaScript amélioré, les paramètres par défaut du LSP et de Snort 3 sont utilisés. Les configurations spécifiques à JavaScript sont bloquées dans l’interface utilisateur de la politique d’analyse de réseau (NAP). Pour remplacer les paramètres par défaut et personnaliser les paramètres du normalisateur, vous pouvez modifier le fichier NAPOverride.lua situé sous /ftd/app_data/Volume/root1/ngfw/var/cisco/deploy.

Type : entier

Plage valide : de 1 à 65 535

Valeur par défaut : 256

js_norm_max_tmpl_nest

Spécifie la profondeur maximale de l’imbrication littérale du modèle JavaScript à normaliser. Cette option est propre au normalisateur JavaScript amélioré.


Remarque


Si vous utilisez le normalisateur JavaScript amélioré, les paramètres par défaut du LSP et de Snort 3 sont utilisés. Les configurations spécifiques à JavaScript sont bloquées dans l’interface utilisateur de la politique d’analyse de réseau (NAP). Pour remplacer les paramètres par défaut et personnaliser les paramètres du normalisateur, vous pouvez modifier le fichier NAPOverride.lua situé sous /ftd/app_data/Volume/root1/ngfw/var/cisco/deploy.

Type : entier

Plage valide : de 0 à 255

Valeur par défaut : 32

max_javascript_whitespaces

Spécifie le nombre maximal d’espaces consécutifs autorisés dans les données JavaScript obscurcies.

Type : entier

Plage valide : de 1 à 65 535

Valeur par défaut : 200

percent_u

Indique si les encodages %uNNNN et %UNNNN doivent être normalisés. Les quatre caractères N représentent une valeur encodée en hexadécimal qui correspond à un point de code Unicode de Microsoft Internet Information Services (IIS). Comme les clients légitimes utilisent rarement les encodages %u, nous vous recommandons de normaliser le trafic HTTP codé avec des encodages %u.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

utf8

Indique si les séquences Unicode UTF-8 standard doivent être normalisées dans l’URI. L’inspecteur http_inspect peut normaliser des caractères UTF-8 de deux ou trois octets en un seul octet.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

utf8_bare_byte

Indique si les caractères UTF-8 incluant des octets qui ne sont pas codés en URL ou en pourcentage doivent être normalisés. Nous vous recommandons d’activer le paramètre utf8_bare_byte.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : false

iis_unicode

Indique si les caractères du message HTTP doivent être normalisés en utilisant leur point de code Unicode.


Remarque


Nous vous recommandons d’activer le paramètre iis_unicode. Les attaques et les tentatives d’évasion ont souvent recours à Unicode.


Type : booléen

Valeurs valides : true, false

Valeur par défaut :false

iis_unicode_code_page

Indique si la page de code du fichier de correspondance Unicode IIS doit être utilisée.

Type : entier

Plage valide : de 1 à 65 535

Valeur par défaut : 1 252

iis_double_decode

Indique si les caractères doivent être normalisés en effectuant un double décodage des caractères encodés en URL. Décode le trafic IIS doublement encodé en effectuant deux passages dans l’URI de demande. Nous vous recommandons d’activer le paramètre iis_double_decode. Le double encodage n’est généralement observé que dans les scénarios d’attaque.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

oversize_dir_length

Spécifie le nombre maximal d’octets autorisés pour le répertoire de l’URL.

Type : entier

Plage valide : de 1 à 65 535

Valeur par défaut : 300

backslash_to_slash

Indique si la barre oblique inverse (\) doit être remplacée par une barre oblique (/) dans les URI.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

plus_to_space

Indique si le signe plus (+) doit être remplacé par <sp> dans les URI.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

simplify_path

Indique si le chemin d’accès au répertoire de l’URI doit être réduit à sa forme la plus simple. Les chemins complexes peuvent contenir les caractères suivants : ., .. et /.

Type : booléen

Valeurs valides : true, false

Valeur par défaut : true

xff_headers

Spécifie les types d’en-tête HTTP X-Forwarded-For à examiner. Dans le paramètre xff_headers, dressez la liste des en-têtes X-Forwarded-For, de la préférence la plus élevée à la plus faible.

Vous pouvez définir des en-têtes personnalisés de type X-Forwarded-For. Le nom de l’en-tête HTTP qui contient l’adresse IP du client d’origine peut varier en fonction du fournisseur. Dans ce cas, le paramètre xff_headers permet d’introduire des en-têtes personnalisés dans l’inspecteur HTTP.

La valeur par défaut du paramètre xff_headers est x-forwarded-for true-client-ip, deux en-têtes connus. Si les deux en-têtes par défaut sont présents dans le flux, x-forwarded-for est préféré à true-client-ip. Lorsque vous spécifiez plusieurs en-têtes HTTP X-Forwarded-For, utilisez un espace pour délimiter leurs noms.

Type : chaîne

Valeurs valides : x-forwarded-for, true-client-ip

Valeur par défaut : x-forwarded-for true-client-ip

Règles de l’inspecteur HTTP Inspect

Activez les règles de l’inspecteur http_inspect pour générer des événements et, dans un déploiement en ligne, supprimer les paquets incriminés.

Tableau 1. Règles de l’inspecteur HTTP Inspect

GID:SID

Message de règle

119:1

L’URI contient un caractère non réservé encodé en pourcentage

119:2

L'URI est encodé en pourcentage et le résultat est à nouveau encodé en pourcentage

119:3

L’URI contient un encodage Unicode de style %u non standard

119:4

L’URI contient des encodages Unicode avec des octets non encodés en pourcentage

119:6

L’URI contient un encodage UTF-8 sur deux ou trois octets

119:7

L’URI contient un encodage de point de code de la table Unicode

119:8

Le chemin de l’URI contient des caractères barre oblique consécutifs

119:9

Le caractère barre oblique inverse apparaît dans la partie chemin d’un URI

119:10

Le chemin de l’URI contient le modèle /./ répétant le répertoire actuel

119:11

Le chemin de l’URI contient le modèle /../ remontant d’un répertoire

119:12

Caractère tabulation dans la ligne de démarrage HTTP

119:13

Ligne de démarrage HTTP ou ligne d’en-tête se terminant par LF sans CR

119:14

L’URI normalisé comprend un caractère de la liste des caractères incorrects

119:15

Le chemin de l’URI contient un segment plus long que le paramètre oversize_dir_length

119:16

La longueur du bloc dépasse le maximum configuré dans l’option maximum_chunk_length

119:18

Le chemin de l’URI comprend /../ qui remonte au-delà du répertoire racine

119:19

La ligne d’en-tête HTTP dépasse 4 096 octets

119:20

Le message HTTP comporte plus de 200 champs d’en-tête

119:21

Le message HTTP comporte plusieurs valeurs pour l’en-tête Content-Length

119:24

Le champ d’en-tête Host apparaît plusieurs fois ou comporte plusieurs valeurs

119:25

La longueur de la valeur du champ d’en-tête HTTP Host dépasse l’option maximum_host_length

119:28

Demande HTTP POST ou PUT sans Content-Length ni blocs

119:31

La méthode de demande HTTP n’est pas connue de Snort

119:32

La demande HTTP utilise un format HTTP primitif appelé HTTP/0.9

119:33

L’URI de la demande HTTP comporte un espace non encodé en pourcentage

119:34

La connexion HTTP comporte plus de 100 demandes simultanées en pipeline qui n’ont pas reçu de réponse

119:102

Code d’état non valide dans la réponse HTTP

119:104

La réponse HTTP comporte un ensemble de caractères UTF qui n’a pas pu être normalisé

119:105

La réponse HTTP comporte un ensemble de caractères UTF-7

119:109

Multiples niveaux d’obscurcissement de JavaScript

119:110

Le nombre d’espaces JavaScript consécutifs dépasse le maximum autorisé

119:111

Encodages multiples dans les données JavaScript obscurcies

119:112

Échec de la décompression zlib du fichier SWF

119:113

Échec de la décompression LZMA du fichier SWF

119:114

Échec de la décompression deflate du fichier PDF

119:115

Fichier PDF avec un type de compression non pris en charge

119:116

Fichier PDF auquel plusieurs compressions sont appliquées

119:117

Échec de l’analyse du fichier PDF

119:201

Trafic autre que HTTP ou erreur de protocole HTTP irrécupérable

119:202

La longueur du bloc contient un nombre excessif de zéros

119:203

Espace avant ou entre les messages HTTP

119:204

Message de demande sans URI

119:205

Caractère de contrôle dans l’expression de motif de la réponse HTTP

119:206

Espace supplémentaire illégal dans la ligne de démarrage

119:207

Version HTTP corrompue

119:209

Erreur de format dans l’en-tête HTTP

119:210

Options d’en-tête de bloc présentes

119:211

URI mal formaté

119:212

Type non reconnu d’encodage en pourcentage dans l’URI

119:213

Bloc HTTP mal formaté

119:214

Espace adjacent à la longueur du bloc

119:215

Espace dans le nom de l’en-tête

119:216

Compression gzip excessive

119:217

Échec de la décompression gzip

119:218

Demande HTTP 0.9 suivie d'une autre demande

119:219

Demande HTTP 0.9 suivant une demande normale

119:220

Le message comporte à la fois Content-Length et Transfer-Encoding

119:221

Code d’état impliquant l’absence de corps combiné avec Transfer-Encoding ou Content-Length non nul

119:222

Transfer-Encoding ne se terminant pas par chunked

119:223

Transfer-Encoding avec des encodages avant chunked

119:224

Trafic HTTP mal formaté

119:225

Content-Encoding non pris en charge utilisé

119:226

Content-Encoding inconnu utilisé

119:227

Plusieurs Content-Encodings appliqués

119:228

Réponse du serveur avant la demande du client

119:229

Décompression PDF/SWF/ZIP de la réponse du serveur trop volumineuse

119:230

Caractère non imprimable dans le nom de l’en-tête du message HTTP

119:231

Valeur Content-Length incorrecte dans l’en-tête HTTP

119:232

Ligne d’en-tête HTTP encapsulée

119:233

Ligne d’en-tête HTTP se terminant par CR sans LF

119:234

Bloc terminé par un séparateur non standard

119:235

Longueur du bloc se terminant par LF sans CR

119:236

Plusieurs réponses avec le code d’état 100

119:237

Code d’état 100 ne répondant pas à un en-tête Expect

119:238

Code d’état 1XX autre que 100 ou 101

119:239

En-tête Expect envoyé sans corps de message

119:240

Message HTTP 1.0 avec en-tête Transfer-Encoding

119:241

Content-Transfer-Encoding utilisé comme en-tête HTTP

119:242

Champ illégal dans les trailers des messages segmentés

119:243

Champ d’en-tête apparaissant de manière inappropriée deux fois ou comportant deux valeurs

119:244

Valeur segmentée non valide dans l’en-tête Content-Encoding

119:245

Réponse 206 envoyée à une demande sans en-tête Range

119:246

HTTP dans le champ de version pas entièrement en majuscules

119:247

Espace intégré dans une valeur d’en-tête critique

119:248

Données compressées gzip suivies de données autres que gzip inattendues

119:249

Répétitions excessives de la clé de paramètre HTTP

119:253

Demande HTTP CONNECT avec un corps de message

119:254

Trafic HTTP client-serveur après une demande CONNECT, mais avant la réponse

119:255

Réponse HTTP CONNECT 2XX avec en-tête Content-Length

119:256

Réponse HTTP CONNECT 2XX avec en-tête Transfer-Encoding

119:257

Réponse HTTP CONNECT avec code d’état 1XX

119:258

Réponse HTTP CONNECT avant la fin du message de demande

119:259

Paramètre filename mal formé dans l’en-tête HTTP Content-Disposition

119:260

Le corps du message HTTP Content-Length a été tronqué

119:261

Le corps du message HTTP segmenté a été tronqué

119:262

Schéma d’URI HTTP de plus de 10 caractères

119:263

Un client HTTP/1 a demandé une mise à niveau vers HTTP/2

119:264

Un serveur HTTP/1 a accordé une mise à niveau vers HTTP/2

119:265

Jeton incorrect dans JavaScript

119:266

Balise d’ouverture de script inattendue dans le code JavaScript

119:267

Balise de fermeture de script inattendue dans le code JavaScript

119:268

Code JavaScript sous les balises de script externes

119:269

Balise d’ouverture de script sous une forme courte

119:270

Nombre maximal d’identifiants JavaScript uniques atteint

119:271

L’imbrication des crochets JavaScript dépasse la capacité

119:272

Virgules consécutives dans l’en-tête HTTP Accept-Encoding

119:273

PDU manquées lors de la normalisation de JavaScript

119:274

L’imbrication des portées JavaScript dépasse la capacité

119:275

Version HTTP/1 autre que 1.0 ou 1.1

119:276

La version de HTTP dans la ligne de démarrage est 0

119:277

La version de HTTP dans la ligne de démarrage est supérieure à 1

Options des règles de prévention des intrusions de l’inspecteur HTTP Inspect

http_client_body

Place le curseur de détection dans le corps d’une demande HTTP. Lorsqu’un message HTTP ne spécifie pas d’en-tête HTTP, Snort normalise http_client_ DNS à l’aide de la normalisation des URI. La normalisation des URI est généralement appliquée à http_header.

Syntaxe : http_client_body;

Exemples : http_client_body;

http_cookie

Place le curseur de détection sur le champ d’en-tête HTTP Cookie extrait. L’option de règle http_cookie comprend les paramètres suivants : http_cookie.request, http_cookie.with_header, http_cookie.with_body et http_cookie.with_trailer.

Syntaxe : http_cookie: <parameter>, <parameter>

Exemples : http_cookie: request;

http_cookie.request

Établit une correspondance avec le témoin HTTP trouvé dans le message de la demande HTTP. Utilisez le témoin de la demande HTTP pour examiner la réponse HTTP. Le paramètre http_cookie.request est facultatif.

Syntaxe : http_cookie: request;

Exemples : http_cookie: request;

http_cookie.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_cookie.with_header est facultatif.

Syntaxe : http_cookie: with_header;

Exemples : http_cookie: with_header;

http_cookie.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_ cookie. Le paramètre http_cookie.with_body est facultatif.

Syntaxe : http_cookie: with_body;

Exemples : http_cookie: with_body;

http_cookie.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_ cookie. Le paramètre http_cookie.with_trailer est facultatif.

Syntaxe : http_cookie: with_trailer;

Exemples : http_cookie: with_trailer;

http_header

Place le curseur de détection sur les en-têtes HTTP normalisés. Vous pouvez spécifier des noms d’en-tête individuels à l’aide de l’option field.

L’option de règle http_header comprend les paramètres suivants : http_header.field, http_header.request, http_header.with_header, http_header.with_body et http_header.with_trailer.

Syntaxe : http_header: field <field_name>,<parameter>, <parameter>

Exemples : http_header: field Content-Type, with_trailer;

http_header.field

Établit une correspondance entre le nom d’en-tête spécifié et les en-têtes HTTP normalisés. Le nom d’en-tête n’est pas sensible à la casse. Si vous ne spécifiez pas de nom d’en-tête, l’inspecteur HTTP examine tous les en-têtes à l’exception des en-têtes de témoins HTTP (Cookie et Set-Cookie).

Type : chaîne

Syntaxe : http_header: field <field_name>;

Valeurs valides : un nom d’en-tête HTTP.

Exemples : http_header: field Content-Type;

http_header.request

Établit une correspondance avec les en-têtes trouvés dans la demande HTTP. Utilisez les en-têtes de la demande HTTP pour examiner la réponse HTTP. Le paramètre http_header.request est facultatif.

Syntaxe : http_header: request;

Exemples : http_header: request;

http_header.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_header.with_header est facultatif.

Syntaxe : http_header: with_header;

Exemples : http_header: with_header;

http_header.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_header. Le paramètre http_header.with_body est facultatif.

Syntaxe : http_header: with_body;

Exemples : http_header: with_body;

http_header.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_header. Le paramètre http_header.with_trailer est facultatif.

Syntaxe : http_header: with_trailer;

Exemples : http_header: with_trailer;

http_method

Place le curseur de détection sur la méthode de la demande HTTP. Les valeurs des méthodes de demande HTTP les plus couramment utilisées sont GET, POST, OPTIONS, HEAD, DELETE, PUT, TRACE et CONNECT.

L’option de règle http_method comprend les paramètres suivants : http_method.with_header, http_method.with_body et http_method.with_trailer.

Syntaxe : http_method: <parameter>, <parameter>;

Exemples : http_method; content:"GET";

http_method.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_method.with_header est facultatif.

Syntaxe : http_method: with_header;

Exemples : http_method: with_header;

http_method.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_header. Le paramètre http_method.with_body est facultatif.

Syntaxe : http_method: with_body;

Exemples : http_method: with_body;

http_method.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_header. Le paramètre http_method.with_trailer est facultatif.

Syntaxe : http_method: with_trailer;

Exemples : http_method: with_trailer;

http_param

Place le curseur de détection sur la clé de paramètre HTTP spécifiée. La clé de paramètre HTTP peut apparaître dans le corps de la demande.

L’option de règle http_param comprend les paramètres suivants : http_param.param et http_method.nocase.

Syntaxe : http_param: <parameter_key>, nocase;

Exemples : http_param: offset, nocase;

http_param.param

Établit une correspondance avec le paramètre spécifié.

Type : chaîne

Syntaxe : http_param: <http_parameter>;

Valeurs valides : un paramètre de demande ou un champ du corps de la demande.

Exemples : http_param: offset;

http_param.nocase

Établit une correspondance avec le paramètre spécifié, mais ne tient pas compte de la casse. Le paramètre http_param.nocase est facultatif.

Syntaxe : http_param: nocase;

Exemples : http_param: nocase;

http_raw_body

Place le curseur de détection sur le corps non normalisé du message de la demande ou de la réponse.

Syntaxe : http_raw_body;

Exemples : http_raw_body;

http_raw_cookie

Place le curseur de détection sur l’en-tête HTTP Cookie non normalisé. L’option de règle http_raw_cookie comprend les paramètres suivants : http_raw_cookie.request, http_raw_cookie.with_header, http_raw_cookie.with_body et http_raw_cookie.with_trailer.

Syntaxe : http_raw_cookie: <parameter>, <parameter>;

Exemples : http_raw_cookie: request;

http_raw_cookie.request

Établit une correspondance avec le témoin trouvé dans la demande HTTP. Utilisez le témoin de la demande HTTP pour examiner le message de réponse. Le paramètre http_raw_cookie.request est facultatif.

Syntaxe : http_raw_cookie: request;

Exemples : http_raw_cookie: request;

http_raw_cookie.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_raw_cookie.with_header est facultatif.

Syntaxe : http_raw_cookie: with_header;

Exemples : http_raw_cookie: with_header;

http_raw_cookie.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_raw_cookie. Le paramètre http_raw_cookie.with_body est facultatif.

Syntaxe : http_raw_cookie: with_body;

Exemples : http_raw_cookie: with_body;

http_raw_cookie.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_raw_cookie. Le paramètre http_raw_cookie.with_trailer est facultatif.

Syntaxe : http_raw_cookie: with_trailer;

Exemples : http_raw_cookie: with_trailer;

http_raw_header

Place le curseur de détection sur les en-têtes non normalisés. http_raw_header comprend tous les noms et valeurs d’en-tête non modifiés dans le message d’origine.

L’option de règle http_raw_header comprend les paramètres suivants : http_raw_header.field, http_raw_header.request, http_raw_header.with_header, http_raw_header.with_body et http_raw_header.with_trailer.

Syntaxe : http_raw_header: field <field_name>, <parameter>, <parameter>;

Exemples : http_raw_header: field Content-Type, with_trailer;

http_raw_header.field

Établit une correspondance entre le nom d’en-tête spécifié et les en-têtes HTTP non normalisés. Le nom d’en-tête n’est pas sensible à la casse. Si vous ne spécifiez pas de nom d’en-tête, l’inspecteur HTTP examine tous les en-têtes à l’exception des en-têtes de témoins HTTP (Cookie et Set-Cookie).

Type : chaîne

Syntaxe : http_raw_header: field <field_name>

Valeurs valides : un nom d’en-tête HTTP.

Exemples : http_raw_header: field Content-Type;

http_raw_header.request

Établit une correspondance avec les en-têtes trouvés dans le message de la demande HTTP. Utilisez les en-têtes de la demande HTTP pour examiner le message de réponse. Le paramètre http_raw_header.request est facultatif.

Syntaxe : http_raw_header: request;

Exemples : http_raw_header: request;

http_raw_header.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_raw_header.with_header est facultatif.

Syntaxe : http_raw_header: with_header;

Exemples : http_raw_header: with_header;

http_raw_header.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_raw_header. Le paramètre http_raw_header.with_body est facultatif.

Syntaxe : http_raw_header: with_body;

Exemples : http_raw_header: with_body;

http_raw_header.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_raw_header. Le paramètre http_raw_header.with_trailer est facultatif.

Syntaxe : http_raw_header: with_trailer;

Exemples : http_raw_header: with_trailer;

http_raw_request

Place le curseur de détection sur la ligne de demande non normalisée. Pour examiner une partie donnée de la première ligne d’en-tête, utilisez l’une des options de règles suivantes : http_method, http_raw_uri ou http_version.

L’option de règle http_raw_request comprend les paramètres suivants : http_raw_request.with_header, http_raw_request.with_body et http_raw_request.with_trailer.

Syntaxe : http_raw_request: <parameter>, <parameter>;

Exemples : http_raw_request: with_header;

http_raw_request.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_raw_request.with_header est facultatif.

Syntaxe : http_raw_request: with_header;

Exemples : http_raw_request: with_header;

http_raw_request.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_raw_request. Le paramètre http_raw_request.with_body est facultatif.

Syntaxe : http_raw_request: with_body;

Exemples : http_raw_request: with_body;

http_raw_request.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_raw_request. Le paramètre http_raw_request.with_trailer est facultatif.

Syntaxe : http_raw_request: with_trailer;

Exemples : http_raw_request: with_trailer;

http_raw_status

Place le curseur de détection sur la ligne d’état non normalisée. Pour examiner une partie donnée de la ligne d’état, utilisez l’une des options de règles suivantes : http_version, http_stat_code ou http_stat_msg.

L’option de règle http_raw_status comprend les paramètres suivants : http_raw_status.with_body et http_raw_status.with_trailer.

Syntaxe : http_raw_status: <parameter>, <parameter>;

Exemples : http_raw_status: with_body;

http_raw_status.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_raw_status. Le paramètre http_raw_status.with_body est facultatif.

Syntaxe : http_raw_status: with_body;

Exemples : http_raw_status: with_body;

http_raw_status.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_raw_status. Le paramètre http_raw_status.with_trailer est facultatif.

Syntaxe : http_raw_status: with_trailer;

Exemples : http_raw_status: with_trailer;

http_raw_trailer

Place le curseur de détection sur les trailers HTTP non normalisés. Les trailers contiennent des informations sur le contenu du message. Ils ne sont pas disponibles lorsque la demande du client crée des en-têtes HTTP.

http_raw_trailer est identique à http_raw_header, sauf qu’il s’applique aux en-têtes de fin. Vous devez créer des règles distinctes pour inspecter les en-têtes et les trailers HTTP.

L’option de règle http_raw_trailer comprend les paramètres suivants : http_raw_trailer.field, http_raw_trailer.request, http_raw_trailer.with_header, http_raw_trailer.with_body.

Syntaxe : http_raw_trailer: field <field_name>, <parameter>, <parameter>;

Exemples : http_raw_trailer: field <field_name>, request;

http_raw_trailer.field

Établit une correspondance entre le nom de trailer spécifié et les trailers HTTP non normalisés. Le nom de trailer n’est pas sensible à la casse.

Type : chaîne

Syntaxe : http_raw_trailer: field <field_name>;

Valeurs valides : un nom de trailer HTTP.

Exemples : http_raw_trailer: field trailer-timestamp;

http_raw_trailer.request

Établit une correspondance avec les trailers trouvés dans le message de la demande HTTP. Utilisez les trailers de la demande HTTP pour examiner le message de réponse. Le paramètre http_raw_trailer.request est facultatif.

Syntaxe : http_raw_trailer: request;

Exemples : http_raw_trailer: request;

http_raw_trailer.with_header

Spécifie que la règle ne peut examiner que les en-têtes de réponse HTTP. Le paramètre http_raw_trailer.with_header est facultatif.

Syntaxe : http_raw_trailer: with_header;

Exemples : http_raw_trailer: with_header;

http_raw_trailer.with_body

Spécifie qu’une autre partie de la règle examine le corps du message de réponse HTTP, et non l’option de règle http_raw_trailer. Le paramètre http_raw_trailer.with_body est facultatif.

Syntaxe : http_raw_trailer: with_body;

Exemples : http_raw_trailer: with_body;

http_raw_uri

Place le curseur de détection sur l’URI non normalisé.

L’option de règle http_raw_uri comprend :

  • http_raw_uri.with_header

  • http_raw_uri.with_body

  • http_raw_uri.with_trailer

  • http_raw_uri.scheme

  • http_raw_uri.host

  • http_raw_uri.port

  • http_raw_uri.path

  • http_raw_uri.query

  • http_raw_uri.fragment

Syntaxe : http_raw_uri: <parameter>, <parameter>;

Exemples : http_raw_uri: with_header, path, query;

http_raw_uri.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_raw_uri.with_header est facultatif.

Syntaxe : http_raw_uri: with_header;

Exemples : http_raw_uri: with_header;

http_raw_uri.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_raw_uri. Le paramètre http_raw_uri.with_body est facultatif.

Syntaxe : http_raw_uri: with_body;

Exemples : http_raw_uri: with_body;

http_raw_uri.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_raw_uri. Le paramètre http_raw_uri.with_trailer est facultatif.

Syntaxe : http_raw_uri: with_trailer;

Exemples : http_raw_uri: with_trailer;

http_raw_uri.scheme

N’établit une correspondance qu’avec le schéma de l’URI. Le paramètre http_raw_uri.scheme est facultatif.

Syntaxe : http_raw_uri: scheme;

Exemples : http_raw_uri: scheme;

http_raw_uri.host

N’établit une correspondance qu’avec l’hôte (nom de domaine) de l’URI. Le paramètre http_raw_uri.host est facultatif.

Syntaxe : http_raw_uri: host;

Exemples : http_raw_uri: host;

http_raw_uri.port

N’établit une correspondance qu’avec le port (TCP) de l’URI. Le paramètre http_raw_uri.port est facultatif.

Syntaxe : http_raw_uri: port;

Exemples : http_raw_uri: port;

http_raw_uri.path

N’établit une correspondance qu’avec la section chemin (répertoire et fichier) de l’URI. Le paramètre http_raw_uri.path est facultatif.

Syntaxe : http_raw_uri: path;

Exemples : http_raw_uri: path;

http_raw_uri.query

N’établit une correspondance qu’avec les paramètres de demande contenus dans l’URI. Le paramètre http_raw_uri.query est facultatif.

Syntaxe : http_raw_uri: query;

Exemples : http_raw_uri: query;

http_raw_uri.fragment

N’établit une correspondance qu’avec la section fragment de l’URI. Un fragment est une partie du fichier demandé, qui ne se trouve généralement que dans le navigateur et qui n’est pas transmise sur le réseau. Le paramètre http_raw_uri.fragment est facultatif.

Syntaxe : http_raw_uri: fragment;

Exemples : http_raw_uri: fragment;

http_stat_code

Place le curseur de détection sur le code d'état HTTP. Le code d’état HTTP est un nombre à trois chiffres compris entre 100 et 599.

L’option de règle http_stat_code comprend les paramètres suivants : http_stat_code.with_body et http_stat_code.with_trailer.

Syntaxe : http_stat_code: <parameter>, <parameter>;

Exemples : http_stat_code: with_trailer;

http_stat_code.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_stat_code. Le paramètre http_stat_code.with_body est facultatif.

Syntaxe : http_stat_code: with_body;

Exemples : http_stat_code: with_body;

http_stat_code.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_stat_code. Le paramètre http_stat_code.with_trailer est facultatif.

Syntaxe : http_stat_code: with_trailer;

Exemples : http_stat_code: with_trailer;

http_stat_msg

Place le curseur de détection sur le message d’état HTTP. Le message d’état HTTP décrit le code d’état HTTP en texte brut, par exemple : OK.

L’option de règle http_stat_msg comprend les paramètres suivants : http_stat_msg.with_body et http_stat_msg.with_trailer.

Syntaxe : http_stat_msg: <parameter>, <parameter>;

Exemples : http_stat_msg: with_body;

http_stat_msg.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_stat_msg. Le paramètre http_stat_msg.with_body est facultatif.

Syntaxe : http_stat_msg: with_body;

Exemples : http_stat_msg: with_body;

http_stat_msg.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_stat_msg. Le paramètre http_stat_msg.with_trailer est facultatif.

Syntaxe : http_stat_msg: with_trailer;

Exemples : http_stat_msg: with_trailer;

http_trailer

Place le curseur de détection sur les trailers normalisés. Les trailers contiennent des informations sur le contenu du message. Ils ne sont pas disponibles lorsque la demande du client crée des en-têtes HTTP.

http_trailer est identique à http_header, sauf qu’il s’applique aux en-têtes de fin. Vous devez créer des règles distinctes pour inspecter les en-têtes et les trailers HTTP.

L’option de règle http_trailer comprend les paramètres suivants : http_trailer.field, http_trailer.request, http_trailer.with_header, http_trailer.with_body.

Syntaxe : http_trailer: field <field_name>, <parameter>, <parameter>;

Exemples : http_trailer: field trailer-timestamp, with_body;

http_trailer.field

Établit une correspondance entre le nom de trailer spécifié et les trailers HTTP normalisés. Le nom de trailer n’est pas sensible à la casse.

Type : chaîne

Syntaxe : http_trailer: field <field_name>;

Valeurs valides : un nom de trailer HTTP.

Exemples : http_trailer: field trailer-timestamp;

http_trailer.request

Établit une correspondance avec les trailers trouvés dans le message de la demande HTTP. Utilisez les trailers de la demande HTTP pour examiner le message de réponse. Le paramètre http_trailer.request est facultatif.

Syntaxe : http_trailer: request;

Exemples : http_trailer: request;

http_trailer.with_header

Spécifie qu’une autre partie de la règle examine les en-têtes des messages HTTP, et non l’option de règle http_trailer. Le paramètre http_trailer.with_header est facultatif.

Syntaxe : http_trailer: with_header;

Exemples : http_trailer: with_header;

http_trailer.with_body

Spécifie qu’une autre partie de la règle examine le corps des messages HTTP, et non l’option de règle http_trailer. Le paramètre http_trailer.with_body est facultatif.

Syntaxe : http_trailer: with_body;

Exemples : http_trailer: with_body;

http_true_ip

Définissez le curseur de détection sur l’adresse IP du client final. Lorsqu’un client envoie une demande, le serveur proxy stocke l’adresse IP du client final. L’adresse IP d’un client est la dernière adresse IP répertoriée dans l’en-tête X-Forwarded-For, True-Client-IP ou tout autre type d’en-tête X-Forwarded-For personnalisé. En présence de plusieurs en-têtes, Snort prend en compte les en-têtes définis dans xff_headers.

L’option de règle http_true_ip comprend les paramètres suivants : http_true_ip.with_header, http_true_ip.with_body et http_true_ip.with_trailer.

Syntaxe : http_true_ip: <parameter>, <parameter>;

Exemples : http_true_ip: with_header;

http_true_ip.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_true_ip.with_header est facultatif.

Syntaxe : http_true_ip: with_header;

Exemples : http_true_ip: with_header;

http_true_ip.with_body

Spécifie qu’une autre partie de la règle examine le corps des messages HTTP, et non l’option de règle http_true_ip. Le paramètre http_true_ip.with_body est facultatif.

Syntaxe : http_true_ip: with_body;

Exemples : http_true_ip: with_body;

http_true_ip.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_true_ip. Le paramètre http_true_ip.with_trailer est facultatif.

Syntaxe : http_true_ip: with_trailer;

Exemples : http_true_ip: with_trailer;

http_uri

Place le curseur de détection sur le tampon d’URI normalisé.

  • http_uri.with_header

  • http_uri.with_body

  • http_uri.with_trailer

  • http_uri.scheme

  • http_uri.host

  • http_uri.port

  • http_uri.path

  • http_uri.query

  • http_uri.fragment

Syntaxe : http_uri: <parameter>, <parameter>;

Exemples : http_uri: with_trailer, path, query;

http_uri.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_uri.with_header est facultatif.

Syntaxe : http_uri: with_header;

Exemples : http_uri: with_header;

http_uri.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_uri. Le paramètre http_uri.with_body est facultatif.

Syntaxe : http_uri: with_body;

Exemples : http_uri: with_body;

http_uri.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_uri. Le paramètre http_uri.with_trailer est facultatif.

Syntaxe : http_uri: with_trailer;

Exemples : http_uri: with_trailer;

http_uri.scheme

N’établit une correspondance qu’avec le schéma de l’URI. Le paramètre http_uri.scheme est facultatif.

Syntaxe : http_uri: scheme;

Exemples : http_uri: scheme;

http_uri.host

N’établit une correspondance qu’avec l’hôte (nom de domaine) de l’URI. Le paramètre http_uri.host est facultatif.

Syntaxe : http_uri: host;

Exemples : http_uri: host;

http_uri.port

N’établit une correspondance qu’avec le port (TCP) de l’URI. Le paramètre http_uri.port est facultatif.

Syntaxe : http_uri: port;

Exemples : http_uri: port;

http_uri.path

N’établit une correspondance qu’avec le chemin (répertoire et fichier) de l’URI. Le paramètre http_uri.path est facultatif.

Syntaxe : http_uri: path;

Exemples : http_uri: path;

http_uri.query

N’établit une correspondance qu’avec les paramètres de demande contenus dans l’URI. Le paramètre http_uri.query est facultatif.

Syntaxe : http_uri: uri;

Exemples : http_uri: query;

http_uri.fragment

N’établit une correspondance qu’avec la section fragment de l’URI. Un fragment est une partie du fichier demandé, qui ne se trouve généralement que dans le navigateur et qui n’est pas transmise sur le réseau. Le paramètre http_uri.fragment est facultatif.

Syntaxe : http_uri: fragment;

Exemples : http_uri: fragment;

http_version

Place le curseur de détection au début du tampon de la version HTTP. http_version accepte différentes versions HTTP. Les versions les plus courantes sont : HTTP/1.0 et HTTP/1.1. L’option de règle http_version comprend les paramètres suivants : http_version.request, http_version.with_header, http_version.with_body et http_version.with_trailer.

Syntaxe : http_version: <parameter>, <parameter>;

Exemples : http_version; content:"HTTP/1.1";

http_version.request

Établit une correspondance avec la version trouvée dans la demande HTTP. Utilisez la version de la demande pour examiner le message de réponse. Le paramètre http_version.request est facultatif.

Syntaxe : http_version: request;

Exemples : http_version: request;

http_version.with_header

Spécifie que la règle peut uniquement examiner les en-têtes des messages HTTP. Le paramètre http_version.with_header est facultatif.

Syntaxe : http_version: with_header;

Exemples : http_version: with_header;

http_version.with_body

Spécifie qu’une autre partie de la règle examine le corps du message HTTP, et non l’option de règle http_version. Le paramètre http_version.with_body est facultatif.

Syntaxe : http_version: with_body;

Exemples : http_version: with_body;

http_version.with_trailer

Spécifie qu’une autre partie de la règle examine les trailers des messages HTTP, et non l’option de règle http_version. Le paramètre http_version.with_trailer est facultatif.

Syntaxe : http_version: with_trailer;

Exemples : http_version: with_trailer;

http_version_match

Spécifie une liste de versions HTTP à comparer avec les versions HTTP standard. Utilisez un espace comme séparateur entre les différentes versions. Une demande HTTP ou une ligne d’état peut contenir une version. Si la version est présente, Snort la compare à la liste spécifiée dans http_version_match.

Si la version n’est pas au format [0-9].[0-9], elle est considérée comme incorrecte. Toute version au format [0-9].[0-9] différente de 1.0 ou 1.1 est considérée comme other.

Type : chaîne

Syntaxe : http_version_match: <version_list>

Valeurs valides : 1.0, 1.1, 2.0, 0.9, other, malformed

Exemples : http_version_match: "1.0 1.1";

js_data

Place le curseur de détection sur les données JavaScript normalisées. Cette option est propre au normalisateur JavaScript amélioré.

Syntaxe : js_data;

Exemples : js_data;

vba_data

Place le curseur de détection dans le tampon des macros de Microsoft Office Visual Basic for Applications.

Syntaxe : vba_data;

Exemples : vba_data;