Devenir Pentester

Parce que la question nous est souvent posée, voici nos conseils si vous souhaitez vous orienter dans la sécurité informatique / infosec / cybersécurité offensive.

Les notions importantes

Bases

Pour devenir un expert en sécurité informatique, une formation “idéale” (ou votre curiosité naturelle) devrait vous prodiguer, les 3 premières années, des bases solides dans les grands domaines suivants:

  • Le réseau
  • Le système d’exploitation
  • Le développement et les technologies Web
  • L’information
  • La gestion du système d’information

En réseau connaître les notions fondamentales d’architecture, connaître les principaux équipements (switch, routeur, borne wifi, load balancer, proxy, pare-feu, …) et en avoir déjà configuré quelques uns. Connaitre les principaux protocoles (HTTP, WiFi, SSH, FTP, SMTP, ARP, DNS, DHCP, ICMP, …) et avoir déjà configuré des serveurs (HTTP, DNS, FTP, …) et codé des clients minimalistes. Savoir lire des trames réseaux dans un wireshark ou un tcpdump.

En système, connaître l’architecture globale de l’ordinateur : noyau, allocation de la mémoire, exécution des processus, permissions, périphériques, pilotes, virtualisation, … pour au moins Linux et Windows. Avoir fait du C, avoir fait de l’assembleur, avoir codé des mini shell. Savoir administrer une machine en ligne de commande.

En développement, connaître un langage bas niveau (C/C++), un langage de scripting (plutôt python sinon ruby ou perl), un langage Web (PHP, Javascript). Connaitre les grands principes de l’architecture logicielle (architecture trois tiers, MVC, orienté objet, impératif, microservices, API, …). Avoir déjà développé un site Web. Connaitre SQL et avoir déjà manipulé un client/serveur de base de données (mysql, postgre, mongo, mssql)

En information, il faut se plonger dans des domaines plus théoriques, plus proches des mathématiques. La cryptographie en premier lieu, le traitement du signal, la théorie de l’information, …

En gestion du SI, connaître les principaux processus d’exploitation (inventaire, processus de recette, Patch Tuesday, processus de sauvegarde, migration, mise en production, …) et quelques outils du marché qui y sont liés (WSUS, Veeam, GLPI, GPO Active Directory, …). Connaître l’ISO 27000 (mise en place d’un SMSI, analyse de risque, réponse à incident, …). Connaître quelques standards de conformité (PCI DSS, éxigences CNIL, SOX, RGPD, …)

Champs spécifiques de la sécurité

les deux années suivantes devraient se concenter sur l’appronfondissement des notions purement sécu, dans les domaines suivants :

  • Réseau : interception, padding oracle, spoofing, attaques Wifi, DoS, …
  • Système : reverse engineering, analyse de malware, analyse de configurations (exploitation en milieu Active Directory, AWS, …), escalades de privilèges, pivot, …
  • Developpement : sécurité logicielle (buffer overflow, race condition, …), sécurité Web (XSS, SQLi, LFi/RFI, SSRF, …)

Vous pouvez aussi continuer d’appronfondir la cryptographie et la partie GRC (Gouvernance - Risque - Conformité) qui vont donner une certaine “couleur” à votre profil mais qui conduisent généralement à des postes moins transverses.

Les “soft skills”

Premièrement l’Anglais, forcément, on y coupe pas en informatique. Après rassurez vous c’est souvent les mêmes mots qui reviennent, même si vous n'êtes pas très fort, c’est surmontable. Si vous êtes mauvais, regardez des séries en VOSTFR puis en VOSTVO, vous allez vite progresser.

Deuxièmement, la curiosité. Quand un sujet vous intéresse, il faut aller au fond des choses. Connaitre la théorie ne suffit pas, il faut mettre les mains dans le cambouis pour vraiment comprendre en informatique. Il ne faut pas hésiter à vérifier par vous même ce qu’on vous raconte (si on croit les gens sur parole on ne trouve pas de failles). Dans un rapport d’audit vous êtes normalement obligé de parler au conditionnel si vous rapportez un fait que vous n’avez pas vérifié personnellement.

Troisèmement, savoir adapter et synthétiser son discours et sa production écrite. Un moment c’est bien de trouver des vulnérabilités mais si vous ne savez pas bien les expliquer et les résumer, les clients vont se sentir lésés.
Le meilleur moyen c’est encore de lire des bouquins. Après quelques livres fastideux, quand vous tomberez sur un auteur dont l'écriture est fluide, il influencera positivement votre propre façon d'écrire.

Les formations

Des cursus vraiment dédiés existent désormais pour s’orienter vers le test d’intrusion ou la sécurité informatique de manière plus générale: https://www.ssi.gouv.fr/particulier/formations/secnumedu/formations-labellisees-secnumedu/.
Seulement, ils ont le défaut de compacter toutes les notions (et encore c’est rare), que nous avons présentées ci-dessus, en 2 ans (parfois 3)… spoiler : ça ne marche pas. Ou bien de ne développer qu’une portion trop spécifique de la sécurité.
Il y a des élèves avec un très bon niveau qui sortent de ces formations, mais c’est parce qu’ils se sont entrainés sur leur temps libre pour approfondir ces notions (souvent même avant leur cursus spécialisé). Si vous suivez seulement les cours, même si vous avez des bonnes notes, vous ne saurez quasiment rien faire à la sortie et vous le découvrirez trop tard.
L’avantage c’est que vous connaitrez la liste des choses que vous devez apprendre (ce qui n’est pas rien, ça fait gagner beaucoup de temps), mais sachant que nombre de ces cursus sont payants, ça fait cher la liste de courses.

