Audit de code

La méthodologie proposée utilisera des outils d’analyse de code automatique mais nous réalisons une analyse de code manuelle relative aux modules ayant une interaction avec l’utilisateur. Cette analyse permettra de vérifier les points SSI évoqués ci-dessous ainsi que la maintenabilité, la lisibilité et la qualité du code.

En effet, dans le cadre de cette inspection de code les éléments de sécurité suivants vont être pris en compte :

Ces dispositions visent à interdire à un attaquant de modifier l’exécution normale d’un programme dans le but de récupérer de l’information ou de s’introduire dans un système. Il est nécessaire de se prémunir contre les failles de type injection de code. L’application devra notamment :

  • Filtrer les entrées utilisateurs et échapper les caractères spéciaux propres au langage employé. Dans le cas de SQL, des caractères du types * ‘ ‘’ % ; doivent impérativement être éliminés avant de traiter la requête.
  • Utiliser systématiquement des procédures stockées pour la création des requêtes SQL
  • Réduire autant que possible les privilèges dont dispose le compte utilisé par l’application lors de la connexion à la base de données

Contrôles nécessaires destinés à la gestion des sessions et des authentifications utilisateurs au sein de l’application afin d’assurer un cloisonnement des sessions et des privilèges, notamment :

  • Sécurisation les cookies de session
  • Mise en place des messages d’erreurs non verbeux ni techniques sur les interfaces d’authentification

Les applications incluent souvent les identifiants techniques des ressources au sein des pages web générées. Si le contrôle d’accès n’est pas effectué à chaque fois que l’utilisateur demande l’accès à une ressource particulière, il peut en résulter des références directes non sécurisées. AlgoSecure s’assurera de se prémunir contre ce type d’attaque en :

  • Implémentant des références indirectes, par utilisateur ou par session
  • Pour chaque tentative d’accès à une ressource selon sa référence directe, en s’assurant que l’utilisateur a le droit d’accéder à cette ressource

Un attaquant peut tenter d’accéder à des comptes par défaut, des pages non utilisées, des vulnérabilités non corrigées, des fichiers et répertoires accessibles sans authentification et des informations non chiffrées.

Il est donc important de garantir une configuration de sécurité et un paramétrage garantissant la protection des données et des ressources exposées sur le réseau.

Règles de durcissement générales suivantes :

  • Sécurité des comptes
  • Aucun compte par défaut ne devra être laissé au sein de la solution
  • Aucun compte de test ne devra être laissé en production
  • Tous les comptes utilisés doivent disposer d’un mot de passe complexe
  • Désactivation des services inutiles
  • Gestion des droits des répertoires et fichiers
  • Validation de la configuration de l’infrastructure conformément à l’état de l’art

Les données sensibles (données nominatives, mots de passe, données de paiement, etc.) doivent être stockées sous forme chiffrée. AlgoSecure vérifiera l’utilisation d’un algorithme de chiffrement fort pour les données identifiées comme sensibles. Il s’assurera notamment :

  • Que les données et les sauvegardes sont chiffrées
  • Que des algorithmes standards et clés fortes sont utilisés
  • Que les clés et mots de passe sont protégés des accès non autorisés
audit securite code