Comment faire pour empêcher les attaques de force brute à WordPress (et similaires) des services hébergés derrière votre pare-feu

Comment faire pour empêcher les attaques de force brute à WordPress (et similaires) des services hébergés derrière votre pare-feu

44376
Created On 09/25/18 18:59 PM - Last Modified 06/05/23 20:31 PM


Resolution


Problème :

Lorsque vous hébergez des services vulnérables aux attaques par force brute sur des formulaires d'ouverture de session Web, il n'est pas facile de détecter de telles attaques à moins qu'elles ne soient inondées par le serveur derrière le pare-feu. En outre, d'autres contrôles et caractéristiques du pare-feu de Palo Alto Networks peuvent empêcher l'attaque. Cependant, si l'attaque n'est pas excessivement agressive mais persistante, elle risque de ne pas être bloquée par d'autres contrôles.

 

Diagnostiquer ces attaques dans les journaux de pare-feu seul peut être difficile pour certains services tels que WordPress, car un formulaire d'ouverture de session répond avec un code d'état http 200 (OK), indépendamment du fait que l'ouverture de session a été réussie ou non; la seule différence est que l'ouverture de session réussie redirige l'utilisateur par la suite vers les pages d'administration. Mais la réponse initiale à la fois pour le succès ou l'échec est toujours le code d'état HTTP 200. Obtenir la même réponse pour le succès et l'échec signifie que nous ne pouvons pas distinguer un bon d'une mauvaise réponse, cependant, si nous voyons des tentatives subséquentes dans les journaux de trafic, où la même source IP accède à une URL contenant une «WP-logon'chaîne dans un temps relativement court  intervalle, nous pouvons être assez sûr que quelqu'un ne parvient pas à se connecter sur le site Web de WordPress et d'essayer à nouveau. Si elles sont très persistantes et continuer à essayer pendant des heures et des heures, les chances sont que c'est une attaque de force brute contre votre installation de WordPress qui n'est pas bloqué par les contrôles conventionnels.

 

Une solution dans les signatures personnalisées

Entrez les signatures personnalisées: configurez-la afin que nous puissions bloquer toute adresse IP source qui tente plus de 5 ouvertures de session dans les 20 secondes — une valeur arbitraire choisie avec peu d'expérience — ajustez en fonction de vos besoins et de votre expérience. Mon approche serait de resserrer ces valeurs à tout ce qui ne gênera pas trop d' utilisateurs réguliers d'accéder au site Web sur une base quotidienne.

 

Pour éviter de nuire aux utilisateurs, nous devons d'abord détecter l'événement d'ouverture de session lui-même, puis compter le nombre de tentatives dans l'intervalle de temps désigné. Cela peut se faire en deux étapes, en créant d'abord une signature de base pour détecter l'événement d'ouverture de session, puis en créant une signature combinée qui compte des hits répétitifs à la signature de base dans un intervalle de temps donné (5 ouvertures de session dans les 20 secondes).

 

Une solution rapide et téléchargeable

Il suffit de télécharger les pièces jointes à partir du bas de ce document, et les importer dans le pare-feu. Pour importer, ouvrez une session sur WebGUI, sélectionnez l'onglet objets, puis naviguez dans le volet de gauche vers objets personnalisés > vulnérabilité. Dans le coin inférieur gauche de la page, cliquez sur Importer. Ensuite, ouvrez les fichiers et ajuster les valeurs au besoin et valider. Lisez la suite pour savoir ce que vous pouvez ajuster et pourquoi.

 

Création d'une signature de base

Pour commencer à créer des signatures, connectez-vous à l'interface graphique Web du pare-feu et, sous l'onglet objets, naviguez dans le volet de gauche vers objets personnalisés > vulnérabilité. Dans le coin inférieur gauche de la page, cliquez sur Ajouter, et nous allons créer une signature personnalisée.

 

Onglet Configuration

Configurez les éléments suivants:

Règle de base-onglet Configuration

  • ID de la menace: nombre arbitraire entre 41000 et 45.000-J'ai choisi 43434.
  • Nom: WordPress-BF-base (choix arbitraire)
  • Gravité: information-c'est important. Vous voulez que la signature de base soit d'une gravité informatif ou faible parce que vous avez généralement une action «alerte» sur la gravité faible/informatif et non pas «bloc», comme vous le feriez sur les niveaux de gravité moyenne/élevée/critique. Nous ne voulons pas sélectionner'block', car une seule instance de consultation de WP-Logon déclenchera également cette vulnérabilité de base. Au lieu de cela, nous allons créer une signature combinée avec une gravité élevée qui sera déclenchée par des déclencheurs répétitifs de cette signature de base de la même source IP dans un court laps de temps.
  • Direction: les deux.
  • Action par défaut: Alert — comme déjà mentionné, nous ne voulons pas bloquer tout le monde frappant cette règle, seulement ceux qui l'ont frappé de façon répétitive à partir de la même adresse IP source dans le court intervalle de temps.
  • Système affecté: client-et-serveur

 

Onglet signature

Nous avons besoin de configurer les éléments suivants:

Règle de base-onglet signatures

Choisissez «standard» et cliquez sur Ajouter pour configurer les détails de la signature, tels que:

