test d'intrusion: guide pratique pour les PME

Test d’intrusion de vos systèmes informatiques: guide pratique pour les PME

Une des fausses croyances que nous retrouvons le plus est celle de la PME trop petite pour intéresser les hackers. Si mon entreprise n’est pas une cible, je suis à l’abri, right?

On aimerait vous dire que oui, mais malheureusement, ce n’est pas si simple. Votre entreprise pourrait être utilisée pour accéder à un de vos clients plus “important” ou vous pourriez tout simplement être attaqué de façon aléatoire; les hackers aussi aiment pêcher à la dynamite… Pensez aux courriels de phishing que vous recevez sans cesse par exemple.

Si vous lisez ce guide, vous avez compris l’importance de protéger votre entreprise. Ou alors, un investisseur potentiel ou un client vous a challengé sur vos mesures de sécurité, n’est-ce pas?

Vous vous êtes fait poser la question fatidique « avez-vous réalisé un test d’intrusion? », puis vous avez fini sur Google en recherchant « test d’intrusion » sans trop savoir quoi chercher dans le fond. C’est peut-être comme ça que vous avez attéri sur cette page. Et ça c’est tant mieux, parce qu’on va vous aider à démêler le tout et à faire de vous un « client averti ».

Pour les gens pressés, voici les sections du guide pour vous aider à accéder rapidement à l’information recherchée (le guide a pour but de vous faire gagner du temps pour la suite, donc on recommande quand même de tout lire 🤓):

Qu’est-ce qu’un test d’intrusion?

Selon l’Office Québécois de la langue française, on peut définir un test d’intrusion comme tel : « Test visant à reproduire de manière contrôlée les conditions réelles d’une attaque sur un réseau ou un système d’information afin de détecter les failles de sécurité et d’évaluer leur exploitabilité en vue de les corriger. »

En bref, on agit comme des hackers qui attaqueraient votre entreprise, mais au lieu d’un ransomware (rançongiciel), vous partez avec un rapport pour corriger vos failles.

Vous allez entendre d’autres termes pour parler de tests d’intrusion, sachez que ça veut dire la même chose: pentest, test de pénétration, test d’intrusion informatique, test de sécurité technique (à valider, mais on l’a déjà entendu).

Dans la bonne pratique, un test d’intrusion est en fait composé de deux services: le scan de vulnérabilités (ou balayage de vulnérabilités) et le test d’intrusion à proprement parler.

Scan de vulnérabilités

C’est la portion automatisée du test, on utilise un outil pour procéder au scan. Voici la définition de Wikipedia : « En sécurité informatique, un scanner de vulnérabilités est un programme conçu pour identifier des vulnérabilités dans une application, un système d’exploitation ou un réseau. »

L’objectif? Identifier automatiquement toutes les vulnérabilités connues sur le système. Ensuite, vous pouvez donc appliquer les correctifs nécessaires pour rehausser votre niveau de sécurité. 

💡 Ce service est la première étape d’un test d’intrusion, mais c’est aussi une bonne pratique de les faire en continu pour toujours être au courant des nouvelles vulnérabilités, on en parlera plus tard dans le guide.

Test d’intrusion

C’est la partie manuelle du test, celle qui est le plus fidèle à une vraie attaque. Le consultant vient exploiter les failles identifiées pour pénétrer dans votre système, comme le ferait un hacker. Bien entendu, un pirate éthique ne fera pas de dommage, il s’arrêtera avant.

Les deux approches sont vraiment complémentaires, car elles vont communiquer des informations différentes. Le scan de vulnérabilités fournit de la quantité (votre gars TI va avoir une belle job pour patcher la liste), et le test d’intrusion consiste plus en une approche logique, on va vous montrer comment on est rentré.

Point très important: bien que les scans de vulnérabilités soient très pertinents, ils ne remplacent pas un vrai test d’intrusion. Quand vous demandez des soumissions, soyez vigilant: assurez-vous qu’en demandant un test d’intrusion, le test proposé ne soit pas un simple scan. On le précise, car c’est malheureusement une pratique que nous avons observée à plusieurs reprises.  

Pourquoi réaliser un test d’intrusion?

