Mises à jour des règles

Mises à jour des règles dans la version 2.2.0

  1. Nouvelles règles
Langue CWE Description
CSS Amélioration des performances du scanner CSS pour gérer de très gros fichiers HTML sans utiliser de temps supplémentaire.
Delphi, y compris Object Pascal1 CWE-22 Limitation incorrecte d'un nom de chemin à un répertoire restreint
CWE-77 Neutralisation incorrecte des éléments spéciaux utilisés dans une commande
CWE-78 Neutralisation incorrecte des éléments spéciaux utilisés dans une commande OS
CWE-79 Neutralisation incorrecte de l'entrée pendant la génération de page Web (scriptage intersite)
CWE-89 Neutralisation incorrecte des éléments spéciaux utilisés dans une commande SQL
CWE-94 Contrôle incorrect de la génération de code (« injection de code »)
CWE-99 Contrôle incorrect des identificateurs de ressource (« insertion de ressource »)
CWE-119 Restriction incorrecte des opérations dans les limites d'une mémoire tampon
CWE-120 Copie de mémoire tampon sans vérification de la taille de l'entrée
CWE-200 Divulgation d'informations
CWE-266 Attribution de privilèges incorrecte
CWE-295 Validation incorrecte de certificat
CWE-312 Stockage d'informations sensibles Cleartext
CWE-327 Utilisation d'un mécanisme de chiffrement risqué ou compromis
CWE-328 Utilisation d'un hachage faible
CWE-330 Utilisation de valeurs insuffisamment aléatoires
CWE-338 Utilisation d'un générateur de nombres pseudo-aléatoires (PRNG) au chiffrement faible
CWE-345 Vérification insuffisante de l'authenticité des données
CWE-434 Téléchargement amont non restreint d'un fichier de type dangereux
CWE-497 Exposition des données du système à une sphère de contrôle non autorisée
CWE-502 Désérialisation de données non fiables.
CWE-614 Cookie sensible dans la session HTTPS sans attribut « Secure »
CWE-643 Neutralisation incorrecte de données au sein d'expressions XPath (« injection XPath »)
CWE-760 Utilisation d'un hachage à sens unique sans salage prévisible
CWE-780 Utilisation d'un algorithme RSA sans OAEP
CWE-787 Ecriture hors limites
CWE-798 Utilisation d'informations d'identification codées en dur
CWE-942 Règle inter-domaines permissive avec des domaines non approuvés
CWE-1004 Cookie sensible sans indicateur « HttpOnly »
CWE-120 Recherchez l'utilisation dangereuse de StrCopy, StrCat, StrPCopy, lstrcpy et lstrcat. 1
CWE-143 Vérifiez la présence de formats non sécurisés dans le cadre de l'utilisation de chaînes de format. 1
CWE-295 Vérifiez les paramètres désactivant la validation du certificat SSL. 1
CWE-33 Vérifiez les utilisations de RandSeed. 1
CWE-367 Vérifiez les situations de compétition TOCTOU (Time of Check\Time of Use) avec les fichiers. 1
CWE-522 Recherchez une clé de chiffrement vide ou nulle. 1
CWE-522 Vérifiez la présence d'informations d'identification codées en dur dans les chaînes de connexion à la base de données. 1
CWE-539 Vérifiez la présence de délais d'expiration des cookies très importants. 1
CWE-693 Vérifiez l'utilisation de l'en-tête X-XSS-Protection obsolète. 1
CWE-693 Vérifiez la désactivation des directives du compilateur sécurisé. 1
CWE-703 Vérifiez les renvois d'exception incorrects. 1
CWE-732 Vérifiez les entrées de domaine non sécurisées dans les nouveaux cookies. 1
CWE-732 Vérifiez les entrées de chemin de cookie non sécurisées. 1
HTML CWE-798 Ajout d'une vérification pour les champs de mot de passe de type élément d'entrée codé en dur avec une valeur codée en dur.
Remarque : Ajouté au scanner de code source et au scanner hybride.
Java CWE-502 Ajout de vérifications supplémentaires pour la désérialisation non sécurisée. 1
CWE-532 Ajout de vérifications supplémentaires pour les défauts de journalisation sensibles.1
CWE-1004 Nouveau contrôle pour l'indicateur HttpOnly manquant sur les cookies ajoutés.1
CWE-79 Vérifiez la réponse HTTP pour les entrées utilisateur non nettoyées dans les contrôleurs SpringBoot. 1
CWE-208 Vérifiez les attaques de synchronisation avec des chaînes potentiellement sensibles. 1
CWE-215 Vérifiez la configuration SpringBoot pour l'exposition d'informations sensibles. 1
CWE-338 Amélioration des API recherchées par la vérification des règles pour les générateurs aléatoires faibles
CWE-502 Vérifiez les utilisations dangereuses de la désérialisation XStream. 1
CWE-611 Règle améliorée pour vérifier également les configurations XMLInputFactory dangereuses.
CWE-614 Vérifiez s'il manque un indicateur sécurisé sur les nouveaux cookies. 1
CWE-749 Vérifiez les annotations RequestMapping non sécurisées dans les applications Spring. 1
CWE-76 Vérifiez les salages prévisibles dans les algorithmes de hachage unidirectionnels. 1
CWE-922 Vérifiez le stockage des données sensibles dans les sessions HTTP. 1
CWE-1275 Vérifiez la sécurité des paramètres SameSite dans les cookies. 1
CWE-22 Couverture étendue pour les APIjava.nio.file.Path et java.io.File,
CWE-611 Prise en compte correcte des appels de styleXMLReaderFactory.createXMLReader() et sxabuilder.setXMLReaderFactory pour la vérification des paramètres en toute sécurité.
Suppression de la règle d'attaque Java Timing car le problème sous-jacent n'est pas exploitable dans Java et la règle générait des faux positifs sur le code sécurisé.
JavaScript CWE-521 Meilleure détection dans les littéraux d'objets en JavaScript tels que les objets JSON.
MuleSoft1 CWE-22 Limitation incorrecte d'un nom de chemin à un répertoire restreint (« traversée de chemin »)
CWE-78 Neutralisation incorrecte des éléments spéciaux utilisés dans une commande OS (« injection de commandes OS »)
CWE-79 Neutralisation incorrecte de l'entrée pendant la génération de page Web (« scriptage intersite »)
CWE-89 Neutralisation incorrecte des éléments spéciaux utilisés dans une commande SQL (« injection SQL »)
CWE-94 Contrôle incorrect de la génération de code (« injection de code »)
CWE-306 Absence d'authentification pour une fonction critique
CWE-319 Transmission d'informations sensibles Cleartext
CWE-326 Niveau de chiffrement insuffisant
CWE-338 Utilisation d'un générateur de nombres pseudo-aléatoires (PRNG) au chiffrement faible
CWE-359 Exposition d'informations personnelles sensibles à un acteur non autorisé
CWE-497 Exposition d'informations système sensibles à une sphère de contrôle non autorisée
CWE-532 Insertion d'informations sensibles dans le fichier journal
CWE-611 Restriction incorrecte de référence d'entité externe XML
CWE-942 Règle de sécurité inter-domaines permissive avec des domaines non approuvés
CWE-1287 Validation incorrecte du type d'entrée spécifié
PHP CWE-79 Neutralisation incorrecte de l'entrée pendant la génération de page Web (« scriptage intersite »)
Secrets CWE-798 Utilisation d'informations d'identification codées en dur
Définissez le délai d'attente sur une seconde pour accélérer les numérisations.
Ajoutez dans les fichiers .properties pour analyser les secrets codés en dur.
CWE-798 Optimisation des performances en matière de secrets lors de la vérification des informations d'identification codées en dur.
CWE-798 Ajout de la vérification des informations d'identification JWT codées en dur.
CWE-798 Ajout de la vérification des informations d'identification codées en dur passant par un appel Base64.encode.

