Sécurisation de votre application à l'aide de WAF

Une fois que votre application est acheminée via le pare-feu d'applications Web (WAF), sécurisez votre application à l'aide des diverses fonctions de sécurité proposées par WAF.

Vous pouvez sécuriser votre application en :

  • Configuration des règles de protection
  • Utilisation de la gestion des bots
  • Ajout de règles d'accès

Configuration des règles de protection

Vous pouvez sécuriser l'application à l'aide de règles permettant de bloquer les attaques par exécution de scripts inter-sites (XSS) et par injection SQL (SQLi).

Pour configurer des règles de protection, procédez comme suit :
  1. Connectez-vous à la console Oracle Cloud Infrastructure.
  2. Ouvrez le menu de navigation. Sous Gouvernance et administration, accédez à Sécurité, puis cliquez sur Stratégies WAF.
  3. Cliquez sur Règles de protection.
    Une table s'affiche avec des règles de protection prédéfinies.
  4. Utilisez le filtre RULE ID et sélectionnez les règles 941140 et 981300.
    Les détails de la règle sont affichés à droite.
  5. Sélectionnez chaque règle et cliquez sur Bloquer dans le menu déroulant Actions.
  6. Cliquez sur Tout publier.
    La publication des modifications apportées à la stratégie WAF peut prendre plusieurs minutes.

Vérifier les règles de protection

Pour vérifier si les règles de protection fonctionnent, procédez comme suit :
  1. Ouvrez l'onglet Réseau à partir de la page Outils de développement de votre navigateur.
  2. Accédez à l'exemple d'application de l'employé, http://employee.<example.com>/public/, à partir de votre navigateur.
  3. Cliquez sur Nouvel employé et remplissez le formulaire avec des exemples d'informations.
  4. Entrez l'injection SQL suivante dans le champ Prénom :
    SomeUser; DROP TABLE users
  5. Ouvrez l'onglet Réseau du navigateur, puis cliquez sur Enregistrer dans le formulaire Nouvel employé.
    Le fichier POST en /employees est bloqué avec 403 Forbidden.
  6. Exécutez la commande cURL suivante :
    curl -X POST http://${WAF_TARGET}/employees \ 
    -H 'host: employee.example.com' \ 
    -d '{"firstName":"Name; DROP TABLE users"}'
    La commande renvoie une erreur 403.
  7. Exécutez une demande GET en essayant l'exécution de l'option Cross-Site Scripting (XSS) dans les paramètres de requête sur votre barre d'adresse de navigateur :
    http://employee.<example.com>/employees/?id=%3Cscript%3Ealert(%27bad%27)%3C/script%3Ein

    Le navigateur renvoie les éléments suivants :


    Description de waf-forbidden.png
    Description de l'illustration waf-forbidden.png

Les étapes précédentes déclenchent plusieurs fois l'action WAF Block. Maintenant, revenez aux détails de la stratégie WAF dans la console Oracle Cloud Infrastructure pour consulter les journaux.
  1. Ouvrez la stratégie de démonstration du salarié.
  2. Cliquez sur Journaux.
  3. Sélectionnez une plage de dates/heures qui couvre l'heure à laquelle vous avez tenté les attaques SQLi et XSS.
  4. Identifiez les éléments avec Action: Block, développez les détails de ligne sur une demande bloquée, puis cliquez sur Visualiser JSON.
  5. Visualisez les messages répertoriés sous la forme protectionRuleDetections et d'autres détails de demande.

Utiliser la gestion des bots

Une autre fonctionnalité du service Oracle Cloud Infrastructure Web Application Firewall (WAF) est ses fonctionnalités de gestion de bot.

Dans de nombreux cas, le trafic non-humain constitue le plus grand pourcentage de trafic vers un site. Même si certains "bots corrects" sont favorables, d'autres bots "incorrects peuvent tenter de capturer du contenu, de spamcher, d'attaques en force brute ou d'attaques DDoS par couche d'application.

