Enjeux de cybersécurité pour les entreprises en 2020

Test d’intrusion : approche, méthodologie, type des tests, prix

La tendance actuelle est au renforcement des exigences sécurité des clients, partenaires et investisseurs. Les audits de sécurité se sont démocratisés aux petites et moyennes entreprises, pour qui ils représentent un passage obligé afin de pouvoir collaborer sur des sujets IT avec des grandes entreprises. En effet, les grands-comptes intègrent quasi systématiquement des demandes de rapport d’audits de sécurité dans leurs processus d’achats. L’entrée en application du RGPD depuis 2 ans a aussi permis aux entreprises de prendre conscience des enjeux de sécurité des données, dans des secteurs d’activité où la prise en compte des risques était auparavant peu élevée. Les certifications en sécurité (ISO 27001, HDS, PCI-DSS, SOC2…) sont de plus en plus plébiscitées par les entreprises de petite et moyenne taille, afin de se différencier et de faire de la sécurité un axe de qualité.

Il existe plusieurs types d’audits de sécurité, dont principalement : les audits organisationnels, les audits techniques, et les tests d’intrusion. Ces différents types d’audits peuvent s’appliquer à un périmètre plus ou moins étendu, selon que l’entreprise souhaite évaluer tout son SI ou seulement certains pans identifiés comme étant prioritaires. Nous nous focalisons dans cet article sur les tests d’intrusion (penetration test ou pentest).

En quoi consiste un test d’intrusion ?

Un test d’intrusion consiste à tester la sécurité d’un système informatique en effectuant des attaques dans le but d’identifier les vulnérabilités du système et de proposer des correctifs de sécurité.

Les tests d’intrusion et les tests de vulnérabilités diffèrent de par leurs objectifs. Un test de vulnérabilité repose sur des scanners automatiques qui permettent d’identifier rapidement les failles les plus courantes. Le test d’intrusion va plus loin. Il inclut notamment la recherche de failles logiques, non détectables par des outils automatiques, et une phase d’exploitation manuelle des vulnérabilités identifiées. C’est une méthode d’audit de sécurité éprouvée plus complète, qui permet de mesurer l’impact réel de tout type de faille.

Un test d’intrusion peut inclure des tests en boite noire, en boite grise ou en boite blanche. Les tests en boite noire ciblent la surface d’attaque accessible à n’importe quel attaquant externe, tandis que des tests en boite grise vont concerner des éléments disponibles uniquement à des clients, des partenaires ou des salariés d’une entreprise. L’audit en boite blanche quant à lui permet d’analyser le niveau de sécurité en disposant des mêmes accès qu’un administrateur du système (serveur, application…).

Le livrable remis à la suite d’un test d’intrusion est un rapport d’audit de sécurité qui présente les vulnérabilités identifiées, classifiées par niveau de criticité, ainsi que des suggestions techniques de remédiation. En complément du rapport, une synthèse non technique peut également être délivrée, pour présentation au comité de direction ou à des partenaires.

Méthodologie de test d’intrusion

Un test d’intrusion repose sur une méthodologie en quatre phases, qui constituent un processus cyclique : Reconnaissance, Mapping, Discovery, Exploitation.

Reconnaissance

La phase de reconnaissance consiste à rechercher des informations open-source sur la cible de l’audit de sécurité. Toutes les informations potentiellement utiles pour un attaquant sont récoltées, par exemple : adresses IP, noms de domaines et sous-domaines, types et versions de technologies utilisées, informations techniques partagées sur des forums ou des réseaux sociaux, fuite de données…

Mapping

La phase de mapping permet de répertorier l’ensemble des fonctionnalités de la cible de l’audit. Cette étape permet aux pentesters d’avoir une meilleure visibilité sur les éléments les plus critiques et les plus exposés. Cette étape est particulièrement indispensable lorsque l’objectif de l’audit de sécurité est de conduire des tests sur toutes les fonctionnalités d’une cible.

Discovery

La phase de discovery est une phase d’attaque : les pentesters recherchent des vulnérabilités via des recherches manuelles complémentées par des outils automatisés. L’objectif est de découvrir le maximum de failles possibles sur la cible.

Exploitation

La phase d’exploitation consiste à tester les exploitations possibles des failles identifiées lors de la phase précédente. Cette étape permet de rebondir en utilisant certaines failles comme un pivot, dans le but de découvrir de nouvelles vulnérabilités. L’exploitation des failles de sécurité permet notamment d’évaluer leur impact réel et donc leur niveau de criticité.

Types de tests effectués

Plateformes web

Les tests effectués sur des plateformes web permettent de rechercher des vulnérabilités liées à la configuration des serveurs web ainsi que des vulnérabilités liées à la couche applicative.

Côté serveur, il s’agit par exemple de services ouverts et mal sécurisés, de logiciels non à jour, ou d’erreurs de configuration.

Côté applicatif, il s’agit des vulnérabilités répertoriées par l’OWASP (dont les failles du top 10), ainsi que les failles logiques liées à l’implémentation du workflow, et celles relatives à de nouvelles découvertes sur les technologies utilisées par les développeurs.

Applications mobiles

Les tests effectués sur les applications mobiles elles-mêmes (hors APIs mobiles et serveurs) comprennent une analyse statique et une analyse dynamique des applications.

