Documentation et aide-mémoire
Des références rapides à garder ouvertes pendant votre travail. Recherchez dans toutes les fiches à la fois.
Cybersécurité
Top 10 OWASP (2021)
Les dix risques de sécurité les plus critiques pour les applications web, avec leur signification.
| Risque | Ce que cela signifie |
|---|---|
| A01 | Défaillance du contrôle d’accès : les utilisateurs accèdent à des données ou à des actions qui ne leur sont pas autorisées. |
| A02 | Défaillances cryptographiques : données sensibles envoyées ou stockées sans chiffrement robuste. |
| A03 | Injection : les données saisies sont exécutées comme du code SQL, shell ou autre. Inclut le cross-site scripting. |
| A04 | Conception non sécurisée : la sécurité n’a pas été prévue dès le départ. |
| A05 | Mauvaise configuration de sécurité : mots de passe par défaut, stockage ouvert, erreurs trop détaillées. |
| A06 | Composants vulnérables et obsolètes : anciennes bibliothèques présentant des failles connues. |
| A07 | Défaillances d’identification et d’authentification : authentification faible, absence de MFA, sessions mal gérées. |
| A08 | Défaillances d'intégrité des logiciels et des données : mises à jour et pipelines non vérifiés. |
| A09 | Défaillances de journalisation et de surveillance de la sécurité : les attaques passent inaperçues. |
| A10 | Falsification de requêtes côté serveur : le serveur est manipulé pour appeler des adresses internes. |
Cybersécurité
Étapes de réponse aux incidents
Le cycle de vie de réponse aux incidents du NIST, dans l'ordre de mise en œuvre.
| Étape | Ce que vous faites |
|---|---|
| Préparation | Préparez vos plans, contacts, outils et sauvegardes avant tout incident. |
| Détection et analyse | Repérer l'incident, le confirmer et évaluer sa gravité. |
| Confinement | Limiter la propagation : isoler les machines, bloquer les comptes ou les adresses. |
| Éradication | Éliminer la cause : logiciels malveillants, portes dérobées et comptes compromis. |
| Rétablissement | Restaurer les systèmes à partir de sauvegardes saines et les surveiller de près. |
| Retour d’expérience | Documentez ce qui s'est passé et corrigez les failles pour éviter que cela se reproduise. |
Réseaux
Ports courants
Les ports que vous rencontrerez sur les serveurs, dans les analyses et les règles de pare-feu.
| Port | Service |
|---|---|
| 20/tcp · FTP data | Canal de données pour le transfert de fichiers. Non chiffré : privilégiez SFTP. |
| 21/tcp · FTP | Contrôle du transfert de fichiers. Envoie les mots de passe en clair. |
| 22/tcp · SSH | Connexion à distance et copie de fichiers sécurisées (SFTP, SCP). |
| 23/tcp · Telnet | Ancienne connexion à distance sans chiffrement. Désactivez-la et utilisez SSH. |
| 25/tcp · SMTP | Acheminement des e-mails entre serveurs de messagerie. |
| 53/tcp/udp · DNS | Résolution de noms de domaine. |
| 67/udp · DHCP | Attribue des adresses IP sur un réseau local. |
| 80/tcp · HTTP | Trafic web non chiffré. Redirigez-le vers HTTPS. |
| 110/tcp · POP3 | Téléchargement des e-mails (ancien, non chiffré). |
| 123/udp · NTP | Synchronisation de l’heure. |
| 143/tcp · IMAP | Lecture des e-mails sur le serveur (sans chiffrement). |
| 161/udp · SNMP | Supervision des équipements réseau. Modifiez les chaînes de communauté par défaut. |
| 389/tcp · LDAP | Services d’annuaire tels qu’Active Directory. |
| 443/tcp · HTTPS | Trafic web chiffré (HTTP sur TLS). |
| 445/tcp · SMB | Partage de fichiers Windows. Ne l'exposez jamais à Internet. |
| 587/tcp · SMTP submission | Envoi d'e-mails depuis une application ou un client de messagerie, avec TLS. |
| 993/tcp · IMAPS | Lecture des e-mails via TLS. |
| 1433/tcp · MS SQL | Base de données Microsoft SQL Server. |
| 3306/tcp · MySQL | Bases de données MySQL et MariaDB. Gardez-les privées. |
| 3389/tcp · RDP | Bureau à distance Windows. Une cible privilégiée : placez-le derrière un VPN. |
| 5432/tcp · PostgreSQL | Base de données PostgreSQL. Gardez-la privée. |
| 6379/tcp · Redis | Cache Redis. Souvent laissé accessible sans mot de passe. |
| 8080/tcp · HTTP alt | Port courant pour les serveurs de développement et les proxys. |
| 27017/tcp · MongoDB | Base de données MongoDB. Gardez-la privée. |
Développement logiciel
Codes d’état HTTP
Ce que signifient les nombres dans les réponses API et les erreurs du navigateur.
| Code | Signification |
|---|---|
| 200 OK | La requête a réussi. |
| 201 Created | Une nouvelle ressource a été créée. |
| 204 No Content | L’opération a réussi et il n’y a rien à renvoyer. |
| 301 Moved Permanently | L'adresse a changé définitivement ; utilisez la nouvelle. |
| 304 Not Modified | Votre copie en cache est toujours à jour. |
| 400 Bad Request | La requête est mal formée ou invalide. |
| 401 Unauthorized | Vous n’êtes pas connecté, ou le jeton est absent ou expiré. |
| 403 Forbidden | Connecté, mais non autorisé à effectuer cette action. |
| 404 Not Found | Aucune ressource à cette adresse. |
| 409 Conflict | La requête entre en conflit avec l’état actuel, par exemple en cas de doublon. |
| 429 Too Many Requests | Une limite de requêtes a été atteinte ; patientez et réessayez. |
| 500 Internal Server Error | Un problème est survenu sur le serveur. |
| 502 Bad Gateway | Un serveur intermédiaire a reçu une réponse incorrecte du serveur suivant. |
| 503 Service Unavailable | Le serveur est surchargé ou indisponible pour maintenance. |
Développement logiciel
Aide-mémoire des commandes Git
Les commandes Git qui couvrent presque tous les besoins quotidiens.
| Commande | Ce qu’il fait |
|---|---|
| git clone <url> | Copiez un dépôt sur votre ordinateur. |
| git status | Voir les modifications et les éléments dans la zone de staging. |
| git add -p | Ajouter les modifications à la zone de staging par petits blocs après les avoir examinées. |
| git commit -m "message" | Enregistrer un instantané avec un message. |
| git switch -c feature | Créez une branche et basculez dessus. |
| git pull --rebase | Récupérer les dernières modifications et réappliquer les vôtres par-dessus. |
| git push -u origin feature | Envoyez votre branche et configurez son suivi. |
| git log --oneline --graph | Afficher un historique compact avec les branches. |
| git diff | Afficher les modifications qui ne sont pas encore dans la zone de staging. |
| git stash | Mettre de côté les modifications inachevées pour plus tard. |
| git revert <commit> | Annuler un commit avec un nouveau commit, en conservant l’historique. |
Cloud et Linux
Aide-mémoire des commandes Linux
Les commandes que vous utiliserez au quotidien sur un serveur Linux.
| Commande | Ce qu’il fait |
|---|---|
| pwd | Afficher le dossier actuel. |
| ls -la | Lister tous les fichiers avec leurs détails, y compris les fichiers cachés. |
| cd /var/log | Déplacer vers un autre dossier. |
| cat file.txt | Afficher un fichier. |
| less file.txt | Lire un long fichier page par page. |
| grep -i error app.log | Rechercher les lignes contenant un mot, sans tenir compte de la casse. |
| chmod 755 script.sh | Modifiez les permissions d’un fichier. |
| chown user:group file | Changez le propriétaire d’un fichier. |
| ps aux | Lister les processus en cours d’exécution. |
| top | Surveillez l’utilisation du CPU et de la mémoire en direct. |
| df -h | Afficher l'espace disque libre. |
| sudo apt update && sudo apt upgrade | Installer les mises à jour sur Debian ou Ubuntu. |
| ssh user@host | Connectez-vous à un serveur distant. |
| tail -f /var/log/syslog | Suivre un fichier journal à mesure qu’il se remplit. |
Cloud et Linux
Commandes Docker et Kubernetes
Créez, exécutez et déboguez des conteneurs, puis gérez-les sur un cluster.
| Commande | Ce qu’il fait |
|---|---|
| docker build -t app . | Créez une image à partir du Dockerfile de ce dossier. |
| docker run -p 8080:80 app | Exécuter l’image et exposer le port 80 sur le port 8080. |
| docker ps | Lister les conteneurs en cours d’exécution. |
| docker logs -f <id> | Suivre la sortie d’un conteneur. |
| docker exec -it <id> sh | Ouvrir un shell dans un conteneur en cours d’exécution. |
| kubectl get pods | Lister les pods de l’espace de noms actuel. |
| kubectl describe pod <name> | Afficher les détails et les événements récents d'un pod. |
| kubectl logs <pod> | Afficher les journaux d’un pod. |
| kubectl apply -f deploy.yaml | Créez ou mettez à jour des ressources à partir d’un fichier. |
| kubectl rollout undo deployment/app | Revenir à la version précédente. |
Réseaux
Types d’enregistrements DNS
Les enregistrements présents dans une zone DNS et le rôle de chacun.
| Enregistrement | Objectif |
|---|---|
| A | Associe un nom à une adresse IPv4. |
| AAAA | Associe un nom à une adresse IPv6. |
| CNAME | Fait d’un nom un alias d’un autre nom. |
| MX | Indique quels serveurs de messagerie reçoivent les e-mails du domaine. |
| TXT | Texte libre, utilisé pour SPF, DKIM et la vérification de propriété d'un domaine. |
| NS | Liste les serveurs de noms responsables du domaine. |
| SOA | Début d’autorité : les principaux paramètres de la zone et son numéro de série. |
| PTR | Résolution inverse : associe une adresse IP à un nom. |
| SRV | Pointe vers l’hôte et le port d’un service précis. |
| CAA | Limite les autorités de certification autorisées à émettre des certificats. |
Réseaux
Tableau CIDR et masques de sous-réseau
Longueur du préfixe, masque de sous-réseau, nombre total d’adresses et hôtes utilisables.
| Préfixe | Masque · total · utilisables |
|---|---|
| /8 | 255.0.0.0 · 16,777,216 · 16,777,214 |
| /16 | 255.255.0.0 · 65,536 · 65,534 |
| /20 | 255.255.240.0 · 4,096 · 4,094 |
| /22 | 255.255.252.0 · 1,024 · 1,022 |
| /24 | 255.255.255.0 · 256 · 254 |
| /25 | 255.255.255.128 · 128 · 126 |
| /26 | 255.255.255.192 · 64 · 62 |
| /27 | 255.255.255.224 · 32 · 30 |
| /28 | 255.255.255.240 · 16 · 14 |
| /29 | 255.255.255.248 · 8 · 6 |
| /30 | 255.255.255.252 · 4 · 2 |
| /32 | 255.255.255.255 · 1 · 1 |
Réseaux
Commandes de dépannage réseau
Commandes pour déterminer où une connexion échoue. Testez uniquement les systèmes que vous possédez ou que vous êtes autorisé à tester.
| Commande | Ce qu’il fait |
|---|---|
| ping -c 4 example.com | Vérifier qu’un hôte répond et mesurer son temps de réponse. |
| traceroute example.com | Afficher chaque routeur traversé par un paquet sur son trajet. |
| dig example.com A | Rechercher les enregistrements DNS d’un nom. |
| nslookup example.com | Une recherche DNS plus simple qui fonctionne sur la plupart des systèmes. |
| curl -I https://example.com | Récupérer uniquement les en-têtes de réponse d'une page web. |
| ip addr | Afficher vos interfaces réseau et adresses IP. |
| ip route | Afficher où le trafic est envoyé, y compris la passerelle par défaut. |
| ss -tulpn | Lister les ports en écoute et les programmes qui les ont ouverts. |
| nmap -sV 192.168.1.10 | Scannez un hôte qui vous appartient pour voir les ports ouverts et les versions des services. |
| tcpdump -i eth0 port 53 | Capturer les paquets DNS sur une interface. |
Développement logiciel
Aide-mémoire SQL
Les instructions à la base de la plupart des opérations sur les bases de données. Transmettez toujours les saisies utilisateur comme paramètres, jamais en concaténant des chaînes.
| Instruction | Ce qu’il fait |
|---|---|
| SELECT name, email FROM users; | Lire des colonnes d’une table. |
| SELECT * FROM orders WHERE total > 100; | Filtrer les lignes selon une condition. |
| ORDER BY created_at DESC LIMIT 10 | Trier le résultat et ne conserver que les premières lignes. |
| INSERT INTO users (name) VALUES ($1); | Ajoute une ligne. $1 est un paramètre renseigné de manière sécurisée. |
| UPDATE users SET name = $1 WHERE id = $2; | Modifier des lignes existantes. N’oubliez jamais le WHERE. |
| DELETE FROM sessions WHERE expires_at < now(); | Supprimer les lignes correspondantes. |
| JOIN orders ON orders.user_id = users.id | Combiner les lignes de deux tables qui partagent une valeur. |
| SELECT status, count(*) FROM orders GROUP BY status; | Regrouper les lignes et les compter ou en calculer la somme. |
| CREATE INDEX ON users (email); | Accélérer les recherches sur une colonne. |
| BEGIN; ... COMMIT; | Exécuter plusieurs instructions dans une transaction unique, selon le principe du tout ou rien. |
Développement logiciel
Aide-mémoire des expressions régulières
Motifs pour rechercher et valider du texte. Essayez-les dans le testeur de Regex.
| Motif | Correspondances |
|---|---|
| . | N'importe quel caractère unique sauf un saut de ligne. |
| \d \w \s | Un chiffre, un caractère de mot, un caractère d'espacement. |
| ^ $ | Le début et la fin du texte. |
| \b | Une limite de mot. |
| * + ? | Zéro ou plusieurs, une ou plusieurs, zéro ou une occurrence de l’élément précédent. |
| {2,4} | Entre 2 et 4 de l’élément précédent. |
| [abc] [^abc] | Un des caractères indiqués, ou tout caractère non indiqué. |
| (cat|dog) | Un groupe qui correspond à cat ou dog et mémorise la correspondance. |
| (?:cat|dog) | Le même groupe sans le mémoriser. |
| (?=x) | Une anticipation : uniquement si x suit, sans le consommer. |
Cloud et Linux
Bases du scripting Bash
Les bases des scripts shell pour l'automatisation.
| Syntaxe | Signification |
|---|---|
| #!/usr/bin/env bash | Première ligne : le programme qui exécute le script. |
| set -euo pipefail | Arrêter l’exécution en cas d’erreur, de variable non définie ou d’échec dans un pipeline. Un réglage par défaut plus sûr. |
| name="web01"; echo "$name" | Définir et utiliser une variable. La placer entre guillemets pour préserver les espaces. |
| if [ -f "$file" ]; then ... fi | Exécuter des commandes uniquement si une condition est vraie, ici si un fichier existe. |
| for f in *.log; do ... done | Répéter des commandes pour chaque élément d’une liste. |
| cmd1 | cmd2 | Transmettre la sortie d’une commande à une autre. |
| cmd > out.txt cmd >> out.txt | Écrire la sortie dans un fichier, en remplaçant son contenu ou en l’ajoutant à la fin. |
| $? | Le code de sortie de la dernière commande. 0 indique une réussite. |
| cmd1 && cmd2 cmd1 || cmd2 | Exécuter la seconde uniquement si la première réussit, ou uniquement si elle échoue. |
| chmod +x script.sh && ./script.sh | Rendre un script exécutable et le lancer. |
Cloud et Linux
Syntaxe de planification Cron
Cinq champs : minute, heure, jour du mois, mois et jour de la semaine. Essayez-les dans l'outil d'explication de Cron.
| Expression | Exécutions |
|---|---|
| * * * * * | Toutes les minutes. |
| */15 * * * * | Toutes les 15 minutes. |
| 0 * * * * | Au début de chaque heure. |
| 0 2 * * * | Tous les jours à 02:00. |
| 30 9 * * 1-5 | À 09:30 en semaine, du lundi au vendredi. |
| 0 0 1 * * | À minuit le premier jour de chaque mois. |
| 0 0 * * 0 | À minuit chaque dimanche. |
| 0 8,20 * * * | Deux fois par jour, à 08:00 et à 20:00. |
Cloud et Linux
Modes de permissions Linux
Valeurs chmod courantes et leurs cas d’usage. Lecture : 4, écriture : 2, exécution : 1.
| Mode | Signification |
|---|---|
| 777 rwxrwxrwx | Tout le monde peut tout faire. Presque jamais approprié. |
| 755 rwxr-xr-x | Accès complet pour le propriétaire, lecture et exécution pour les autres. Courant pour les programmes et les dossiers. |
| 750 rwxr-x--- | Accès complet pour le propriétaire, lecture et exécution pour le groupe, aucun accès pour les autres. |
| 700 rwx------ | Seul le propriétaire dispose d’un accès. Adapté aux dossiers privés. |
| 664 rw-rw-r-- | Le propriétaire et le groupe peuvent modifier, les autres peuvent lire. |
| 644 rw-r--r-- | Le propriétaire peut modifier, tout le monde peut lire. Courant pour les fichiers web. |
| 640 rw-r----- | Le propriétaire peut modifier, le groupe peut lire. Adapté aux fichiers de configuration contenant des mots de passe. |
| 600 rw------- | Seul le propriétaire peut lire et écrire. Requis pour les clés privées SSH. |
| 400 r-------- | Lecture seule pour le propriétaire. Adapté aux clés qui ne changent jamais. |
Cybersécurité
En-têtes de sécurité web et attributs des cookies
En-têtes de réponse qui imposent aux navigateurs un comportement plus sûr.
| En-tête ou option | Ce que cela protège |
|---|---|
| Content-Security-Policy | Limite les sources de chargement des scripts, des images et des cadres. Offre une protection solide contre le XSS. |
| Strict-Transport-Security | Indique aux navigateurs de toujours utiliser HTTPS pour ce site. |
| X-Content-Type-Options: nosniff | Empêche les navigateurs de deviner les types de fichiers et d’exécuter des scripts déguisés. |
| X-Frame-Options: DENY | Empêche les autres sites d’afficher le vôtre dans un cadre (clickjacking). |
| Referrer-Policy | Contrôle quelle partie de votre adresse est transmise aux autres sites. |
| Permissions-Policy | Désactive des fonctionnalités du navigateur, comme la caméra ou la localisation, pour la page. |
| Set-Cookie: HttpOnly | Masque le cookie à JavaScript pour qu'une attaque XSS ne puisse pas le voler. |
| Set-Cookie: Secure | Envoie le cookie uniquement via HTTPS. |
| Set-Cookie: SameSite=Lax | Limite les cookies lors des requêtes intersites, réduisant les risques de CSRF. |
| Access-Control-Allow-Origin | CORS : quels autres sites web peuvent lire les réponses de votre API. |
Cybersécurité
La cryptographie en bref
Quel algorithme utiliser pour quelle tâche, et lesquels éviter.
| Algorithme | Définition et cas d’utilisation |
|---|---|
| AES-256-GCM | Chiffrement symétrique rapide pour les données au repos et en transit. La même clé sert à chiffrer et à déchiffrer. |
| ChaCha20-Poly1305 | Un algorithme de chiffrement symétrique moderne, idéal sur les téléphones sans accélération matérielle AES. |
| RSA 2048+ | Chiffrement à clé publique et signatures. Plus lent, principalement utilisé pour échanger des clés. |
| ECDSA / Ed25519 | Signatures à clé publique compactes avec des clés plus petites que celles de RSA. |
| Diffie-Hellman | Permet à deux parties de convenir d’un secret partagé sur un canal ouvert. |
| SHA-256 | Un hachage cryptographique pour les empreintes et les contrôles d'intégrité. Pas pour les mots de passe. |
| HMAC | Un hachage combiné à une clé secrète pour prouver qu'un message n'a pas été modifié. |
| bcrypt / Argon2 | Des hachages lents et salés, conçus pour stocker les mots de passe. |
| TLS 1.3 | Le protocole derrière HTTPS. Utilisez-le et désactivez les anciennes versions. |
| MD5 / SHA-1 | Inadaptés à un usage sécurisé. Ne les utilisez jamais pour les signatures ou les mots de passe. |
Cybersécurité
Glossaire des attaques courantes
Définitions simples des attaques dont vous entendrez le plus souvent parler.
| Attaque | Définition |
|---|---|
| Phishing | Messages frauduleux qui incitent les personnes à divulguer leurs mots de passe ou à cliquer sur des liens malveillants. |
| Rançongiciel | Logiciel malveillant qui verrouille les fichiers et exige un paiement pour les déverrouiller. |
| DDoS | Submerger un service de trafic provenant de nombreuses machines pour empêcher les utilisateurs légitimes d'y accéder. |
| Attaque de l’homme du milieu | S’interposer secrètement entre deux parties pour lire ou modifier leurs messages. |
| Force brute | Essayer de nombreux mots de passe jusqu'à en trouver un qui fonctionne. |
| Bourrage d’identifiants | Tester des paires d'identifiants et de mots de passe divulguées sur d'autres sites. |
| Zero-day | Une attaque exploitant une faille encore inconnue de l'éditeur, pour laquelle aucun correctif n'existe. |
| Attaque de la chaîne d’approvisionnement | Compromettre un fournisseur ou un paquet logiciel pour atteindre ses clients. |
| Élévation de privilèges | Transformer un accès limité en accès administrateur. |
| Ingénierie sociale | Manipuler des personnes plutôt que des ordinateurs pour obtenir un accès. |
| Menace interne | Dommages causés volontairement ou accidentellement par une personne disposant d'un accès légitime. |
Cybersécurité
Tactiques MITRE ATT&CK
Les 14 étapes suivies par les attaquants : un langage commun pour les défenseurs.
| Tactique | L'objectif de l'attaquant |
|---|---|
| Reconnaissance | Recueillir des informations sur la cible. |
| Développement de ressources | Mettre en place l’infrastructure, les comptes et les outils nécessaires à l’attaque. |
| Accès initial | Obtenir un premier accès, par exemple par hameçonnage. |
| Exécution | Exécuter du code malveillant sur le système. |
| Persistance | Conserver l’accès après les redémarrages et les changements de mot de passe. |
| Élévation de privilèges | Obtenir des droits plus élevés. |
| Contournement des défenses | Éviter d’être détecté ou bloqué. |
| Accès aux identifiants | Voler des noms de compte et des mots de passe. |
| Découverte | Découvrir l’environnement et ce qu’il contient. |
| Déplacement latéral | Passer d’un système à d’autres sur le réseau. |
| Collecte | Rassembler les données pertinentes. |
| Commande et contrôle | Communiquer avec les systèmes compromis pour les contrôler. |
| Exfiltration | Exfiltrer les données du réseau. |
| Impact | Perturber, détruire ou verrouiller les systèmes et les données. |