Découvrez comment la solution Parasoft Continuous Quality permet de contrôler et de gérer les environnements de test pour fournir des logiciels de haute qualité en toute confiance. Inscrivez-vous pour la démo >>

BLOG

Validation des entrées: immunité contre les attaques Web

Validation des entrées: immunité contre les attaques Web Temps de lecture : 3 minutes

Par Arthur Hicken - Evangéliste / Architecte de solutions chez Parasoft

Imaginez une seconde que vous êtes confronté à une pandémie mortelle. Vous avez deux choix:

  • Option A: Essayez d'identifier et de traiter chaque symptôme sous lequel la maladie pourrait se manifester.
  • Option B: Adoptez un nouveau régime de santé qui vous garantit d'être complètement immunisé contre toute infection.

Le choix semble ici évident. Pourtant, de nombreuses organisations adoptent l'équivalent de sécurité Web de «l'Option A» alors qu'elles tentent de sécuriser leurs sites à la lumière de toutes les récentes attaques de pirates informatiques (sur des sites Web tels que Sega, Sony, PBS, le Sénat américain, la CIA, le FBI , et d'autres organisations gouvernementales).

Une éruption d'injections

La plupart de ces attaques ont été classées comme une sorte d'attaque par injection: injection SQL, injections de masse Lizamoon et autres injections de maillage qui auraient déjà infiltré plus de 30,000 XNUMX sites. Étant donné que ces attaques ont déjà causé de graves répercussions financières et un embarras marqué pour les organisations touchées, il n'est pas surprenant que de nombreux fournisseurs d'outils de sécurité tentent de commercialiser les scanners comme un fruit à portée de main ... et que de nombreuses organisations tentent cette option tentante.

Malheureusement, j'ai trouvé que cette approche est aussi précaire que courante. Il existe un nombre presque infini de chemins à travers même un simple site Web. Pour être assuré que tous ces chemins sont imperméables aux attaques, vous auriez besoin d'un outil pour identifier tous les chemins possibles, puis tester de manière exhaustive si chaque chemin est exempt de toutes les vulnérabilités qui pourraient être exploitées pour lancer une attaque (y compris les variantes d'attaque qui pourraient ne pas l'être. reconnu encore). Ce n'est tout simplement pas faisable. Même une couverture de code source à 100% avec un outil qui analyse toutes les vulnérabilités les plus récentes et les plus importantes ne garantit pas que le site Web de votre organisation ne sera pas la prochaine victime du régime actuel des «hactivistes».

Intégrez la sécurité à votre application

Plutôt que de croiser les doigts et d'espérer le meilleur avec cette approche réactive de « tester les vulnérabilités », essayez une approche proactive qui a fait ses preuves pour empêcher toutes les variétés d'attaques par injection actuelles et futures : utilisez la validation d'entrée pour intégrer la sécurité. La validation d'entrée implique de s'assurer que toutes vos méthodes d'entrée sont enveloppées dans une méthode de validation afin que les entrées utilisateur entachées ne puissent pas atteindre la couche d'application ou la couche de base de données, qui peuvent être exploitées pour accéder à des informations, modifier le contenu et contrôler le flux, ou infecter vos partenaires et clients dans le cadre d'une masse schéma de maillage. Lorsque chaque entrée est correctement validée immédiatement après sa réception, vous n'avez jamais à vous soucier de comment, quand et où cette entrée utilisateur est utilisée.

Comment faire la validation d'entrée

L'approche de validation d'entrée nécessite un certain travail: elle vous oblige à apporter certaines modifications à votre code. Pourtant, c'est une pratique relativement indolore à adopter. Si vous apportez une petite modification (en suivant les conventions de dénomination des méthodes de validation), vous pouvez identifier automatiquement chaque instance de validation d'entrée incorrecte qui doit être corrigée.

La vérification de la validation des entrées s'effectue généralement à l'aide de analyse de code statique basée sur des règles pour identifier toute invocation de méthode qui retourne des données dangereuses qui ne sont pas transmises en tant que paramètre aux invocations de méthode de validation, ainsi que pour identifier les instances où des données corrompues sont transmises aux méthodes. Si vous appliquez une règle de validation d'entrée par le biais d'une analyse statique basée sur des règles (recherche et correction de toutes les instances où les entrées ne sont pas correctement validées), vous pouvez garantir que les attaques par injection ne réussiront pas. Les attaquants peuvent essayer et réessayer, mais en changeant votre code de la manière recommandée, vous aurez essentiellement généré un bouclier déflecteur, les empêchant de causer des dommages quelle que soit la manière dont l'attaque est lancée.

Utilisation de l'analyse statique des flux de données

Si vous disposez également d'une analyse statique des flux de données, je vous suggère de l'utiliser comme moyen de vérifier que votre processus de validation des entrées est correctement suivi. Si vous faites preuve de conviction quant à la validation de chaque entrée, aucun problème ne doit être signalé ici car il sera impossible qu'un chemin mène à une injection. Si, pour une raison quelconque, l'analyse du flux de données révèle un chemin potentiel vers une vulnérabilité d'injection, ne vous contentez pas de résoudre ce problème spécifique et passez à autre chose ! Profitez-en pour améliorer votre processus. Découvrez comment cette zone de code a échappé à votre processus de validation des entrées et ce que vous pouvez faire pour rendre le processus de validation des entrées à l'épreuve des balles à partir de maintenant.

***

Téléchargez le livre électronique Foundations of Secure Application Development pour découvrir pourquoi aborder la sécurité comme un exercice de recherche de bogues est risqué et inefficace, puis expliquez comment rendre vos applications Web à l'abri des attaques.

Crédit image: Sarah G…

Écrit par

Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.