L’analyse statique consiste à extraire des éléments (meta-informations et code-source) pour effectuer des tentatives de reverse engineering.

L’analyse dynamique consiste à rechercher des vulnérabilités sur l’application pendant qu’elle fonctionne sur un appareil (runtime), par exemple pour contourner des contrôles ou extraire des données en mémoire vive.

Les failles courantes des applications mobiles sont répertoriées par l’OWASP (notamment le top 10 mobile).

Objets connectés – IoT

Les tests effectués sur des objets connectés permettent de rechercher des vulnérabilités sur l’ensemble des couches de l’écosystème IoT : hardware, firmware, protocoles de communication, serveurs, applications web et applications mobiles.

Les tests sur le hardware, le firmware et les protocoles de communications sont spécifiques à l’objet en lui-même, par exemple : dump de données via les composants électroniques, analyse du firmware, capture et analyse de signaux…

Infrastructure et réseaux

Les tests effectués sur une infrastructure externe consistent à scanner les IPs publiques de l’entreprise ainsi que les services exposés en ligne, dans le but d’identifier des failles liées à la configuration des services ainsi qu’à l’architecture des systèmes d’exploitation.

Les tests effectués sur un réseau interne d’entreprise consistent à cartographier le réseau, afin de rechercher des vulnérabilités présentes sur les postes de travail, serveurs, routers, proxies et autres périphériques réseaux.

Ingénierie sociale

Les tests sur les « facteurs humains » de l’entreprise permettent de tester les réactions des équipes face aux tentatives de phishing, d’attaques téléphoniques et d’intrusion physique.

Les techniques utilisées sont par exemple l’envoi d’emails de phishing et de spear phishing, incluant des clones d’interfaces et des malwares, la récolte d’informations sensibles par téléphone, et l’utilisation de clés USB piégées.

Quelle suite à un test d’intrusion ?

Mesures de sécurité et bonnes pratiques à implémenter

L’objectif final du test d’intrusion est de fournir des recommandations concrètes permettant d’améliorer le niveau de sécurité de la cible.

L’étape suivante est donc la prise en compte de ces recommandations pour corriger à minima les vulnérabilités les plus critiques. Certains correctifs peuvent également être intégrés dans les projets d’évolutions fonctionnelles et techniques ou implémentés sur d’autres systèmes présentant des similitudes avec la cible des tests.

Un test d’intrusion permet aussi de faire évoluer certaines pratiques, de mettre en place de nouveaux processus permettant de renforcer la sécurité, et d’améliorer le niveau de vigilance de l’entreprise face aux risques.

Analyses complémentaires

Suite à un test d’intrusion, il peut être recommandé de conduire des analyses complémentaires, par exemple :

  • Tests d’intrusion plus approfondis, ou sur des portions de la cible non inclues dans le périmètre du test précédent
  • Audits en boite blanche, pour pousser plus loin l’analyse sécurité

En fonctions des vulnérabilités identifiées, les analyses sécurité peuvent être complétées par des formations en sécurité pour des équipes techniques et/ou non-techniques.

Fréquence des tests d’intrusion

Un test d’intrusion fournit un état des lieux du niveau de sécurité d’une cible à un instant T. Se pose ensuite la question de la fréquence à laquelle reconduire ce type de tests.

Cela dépend du niveau de risque auquel est exposée l’entreprise, des enjeux réglementaires et commerciaux autour de la cible, du degré d’exhaustivité du test d’intrusion précédent, de la fréquence des évolutions techniques et fonctionnelles de la cible … Dans certains cas, le choix sera d’un pentest par mois, dans d’autres cas ce sera un pentest par an.

Exemples de stratégies pour des éditeurs de logiciels et des startups

Pour un éditeur de logiciel de taille intermédiaire, ayant de fortes exigences sécurité de la part de ses clients, et dont le produit requiert un nombre de jours de pentest élevés :

  • 2 pentests par an sur le produit, avec un scope fonctionnel différent d’une session à l’autre
  • 1 pentest d’ingénierie sociale tous les ans
  • 1 pentest de son infrastructure externe tous les 2 ans
  • 1 pentest de son réseau interne tous les 2 ans

Pour une startup fintech certifiée PCI-DSS ayant de fortes contraintes sécurité :

  • 1 pentest par trimestre, avec un scope fonctionnel différent d’une session à l’autre
  • Sessions de formations sécurité pour les développeurs

Pour une PME soucieuse de prévenir les principaux risques de sécurité :

  • 1 pentest de son système d’information (externe et interne) tous les 2 ans
  • Formation à destination des personnes en charge des sujets sécurité

Quel est le coût d’un test d’intrusion ?

Un test d’intrusion coûte généralement entre 3k€ et 20k€, en fonction du scope et des conditions de l’audit.

Exemples d’enveloppes :

20 à 25 k€ pour un audit de sécurité comprenant un pentest externe du système d’information, un pentest interne, et un pentest d’ingénierie sociale.

10 à 15 k€ pour un audit de sécurité comprenant 3 ou 4 sessions de pentest sur un logiciel, au fur et à mesure des nouvelles mises en production.

5 à 10 k€ pour un pentest approfondi sur un logiciel métier, un réseau d’entreprise, ou un objet connecté.

1,5 à 5 k€ pour un premier pentest focalisé sur les risques majeurs pour l’entreprise.