Selon un rapport de Kaspersky Lab, 73 % des brèches réussies dans le secteur des entreprises sont dues à la pénétration d’applications web vulnérables.

On pourrait continuer avec plus de statistiques pour illustrer notre point, mais on va vous faire sauver du temps (le lien ci-dessus est une mine de stats, si vous voulez pousser plus loin). Votre application web, votre réseau interne, votre API ou votre site web sont vulnérables. En réalisant un test d’intrusion, vous venez protéger votre entreprise en identifiant vos failles de sécurité avant les hackers.

Si cette raison est suffisante pour vous, c’est parfait. Vous pouvez passer à la section suivante. Si au contraire, vous avez encore quelques réserves sur la pertinence pour votre entreprise de procéder à ce type de tests. Voici d’autres raisons courantes:

À la demande d’un tiers

La demande peut venir de vos clients, investisseurs, partenaires, fournisseurs, assureurs, etc. Vous faire challenger sur les mesures de sécurité en place va devenir monnaie courante. Les individus sont de plus en plus sensibilisés aux enjeux de cybersécurité, et ça fait partie des requis maintenant. La demande peut être très précise quant à la portée des tests, mais il arrive aussi que le requis soit aussi vague que « avoir réalisé un test d’intrusion dans les derniers XX mois ».

Certification de conformité et réglementations industrielles

De nombreuses réglementations industrielles ou certifications de conformité exigent également que les organisations se soumettent régulièrement à des tests d’intrusion. Les exemples les plus courants sont ISO 27001, PCI DSS et SOC2. Ces normes spécifient les tests requis à différents niveaux de détail, mais même les plus spécifiques ne précisent pas exactement comment ou quoi tester, car cela dépend du scénario en question. C’est pourquoi il est souvent admis que l’entreprise testée est la mieux placée pour déterminer le niveau de test de sécurité qui convient à son scénario. Les conseils ci-dessous peuvent donc vous être utiles pour déterminer ce qu’il faut tester et comment le faire. 

Si vous voulez en lire plus sur le sujet et voir également comment réaliser un test d’intrusion peut vous faire gagner de l’argent, voici notre article: Réaliser un test d’intrusion: un avantage concurrentiel.

Quel est mon risque principal?

Avant de rentrer dans le vif du sujet et discuter test d’intrusion, il faut penser stratégiquement. Bien que tester son niveau de sécurité ne puisse jamais causer de tort, ça représente un certain budget. L’évaluation des risques est donc une étape clé pour bien comprendre votre besoin et choisir le(s) test(s) à réaliser intelligemment.  

Votre entreprise est unique: ce que vous faites, votre équipe, votre structure, les outils que vous utilisez. De ce fait, le cyber risque encouru par votre entreprise n’est pas forcément le même que celui encouru par l’entreprise voisine. Bien entendu, il y a des moyens simples d’identifier quels risques s’appliquent à sa compagnie. Voici des questions à se poser:

1. Si je stocke des données sensibles 

Votre business repose sur l’utilisation de données de clients? Vous avez un enjeu majeur, car c’est votre responsabilité de protéger ces informations. Voici quelques exemples d’industries qui sont généralement concernées: les cabinets d’avocats, de comptables, marketing, le commerce en ligne ou les applications web. Il y a un enjeu légal, mais également réputationnel, donc vous devez mettre toutes les chances de votre côté pour limiter la probabilité et l’impact d’une cyberattaque. 

La première étape est d’identifier sur lequel(ls) de vos systèmes se retrouvent ces données. S’ils sont à une seule place, est-ce que le système est vraiment isolé ou est-il est possible d’y accéder par d’autres moyens? 

Voici trois exemples:

Application web offerte à vos clients

Évidemment, il faut tout d’abord valider si un attaquant n’ayant aucun compte peut accéder à vos données (on parle ici de tests anonymes).  Mais que se passerait-il si un utilisateur standard mal intentionné essayait d’accéder aux données d’un autre client ou carrément à votre console d’administration? Dans ce contexte, on vous recommande de réaliser des tests « authentifiés ». S’il y a plusieurs rôles dans votre application, il est pertinent d’identifier lesquels seront à tester (exemples de rôles: utilisateurs, administrateurs, employeurs, employés, etc.).