Par exemple, vous pouvez mettre sur liste blanche certains bots connus à des fins d'optimisation du moteur de recherche (SEO) et de classement du contenu, mais aussi limiter la vérification d'un utilisateur humain à certaines interactions. Ce type de scénario est facilement réalisé à l'aide des paramètres de gestion WAF policy Bot.

Ajouter une question de vérification CAPTCHA

L'une des fonctions salient de gestion des bots est CAPTCHA. L'utilisation de CAPTCHA constitue un moyen simple de vérification par l'utilisateur qui garantit l'interaction humaine, sans qu'aucune modification ne soit nécessaire dans l'application sous-jacente.

Pour ajouter une question de vérification CAPTCHA :
  1. Console Oracle Cloud Infrastructure.
  2. Ouvrez le menu de navigation. Sous Gouvernance et administration, accédez à Sécurité, puis cliquez sur Stratégies WAF.
  3. Ouvrez la politique de démonstration des employés et cliquez sur Gestion des bots.
  4. Cliquez sur l'onglet Question de vérification CAPTCHA, puis sur Ajouter une question de vérification CAPTCHA.
  5. Entrez /public/index.html comme valeur dans le champ Chemin de l'URL CAPTCHA.
  6. Conservez les valeurs par défaut des autres champs tels quels.
  7. Cliquez sur Ajouter, puis sur Tout publier.
  8. Une fois les modifications publiées et la stratégie WAF reprend l'état ACTIVE, chargez la page, http://employee.<example.com>/public/index.html, à partir de votre navigateur.
    Le navigateur affiche la question de vérification CAPTCHA suivante :

Une fois le code saisi, vous devez entrer le site Web sans que d'autres questions de vérification portant sur une période correspondant à la valeur Session Duration dans la configuration Challenge.

Ajouter une règle de contrôle d'accès

Le contrôle d'accès à WAF fournit une couche de sécurité supplémentaire en limitant ou en bloquant l'accès aux données et services disponibles dans une application.

Grâce au contrôle d'accès, vous pouvez définir des règles en fonction des conditions de demande, notamment :
  • En-têtes HTTP
  • Modèles d'URL
  • Adresses IP
  • Géolocalisation

Dans l'application Employé échantillon, vous pouvez supprimer les détails des employés de la base de données. Vous devrez peut-être restreindre l'utilisation de la fonctionnalité Delete à des fins de sécurité. Vous pouvez créer et appliquer une règle d'accès afin de bloquer les demandes de suppression.

Pour ajouter une règle de contrôle d'accès, procédez comme suit :
  1. Console Oracle Cloud Infrastructure.
  2. Ouvrez le menu de navigation. Sous Gouvernance et administration, accédez à Sécurité, puis cliquez sur Stratégies WAF.
  3. Ouvrez la stratégie de démonstration des employés et cliquez sur Contrôle d'accès.
  4. Cliquez sur Ajouter une règle d'accès.
  5. Entrez un nom de règle, tel que Prevent Delete.
  6. Ajoutez les conditions de règle suivantes :
    • Méthode HTTP : DELETE
    • L'URL commence par : /employees
  7. Sélectionnez l'action de règle Bloc, puis 403 Interdit (option par défaut) en tant que code de réponse définie (action Bloquer).
  8. Cliquez sur Ajouter une règle d'accès pour créer la règle, puis cliquez sur Tout publier.

Une fois les modifications publiées et la stratégie WAF reprend avec l'état ACTIVE :

  1. Ouvrez l'onglet Réseau à partir de la page Outils de développement de votre navigateur.
  2. Accédez à l'exemple d'application de l'employé, http://employee.<example.com>/public/, à partir de votre navigateur.
  3. Sélectionnez un enregistrement d'employé, puis cliquez sur le bouton Supprimer.

Dans l'onglet Réseau de la section Outils de développement du navigateur, vous remarquerez que WAF a intercepté cette demande et l'a bloquée avec une réponse 403 Forbidden.

Les fonctionnalités d'Oracle Cloud Infrastructure WAF traitées dans cette solution se concentrent sur la sécurisation d'une application exemple de base. Les scénarios d'utilisation sont propres à chaque application et vous pouvez configurer WAF en conséquence.