---
jupytext:
  text_representation:
    extension: .md
    format_name: myst
    format_version: 0.13
    jupytext_version: 1.16.0
kernelspec:
  name: python3
  display_name: Python 3
---

# Sécurité informatique

La sécurité n'est pas une fonctionnalité qu'on ajoute après coup — c'est une propriété systémique qui se conçoit, se construit et se maintient à chaque couche d'un système. Ce livre couvre l'intégralité du domaine : fondations cryptographiques, sécurité réseau, sécurité applicative (OWASP), conteneurs et cloud, sécurité offensive, réponse aux incidents et conformité réglementaire.

Chaque chapitre combine des explications conceptuelles, des commandes et configurations concrètes, et des cellules Python exécutables pour visualiser et simuler les mécanismes présentés. L'objectif est de comprendre non seulement le *quoi*, mais le *pourquoi* et le *comment*, avec suffisamment de profondeur pour être opérationnel.

---

## Organisation du livre

### Partie I — Fondations

Les bases sur lesquelles repose tout programme de sécurité : identifier les menaces, comprendre la cryptographie et maîtriser la gestion des identités.

- {doc}`01_modelisation_menaces` — Modélisation des menaces : STRIDE, DREAD, arbres d'attaque, PASTA, threat modeling applicatif
- **02 — Cryptographie appliquée** — Chiffrement symétrique (AES), asymétrique (RSA, ECC), fonctions de hachage, MAC, AEAD
- **03 — IAM et identités** — Authentification (MFA, FIDO2), autorisation (RBAC, ABAC), OAuth 2.0, OIDC, SAML

### Partie II — Cryptographie avancée et PKI

De la cryptographie fondamentale aux infrastructures de confiance à grande échelle.

- **04 — TLS en profondeur** — Handshake TLS 1.3, cipher suites, Perfect Forward Secrecy, HSTS, Certificate Transparency
- {doc}`05_pki_certificats` — PKI et certificats : CA, chaînes de confiance, X.509, OCSP, révocation, Let's Encrypt
- **06 — E2EE et secrets avancés** — Chiffrement de bout en bout, Signal Protocol, gestion des secrets (Vault, SOPS, AWS Secrets Manager)

### Partie III — Sécurité réseau

Défense du périmètre réseau, détection des intrusions et sécurisation des protocoles fondamentaux.

- **07 — Sécurité réseau** — Pare-feu (nftables, iptables), DMZ, VPN (WireGuard, IPsec), NAC
- **08 — IDS et Zero Trust** — Snort/Suricata, Zeek, modèle Zero Trust, micro-segmentation, BeyondCorp
- {doc}`09_securite_dns_bgp` — Sécurité DNS et BGP : DNSSEC, DoH, DoT, BGP hijacking, RPKI, filtrage de préfixes

### Partie IV — Sécurité applicative et OWASP

Les vulnérabilités les plus fréquentes des applications web et les contre-mesures efficaces.

- **10 — OWASP : injections** — SQLi, XSS, SSRF, XXE, path traversal — exploitation et défense
- **11 — OWASP : authentification et cryptographie** — Broken auth, insecure deserialization, IDOR, CORS, secrets dans le code
- **12 — Sécurité des APIs** — REST, GraphQL, gRPC — authentification, rate limiting, validation, fuzzing

### Partie V — Conteneurs, cloud et supply chain

Sécuriser les architectures modernes : conteneurs, orchestration, cloud public et chaîne d'approvisionnement logicielle.

- {doc}`13_hardening_docker` — Hardening Docker : namespaces, cgroups, seccomp, AppArmor, images minimales, Trivy
- **14 — Kubernetes RBAC et sécurité** — RBAC, Network Policies, PodSecurity, Falco, OPA/Gatekeeper, secrets etcd
- **15 — IAM cloud et CSPM** — IAM AWS/GCP/Azure, principe du moindre privilège, CSPM (Prowler, ScoutSuite)
- **16 — Supply chain et SBOM** — SLSA, SBOM (SPDX, CycloneDX), Sigstore/Cosign, dépendances et CVEs

### Partie VI — Sécurité offensive et tests

Penser comme un attaquant pour mieux défendre : reconnaissance, exploitation et équipes Red/Blue.

- **17 — Pentest : reconnaissance** — OSINT (Maltego, theHarvester), enumération réseau (nmap, masscan), footprinting
- **18 — Pentest web** — Burp Suite, SQLmap, exploitation XSS avancée, OWASP Testing Guide, reporting
- **19 — Red et Blue Team** — Kill chain de Lockheed Martin, MITRE ATT&CK, exercices Red vs Blue, Purple Team

### Partie VII — Détection, IR, forensique et hardening

Détecter les attaques, répondre aux incidents et durcir les systèmes.

- **20 — SIEM et Threat Hunting** — Elastic SIEM, Splunk, règles Sigma, Yara, threat hunting proactif
- {doc}`21_ir_forensique` — Réponse aux incidents et forensique numérique : cycle NIST SP 800-61r3, Volatility 3, timeline multi-sources
- {doc}`22_hardening_cis` — Hardening systèmes et benchmarks CIS : Lynis, OpenSCAP, EPSS, gestion des patchs

### Partie VIII — Conformité et maturité

Cadres réglementaires, certification et construction d'un programme de sécurité durable.

- {doc}`23_conformite` — Frameworks de conformité : RGPD, SOC 2, ISO 27001, PCI-DSS, NIST CSF 2.0
- {doc}`24_maturite_securite` — Maturité sécurité et feuille de route : OpenSAMM, KPI, roadmap, culture sécurité

---

```{admonition} Prérequis
:class: note
Ce livre suppose une familiarité avec Linux (ligne de commande, administration de base), les réseaux (TCP/IP, DNS, HTTP) et Python (pour les cellules de visualisation). Les connaissances en sécurité ne sont pas prérequises — chaque concept est introduit à partir des fondations.
```

```{admonition} Environnement d'exécution
:class: tip
Les cellules Python utilisent `numpy`, `pandas`, `matplotlib`, `seaborn`, `cryptography` et `pyjwt`. L'ensemble des dépendances est listé dans `requirements.txt`. Pour exécuter localement : `pip install -r requirements.txt` dans un environnement virtuel Python 3.10+.
```