Entreprises qui manipulent des informations sensibles à l’interne

Aucune donnée sensible n’est directement exposée à internet? Votre équipe les manipulent directement sur votre réseau interne? Dans ce contexte, votre site web est peut-être moins pertinent à tester. Votre risque principal est plus un accès illégitime au réseau informatique interne. Un scénario qui se joue bien trop souvent est l’un(e) de vos employé(e)s qui clique sur un courriel de phising (hameçonnage) et qui donne donc ses accès à un hacker. On va donc réaliser un test d’intrusion interne pour valider si un attaquant pourrait accéder à vos données sensibles. On commence toujours par une approche anonyme, mais on vous demandera des accès standards (le niveau d’accès de la majorité des employés) pour tester le scénario du phishing ou d’un laptop volé.

Si vous proposez un service financier

Si votre entreprise manipule de l’argent, vous devenez une cible de choix pour des hackers, voire même pour des employés ou clients mal intentionnés. L’approche sera la même que le cas précédent, mais on recommande très fortement de faire des scans de vulnérabilités en continue et de réaliser des tests d’intrusion complet à intervalle régulier (fréquence à définir selon le cas).

2. Si je ne stocke pas de données particulièrement sensibles

C’est une des grandes raisons pour lesquelles les entreprises ne voient pas l’intérêt de tester leur sécurité. S’ils n’ont rien de « valeur », pourquoi investir pour le protéger.

Le premier conseil qu’on donnerait est de vous assurer que vous ne possédez vraiment pas d’informations sensibles. 

Peut-être qu’effectivement, votre entreprise ne récolte aucun renseignement personnel ou aucune carte de crédit. Mais avez-vous les informations personnelles de vos employés? De la propriété intellectuelle? Le code source de votre application? Quelles seraient les conséquences si ces informations se faisaient volées ou étaient détruites? 

Si votre réponse ne change pas et que vous pensez toujours que les conséquences d’une attaque ne seraient pas si graves, vous pouvez choisir d’y aller avec un simple scan de vulnérabilités. L’investissement sera moins grand, mais ça vous permettra d’assurer un minimum de sécurité sur vos systèmes. Concentrez-vous sur les systèmes exposés sur internet, comme, par exemple, vos accès à distance (VPN), les firewalls (ou pare-feux), sites ou applications web, API.

3. Mon entreprise a une chaîne de production

On ne passera pas par quatre chemins ici, combien vous coûte une heure d’arrêt sur votre chaîne de production? On trouve beaucoup de chiffres différents en ligne, mais le coût mentionné oscille entre 100,000$ et 500,000$ CAD. En bref, c’est un scénario à éviter au maximum. Un arrêt de chaîne de production peut être la conséquence d’un bris, mais aussi d’une cyberattaque. Si un hacker prend le contrôle du votre réseau, c’est game over, il peut arrêter votre chaîne de production. 

Dans ce contexte, un test d’intrusion complet de votre réseau interne est à réaliser. On va tester les mêmes scénarios qu’au point précédent (Entreprises qui manipulent des informations sensibles à l’interne). L’objectif est plus ici de valider si un hacker peut se rendre au(x) contrôleur(s) de domaines de votre chaîne de production. On vous conseille fortement de tester votre réseau wifi aussi et de demander à votre fournisseur de vous aider à brainstormer sur l’architecture réseau de votre usine. Il est fort possible que des recommandations du test soient de mettre à jour des équipements, mais ce n’est pas possible de mettre à jour certaines machines industrielles. Il faudra donc « think outside the box » et regarder comment mitiger le risque en isolant certains équipements du réseau par exemple.

4. Mon entreprise n’a rien d’exposé sur internet