L’auto-formation

Vous l’aurez compris, actuellement, malgré les cursus existants, on ne se passe pas d’une approche autodidacte. Elle peut même se substituer à un cursus entier. Ca fait léger sur un CV mais les vraies boîtes d’experts sécu ne s’arrêtent pas au CV.

Voici quelques ressources d’apprentissage qui valent de l’or (mais qui sont gratuites) et qui, si vous les finissez (si tant est qu’on le puisse), vous donneront un niveau bien meilleur que toutes les formations qui existent (et même meilleur que la majorité des experts cybersécurité):

  • Faire des challenges de sécurité : on vous donne un site avec une faille, un indice et un peu de doc, il faut trouver la faille et l’exploiter. Il y en a pour tous les domaines de la sécurité (de quoi trouver votre spécialité). FUN : 9/10 - DIVERSITE DES COMPETENCES : 8/10. En voici deux : root-me et newbieContest. Si tout vous semble dur, commencez par un bootcamp pour avoir les bases. En voici un : PentesterLab. Si tout vous semble trop facile, passez directement à des challenges plus réalistes comme HackTheBox ou des Bug Bounty (hackerone, yogosha, yeswehack).
  • Faire des puzzle en programmation : on vous donne un jeu et vous devez faire un programme qui arrive à le gagner. Savoir programmer vite et bien est un atout en sécurité. Il y plein de langages différents (privilégiez python, bash et Rust). FUN : 10/10 - DIVERSITE DES COMPETENCES : 4/10. En voici deux : CodinGame et CodeWars. Si vous n’avez encore jamais programmé, suivez CodeAcademy en python d’abord.
  • Apprendre EBIOS pour savoir qualifier/quantifier un risque et y répondre. Ce sont ces compétences qui servent de pont entre la pure sécurité technique et les clients auxquels vous devez restituer vos trouvailles. ça vous permet aussi de mieux ranger dans votre tête les concepts que vous manipulez (risque, menace, impact, …). FUN : 2/10 - DIVERSITE DES COMPETENCES : 2/10
  • Lire les guides de configuration CIS (CIS Benchmarks et CIS Controls). Ils expliquent tout ce qu’il faut vérifier sur un système et dans une organisation pour s’assurer du respect des meilleures pratiques de sécurité. Du coup en lisant chaque section, vous enrichissez vos connaissances sur ce qu’il ne faut pas faire et donc sur les moyens de prendre le contrôle d’un système mal configuré. FUN : 3/10 - DIVERSITE DES COMPETENCES : 5/10

Un moyen complémentaire d’en apprendre un peu sur tous les sujets est de garder un oeil sur l’actualité de la sécurité informatique. En s’intéressant aux vulnérabilités découvertes, on en apprend davantage sur le fonctionnement du matériel bas niveau (comme pour Meltdown et Spectre), sur les programmes d’amorçage (BootHole), le système d’exploitation, les programmes, les technologies Web, les protocoles (SMBGhost), etc. mais aussi sur les outils utilisés en entreprise.
Voici trois sources qui compilent l’actualité de la sécurité : https://vulners.blog/ (dans son “weekly digest”), https://nakedsecurity.sophos.com/ (dans sa “Monday review”) et https://www.xmco.fr/actusecu/.

Notre conseil

Tout ceci étant dit, nous vous conseillons de ne pas vous ruiner en formations privées. La meilleure école c’est Internet et elle coute 10€ par mois. Un profil root-me à 7000 points vaut mieux sur le CV que n’importe quel diplôme d'école d’ingénieur.

Une formation universitaire en informatique est quasiment gratuite, donne des bases suffisantes sur lesquelles construire votre spécialisation en sécurité, même s’il faut souvent choisir assez tôt entre réseau et developpement, or on aimerait garder un pied dans chaque. A la fac il n’y a personne pour vous obliger à aller en cours et les profs sont plus souvent chercheurs qu’enseignants (donc avec une pédagogie à géométrie variable), il faut donc être autonome et motivé.

Les écoles d’ingénieurs sont davantage réputées pour le suivi des élèves et le soucis d’avoir de bons enseignants (des fois c’est seulement une réputation). Cependant, vous devrez faire une classe prépa et donc intégrer un gros volume de connaissances dans des matières hors de propos pour l’informatique (et à fortiori pour la sécurité informatique) : physique-chimie, etc. et ce, pendant 2 ans. Ça va substantiellement vous limiter dans le temps qu’il vous restera pour vous auto-former à côté en sécurité.

Enfin, il y a quelques “pure player” de la formation en sécurité comme 42 (gratuit) et Epitech (pas gratuit du tout) qui vous donneront une formation technique de qualité et vous inciteront à l’auto-formation et à cultiver votre curiosité. Mais ce sera au détriment de certains soft skills qu’il vous faudra développer par vous même : savoir parler d’autre chose que d’informatique, se laver (ho ça va un peu d’auto dérision ne fait pas de mal), ne pas mourir à 30 ans du scorbut, etc.