« Retour

30 Days of Security Testing – Partie 1/4 : Compulser la documentation

Le principe

Ministry of Testing est une mine d’or qui permet de se tenir au courant de ce qui se passe dans le monde du test. Au début du mois de février, un défi a été lancé dans le Dojo, l’espace dédié à sa communauté : 30 Days of Security Testing. Le principe : pendant un mois, se former aux tests de sécurité en réalisant 31 défis.

Pourquoi participer ?

Les tests de sécurité représentent une discipline à part entière, voire plusieurs disciplines. Le but de ce défi est de prendre la mesure des risques, des types de solutions et des méthodologies existantes, afin d’enrichir sa façon de tester.

Notre feuille de route

Nous avons réparti les 31 défis du Dojo en 4 catégories, dont chacune fera l’objet d’un article.

  1. Compulser la documentation
  2. Découvrir les bonnes pratiques
  3. Découvrir les outils
  4. Aller plus loin

Comme la répartition est thématique, les numéros des défis ne se suivent pas forcément.

Avant de commencer

Attention, les tests de sécurité font appel à des techniques qui, selon la façon dont elles sont employées, peuvent être illégales. Il est de la responsabilité du testeur d’obtenir les autorisations nécessaires avant de pratiquer des tests de sécurité sur un système. Soyez très précautionneux avant de vous servir des tutoriels et des outils à votre disposition. Si vous avez un doute, préférez ne rien faire plutôt que de risquer des poursuites, ou mettre en danger le fruit du travail d’autres personnes.

Les challenges

Défi 1 : Lire un blog sur la sécurité informatique

Nous avons apprécié le blog de Veracode, qui contient de bons articles de fond sur l’implémentation d’une politique de sécurité au sein d’une entreprise. Celui-ci évoque les réactions parfois conflictuelles des équipes de développement lorsqu’elles sont confrontées à leurs responsabilités en termes de sécurité informatique.

Défi 2 : Lire un livre sur les tests de sécurité

La sécurité informatique n’est pas seulement une affaire d’outils, mais également de prudence humaine. Afin d’explorer ce deuxième axe, nous avons choisi de lire L’Art de la supercherie de Kevin Mitnick (2002), un livre qui fournit de nombreuses pistes pour contrer les attaques basées sur l’ingénierie sociale.

Dans le domaine de la sécurité de l’information, l’ingénierie sociale est une pratique qui consiste à extorquer des informations en abusant de la crédulité des personnes qui y ont accès. Selon l’auteur, le facteur humain représente le pire danger dans le domaine de la sécurité informatique.

Une information jugée anodine, comme un terme de jargon (qui n’est pas traitée en soi comme une information confidentielle), peut être un outil redoutable pour une personne souhaitant obtenir, en abusant de la confiance des collaborateurs, des informations plus sensibles.

L’auteur développe la notion de compromis entre sécurité et productivité. Une attitude trop laxiste ou insouciante est évidemment dangereuse, mais une position trop défensive peu donner une mauvaise image de l’entreprise, aussi bien que des processus trop sécurisés peuvent freiner la performance d’une entreprise.

Ce livre est donc une excellente base de réflexion sur l’ingénierie sociale. Une lecture complémentaire : cette liste des 25 principaux biais cognitifs. La plupart des biais énumérés peuvent être exploités afin de mettre en danger la sécurité informatique d’une entreprise. La croyance en un monde juste est un biais très commun, souvent évoqué par Kevin Mitnick, et qui représente souvent un obstacle à la compréhension des politiques de sécurité informatique.

Défi 18 : S’informer sur les en-têtes de sécurité

Les en-tête HTTP (ou headers en anglais) contiennent des informations échangées par le navigateur et le serveur. Ils impactent la façon dont l’un et l’autre devront se comporter. Quand un navigateur envoie au serveur l’en-tête user-agent, il lui donne des informations sur sa version, son système d’exploitation ou la langue utilisée. En retour, le serveur peut renvoyer une page web adaptée au profil du navigateur.

Pour savoir quels en-têtes renvoie un site web en particulier, rendez-vous sur Web Sniffer.

