Triage avec des filtres

AppScan® Source for Analysis rend compte de toutes les vulnérabilités de sécurité potentielles et peut donc générer des milliers de constatations pour une base de code de moyenne/grande envergure. Lors de l'examen, vous pouvez conclure que la liste des constatations contient des éléments sans importance dans votre cas. Pour éliminer certains éléments de la vue Constatations, vous pouvez choisir un filtre prédéfini ou créer votre propre filtre. Un filtre spécifie les critères qui déterminent les constatations à supprimer de la vue.

Présentation des filtres

Les filtres permettent de supprimer ou de restreindre l'affichage d'éléments qui répondent à des critères déterminés par des règles de filtre. Ils peuvent aussi vous aider à gérer les résultats d'examen pendant le triage ou la génération de rapports. Un filtre aide à piloter le flux de travaux et à focaliser les analystes de la sécurité sur les zones les plus critiques d'un sous-ensemble de constatations. Par exemple, lors de l'examen du code, un analyste peut créer un filtre afin d'éviter l'affichage de constatations à faible gravité. Il pourrait également vouloir exclure des vulnérabilités des fichiers d'include de la bibliothèque système. Un filtre peut éliminer l'affichage de ces éléments et exclure des fichiers individuels ou déjà examinés.

Des filtres peuvent être appliqués avant ou après un examen.

  • Pour appliquer des filtres avant l'examen, vous définissez des filtres globaux dans les propriétés du projet ou de l'application, ou bien vous effectuez un examen à l'aide d'une configuration d'examen comportant des filtres. Lorsque vous appliquez des filtres avant l'examen, vous ne pouvez pas afficher des constatations non filtrés ou supprimer le filtre sans effectuer un nouvel examen.
  • Différentes vues (en particulier la vue Editeur de filtre) vous permettent d'appliquer des filtres après l'examen. Lorsque ces vues sont utilisées pour le filtrage, tous les éléments filtrés demeurent dans les résultats de l'examen et n'apparaissent dans la vue Constatations que si l'option à bascule Afficher les constatations filtrées (icône Afficher les constatations filtrées) est sélectionnée.

AppScan® Source inclut plusieurs filtres prédéfinis qui peuvent être sélectionnés pour le filtrage des résultats d'examen.

Dès lors que vous avez un filtre, vous pouvez définir une propriété pour caractériser le filtre comme une exclusion. Une exclusion affecte les examens et élimine toutes les constatations qui correspondent au filtre ou, à l'inverse, toutes celles qui ne s'y conforment pas.

Règles de filtrage

Chaque filtre est composé de règles qui définissent à quelles constatations les restreindre (inclure) ou lesquelles supprimer (exclure) dans les résultats du tableau des constatations (pour les règles de trace, vous pouvez restreindre et supprimer des éléments en fonction des propriétés de trace).

  • Une règle de restriction (règle inclusive) exclut les constatations ne correspondant pas aux critères spécifiés et les retire des résultats visibles dans le tableau des constatations.
  • Une règle de suppression (règle exclusive) retire les constatations correspondant aux critères spécifiés des résultats d'examen. Une règle de suppression retire les constatations correspondant aux critères spécifiés des résultats visibles de l'examen.