Règle de base-signatures standard

Standard: WP-Logon-échec (nom arbitraire, celui-ci est auto-descriptif).

Portée: session — nous reconnaissons une session http consistant en deux transactions: la première est une requête HTTP pour l'URL qui contient'wp-login'dans son chemin d'accès, tandis que la deuxième transaction est une réponse HTTP avec le code d'état 200.

Condition ordonnée match: Oui — nous nous attendons à ce que cette session se compose de transactions qui sont dans un certain ordre (la réponse est toujours causée par la demande).

 

Première condition

Cliquez sur'ajouter ou condition'pour ajouter la première condition, et configurez:

Règle de base-première condition de la règle standard

Opérateur: pattern match — nous utiliserons le modèle Regex pour capturer la chaîne'wp-login'dans la requête d'URL.

Contexte: http-req-URI-Path — nous allons le faire correspondre à l'intérieur du chemin URL de requête HTTP.

Modèle: wp\-login — nous devons utiliser le signe Escape "-" avec une barre oblique inverse. Nous avons besoin d'un minimum de 7 caractères pour l'appariement; Si vous avez une URL personnalisée pour WP-Logon ou si vous correspondez à un autre service Web, changez-le en conséquence. Plus de références sur la création de modèles et Regex peuvent être trouvées ici.

 

Deuxième condition

Cliquez Sur'Ajouter ou Condition'pour ajouter la deuxième condition et configurer:

Règle de base-deuxième condition de la règle standard

Opérateur: égal à

Contexte: http-RSP-code

Valeur: 200 — nous recherchons une réponse HTTP avec un code d'état 200 (OK).

 

Création d'une signature combinée

Maintenant que nous avons créé notre signature de base, nous allons procéder et créer une signature combinée. Cliquez sur Ajouter à nouveau dans le coin inférieur gauche de l'écran pour commencer avec la configuration.

 

Onglet Configuration

Nous avons besoin de configurer les éléments suivants:

Règle combinée-onglet Configuration

 

  • ID de menace: nombre arbitraire entre 41000 et 45000, je choisis 43435 parce que précédent était 43435:)
  • Nom: WordPress-BruteForce (choix arbitraire)
  • Gravité: Critica — c'est important, vous voulez que cette signature ait une gravité élevée ou critique, car nous détectons des tentatives de force brute pour percer vos services.
  • Action par défaut: Block IP-nous allons définir plus loin cette action:
  • Track by: source — nous bloquerons l'adresse IP source, nous ne voudrions pas bloquer la destination dans ce cas parce que c'est notre serveur à l'intérieur du pare-feu. Règle de base précédente utilisé une idée d'une «session ordonnée» ayant première transaction de la demande de WP-Logon et la réponse de 200 à elle; par conséquent, la source de session est attaquant externe.
  • Durée: 60-c'est la durée de combien de temps nous voulons que ce bloc ait lieu, jusqu'à une heure (3600 secondes). Alors que notre démonstration empêche IP source de se connecter uniquement pendant 60 secondes, dans la configuration stricte de la production, vous pourriez soulever ce à 3600 secondes; Cela devrait être suffisant pour décourager tout attaquant-ils pourraient tenter de briser forçant seulement 5 mots de passe par heure.
  • Direction: les deux
  • Système affecté: serveur

Onglet signatures

Maintenant, nous devons corréler cela à notre signature de base. Dans cet onglet, choisissez:

Signature: combinaison

et procédez à la configuration des sous-onglets:

Signatures combinées

Règle combinée-onglet signature

ID de la menace: cliquez Sur'Ajouter ou Condition'et tapez 43434 (ou n'importe quel ID de menace que vous avez choisi pour votre signature de base).

 

Attribut de temps

Onglet attribut règle-temps de combinaison

Nombre de clics: 5 par 20 secondes — c'est la dernière partie où nous paramétrons des valeurs qui déclencheront notre signature de base. Cela peut être ajusté en fonction de votre expérience. Vous pouvez compter quelque chose entre 1-255 hits en 1-3600 secondes.

Critères d'agrégation: source — nous allons compter ces déclencheurs par adresse IP source.

 

Détails supplémentaires

Actuellement, la menace ID 37480 dans la liste de vulnérabilité est PAN signature pour WordPress login; Il est également de gravité de l'information et peut être utilisé comme signature de base dans L'exemple ci-dessus. Cet article devrait vous apporter la valeur en apprenant comment créer et personnaliser n'importe quelle signature, au cas où vous avez des URL d'ouverture de session personnalisées ou vous employez un autre service semblable au cas décrit ci-dessus.

 

Conclusion

Votre configuration finale montrerait deux vulnérabilités personnalisées pour vous aider à prévenir les attaques de force brute sur le site WordPress hébergé derrière votre pare-feu. Cependant, avec un peu de bricolage, vous pouvez également protéger beaucoup de services différents, atténuer certains travaux de WAF dédié et offrant une valeur supplémentaire au-delà des signatures régulières.

Vue finale

 

Si vous aimez l'idée de créer des signatures personnalisées pour votre appareil, S'il vous plaît visitez nos pages communautaires pour les signatures personnalisées.

 



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClSTCA0&lang=fr&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language