Web Security Scanner identifie les failles de sécurité dans vos applications Web App Engine, Google Kubernetes Engine (GKE) et Compute Engine. Ce système d'analyse explore votre application, tous les liens associés à vos URL de démarrage, puis essaie de tester un maximum d'entrées utilisateur et de gestionnaires d'événements. Web Security Scanner accepte uniquement les URL publiques et les adresses IP qui ne sont pas derrière un pare-feu.
Web Security Scanner est compatible avec l'environnement standard et les environnements flexibles App Engine, les instances Compute Engine et les ressources GKE.
Web Security Scanner est conçu pour compléter vos processus de conception et de développement sécurisés existants. Pour éviter toute distraction par de faux positifs, Web Security Scanner fait appel à des rapports et n'affiche aucune alerte de confiance faible. Cloud Security Scanner ne remplace pas un contrôle de sécurité manuel, et ne garantit pas l'absence de failles de sécurité dans votre application.
Types d'analyses
Web Security Scanner fournit une analyse des failles Web gérée et personnalisée pour les applications Web publiques App Engine, GKE et Compute Engine.
Analyses gérées
Les analyses gérées de Web Security Scanner sont configurées et gérées par Security Command Center. Elles s'exécutent automatiquement une fois par semaine pour détecter et analyser les points de terminaison Web publics. Ces analyses n'utilisent pas l'authentification et n'envoient que des requêtes GET. Elles n'envoient donc pas de formulaires sur des sites Web en ligne.
Les analyses gérées s'exécutent séparément des analyses personnalisées.
Si Security Command Center est activé au niveau de l'organisation, vous pouvez utiliser des analyses gérées pour gérer de manière centralisée la détection de failles des applications Web de base pour les projets de votre organisation, sans avoir à impliquer des équipes de projets individuelles. Lorsque des résultats sont détectés, vous pouvez collaborer avec ces équipes pour configurer des analyses personnalisées plus complètes.
Lorsque vous activez Web Security Scanner en tant que service, les résultats des analyses gérées sont disponibles automatiquement sur la page Failles de Security Command Center et rapports associés. Pour savoir comment activer les analyses gérées de Web Security Scanner, consultez la section Configurer les services Security Command Center.
Les analyses gérées ne sont compatibles qu'avec les applications qui utilisent le port par défaut, qui est 80 pour les connexions HTTP et 443 pour les connexions HTTPS. Si votre application utilise un port non par défaut, effectuez plutôt une analyse personnalisée.
Analyses personnalisées
Les analyses personnalisées de Web Security Scanner fournissent des informations précises sur les résultats des failles des applications, telles que les bibliothèques obsolètes, les scripts intersites ou l'utilisation de contenus mixtes.
Vous définissez des analyses personnalisées au niveau du projet.
Les résultats de l'analyse personnalisée sont disponibles dans Security Command Center une fois que vous avez suivi le guide de configuration des analyses personnalisées de Web Security Scanner.
Analyser les résultats
Cette section décrit les types de résultats Web Security Scanner et les standards de conformité applicables.
Détecteurs et conformité
Web Security Scanner accepte les catégories du Top 10 de l'OWASP, un document qui classe les 10 risques de sécurité les plus critiques pour les applications Web identifiés par le projet OWASP (Open Web Application Security Project) et fournit des conseils de résolution pour chacun.
Le mappage de conformité est inclus pour référence et n'est pas fourni ni examiné par la Fondation OWASP. Elle vous permet uniquement de surveiller la conformité contrôle les violations. Les mappages ne sont pas fournis pour être utilisés comme base ni en remplacement de l'audit, de la certification ou du rapport de conformité produits ou services conformément aux benchmarks ou normes du secteur ou réglementaires.
Pour en savoir plus sur la conformité, consultez la section Évaluer et signaler la conformité aux benchmarks de sécurité.
Types de résultats
Les analyses personnalisées et gérées de Web Security Scanner identifient les types de résultats suivants. Au niveau Standard, Web Security Scanner accepte les analyses personnalisées des applications déployées avec des URL et des adresses IP publiques qui ne sont pas protégées par un pare-feu.
Catégorie | Description du résultat | OWASP 2017 Top 10 | OWASP 2021 Top 10 |
---|---|---|---|
Nom de la catégorie dans l'API : |
Un dépôt GIT est exposé publiquement. Pour résoudre ce problème, supprimez l'accès public involontaire au dépôt GIT. Niveau de tarification : Standard |
A5 | A01 |
Nom de la catégorie dans l'API : |
Un dépôt SVN est exposé publiquement. Pour résoudre ce résultat, supprimez les contenus publics un accès non intentionnel au dépôt SVN. Niveau de tarification: Standard |
A5 | A01 |
Nom de la catégorie dans l'API : |
Les mots de passe saisis dans l'application Web peuvent être mis en cache dans le cache standard du navigateur d'un stockage sécurisé des mots de passe. Niveau de tarification : Premium |
A3 | A04 |
Nom de la catégorie dans l'API : |
Les mots de passe sont transmis en texte clair et peuvent être interceptés. Pour résoudre ce problème, trouver, chiffrer le mot de passe transmis sur le réseau. Niveau de tarification : Standard |
A3 | A02 |
Nom de la catégorie dans l'API : |
Un point de terminaison HTTP ou HTTPS intersite ne valide qu'un suffixe de Niveau de tarification : Premium |
A5 | A01 |
Nom de la catégorie dans l'API : |
Un point de terminaison HTTP ou HTTPS intersites ne valide qu'un préfixe de l' Niveau de tarification : Premium |
A5 | A01 |
Nom de la catégorie dans l'API : |
Une des ressources chargées ne correspond pas à l'en-tête HTTP "Content-Type" de la réponse. Pour résoudre ce problème, définissez l'en-tête HTTP Niveau de tarification : Standard |
A6 | A05 |
Nom de la catégorie dans l'API : |
Un en-tête de sécurité contient une erreur de syntaxe et est ignoré par les navigateurs. Pour résoudre ce résultat, défini correctement les en-têtes de sécurité HTTP. Niveau de tarification: Standard |
A6 | A05 |
Nom de la catégorie dans l'API : |
Un en-tête de sécurité contient des valeurs en double incompatibles et non concordantes, ce qui entraîne un comportement indéfini. Pour résoudre ce résultat, définissez correctement les en-têtes de sécurité HTTP. Niveau de tarification: Standard |
A6 | A05 |
Nom de la catégorie dans l'API : |
Un en-tête de sécurité est mal orthographié et ignoré. Pour résoudre ce résultat, définissez correctement les en-têtes de sécurité. Niveau de tarification : Standard |
A6 | A05 |
Nom de la catégorie dans l'API : |
Les ressources sont diffusées via HTTP sur une page HTTPS. Pour résoudre ce résultat, assurez-vous toutes les ressources sont diffusées via HTTPS. Niveau de tarification: Standard |
A6 | A05 |
Nom de la catégorie dans l'API : |
Une bibliothèque contenant des failles connues a été détectée. Pour résoudre ce résultat, effectuez la mise à niveau les bibliothèques vers une version plus récente. Niveau de tarification : Standard |
A9 | A06 |
Nom de la catégorie dans l'API : |
Une faille SSRF (Server Side Request Forgery, falsification de requête côté serveur) a été détectée. Pour résoudre ce résultat, utilisez une liste d'autorisation pour limiter les domaines et les adresses IP auxquels l'application Web peut envoyer des requêtes. Niveau de tarification: Standard |
Non applicable | A10 |
Nom de la catégorie dans l'API : |
Lors d'une requête interdomaine, l'application Web inclut l'identifiant de session de l'utilisateur dans son en-tête de requête Niveau de tarification: Premium |
A2 | A07 |
Nom de la catégorie dans l'API : |
Une faille potentielle d'injection SQL a été détectée. Pour résoudre ce résultat, utilisez des requêtes paramétrées afin d'empêcher les entrées utilisateur d'affecter la structure de la requête SQL. Niveau de tarification: Premium |
A1 | A03 |
Nom de la catégorie dans l'API : |
Utilisation d'une version vulnérable d'Apache Struts a été détectée. Pour résoudre ce résultat, mettez à niveau Apache Struts vers la dernière version. Niveau de tarification: Premium |
A8 | A08 |
Nom de la catégorie dans l'API : |
Un champ dans cette application Web est vulnérable aux attaques de script intersites (XSS). Pour résoudre ce problème, validez les données fournies par l'utilisateur non approuvées et faites-les échapper. Niveau de tarification : Standard |
A7 | A03 |
Nom de la catégorie dans l'API : |
Une chaîne fournie par l'utilisateur n'est pas échappée et AngularJS peut l'interpoler. Pour résoudre ce problème, validez les données fournies par l'utilisateur non approuvées qui sont gérées par le framework Angular et faites-les échapper. Niveau de tarification: Standard |
A7 | A03 |
Nom de la catégorie dans l'API : |
Un champ dans cette application Web est vulnérable aux attaques de script intersites. Pour résoudre ce problème, validez les données fournies par l'utilisateur non approuvées et faites-les échapper. Niveau de tarification : Standard |
A7 | A03 |
Nom de la catégorie dans l'API : |
Une faille XML External Entity (XXE) a été détectée. Cette faille peut entraîner une application Web pour divulguer un fichier sur l’hôte. Pour corriger ce résultat, configurez vos analyseurs XML de manière à interdire les entités externes. Niveau de tarification: Premium |
A4 | A05 |
Nom de la catégorie dans l'API : |
L'application est vulnérable à la pollution des prototypes. Cette faille survient lorsque des valeurs qu'un pirate informatique peut contrôler peuvent être attribuées aux propriétés de l'objet Niveau de tarification: Standard |
A1 | A03 |
Mises en garde sur l'utilisation
Les rôles IAM pour Security Command Center peuvent être attribués au niveau de l'organisation, du dossier ou du projet. Votre capacité à afficher, modifier, créer ou mettre à jour des résultats, des éléments, et les sources de sécurité dépendent du niveau d'accès accordé. Pour en savoir plus sur les rôles Security Command Center, consultez la page Contrôle des accès.
Voici d'autres points importants à considérer lorsque vous utilisez Web Security Scanner :
- Étant donné que Web Security Scanner fait l'objet d'améliorations continues, une analyse ultérieure peut identifier des problèmes que l'analyse actuelle n'a pas signalés.
- Certaines fonctionnalités ou sections de votre application peuvent ne pas être testées.
- Web Security Scanner tente d'activer chaque commande et chaque entrée qu'il détecte.
- Si vous exposez des actions de changement d'état pour lesquelles votre compte de test dispose d'une autorisation, il est probable que Web Security Scanner les active. Cela peut entraîner des résultats indésirables.
- Web Security Scanner est limité à 15 analyses par projet. Comme les analyses sont exécutées simultanément, les utilisateurs qui atteignent cette limite sont invités à ajouter plusieurs URL de démarrage par analyse ou pour ajouter des analyses à différents projets qui n'ont pas encore atteint la limite.
Qui peut exécuter une analyse de sécurité ?
Pour en savoir plus sur les rôles IAM (Identity and Access Management) disponible pour Web Security Scanner, consultez Contrôle des accès :
Combien de temps faut-il pour exécuter une analyse de sécurité ?
L'analyse de sécurité ne s'exécute pas immédiatement. Elle est d'abord placée en file d'attente puis exécutée ultérieurement, éventuellement après plusieurs heures, en fonction de la charge du système. Une fois l'analyse commencée, le temps d'exécution dépend de la taille de votre application. L'analyse d'une application volumineuse comportant de nombreuses URL peut prendre plusieurs heures, voire plusieurs jours. Si une analyse ne s'est pas terminée dans les 20 jours, elle s'arrête automatiquement. et tous les résultats d'exploration et tous les résultats trouvés pendant l'analyse seront visibles résultat de l'analyse.
Restrictions applicables aux cibles
Web Security Scanner applique des filtres qui limitent les cibles d'analyse à l'instance App Engine spécifique pour laquelle l'analyse est créée. La saisie d'URL pour un autre projet App Engine ou un domaine externe entraînera un message d'erreur.
Les analyses pour Compute Engine et GKE sont limitées aux domaines qui correspondent à des adresses IP externes statiques réservées pour le même projet et aux adresses IP externes statiques appartenant au même projet. Pour savoir comment réserver des adresses IP pour des projets, consultez les liens suivants :
Compute Engine: Réserver une adresse IP externe statique
GKE: Configurer des noms de domaine avec des adresses IP statiques
App Engine ne permet pas de mapper des adresses IP statiques à une application. Toutefois, vous pouvez utiliser Cloud Load Balancing et un réseau sans serveur des groupes de points de terminaison réserver une adresse IP statique pour votre équilibreur de charge ; qui dirige ensuite le trafic vers votre application. Pour en savoir plus sur les tarifs, consultez la page Tarifs des adresses IP externes.
Dans votre projet, Web Security Scanner tente automatiquement d'éviter les URL de déconnexion et d'autres emplacements génériques susceptibles de nuire à une analyse. Toutefois, pour plus de sécurité, vous pouvez exclure des URL manuellement à l'aide des paramètres d'analyse.
Validation
Les configurations d'analyse sont validées lors de leur création et avant chaque analyse. Web Security Scanner vérifie les paramètres de Security Command Center, ainsi que les d'authentification pour s'assurer que les analyses sont correctement configurées et peuvent consigner dans votre application. Les paramètres de configuration, y compris la vitesse d'analyse maximale, sont également vérifiés pour s'assurer qu'ils sont compris dans les plages compatibles.
Vous devez résoudre les erreurs avant de créer ou de mettre à jour une analyse. Les applications modifiées après la configuration initiale peuvent générer des erreurs lors des analyses. Par exemple, si un domaine ne pointe plus vers une adresse IP appartenant au projet, la ressource n'est pas analysée et une erreur est signalée sur la page de configuration de l'analyse.
Bonnes pratiques
Étant donné que Web Security Scanner remplit les champs, appuie sur les boutons, clique sur les liens et effectue d'autres actions utilisateur, vous devez l'utiliser avec prudence, en particulier si vous analysez des ressources de production. Web Security Scanner peut potentiellement activer des fonctionnalités qui modifient l'état de vos données ou de votre système, et entraîner des résultats indésirables.
Exemple :
- Dans une application de blog qui autorise les commentaires publics, Web Security Scanner peut publier des chaînes de test sous forme de commentaires sur tous les articles de votre blog.
- Web Security Scanner peut générer un grand nombre d'e-mails de test sur une page d'inscription par e-mail.
Voici quelques techniques que vous pouvez utiliser, séparément ou de manière combinée, pour éviter des résultats indésirables :
- Exécuter les analyses dans un environnement de test. Configurez un environnement de test en créant un projet App Engine distinct et en y chargeant votre application et vos données. Si vous utilisez Google Cloud CLI, vous pouvez spécifier le projet cible en tant qu'option de ligne de commande lors de l'importation de votre application.
- Utiliser un compte de test. Créez un compte utilisateur n'ayant pas accès à des données sensibles ou à des opérations dangereuses et utilisez-le lors de l'analyse de votre application. De nombreuses applications présentent un workflow spécial lors de la première connexion d'un utilisateur, par exemple, accepter des conditions ou créer un profil. En raison des différences de workflow, il est possible qu'un compte de test pour un premier utilisateur génère des résultats d'analyse différents de ceux d'un compte utilisateur établi. Il est préférable de procéder à l'analyse avec un compte dont l'état de l'utilisateur est normal une fois le workflow initial terminé.
- Bloquez les éléments d'interface utilisateur individuels que vous ne souhaitez pas activer en appliquant la classe CSS
inq-no-click
. Les gestionnaires d'événements associés à cet élément ne sont pas activés lors de l'exploration et des tests, qu'ils soient intégrés à JavaScript, rattachés à l'aide deaddEventListener
ou en définissant le gestionnaire d'événements approprié. - Utiliser les données de sauvegarde. Pensez à sauvegarder vos données avant de procéder à l'analyse.
- Exclure des URL. Vous pouvez spécifier des formats d'URL qui ne sont ni explorés, ni testés. Pour en savoir plus sur la syntaxe, consultez la page Exclure des URL.
Avant de procéder à l'analyse, effectuez un audit minutieux de votre application afin de détecter tout élément susceptible d'affecter les données, les utilisateurs ou les systèmes ne faisant pas partie du champ d'application de l'analyse.
Étape suivante
- Premiers pas avec Web Security Scanner