Votre entreprise n’a aucune interaction avec sa clientèle depuis internet? Par exemple, vous avez une boutique physique indépendante sans présence en ligne et vous ne stockez aucune donnée client sur vos ordinateurs? Nous pourrions vous dire que faire un test d’intrusion est toujours une bonne idée, mais vu l’investissement que ça représente, on n’est pas vraiment à l’aise avec ça. On vous conseille plutôt de valider que tous vos postes (et serveurs s’il y en a) ont un antivirus, de mettre à jour vos logiciels et d’utiliser des mots de passe longs et différents (un gestionnaire de mots de passe est game-changer, en voici un qu’on recommande beaucoup: https://1password.com/fr/). 

Si votre entreprise grandit ou si vous décidez d’utiliser le web pour développer votre business, relisez ce guide, vous serez peut-être rendu dans une autre catégorie ☺

Quel est mon environnement informatique?

Maintenant que vous avez identifié votre ou vos risques principaux, qu’on vous a donné une première idée des tests que vous devriez entreprendre, il est temps de définir ce que vous voulez tester. En cybersécurité, on parle de « la portée des tests d’intrusion » (même si au Québec on ne devrait pas, le monde des TI aime bien les mots anglais, donc si vous entendez le mot « scope », on parle de la même chose. On est même rendu avec un nouveau mot « scoper » 😉).

Donc en d’autres termes, quels sont les actifs que vous souhaitez tester? Si vous êtes une des rares entreprises qui a un inventaire de ses actifs (à jour…), c’est un document qui peut vous aider. L’idée est d’avoir une bonne connaissance de votre environnement dans son ensemble avant de déterminer la portée des tests. Vous allez peut-être décider de tester toute votre infrastructure, mais il est également possible de choisir de se focaliser uniquement sur une partie.

NOTE: Si on fait rouler un scan de vulnérabilités sur votre infrastructure, un bonus pour vous c’est que le scanner va faire un « auto-discovery » et répertorier toutes vos adresses IPs. Vous pourrez utiliser cette information pour créer ou mettre à jour votre inventaire. On dit ça, on dit rien ☺

Voici deux exemples rapides:

Pour le réseau interne et externe:

« Nous avons une bâtisse, notre réseau interne y est concentré. Nos 85 employés utilisent des laptops, nous avons 2 serveurs physiques et 4 serveurs virtuels (VMWare), notre Active Directory est hébergé localement, notre réseau Wifi est composé de 2 SSIDs (un employé, un invité). La majorité de nos outils sont dans des produits SaaS qui ne nous appartiennent pas, on stocke nos données sur Sharepoint. Nous avons 5 adresses IPs exposées sur internet, mais seulement 2 sont utilisées. »

Pour une application web:

« Notre application RH est utilisée par des professionnels du recrutement. La plateforme est vendue à une entreprise, qui donne ensuite différents accès à son équipe. On a donc au minimum 2 rôles par client: administrateur et recruteur. Chaque entreprise a son tenant, les données sont dans des bases de données séparées. Nous avons aussi une plateforme administrateur pour gérer l’application dans son ensemble, on agit comme un super admin. »

Comment définir la portée de mon test d’intrusion?

Les tests d’intrusion doivent toujours avoir une portée bien définie. Elle doit avoir été discutée avec le fournisseur, et elle doit être mentionnée sur l’offre de services. 

Pourquoi est-ce important?

  • Clarifier les attentes de chaque parti. Si vous dites à un hacker, aussi éthique soit-il, que vous voulez qu’il teste de façon non exhaustive votre réseau, vous allez être son nouveau meilleur ami. Cela dit, votre banquier risque de ne pas être d’accord. Tester tous les moyens possibles de pénétrer votre réseau pourrait prendre des mois de travail tellement la liste des vulnérabilités et outils disponibles est impressionnante. En clarifiant la portée des tests, on vient réduire la surface à tester, et donc le temps requis et le coût. Par exemple, un moyen de limiter le coût est d’échantillonner des équipements qui se retrouveraient en grand nombre, mais qui sont tous configurés de la même façon (on peut choisir de tester un échantillon de 20 postes de travail sur 150).
  • Éviter des impacts non souhaités sur votre entreprise. Y a-t-il des systèmes à éviter? Réalise-t-on le test sur un environnement test de l’application ou directement sur l’environnement de production? Les tests d’attaque DDoS (Dénis de service Distribués) sont très souvent exclus de la portée, car les impacts sont trop grands (on met le réseau down en bref…).
  • Permettre au prestataire d’estimer les coûts requis pour réaliser le test. Combien d’heures sont requises? Si on teste 2 ou 5 rôles sur une application web, le temps ou la profondeur de l’intervention n’est bien sûr pas le même.

De la même façon qu’il est important de lister ce qui sera dans la portée, on fait la même chose pour ce qui va être exclu:

  • Selon les décisions prises avec votre fournisseur: quels types de tests ne seront pas effectués: test d’intrusion physique (une personne essaie de rentrer dans la salle des serveurs), test de phishing (hameçonnage), etc.
  • Selon le besoin: exclure tels serveurs car ils vont être décommissionnés le mois prochain, telle section de l’application web va être refaite, donc à tester après, etc.
  • Selon les droits: la partie transactionnelle du site web est gérée par une autre entreprise, on ne peut pas effectuer de tests sur leur plateforme sans leur consentement. 
  • Selon votre budget: peut-être que vous devrez limiter la portée des portées des tests pour des raisons budgétaires.

Déterminer la portée est une étape potentiellement plus tricky, surtout s’il s’agit de vos premiers tests. 

💡 C’est un bon moment d’évaluer votre fournisseur potentiel: c’est vous qui connaissez votre réseau, mais est-ce que votre interlocuteur essaie de comprendre votre besoin réel? Est-ce qu’il brainstorme avec vous pour choisir la meilleure approche? Est-ce qu’il essaie d’office de vous vendre le test le plus complet sans valider la pertinence pour vous? Bref, vous voyez l’idée. C’est un moment privilégié pour voir s’il y a un fit avec votre fournisseur potentiel. Vous devriez travailler sur cette étape en équipe, si ce n’est pas le cas, c’est un red flag 🚩

Quand et à quelle fréquence réaliser un test d’intrusion?

Les référentiels en sécurité tels que le NIST ou ISO27001 recommandent de réaliser un scan continu des vulnérabilités de vos actifs et de réaliser un test d’intrusion complet par année.

Bien sûr, si votre entreprise est très à risque ou que vous apportez des modifications significatives à votre réseau ou votre application, un par an ne sera pas toujours suffisant.

Scan de vulnérabilités

L’exécution d’un scan continu de vulnérabilités est un excellent moyen de rester informé des vulnérabilités de votre réseau. On ne veut pas jouer la carte de la peur, mais on compte plus de 10,000 nouvelles vulnérabilités par an. Vous comprendrez donc que même si vous réalisez un scan de vulnérabilités et que vous commencez à les corriger, il y a de fortes probabilités que le mois suivant, il y en ait des nouvelles. Sans scan régulier, vous ne pourrez pas le savoir et agir en conséquence.

Le coût pour réaliser un scan de vulnérabilité de façon récurrente peut être un enjeu pour certaines entreprises, on le comprend. Notre recommandation serait plus de limiter la portée des tests que de ne pas en faire du tout. Grâce aux sections précédentes, vous devez avoir une meilleure idée de vos risques principaux et de vos actifs les plus sensibles. Vous pouvez choisir, par exemple, de ne scanner que votre application SaaS, ou juste une portion de votre réseau interne.

C’est le genre de discussion que vous pouvez avoir avec votre fournisseur. Il va pouvoir vous conseiller en fonction de votre budget et de vos enjeux.

Test d’intrusion

Un test d’intrusion est généralement à réaliser une fois par an, idéalement en complément du scan de vulnérabilités en continu. Pour rappel, un test d’intrusion est un test manuel, l’expert va jouer au hacker et tenter d’exploiter vos vulnérabilités pour pénétrer vos système (sans ne rien briser, rassurez-vous 😉).

Quelle est la plus-value d’un test d’intrusion versus un scan? L’expert va plus loin que de simplement lister les vulnérabilités. En cherchant à les exploiter, il va être capable de découvrir des faiblesses plus complexes, liées à votre architecture par exemple. Pour vous donner une idée de ce qu’il pourrait essayer de faire, voici quelques exemples:

  • Accéder aux données d’un autre client que le compte qui lui est donné
  • Modifier les prix sur votre site web
  • Accéder à votre base de données
  • Devenir administrateur du domaine (avoir les pleins droits sur votre réseau, ce qui permettrait notamment de déployer un ransomware)
  • Etc.

Pour vous aider dans votre réflexion pour déterminer la fréquence, vous pouvez mettre en relation vos momentums d’affaires et vos risques. Voici quelques exemples:

  • Vous êtes prêt à lancer votre application, valider sa sécurité avant peut vous éviter des surprises.
  • Vous venez de faire une refonte de votre architecture réseau, validez que ça n’a pas occasionné de nouvelles failles. 
  • Vous sortez de nouvelles fonctionnalités sur votre application, pensez à inclure les tests de sécurité dans votre processus. Pensez à valider avec votre fournisseur qu’il est ok de procéder avec des tests itératifs, sans automatiquement vous facturer un test d’intrusion complet à chaque fois.

Un test annuel, si vous effectuez peu de changements sur votre système et que votre niveau de risque est peu élevé, devrait être correct. Encore une fois, si vous manipulez de l’argent ou des données hautement sensibles et convoitées, un au trimestre est le minimum. 


💡 Enfin, réaliser les tests de sécurité est une très bonne pratique. Encore faut-il corriger les vulnérabilités. Si vous faites régulièrement des tests, mais que vous n’appliquez aucune recommandation, vous perdez malheureusement votre argent.

Conclusion

Nous espérons que ce guide vous a permis de démystifier un peu les tests d’intrusion. On comprend que ce n’est pas évident, mais on voulait vous donner une meilleure compréhension de vos besoins et comment magasiner un fournisseur de façon avertie. 

Ce guide pourrait être beaucoup plus long et détaillé, mais on ne voulait pas décourager personne avec un guide qui ne finit plus. Si vous voulez encore plus d’informations, notre section blogue est tout à vous 🤓

Si on devait résumer le tout en quelques lignes: réaliser un test d’intrusion, c’est découvrir les vulnérabilités informatiques de vos systèmes avant les hackers. Tous les outils que nous utilisons en tant que White Hat (pirate éthique) sont également utilisés par les Black Hat (pirate malveillant). Je pense qu’on s’entend pour dire que vous préférez que ce soit vous qui découvriez vos vulnérabilités en premier, right?

Et maintenant?

Si vous êtes tombés sur ce guide par hasard, nous c’est l’équipe de Yack. On se spécialise en sécurité offensive, donc les tests d’intrusion, on ne fait que ça à longueur de journée.

Si vous êtes rendus à l’étape de chercher un fournisseur, n’hésitez pas à nous contacter. Ça nous fera plaisir de vous aider et de vous orienter.

Si vous n’êtes  pas encore prêt à débuter votre projet, mais que vous avez aimé ce que vous avez lu, n’hésitez pas à nous suivre sur les réseaux sociaux. On n’est pas du tout du genre à spammer, promis 🤓

Enfin, peu importe votre situation, si vous avez apprécié notre guide, si vous pensez que ça peut aider d’autres personnes à mieux comprendre les tests d’intrusion, vous pouvez le partager. En direct, sur les réseaux sociaux, peu importe. Tant que ça aide quelqu’un, on est content 😊

Peace ✌️

Cyndie & Nicholas

    Why Yack?

    First, for those of you who don't know, the yak is an animal. The energy it radiates (chill with its toupee, but we wouldn't want to piss it off with its horns...) represents us well, and the nerdiest among you might see the little nod to Linux 😉. Of course, Yack's resemblance to Hack is no mere coincidence. It's also a short, punchy name that, once again, sounds like us. Finally, it's a word that earns you 24 points in Scrabble (hello Office de la langue française). Why did you choose .one? In offensive security, all it takes is one attack..."
    A little more about us

    "Pourquoi Yack?

    First, pour ceux qui ne le savent pas, le yack est un animal. L'énergie qu'il dégage (chill avec son toupet, mais on ne voudrait pas l'énerver avec ses cornes...) nous représente bien, et les plus nerds d'entre vous verront peut-être le petit clin d'œil à Linux 😉. Bien sûr, la ressemblance de Yack avec Hack n'est pas une simple coïncidence. C'est aussi un nom court, qui punch, et qui encore une fois, nous ressemble. Enfin, c'est un mot qui te rapporte 24 points au scrabble (bonjour office de la langue française). Pourquoi avoir choisi .one? En sécurité offensive, il suffit d'une (one) attaque..."
    Un peu plus sur nous