Une règle de filtrage peut inclure les caractéristiques suivantes :

  • Gravité : Identifie l'impact ou le risque potentiel des constatations individuelles. Les règles de gravité sont de type restriction uniquement.
    • Elevée : Pose un risque pour la confidentialité, l'intégrité et la disponibilité des données et/ou des ressources de traitement. Vous devriez affecter cette priorité aux conditions nécessitant une résolution immédiate.
    • Moyenne : Pose un risque pour la sécurité des données et l'intégrité des ressources mais la condition est moins susceptible de subir des attaques. Les conditions de gravité moyenne devraient être examinées et résolues dans la mesure du possible.
    • Faible : Pose un risque minime à la sécurité des données et à l'intégrité des ressources.
    • Info : La constatation elle-même ne présente pas de risque. Elle décrit plutôt les technologies, les caractéristiques de l'architecture ou les mécanismes de sécurité utilisés dans le code.
  • Classification : filtre les constatations d'après les classifications décrites dans cette rubrique. Les règles de classification sont de type restriction uniquement.
  • Type de vulnérabilité : filtrage d'après une catégorie de vulnérabilité spécifique, par exemple BufferOverflow. Lorsque vous ajoutez un type de vulnérabilité, vous pouvez effectuer une sélection dans la liste de tous les types de vulnérabilité possibles ou vous pouvez choisir uniquement les types qui ont été détectés dans l'évaluation en cours. Pour choisir un type de vulnérabilité parmi ceux qui ont été détectés dans l'évaluation en cours, sélectionnez l'option Afficher uniquement les valeurs de l'évaluation ouverte dans la boîte de dialogue Sélection de valeurs.

    Une sélection parmi tous les types de vulnérabilité possibles est utile lorsque vous créez un filtre pour des examens ultérieurs. Pour afficher tous les types de vulnérabilité, désélectionnez la case Afficher uniquement les valeurs de l'évaluation ouverte (en l'absence d'évaluations ouvertes, tous les types de vulnérabilité sont affichés par défaut et la case à cocher Afficher uniquement les valeurs de l'évaluation ouverte n'est pas disponible).

  • API : filtre toutes les vulnérabilités d'une API spécifique.
  • Fichier : filtre toutes les vulnérabilités d'un fichier spécifique.
  • Répertoire : filtre toutes les vulnérabilités d'un répertoire spécifique.
  • Projet : filtre toutes les vulnérabilités d'un projet spécifique.
  • Trace : permet de filtrer les constatations d'après les propriétés de trace (voir Sources et collecteurs pour plus d'informations sur ces propriétés). Les filtres peuvent inclure des règles de trace qui effectuent des restrictions ou des suppressions en fonction de propriétés de trace. Lorsque vous cliquez sur Ajouter dans l'une ou l'autre des sections (restriction ou suppression), la boîte de dialogue Entrée de règle de trace s'ouvre. Vous pouvez spécifier dans celle-ci :
    • Source : Dans la zone RegEx d'API de la section Source, spécifiez la source de la trace ou une expression régulière couvrant plusieurs sources (l'entrée par défaut est .*, correspondant à l'expression régulière ou au caractère générique les renvoyant toutes). Si vous utilisez une expression régulière, sélectionnez son type dans le menu de la zone Type RegEx (le type par défaut étant PERL). Si vous n'utilisez pas d'expression régulière, sélectionnez l'option Correspondance exacte dans le menu de la zone Type RegEx.

      Si l'entrée RegEx d'API correspond à une expression valide, une coche verte apparaît en regard de la zone. Si elle n'est pas valide, un symbole X en rouge apparaît en regard de la zone et le bouton OK de la boîte de dialogue est alors désactivé. Le survol de ces indications fournit des résultats supplémentaires sur les résultats de la validation. Si votre entrée ne correspond pas à une expression valide mais que vous désirez néanmoins l'utiliser, cochez la case Ignorer les erreurs de validation ci-dessus au bas de la boîte de dialogue. Ceci réactive le bouton OK (pour autant que l'expression n'est pas vide) et l'icône en regard de l'expression non valide change pour afficher une coche verte avec une infobulle Validation désactivée.

      Vous pouvez aussi affiner le filtre par mécanisme ou technologie en utilisant le bouton Ajouter une propriété VMAT dans la section Propriétés de source (plus d'informations sur les propriétés VMAT disponibles ci-dessous) ; toutefois, l'utilisation de cette fonction pour appliquer une limitation par vulnérabilité n'aura pas l'effet souhaité car le type de vulnérabilité est déterminé par le collecteur et non par la source.

    • Collecteur : dans la section Collecteur, vous pouvez ajouter des collecteurs en tant que filtre de la même manière que vous spécifiez les sources.

      Vous pouvez affiner le filtre en le limitant à des types de vulnérabilité spécifiques (pour limiter l'effet de l'entrée de règle de trace à des types spécifiques de vulnérabilité, de mécanisme ou de technologie). Pour ce faire, cliquez sur le bouton Ajouter une propriété VMAT dans la section Propriétés de collecteur, puis sélectionnez la propriété dans la boîte de dialogue Sélection des propriétés. La liste des propriétés peut être filtrée à l'aide de la zone Filtre.

      VMAT est une catégorisation des quatre principaux types de propriétés appliquées par AppScan® Source aux interfaces de programmation d'application (API). Les catégories de propriété VMAT incluent :

      • Vulnérabilité : type d'exploit ou de vecteur d'attaque débouchant sur une violation de la sécurité
      • Mécanisme : mécanisme de sécurité utilisé pour empêcher une vulnérabilité
      • Attribut : ces propriétés ne sont actuellement pas disponibles dans la boîte de dialogue Sélection des propriétés
      • Technologie : description générale du type de fonctionnalité assuré par une API

      Exemple de filtre : pour filtrer toutes les injections SQL et les scripts intersites (XSS) provenant d'HTTP (la source essentielle de risques), créez une règle de trace Restreindre à qui contient un filtre Technology.Communications.HTTP dans la section Propriétés de source et des règles Vulnerability.Injection.SQL et Vulnerability.CrossSiteScripting dans la section Propriétés de collecteur.

    • Appels requis : dans la section Appels requis, ajoutez des appels d'API spécifiques devant figurer sur le chemin d'accès de la source vers le collecteur. Les appels requis limitent les constatations à celles dont les traces passent à travers les appels requis spécifiés. Lorsque vous cliquez sur Ajouter un appel intermédiaire, la boîte de dialogue Configuration d'API s'ouvre. Dans cette boîte de dialogue, spécifiez l'appel approprié de la même manière que vous avez spécifié des sources et des collecteurs.
    • Appels interdits : dans la section Appels interdits, ajoutez des appels d'API spécifiques ne devant pas figurer sur le chemin d'accès de la source vers le collecteur. Les appels interdits limitent les constatations à celles dont les traces ne passent pas à travers les appels interdits spécifiés. Ajoutez des appels interdits de la même manière que ceux requis.
    Conseil :
    • Lorsque le filtrage par Type de vulnérabilité, API, Fichier, Répertoire ou Projet est utilisé, la liste qui apparaît dans la boîte de dialogue Sélection de valeurs peut être filtrée en tapant un schéma dans la zone de filtre située en haut de la boîte de dialogue.
    • Depuis un tableau de constatations quelconque, examinez les colonnes Source et Collecteur pour vous faire une idée des sources et collecteurs que vous voudrez filtrer.
    • Pour vous faire une idée des propriétés de source, collecteur et appel que vous voudrez filtrer, examinez la colonne Type de vulnérabilité d'un tableau de constatations quelconque.
    • Pour afficher les appels que vous pourriez vouloir filtrer, examinez les entrées de la colonne API d'un tableau de constatations quelconque.

Exemples de filtre

Tableau 1. Exemples de filtre
Comportement du filtre dans un tableau de constatations Paramètres de filtrage dans la vue Editeur de filtre
Le tableau des constatations contient uniquement des constatations de sécurité suspectées à gravité élevée.
  • Dans la section Gravité, cochez la case Elevée et décochez toutes les autres.
  • Dans la section Classification, cochez la case Suspectée et désélectionnez toutes les autres cases.
Le tableau des constatations inclut toutes celles d'un projet nommé ProjectA, à l'exception des types information sur les vulnérabilités.
  • Dans la section Type de vulnérabilité, sélectionnez le bouton d'option Supprimer et cliquez sur Ajouter. Dans la boîte de dialogue Sélection de valeurs, sélectionnez Vulnerability.Info.
  • Dans la section Projet, sélectionnez le bouton d'option Restreindre à et cliquez sur Ajouter. Dans la boîte de dialogue Sélection de valeurs, sélectionnez ProjectA.
Seules les constatations comportant une trace sont affichées. Dans la section Trace, cliquez sur Ajouter dans la section Restreindre à. Acceptez les entrées par défaut de la boîte de dialogue Entrée de règle de trace et cliquez sur OK. Les valeurs par défaut de cette boîte de dialogue sont les suivantes :
  • Zone RegEx d'API de la section Source : .* ; Type d'expression régulière : PERL. Ceci indique à AppScan® Source de rechercher uniquement les constatations avec une source (à l'aide de la syntaxe d'expression régulière Perl).
  • Zone RegEx d'API de la zone Collecteur : .* ; Type d'expression régulière : PERL. Ceci indique à AppScan® Source de rechercher uniquement les constatations avec un collecteur (à l'aide de la syntaxe d'expression régulière Perl).
Le tableau des constatations affiche les sources associées à HTTP vers des collecteurs associés à une injection SQL et ne passant pas par java.lang.Integer.parseInt. Dans la section Trace, cliquez sur Ajouter dans la section Restreindre à. Dans la boîte de dialogue Entrée de règle de trace, procédez comme suit :
  • Dans la section Source, cliquez sur Ajouter une propriété VMAT. Dans la boîte de dialogue Sélection des propriétés, sélectionnez Technology.Communications.HTTP. Cliquez sur OK pour ajouter la propriété VMAT et revenir à la boîte de dialogue Entrée de règle de trace.
  • Dans la section Collecteur, cliquez sur Ajouter une propriété VMAT. Dans la boîte de dialogue Sélection des propriétés, sélectionnez Vulnerability.Injection.SQL. Cliquez sur OK pour ajouter la propriété VMAT et revenir à la boîte de dialogue Entrée de règle de trace.
  • Dans la section Appels interdits, cliquez sur Ajouter un appel intermédiaire. Dans la boîte de dialogue Configuration d'API, entrez java.lang.Integer.parseInt.* dans la zone RegEx d'API. Cliquez sur OK pour ajouter l'appel intermédiaire et revenir à la boîte de dialogue Entrée de règle de trace, puis sur OK pour ajouter cette entrée.