Mises à jour des règles dans la version 2.1.0

Remarque :
  1. Nouvelles règles
Langue CWE Description
Android Java CWE-319 Nouvelle couverture : Vérifie si usesCleartextTraffic ou cleartextTrafficPermitted est défini sur True dans le fichier AndroidManifest.xml, ce qui est une pratique non sécurisée.
C# CWE-89 Réduction du bruit en détection SQLi.
CWE-215 Vérifiez les appels de journalisation pour détecter les variables suspectes contenant des informations sensibles.1
CWE-397 Recherchez les lancers génériques, potentiellement dangereux, tels que new Exception ou new SystemException.
CWE-89 Nouvelle couverture : Ajout d'une vérification d'injection SQL pour prendre en compte le modèle += ainsi que certains modèles de procédure enregistrés.
CWE-89 Nouvelle couverture : Contrôle plus limité pour garantir la réduction du bruit.
CWE-1004 Réduction du bruit : Vérifiez la présence de la valeur http=true et, si elle est définie pour éviter une constatation.
CSS CWE-79 Réduction du bruit détecté lors de la vérification des variables codées en dur dans les fichiers .css.
Dart CWE-943 Vérifiez la présence d'injection forNoSQL.1
CWE-338 Recherchez les nombres pseudo-aléatoires faibles.1
CWE-116 Recherchez les appels de style File.writeAs.1
CWE-79 Examinez l'utilisation potentiellement non sécurisée de Response.ok et d'appels similaires.1
CWE-348 Recherchez la liste des répertoires potentiellement dangereux.1
CWE-78 Recherchez l'utilisation dangereuse de Process.run.1
CWE-89 Couvrez les appels de style requête/exécution/préparation pour le potentiel d'injection SQL.1
Dart : Flutter