Certains en-têtes jouent un rôle critique en sécurité informatique, comme X-XSS-Protection, qui protège contre une partie des risques de cross-site-scripting. Un site web existe, qui permet d’évaluer la sécurité d’un site web par la configuration de ses en-têtes HTTP : Security Headers.

Pour en savoir plus, et en particulier sur la manière de modifier les en-têtes HTTP, nous vous conseillons cet article.

Défi 19 : Comprendre ce que sont les « script kiddies » et les « packet monkeys »

Les Script Kiddies sont « les hackers débutants qui ne s’embarrassent pas de connaissances techniques et se contentent de télécharger les outils des hackers pour s’introduire dans des systèmes informatiques » (Kevin Mitnick, L’Art de la supercherie).

Les Packet Monkeys sont des Script Kiddies qui se spécialisent dans l’envoi massif de paquets en vue de provoquer des dénis de service.

Défi 21 : Trouver une problématique de vulnérabilité réseau concernant son environnement technique

Une problématique réseau nous concerne en particulier, à savoir la sécurité des réseaux Wifi.

Sécuriser son réseau Wifi, quels enjeux ?

  • Sécurisation des données : un réseau mal protégé peut permettre l’interception de données ou l’accès aux données des ordinateurs du réseau.
  • Disponibilité du réseau : des scripts mal intentionnés peuvent brouiller les transmissions ou provoquer des dénis de service, rendant la Wifi inutilisable.
  • Responsabilité de l’utilisation des données : en cas d’utilisation frauduleuse d’Internet (ex : téléchargements illicites), le propriétaire du réseau utilisé est très souvent mis en cause. La loi Hadopi notamment pointe du doigt les propriétaires faisant preuve de « négligence caractérisée », même si c’est une autre personne qui exploite illégitimement leur réseau.
  • Protection des ressources : si un inconnu se retrouve capable d’utiliser le réseau Wifi pour accéder à Internet, les performances seront affectées en fonction de son utilisation. Cela peut, en corollaire, faire augmenter la facture du FAI.

Des applications mobiles telles que Fing permettent d’obtenir la liste des autres appareils connectés sur le réseau WIFI, ainsi que leur nom, leur IP locale, leur marque, leur adresse MAC (Media Access Control), et ainsi initier une phase de scanning. Ces informations sont même directement exploitables : l’adresse MAC peut en effet être utilisée à des fins d’usurpation d’identité, ce qui peut se révéler utile en cas de filtrage d’accès par adresse MAC. Par ailleurs, ces informations peuvent également être utiles dans une stratégie reposant sur l’ingénierie sociale.

Les enjeux que nous venons d’évoquer reflètent des menaces pouvant être extrêmement critiques. Or, au sein d’une société, il est monnaie courante de partager son accès Wifi auprès de ses clients, prospects, ou toute personne participant à des ateliers animés en interne. Il est intéressant d’évaluer les risques qu’une telle pratique présente. La problématique soulevée par Kevin Mitnick dans L’Art de la supercherie (sécurité versus productivité) est tout à fait éclairante ici.

Bonus

Une vidéo de Bruce Schneier, qui donne une vision intéressante et pragmatique de ce qu’est la sécurité. La sécurité (informatique ou non) est envisagée comme un processus toujours en action, une suite d’échanges et de compromis dont on juge à chaque instant s’ils sont avantageux.

Conclusion

Ce que nous retenons de cette première approche des tests de sécurité :

  • Il s’agit d’une discipline à part entière, mais dont les frontières se mêlent avec d’autres problématiques qui nous sont proches : tests système, tests d’intégration, tests de maintenabilité. Afin d’assurer une approche globale de la qualité, un testeur gagne à maîtriser les fondamentaux des tests de sécurité.
  • La sécurité informatique est l’affaire de tous les employés de l’entreprise. Il existe une tendance de fond qui consiste à responsabiliser les équipes techniques quant aux risques d’intrusion.
  • De même qu’il est impossible de prouver l’absence d’anomalies dans une application (c’est le premier principe du test logiciel), il est impossible de prouver l’absence de faille de sécurité. Assurer la meilleure sécurité possible requiert les mêmes qualités de pessimisme et de pragmatisme que dans les autres branches du test.

A bientôt pour la prochaine partie de cette série !

Un avis ? Un commentaire ?

Cet espace est pour vous.