Signatures d’application personnalisées pour l’identification de l’application
Les signatures d’application personnalisées définies par l’utilisateur peuvent également être utilisées pour identifier l’application, quels que soient le protocole et le port utilisés. Vous pouvez créer des signatures personnalisées à l’aide de noms d’hôte, de plages d’adresses IP et de ports, ce qui vous permet de suivre le trafic vers des destinations spécifiques. Pour plus d’informations, consultez les rubriques suivantes :
Comprendre l’identification des applications Junos OS Signatures d’applications personnalisées
Cette rubrique comprend les sections suivantes :
- Présentation des signatures d’applications personnalisées
- Améliorations apportées aux signatures d’applications personnalisées
- Types de signatures d’application personnalisées pris en charge
- Avantages de l’utilisation de signatures d’application personnalisées
- Limitations
- Options de configuration supplémentaires pour les signatures d’application personnalisées
Présentation des signatures d’applications personnalisées
La fonctionnalité d’identification des applications de Junos OS vous offre la possibilité de créer des signatures personnalisées pour identifier n’importe quelle application, qu’elle soit basée sur le Web ou client-serveur. Vous pouvez créer des signatures d’application personnalisées pour les applications basées sur ICMP, le protocole IP, l’adresse IP et la couche 7.
En général, les signatures d’application personnalisées sont uniques à votre environnement et sont principalement utilisées pour inspecter les applications internes ou personnalisées. Une fois que vous avez créé des signatures d’application personnalisées, AppID classe et inspecte de la même manière que les applications standard. Étant donné que les signatures d’application personnalisées ne font pas partie du package d’application prédéfini, elles sont enregistrées dans la hiérarchie de configuration, et non dans la base de données de signatures d’application prédéfinie.
Vous devez télécharger le package de signature d’application sur votre appareil pour configurer les signatures personnalisées. Lorsque les signatures personnalisées sont configurées, vous ne pouvez pas désinstaller le package de signatures d’application. Toutes les signatures d’application personnalisées sont transférées telles quelles lorsque vous mettez à niveau votre système vers une nouvelle version du logiciel.
Améliorations apportées aux signatures d’applications personnalisées
À partir de la version 20.1R1 de Junos OS, nous avons amélioré la fonctionnalité de signature d’applications personnalisées en fournissant un nouvel ensemble d’applications et de contextes.
Les contextes de signature d’application personnalisés font désormais partie du package de signature d’application. Si vous souhaitez utiliser l’application et les contextes nouvellement introduits pour les signatures d’application personnalisées, vous devez télécharger et installer le dernier package de signatures d’application version 3248 ou ultérieure. Vous pouvez mettre à niveau le package de signatures d’application séparément sans mettre à niveau Junos OS.
Types de signatures d’application personnalisées pris en charge
Les dispositifs de sécurité prennent en charge les types de signatures personnalisées suivants :
Mappage basé sur ICMP
Mappage basé sur les adresses
Mappage basé sur le protocole IP
Mappage basé sur la couche 7 et basé sur les flux TCP/UDP
Dans toutes les signatures d’application personnalisées prises en charge, les applications personnalisées basées sur ICMP, le protocole IP et l’adresse sont prioritaires par rapport aux applications personnalisées basées sur la couche 7 et basées sur un flux TCP/UDP. L’ordre de priorité des signatures d’applications personnalisées est le suivant : ICMP, protocole IP, adresse, couche 7 ou applications personnalisées basées sur des flux TCP/UDP.
- Mappage basé sur ICMP
- Mappage basé sur les adresses
- Mappage basé sur le protocole IP
- Signatures basées sur la couche 7 et sur les flux TCP/UDP
Mappage basé sur ICMP
La technique de mappage ICMP mappe les types de messages ICMP standard et les codes facultatifs à un nom d’application unique. Cette technique de mappage vous permet de différencier les différents types de messages ICMP. La technique de mappage ICMP ne prend pas en charge le trafic ICMPv6.
L’IDP fonctionne uniquement avec le trafic TCP ou UDP. Par conséquent, le mappage ICMP ne s’applique pas aux IDP et ne peut pas prendre en charge les fonctionnalités IDP telles que les attaques personnalisées.
Mappage basé sur les adresses
Le mappage d’adresses de couche 3 et de couche 4 définit une application en fonction de l’adresse IP et de la plage de ports facultative du trafic.
Pour configurer des applications personnalisées basées sur des adresses de couche 3 et de couche 4, vous devez faire correspondre l’adresse IP et la plage de ports à l’adresse IP et au port de destination. Lorsque l’adresse IP et le port sont configurés, les deux critères doivent correspondre à l’adresse IP de destination et à la plage de ports du paquet.
Prenons l’exemple d’un serveur SIP (Session Initiation Protocol) qui lance des sessions à partir de son port 5060 connu. Étant donné que tout le trafic provenant de cette adresse IP et de ce port est généré uniquement par l’application SIP, l’application SIP peut être mappée à l’adresse IP du serveur et au port 5060 pour l’identification de l’application. De cette façon, tout le trafic avec cette adresse IP et ce port est identifié comme trafic d’application SIP.
Lorsque vous configurez une application basée sur l’adresse et une application basée sur un flux TCP/UDP, et qu’une session correspond aux deux applications, l’application basée sur un flux TCP/UDP est signalée en tant qu’application et l’application basée sur l’adresse est signalée en tant qu’application étendue.
Pour garantir une sécurité adéquate, utilisez le mappage d’adresses lorsque la configuration de votre réseau privé prévoit le trafic des applications à destination ou en provenance de serveurs approuvés. Le mappage d’adresses améliore l’efficacité et la précision de la gestion du trafic provenant d’une application connue.
Mappage basé sur le protocole IP
Les numéros de protocole IP standard mappent une application au trafic IP. Comme pour le mappage d’adresses, pour garantir une sécurité adéquate, utilisez le mappage de protocole IP uniquement dans votre réseau privé pour les serveurs de confiance.
L’IDP fonctionne uniquement avec le trafic TCP ou UDP. Le mappage de protocole IP ne s’applique donc pas aux IDP et ne peut pas prendre en charge les fonctionnalités IDP telles que les attaques personnalisées.
Les signatures d’application personnalisées basées sur le protocole IP ne fonctionnent pas comme prévu dans Junos OS versions 19.2 à Junos OS versions 19.4. À partir de Junos OS version 20.1R1, vous pouvez utiliser des signatures d’application personnalisées basées sur le protocole IP.
Solution de contournement suggérée :
Si vous configurez une stratégie unifiée, utilisez la configuration d’application basée sur les services. Exemple:
user@host#
set applications application application-name protocol IP-proto-numberExemple:
user@host#
set applications application A1 protocol 2Si vous utilisez un pare-feu d’application hérité, utilisez des applications de protocole IP prédéfinies. Exemple
user@host#
set security application-firewall rule-sets rule-set-name rule rule-name match dynamic-application application-nameExemple:
user@host#
set security application-firewall rule-sets RS-1 rule R1 match dynamic-application junos:IPP-IGMP
Signatures basées sur la couche 7 et sur les flux TCP/UDP
Les signatures personnalisées de couche 7 définissent une application qui s’exécute sur des applications TCP, UDP ou de couche 7.
Des signatures d’application personnalisées basées sur la couche 7 sont requises pour l’identification de plusieurs applications s’exécutant sur les mêmes protocoles de couche 7. Par exemple, des applications telles que Facebook et Yahoo Messenger peuvent toutes deux s’exécuter sur HTTP, mais il est nécessaire de les identifier comme deux applications différentes s’exécutant sur le même protocole de couche 7.
Les signatures d’application personnalisées basées sur la couche 7 détectent les applications en fonction des modèles dans les contextes HTTP. Cependant, certaines sessions HTTP sont chiffrées en SSL. L’identification de l’application permet également d’extraire les informations relatives au nom du serveur ou la certification du serveur à partir des sessions TLS ou SSL. Il peut également détecter des modèles dans la charge utile TCP ou UDP dans les applications de couche 7.
Avantages de l’utilisation de signatures d’application personnalisées
Appliquez une politique de sécurité propre à votre environnement réseau en fonction d’applications spécifiques
Gagnez en visibilité sur les applications inconnues ou non classifiées
Identifiez les applications sur la couche 7 et les applications de transit ou temporaires, et obtenez une plus grande précision des applications connues
Assurer la qualité de service (QoS) pour toute application spécifique
Limitations
Les fonctionnalités suivantes ne sont pas prises en charge :
Certaines expressions basées sur PCRE et les caractères Unicode (s’ils ne sont pas pris en charge dans Hyperscan)
Application de l’ordre entre les membres dans les signatures basées sur la couche 7
Adresse générique pour les signatures basées sur des adresses (couches 3 et 4)
Options de configuration supplémentaires pour les signatures d’application personnalisées
À partir de Junos OS version 20.1R1 et si vous utilisez le package de signatures d’application version 3248 ou ultérieure, vous pouvez configurer les options suivantes pour les signatures d’application personnalisées :
- Profondeur du modèle d’application personnalisé
- Inspection des applications personnalisées Limite d’octets
- Priorité aux applications personnalisées
- Nom alternatif de l’objet
Profondeur du modèle d’application personnalisé
Vous pouvez spécifier la limite d’octets pour AppID afin d’identifier le modèle d’application personnalisé pour les applications exécutées sur des applications TCP ou UDP ou de couche 7.
Pour configurer la limite, utilisez les instructions de configuration suivantes de la [edit]
hiérarchie :
user@host#
set services application-identification application application-name over application signature signature-name member number depth
Exemple:
user@host#
set services application-identification application my_custom_address over HTTP signature my_addr_sig1 member m01 depth 256
Pour les applications personnalisées de couche 7, la profondeur est prise en compte dès le début du contexte de couche 7. Pour les applications personnalisées basées sur un flux TCP/UDP, la profondeur est prise en compte dès le début de la charge utile TCP/UDP.
Inspection des applications personnalisées Limite d’octets
Vous pouvez définir la limite d’octets d’inspection pour AppID afin de conclure la classification et d’identifier l’application personnalisée dans une session. En cas de dépassement de la limite, AppID met fin à la classification des applications. Vous pouvez utiliser cette option pour améliorer le débit du trafic applicatif.
Pour configurer la limite d’octets de l’application, utilisez les instructions de configuration suivantes de la hiérarchie [edit] :
user@host#
set services application-identification custom-application-byte-limit byte-number
Exemple:
user@host#
set services application-identification custom-application-byte-limit 400
Si vous avez configuré une signature d’application personnalisée sur une application prédéfinie et si AppID a déjà identifié l’application prédéfinie, DPI continue avec l’identification de signature personnalisée. Lorsque l’identification de la signature personnalisée est en cours, le classement est marqué comme non final. Si aucune application personnalisée n’est identifiée dans la limite d’octets de l’application personnalisée et si une application prédéfinie est déjà identifiée, AppID conclut l’application prédéfinie comme finale et décharge la session.
Priorité aux applications personnalisées
Dans les versions antérieures à Junos OS 20.1R1, la priorité par défaut des signatures d’application personnalisées était élevée, ce qui permettait aux signatures personnalisées d’être prioritaires sur les applications prédéfinies. À partir de la version 20.1R1 de Junos OS, la priorité par défaut de la signature d’application personnalisée est faible.
Lorsqu’AppID identifie une application personnalisée dont la priorité est faible avant d’identifier une application prédéfinie, il attend que la classification prédéfinie des applications soit définitive. Si aucune correspondance d’application prédéfinie n’est disponible et que l’application personnalisée est identifiée, AppID met fin à la classification avec l’application personnalisée identifiée.
Si vous souhaitez remplacer la priorité prédéfinie des applications par des signatures d’application personnalisées, vous devez définir explicitement la priorité sur Élevé pour les signatures d’application personnalisées.
Pour configurer la priorité haute pour les applications personnalisées, utilisez les instructions de configuration suivantes de la hiérarchie [edit] :
user@host#
set services application-identification application application-name priority high
Exemple:
user@host#
set services application-identification application my_custom_address priority high
Notez ce qui suit à propos de la priorité des applications personnalisées :
Pour les versions de Junos OS antérieures à la version 20.1R1 :
La priorité par défaut pour les applications personnalisées est élevée.
La priorité des applications est prise en compte lorsque plusieurs applications correspondent dans le même paquet.
Lorsque vous configurez une priorité élevée pour une application personnalisée : les applications personnalisées ont toujours la priorité sur les applications prédéfinies.
Lorsque vous configurez une priorité faible pour une application personnalisée : les applications personnalisées ont une priorité faible sur les signatures prédéfinies basées sur des modèles similaires et une priorité élevée sur les autres applications. Dans ces versions, aucune option n’est disponible pour modifier le comportement.
Pour Junos OS version 20.1R1 et ultérieure :
La priorité par défaut pour les applications personnalisées est faible.
La priorité ne dépend pas des correspondances dans le même paquet.
La priorité des applications personnalisées basées sur des flux TCP/UDP de couche 7 fonctionne comme configuré (haute ou faible) avec toutes les applications prédéfinies.
Les applications personnalisées basées sur les couches 3 et 4 restent toujours prioritaires. Dans ce cas, la priorité configurée est ignorée. Les applications personnalisées basées sur les couches 3 et 4 remplacent toutes les applications prédéfinies. car ces applications sont déclenchées dès le premier paquet de la session.
Nom alternatif de l’objet
À partir de Junos OS version 23.4R1, vous pouvez créer une signature personnalisée AppID à l’aide de l’attribut de certificat SAN (Subject Alternative Name) pour les signatures SSL. Un certificat SSL avec l’attribut SAN permet de spécifier plusieurs noms d’hôtes ou adresses IP dans un seul certificat. Grâce à cette amélioration, les signatures d’application personnalisées peuvent détecter les applications en fonction des noms d’hôte de l’application répertoriés dans le champ SAN du certificat SSL.
Vous pouvez configurer le SAN à l’aide de l’option ssl-subject-alt-name
sous la hiérarchie [edit services application-identification application name over SSL signature name member name context
].
Exemple : configuration de l’identification des applications Junos OS Signatures d’applications personnalisées
Cet exemple montre comment configurer des signatures d’application personnalisées pour l’identification des applications Junos OS.
Nous recommandons que seuls les utilisateurs avancés de Junos OS tentent de personnaliser les signatures d’application.
Avant de commencer :
Installez une licence valide pour la fonction d’identification des applications sur votre pare-feu SRX Series. Reportez-vous à la section Gestion des licences Junos OS
Cet exemple de configuration est testé avec Junos OS version 20.1R1.
Assurez-vous que votre dispositif de sécurité avec le package de signature d’application est installé. Reportez-vous à la section Téléchargement et installation manuels du package de signatures d’application Junos OS.
Pour utiliser les signatures d’application personnalisées améliorées, mettez à niveau le dernier package de signatures d’application version 3284 ou ultérieure. Vérifiez la version de la signature de votre application à l’aide de la commande suivante :
user@host> show services application-identification version
Application package version: 3248
Nous recommandons que seuls les utilisateurs avancés de Junos OS tentent de personnaliser les signatures d’application.
Aperçu
L’identification des applications prend en charge les signatures d’applications personnalisées pour détecter les applications lorsqu’elles passent par l’appareil. Lorsque vous configurez des signatures personnalisées, assurez-vous que vos signatures sont uniques.
Pour configurer des signatures d’application personnalisées, procédez comme suit :
Définissez des attributs tels que le contexte, les modèles, la direction, la plage de ports, etc., pour que votre équipement de sécurité corresponde au trafic de l’application.
Configurez la limite d’inspection, la profondeur et la priorité du motif (configurations facultatives) pour améliorer le processus d’identification des applications personnalisées.
Attachez l’application personnalisée à une stratégie de sécurité qui autorise ou refuse le trafic de l’application.
Affichez les signatures d’application et les groupes de signatures d’application à l’aide des
show services application-identification application
commandes etshow services application-identification group
.
Exemples de configuration d’applications personnalisées
Procédure
Procédure étape par étape
Définissez une limite d’inspection pour les applications personnalisées.
[edit ] user@host# set services application-identification custom-application-byte-limit 400
Définissez la priorité des applications personnalisées.
[edit ] user@host# set services application-identification application test cacheable user@host# set services application-identification application test priority high
Configurer les signatures personnalisées basées sur les flux TCP :
[edit ] user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 context stream user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 pattern .*install.* user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 direction any user@host# set services application-identification application my_custom_tcp over TCP signature s1 member m01 depth 100
Configurez les signatures personnalisées basées sur le contexte FTP :
[edit ] user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 depth 60 user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 context ftp-file-name user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 pattern .*install.* user@host# set services application-identification application my_custom_ftp over FTP signature sig1 member m01 direction client-to-server
Configurez les signatures personnalisées basées sur le contexte HTTP.
[edit ] user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 context http-header-host user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 pattern .*agent1.* user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 direction client-to-server user@host# set services application-identification application my_custom_http over HTTP signature s1 member m01 depth 100
Configurer les signatures personnalisées basées sur le contexte SSL :
[edit] user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 context ssl-server-name user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 pattern "example\.com" user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 direction client-to-server user@host# set services application-identification application my_custom_ssl over SSL signature s1 member m01 depth 100
Les
ssl-version
signatures personnalisées basées sur le contexte SSL sont déconseillées dans le package de signatures d’application version 3796 et ultérieures. Utilisez l’optionssl-protocol-version
. Pour vérifier la version du package de signature de l’application installée sur votre appareil de sécurité, consultez la section Afficher la version d’identification de l’application des services.Utilisez les valeurs suivantes pour spécifier l’option pattern de for ssl-protocol-version :
- SSLv2 (0x0002) : 2
- SSLv3 (0x0300) : 768
- TLS 1.0 (0x0301) : 769
- TLS 1.1 (0x0302) : 770
- TLS 1.2 (0x0303) : 771
- TLS 1.3 (0x0304) : 772
- TLS 1.4 (0x0305) : 773
Configurer les signatures d’applications personnalisées basées sur ICMP :
[edit ] user@host# set services application-identification application my_custom_icmp icmp-mapping type 100 user@host# set services application-identification application my_custom_icmp icmp-mapping code 1
Configurer les signatures d’applications personnalisées basées sur l’adresse de couche 3 ou 4 :
[edit ] user@host# set services application-identification application my_custom_address address-mapping ADDR-SAMPLE filter ip 192.0.2.1/24 user@host# set services application-identification application my_custom_address address-mapping ADDR-SAMPLE filter port-range udp 5000-6000
Note:Vous devez fournir la plage de ports appropriée et l’adresse IP spécifiée pour configurer les signatures d’application personnalisées basées sur l’adresse.
Configurez les signatures d’applications personnalisées basées sur le mappage de protocoles IP.
[edit] user@host# set services application-identification application my_custom_ip_proto ip-protocol-mapping protocol 2
Créez une politique de sécurité avec des applications personnalisées comme critères de correspondance.
user@host# set security policies from-zone untrust to-zone trust policy 1 match source-address any user@host# set security policies from-zone untrust to-zone trust policy 1 match destination-address any user@host# set security policies from-zone untrust to-zone trust policy 1 match application any user@host# set security policies from-zone untrust to-zone trust policy 1 match dynamic-application my_custom_http user@host# set security policies from-zone untrust to-zone trust policy 1 then permit
Nous utilisons my_custom_http pour cet exemple. De même, vous pouvez créer différentes stratégies de sécurité et spécifier d’autres applications personnalisées telles que my_custom_ftp, my_custom_tcp, my_custom_ssl, my_custom_address, my_custom_icmp my_custom_ip_proto comme condition de correspondance pour l’application dynamique, selon vos besoins.
Activez le suivi des applications.
user@host# set security zones security-zone trust application-tracking
Résultats
À partir du mode configuration, confirmez votre configuration en entrant la show services application-identification
commande. Si la sortie n’affiche pas la configuration prévue, répétez les instructions de configuration de cet exemple pour la corriger.
[edit]
user@host# show services application-identification
custom-application-byte-limit 100; application my_custom_address { address-mapping ADDR-SAMPLE { filter { ip 192.0.2.1/24; port-range { udp 5000-6000; } } } } application my_custom_ftp { over FTP { signature sig1 { member m01 { depth 60; context ftp-file-name; pattern .*install.*; direction client-to-server; } } } } application my_custom_http { over HTTP { signature s1 { member m01 { depth 100; context http-header-host; pattern .*agent1.*; direction client-to-server; } } } } application my_custom_icmp { icmp-mapping { type 100; code 1; } } application my_custom_ip_proto { ip-protocol-mapping { protocol 2; } } application my_custom_ssl { over SSL { signature s1 { member m01 { depth 100; context ssl-server-name; pattern "example\.com"; direction client-to-server; } } } } application my_custom_tcp { over TCP { signature s1 { member m01 { depth 100; context stream; pattern .*install.*; direction any; } } } } application test { cacheable; priority high; }
[edit security policies] user@host# show from-zone untrust to-zone trust { policy 1 { match { source-address any; destination-address any; application any; dynamic-application [my_custom_http]; } then { permit; } } }
Si vous avez terminé de configurer l’appareil, passez commit
en mode de configuration.
Vérification
Vérification des définitions d’application personnalisées
But
Affichez les signatures d’application personnalisées configurées sur votre appareil. Notez que les noms de signature d’application prédéfinis utilisent le préfixe « junos : »
Action
À partir du mode configuration, entrez la show services application-identification application detail name
commande.
user@host> show services application-identification application detail test Application Name: test Application type: TEST Description: N/A Application ID: 16777219 Priority: high
Signification
La sortie de la commande affiche le nom, le type, la description, l’ID et la priorité de l’application personnalisée.
Voir l’application d’identification d’application show services