(prise en charge d'une nouvelle structure, nouvelle couverture)
CWE-35 Vérifie si MethodChannel utilise un argument de chemin potentiellement contrôlé par l'utilisateur.
CWE-78 Recherche une injection potentielle de système d'exploitation dans les appels MethodChannel.
CWE-80 Vérifie WebView ou InAppWebView pour voir si JavaScript n'est pas restreint, ce qui est une pratique dangereuse.
CWE-89 Prise en charge de l'API DB spécifique au flutter sqflite
CWE-117 Permet d'afficher les instructions d'impression et similaires qui ne sont pas encapsulées dans des contrôles de débogage. Ces appels ne doivent généralement pas se trouver dans le code de production en dehors d'une branche de débogage.
CWE-312 La règle vérifie si FlutterSecureStorage stocke des informations confidentielles suspectées, telles que des mots de passe ou d'autres informations de session.
CWE-598 Vérifie l'objet navigateur pour détecter les utilisations potentiellement dangereuses des paramètres de requête.
CWE-918 Recherche les URL contrôlées par l'utilisateur dans MethodChannel.invokeMethod en tant que vecteur d'attaque SSRF.
Go CWE-79 Réduction du bruit produit lors de la vérification fprintf.
Docker IaC CWE-22 Vérifiez l'ajout de chemins sensibles dans DockerFile.1
Kubernetes IaC CWE-209 Ajout d'une vérification du code de trace de pile laissé dans les fichiers de configuration .yaml. 1
Java CWE-209 Vérification de l'utilisation de System.out et System.err dans le code (appels de débogage qui devraient être supprimés du code de production). 1
CWE-78 Recherche les appels en ligne de Runtime.getRunTime().
CWE-757 Amélioration de la liste des éléments considérés comme non sécurisés et défectueux.
CWE-916 Vérification du nombre d'itérations faibles pour PBEKeySpec et PBEParameterSpec. 1
CWE-1188 Vérification du déni de service avec le constructeur StringBuilder à l'aide de valeurs importantes ou contrôlées par l'utilisateur. 1
CWE-215 Vérifiez les appels de journalisation pour détecter les variables suspectes contenant des informations sensibles.1
CWE-397 Recherchez les lancers génériques, potentiellement dangereux, tels que Exception ou Throwable.
CWE-396 Recherchez les blocs de capture génériques tels que catch (Exception e) ou catch (Throwable t).1
JavaScript CWE-397 Recherchez les lancers génériques, potentiellement dangereux, tels que « message ».
CWE-80 Correction d'un défaut où le modèle @if est utilisé et n'est pas un modèle handlebars.
JavaScript : Angular CWE-80 Réduction du bruit : Vérifiez que nous ne sommes pas dans un modèle @if
NodeJS CWE-78 Vérification supplémentaire pour les appels child_process.exec dangereux.
Perl CWE-732 Couverture plus complète des appels IO::File::open.
CWE-89 Réduire le bruit dans la règle d'injection SQL qui a produit de manière erronée des résultats pour les instructions paramétrées.
CWE-732 Réduisez le bruit pour les appels ouverts en utilisant l'entrée STDIN.
CWE-397 Recherchez les lancers génériques, potentiellement dangereux, tels que Error("foo").
PHP CWE-89 Ajout d'une vérification de validation pour sqlite_escape_string.
CWE-213 Ajout d'une vérification pour les appels phpInfo persistants dans le code PHP. 1
CWE-89 Nouvelle vérification pour valider les conclusions à l'aide de sqlite_escape_string.
Python CWE-397 Recherchez les lancers génériques, potentiellement dangereux, tels que BaseException.
Secrets CWE-798 Ajoutez une vérification de privateKey pour les secrets codés en dur.
CWE-798 Nouvelle couverture : Ajout de la prise en charge de Tuleap.
CWE-798 Nouvelle couverture : Vérifiez les mots de passe codés en dur dans les appels equalsIgnoreCase.
CWE-798 Réduction du bruit : Évitez d'ajouter une recherche pour le code C\C++ commenté pour le lecteur de codes secrets.
CWE-798 Certains schémas erronés ont été supprimés en tant que constatation.
CWE-798 Recherche des informations d'identification codées en dur dans les fichiers web.config.
CWE-1051 Vérification des adresses IP codées en dur ajustée pour éviter les chaînes qui semblent être des adresses IP, mais qui ne le sont pas.
CWE-1051 Réduction du bruit : la vérification des adresses IP codées en dur permet d'éviter les numéros de version probables
CWE-798 Réduction du bruit dans la détection des secrets Atlassian.
CWE-798 Réduction du bruit dans les paires clé/valeur des secrets.
CWE-798 Couverture supplémentaire pour rechercher les mots de passe contenant 1234 dans la chaîne en tant que partie intégrante du mot de passe codé en dur.
Swift CWE-1188 Nouvelle couverture : Fichier de vérification info.plist pour UIFileSharingEnabled ou LSSupportsOpeningDocumentsInPlace défini sur True qui n'est pas sécurisé.
TypeScript CWE-94 Vérification supplémentaire de la version d'évaluation contenant une variable potentiellement contrôlée par l'utilisateur.

De plus, il y a une mise à jour générale pour CWE-319. Nous avons supprimé les règles à la recherche de chaînes de style http non sécurisées dans le code, car elles sont trop bruyantes. Nous recherchons toujours des instances spécifiques de communications ouvertes utilisées dans notre scanner hybride où cela semble logique, par exemple pour les appels de récupération dans JavaScript.

Ce changement vers CWE-319 a un impact sur les langues suivantes :
  • ASP
  • Golang
  • Groovy
  • Kotlin
  • Objective-C
  • PHP
  • Scala
  • Swift
  • C#
  • Dart
  • RPG
  • VB
  • Xamarin