-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcyberattaque_interactive.html
More file actions
625 lines (611 loc) · 44.7 KB
/
Copy pathcyberattaque_interactive.html
File metadata and controls
625 lines (611 loc) · 44.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cyber — Processus d'attaque & de défense</title>
<style>
:root{--bg:#f8fafc;--card:#fff;--border:#e2e8f0;--text:#1e293b;--muted:#64748b;--acc:#dc2626;--acc2:#b91c1c;--blue600:#2563eb;--green:#16a34a;--red:#dc2626;--orange:#ea580c;--purple:#7c3aed;--grad1:#1a0000;--grad2:#330000}
@media(prefers-color-scheme:dark){:root{--bg:#0d0d0d;--card:#1a1a1a;--border:#2a2a2a;--text:#e2e8f0;--muted:#94a3b8}}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.6}
header{background:linear-gradient(135deg,var(--grad1),var(--grad2));padding:2rem 1rem;text-align:center;border-bottom:2px solid var(--acc)}
header h1{font-size:2rem;font-weight:800;color:#fff}
header p{color:#fca5a5;margin-top:.4rem;font-size:.95rem}
nav{position:sticky;top:0;z-index:100;background:var(--card);border-bottom:1px solid var(--border);padding:.5rem 1rem;display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center}
.tab-btn{padding:.4rem 1rem;border:none;border-radius:999px;cursor:pointer;font-size:.85rem;font-weight:600;background:var(--border);color:var(--muted);transition:all .2s}
.tab-btn.active{background:var(--blue600);color:#fff}
.tab-btn:hover:not(.active){background:var(--acc);color:#fff}
section{display:none;max-width:1100px;margin:0 auto;padding:1.5rem 1rem}
section.active{display:block}
h2{font-size:1.4rem;font-weight:700;margin-bottom:1rem;color:var(--acc)}
h3{font-size:1.1rem;font-weight:600;margin:1.2rem 0 .6rem}
.grid{display:grid;gap:1rem}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.2rem}
.card h4{font-size:1rem;font-weight:700;margin-bottom:.5rem;color:var(--acc)}
.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.75rem;font-weight:600;margin:.1rem}
.badge-green{background:#dcfce7;color:#15803d}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-red{background:#fee2e2;color:#b91c1c}.badge-yellow{background:#fef3c7;color:#92400e}.badge-purple{background:#ede9fe;color:#6d28d9}
@media(prefers-color-scheme:dark){.badge-green{background:#14532d;color:#86efac}.badge-blue{background:#1e3a5f;color:#93c5fd}.badge-red{background:#450a0a;color:#fca5a5}.badge-yellow{background:#451a03;color:#fcd34d}.badge-purple{background:#2e1065;color:#c4b5fd}}
.codeblk{background:#1e1e2e;color:#cdd6f4;border-radius:.5rem;padding:1rem;font-family:'Cascadia Code','Fira Code',monospace;font-size:.82rem;overflow-x:auto;margin:.5rem 0;line-height:1.7;white-space:pre-wrap}
.c-kw{color:#89b4fa}.c-str{color:#a6e3a1}.c-comment{color:#6c7086;font-style:italic}.c-val{color:#f9e2af}.c-fn{color:#cba6f7}
table{width:100%;border-collapse:collapse;font-size:.85rem;margin:.5rem 0}
th{background:var(--acc);color:#fff;padding:.5rem .75rem;text-align:left}
td{padding:.45rem .75rem;border-bottom:1px solid var(--border)}
tr:hover td{background:var(--border)}
.info-box{background:var(--card);border-left:4px solid var(--acc);border-radius:.5rem;padding:.8rem 1rem;margin:.5rem 0}
.info-box.green{border-color:var(--green)}.info-box.red{border-color:var(--red)}.info-box.blue{border-color:var(--blue600)}.info-box.orange{border-color:var(--orange)}.info-box.purple{border-color:var(--purple)}
.kc-step{display:flex;align-items:center;gap:.5rem;padding:.6rem .8rem;background:var(--card);border:1px solid var(--border);border-left:4px solid var(--acc);border-radius:.4rem;margin:.3rem 0;cursor:pointer;transition:all .2s}
.kc-step:hover{background:var(--border);transform:translateX(4px)}
.kc-step .num{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;background:var(--acc);color:#fff;border-radius:50%;font-weight:700;font-size:.85rem;flex-shrink:0}
.kc-step .body{flex:1;font-size:.88rem}
.kc-step .body strong{display:block;color:var(--acc);margin-bottom:.1rem}
.detail-panel{display:none;padding:.8rem;background:var(--bg);border-radius:.5rem;border:1px solid var(--border);font-size:.85rem;margin-top:.4rem}
.detail-panel.open{display:block}
.mitre-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.4rem;margin:.5rem 0}
.tactic{padding:.5rem;background:var(--card);border:1px solid var(--border);border-top:3px solid var(--acc);border-radius:.4rem;cursor:pointer;transition:all .2s;font-size:.78rem}
.tactic:hover{transform:translateY(-3px);box-shadow:0 4px 12px rgba(220,38,38,.15)}
.tactic strong{display:block;color:var(--acc);font-size:.82rem;margin-bottom:.2rem}
.team-card{padding:1.5rem;border-radius:.75rem;color:#fff;cursor:pointer;transition:all .2s}
.team-card:hover{transform:translateY(-3px);box-shadow:0 6px 18px rgba(0,0,0,.2)}
.team-card h3{color:#fff;margin:0 0 .3rem}
.team-card p{font-size:.85rem;opacity:.95}
.quiz-q{background:var(--card);border:1px solid var(--border);border-radius:.75rem;padding:1.2rem;margin:.8rem 0}
.quiz-q p{font-weight:600;margin-bottom:.7rem}
.quiz-opt{padding:.5rem .8rem;border:1px solid var(--border);border-radius:.4rem;margin:.3rem 0;cursor:pointer;transition:all .2s}
.quiz-opt:hover{border-color:var(--acc);background:rgba(220,38,38,.05)}
.quiz-opt.correct{background:#dcfce7;border-color:var(--green);color:#166534}
.quiz-opt.wrong{background:#fee2e2;border-color:var(--red);color:#991b1b}
@media(prefers-color-scheme:dark){.quiz-opt.correct{background:#14532d;color:#86efac}.quiz-opt.wrong{background:#450a0a;color:#fca5a5}}
#quiz-score{display:none;text-align:center;padding:1.5rem;background:var(--card);border-radius:.75rem;margin-top:1rem;font-size:1.1rem;font-weight:700}
</style>
</head>
<body>
<header>
<h1>Cyber — Attaque & Défense</h1>
<p>Kill Chain, MITRE ATT&CK, Red Team, Blue Team, SOC, Incident Response</p>
</header>
<nav>
<button class="tab-btn active" onclick="showTab('overview')">Vue d'ensemble</button>
<button class="tab-btn" onclick="showTab('actors')">Acteurs</button>
<button class="tab-btn" onclick="showTab('killchain')">Kill Chain</button>
<button class="tab-btn" onclick="showTab('mitre')">MITRE ATT&CK</button>
<button class="tab-btn" onclick="showTab('red')">Red Team</button>
<button class="tab-btn" onclick="showTab('blue')">Blue Team / SOC</button>
<button class="tab-btn" onclick="showTab('ir')">Incident Response</button>
<button class="tab-btn" onclick="showTab('quiz')">Quiz</button>
</nav>
<section id="overview" class="active">
<h2>Vue d'ensemble</h2>
<div class="grid g2">
<div class="card">
<h4>Pourquoi des frameworks ?</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">Comprendre l'attaque comme un <strong>processus</strong> (pas un événement isolé) permet de la détecter et l'interrompre à plusieurs étapes. Les frameworks standardisent le vocabulaire entre red team, blue team et threat intel.</p>
<div class="info-box">
<strong>Frameworks majeurs :</strong>
<ul style="padding-left:1.2rem;margin-top:.3rem">
<li><strong>Cyber Kill Chain</strong> (Lockheed Martin, 2011) — 7 étapes APT</li>
<li><strong>MITRE ATT&CK</strong> (2013, maj continue) — matrice TTP</li>
<li><strong>Unified Kill Chain</strong> (Pols, 2017) — fusion des deux</li>
<li><strong>Diamond Model</strong> — adversary / capability / infrastructure / victim</li>
<li><strong>NIST CSF 2.0</strong> — Govern, Identify, Protect, Detect, Respond, Recover</li>
</ul>
</div>
</div>
<div class="card">
<h4>Glossaire</h4>
<table>
<tr><th>Acronyme</th><th>Signification</th></tr>
<tr><td>APT</td><td>Advanced Persistent Threat — acteur étatique ou très organisé</td></tr>
<tr><td>TTP</td><td>Tactics, Techniques, Procedures</td></tr>
<tr><td>IOC</td><td>Indicator of Compromise — hash, IP, domaine, file path</td></tr>
<tr><td>IoA</td><td>Indicator of Attack — comportement (vs IOC qui est statique)</td></tr>
<tr><td>C2 / C&C</td><td>Command & Control — canal de l'attaquant</td></tr>
<tr><td>CVE</td><td>Common Vulnerabilities & Exposures</td></tr>
<tr><td>CTI</td><td>Cyber Threat Intelligence</td></tr>
<tr><td>SOC</td><td>Security Operations Center</td></tr>
<tr><td>SIEM</td><td>Security Information & Event Management</td></tr>
<tr><td>SOAR</td><td>Security Orchestration, Automation & Response</td></tr>
<tr><td>EDR / XDR</td><td>Endpoint / Extended Detection & Response</td></tr>
<tr><td>DFIR</td><td>Digital Forensics & Incident Response</td></tr>
<tr><td>CSIRT / CERT</td><td>Computer Security Incident Response Team</td></tr>
<tr><td>TLP</td><td>Traffic Light Protocol (red/amber/green/white)</td></tr>
</table>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h4>NIST CSF 2.0 — les 6 fonctions</h4>
<div class="grid g3">
<div class="info-box purple"><strong>GOVERN</strong> (nouveau en CSF 2.0)<br>Stratégie, politiques, gestion du risque, rôles & responsabilités</div>
<div class="info-box"><strong>IDENTIFY</strong><br>Inventaire des actifs, données critiques, menaces, fournisseurs</div>
<div class="info-box blue"><strong>PROTECT</strong><br>Contrôles d'accès, formation, MAJ, chiffrement, backups</div>
<div class="info-box orange"><strong>DETECT</strong><br>Monitoring continu, anomalies, événements de sécurité</div>
<div class="info-box red"><strong>RESPOND</strong><br>Plan d'IR, communication, analyse, mitigation</div>
<div class="info-box green"><strong>RECOVER</strong><br>Restauration, lessons learned, amélioration continue</div>
</div>
</div>
</section>
<section id="actors">
<h2>Acteurs & motivations</h2>
<div class="card">
<h4>Typologie des acteurs malveillants</h4>
<table>
<tr><th>Type</th><th>Motivation</th><th>Sophistication</th><th>Exemples</th></tr>
<tr><td><strong>APT étatique</strong></td><td>Espionnage, géopolitique, sabotage</td><td>Très élevée</td><td>APT28 (Fancy Bear, Russie), APT29 (Cozy Bear), Lazarus (Corée du Nord), Equation Group (NSA)</td></tr>
<tr><td><strong>Cybercriminel</strong></td><td>Argent (ransomware, fraude, carding)</td><td>Élevée à moyenne</td><td>Conti, LockBit, REvil, BlackCat, FIN7</td></tr>
<tr><td><strong>Hacktiviste</strong></td><td>Idéologique, politique, visibilité</td><td>Variable</td><td>Anonymous, LulzSec, Killnet</td></tr>
<tr><td><strong>Insider malveillant</strong></td><td>Vengeance, argent, espionnage</td><td>Variable</td><td>Edward Snowden, ex-salariés frustrés</td></tr>
<tr><td><strong>Insider non malveillant</strong></td><td>Erreur, négligence, manipulation</td><td>Faible (mais coût élevé)</td><td>Phishing, click sur PJ</td></tr>
<tr><td><strong>Script kiddie</strong></td><td>Curiosité, ego, défi</td><td>Faible</td><td>Réutilise outils publics</td></tr>
<tr><td><strong>Initial Access Broker (IAB)</strong></td><td>Argent — vend des accès</td><td>Moyenne</td><td>Marketplace dark web</td></tr>
</table>
</div>
<div class="grid g2" style="margin-top:1rem">
<div class="card">
<h4>Le marché du ransomware</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">L'écosystème ransomware s'est industrialisé avec le modèle <strong>RaaS</strong> (Ransomware as a Service) :</p>
<ul style="font-size:.85rem;padding-left:1.2rem;line-height:1.9">
<li><strong>Développeur du ransomware</strong> — vend ou loue le malware (20-30% des profits)</li>
<li><strong>Affiliés</strong> — exécutent l'attaque (70-80%)</li>
<li><strong>Initial Access Brokers</strong> — vendent des accès initiaux</li>
<li><strong>Negotiation services</strong> — discutent avec la victime</li>
<li><strong>Money mules & mixers</strong> — blanchissent la crypto</li>
</ul>
<div class="info-box red" style="margin-top:.5rem;font-size:.82rem">
<strong>Double extorsion (depuis 2019) :</strong> on chiffre les fichiers ET on exfiltre. Si la victime refuse de payer le déchiffrement, on publie les données. Triple extorsion ajoute DDoS et harcèlement de clients.
</div>
</div>
<div class="card">
<h4>Cyber Threat Intelligence — niveaux</h4>
<table>
<tr><th>Niveau</th><th>Cible</th><th>Usage</th></tr>
<tr><td><strong>Stratégique</strong></td><td>C-Suite, board</td><td>Tendances, géopolitique, risques</td></tr>
<tr><td><strong>Opérationnel</strong></td><td>SOC managers</td><td>Campagnes APT, TTPs</td></tr>
<tr><td><strong>Tactique</strong></td><td>SOC analystes</td><td>IOCs, signatures</td></tr>
<tr><td><strong>Technique</strong></td><td>IR, threat hunters</td><td>Malware samples, exploits</td></tr>
</table>
<div class="info-box blue" style="margin-top:.5rem;font-size:.82rem">
<strong>Sources :</strong> MITRE ATT&CK, MISP (sharing), ANSSI CERT-FR, US-CERT, vendor reports (Mandiant, CrowdStrike, Microsoft Threat Intel), OSINT.
</div>
</div>
</div>
</section>
<section id="killchain">
<h2>Cyber Kill Chain</h2>
<p style="color:var(--muted);margin-bottom:.5rem">Modèle Lockheed Martin (2011) — les 7 étapes d'une intrusion APT. Cliquez pour les défenses associées.</p>
<div class="kc-step" onclick="toggleDetail('kc1')">
<span class="num">1</span>
<div class="body">
<strong>Reconnaissance</strong>
Récolte d'information sur la cible (OSINT, scan, social engineering).
<div class="detail-panel" id="kc1">
<strong>Techniques :</strong> Google dorks, LinkedIn, GitHub, Shodan, Censys, scans nmap/masscan, DNS enumeration (subfinder, amass), email harvesting (theHarvester), Wayback Machine.<br><br>
<strong>Défenses :</strong> minimiser la surface exposée, monitoring DNS passif, alertes mention de l'entreprise (HaveIBeenPwned, Recorded Future), publication maîtrisée (no employee shaming).
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc2')">
<span class="num">2</span>
<div class="body">
<strong>Weaponization</strong>
Création de l'arme (malware + exploit + leurre).
<div class="detail-panel" id="kc2">
<strong>Techniques :</strong> assembler un payload (Metasploit, Cobalt Strike beacon, Mythic), packer/crypter pour éviter l'AV, créer un document piégé (macro Office, PDF exploit, ISO/LNK), choisir un C2.<br><br>
<strong>Défenses :</strong> l'attaquant est dans son labo — peu d'action possible côté défenseur. CTI sur les TTPs, IOCs partagés.
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc3')">
<span class="num">3</span>
<div class="body">
<strong>Delivery</strong>
Envoi de l'arme à la cible.
<div class="detail-panel" id="kc3">
<strong>Vecteurs :</strong> phishing email (+ pièce jointe ou lien), watering hole (sites compromis fréquentés par la cible), supply chain (composant logiciel infecté), USB drop, exploit web kit, MFA fatigue.<br><br>
<strong>Défenses :</strong> filtrage email (anti-spam/phishing, DKIM/DMARC/SPF), proxy web (URL filtering, sandboxing), désactivation autorun USB, formation utilisateurs (phishing simulation), patch management.
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc4')">
<span class="num">4</span>
<div class="body">
<strong>Exploitation</strong>
Exécution du code sur le système cible.
<div class="detail-panel" id="kc4">
<strong>Techniques :</strong> exploit de vulnérabilité (CVE-XXXX), macro malicieuse, social engineering (clic utilisateur), 0-day, exploit chain (browser → kernel → priv esc).<br><br>
<strong>Défenses :</strong> patch management agressif, EDR avec détection comportementale, application allowlisting (AppLocker, WDAC), désactiver les macros par défaut, sandbox (Defender App Guard).
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc5')">
<span class="num">5</span>
<div class="body">
<strong>Installation</strong>
Établissement de la persistance.
<div class="detail-panel" id="kc5">
<strong>Techniques :</strong> registry run keys, scheduled tasks, services Windows, startup folder, WMI subscription, DLL hijacking, bootkit, COM hijacking, BITS jobs. Sur Linux : systemd unit, cron, .bashrc, kernel module.<br><br>
<strong>Défenses :</strong> EDR (CrowdStrike, MS Defender for Endpoint, SentinelOne) qui surveille les autoruns, baseline des persistances connues, intégrité (Sigma, Sysmon, auditd), threat hunting régulier.
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc6')">
<span class="num">6</span>
<div class="body">
<strong>Command & Control (C2)</strong>
Communication entre l'attaquant et le malware.
<div class="detail-panel" id="kc6">
<strong>Techniques :</strong> HTTPS beacons (Cobalt Strike, Sliver, Mythic), DNS tunneling, domain fronting, services légitimes (Slack, Telegram, GitHub Gists, Discord webhooks, Dropbox), jitter et sleep aléatoires pour évader la détection.<br><br>
<strong>Défenses :</strong> proxy web inspection (SSL/TLS deep inspection), beaconing detection (intervalles réguliers), threat intel feeds (domaines C2 connus), TLS fingerprinting (JA3/JA4), NDR (network detection & response).
</div>
</div>
</div>
<div class="kc-step" onclick="toggleDetail('kc7')">
<span class="num">7</span>
<div class="body">
<strong>Actions on Objectives</strong>
Atteinte de l'objectif final.
<div class="detail-panel" id="kc7">
<strong>Techniques :</strong> exfiltration (rclone, megaupload, cloud légitime), chiffrement ransomware, destruction (wiper), sabotage (ICS, OT), espionnage long terme (keylogger, screenshots), pivot vers autres victimes.<br><br>
<strong>Défenses :</strong> DLP, monitoring volumes de données sortantes, segmentation réseau pour limiter le blast radius, immutable backups, plan de continuité, exercices tabletop.
</div>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h4>Unified Kill Chain (Pols, 2017)</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">Fusionne Lockheed Kill Chain + MITRE ATT&CK en 18 phases dans 3 grandes étapes :</p>
<div class="grid g3">
<div class="info-box"><strong>In</strong> (initial access)<br>Recon, Resource Dev, Delivery, Social Eng, Exploitation, Persistence, Defense Evasion, Command & Control</div>
<div class="info-box blue"><strong>Through</strong> (network propagation)<br>Pivoting, Discovery, Privilege Escalation, Execution, Credential Access, Lateral Movement</div>
<div class="info-box red"><strong>Out</strong> (impact)<br>Collection, Exfiltration, Impact, Objectives</div>
</div>
</div>
</section>
<section id="mitre">
<h2>MITRE ATT&CK</h2>
<div class="grid g2">
<div class="card">
<h4>La matrice ATT&CK</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">MITRE ATT&CK (Adversarial Tactics, Techniques & Common Knowledge) catalogue les comportements observés des attaquants dans la nature.</p>
<table>
<tr><th>Concept</th><th>Description</th></tr>
<tr><td><strong>Tactic</strong></td><td>Le "pourquoi" — objectif de l'adversaire (14 tactiques Enterprise)</td></tr>
<tr><td><strong>Technique</strong></td><td>Le "comment" — méthode utilisée (~200 techniques)</td></tr>
<tr><td><strong>Sub-technique</strong></td><td>Variante plus précise d'une technique</td></tr>
<tr><td><strong>Procedure</strong></td><td>Implémentation spécifique vue dans une attaque</td></tr>
<tr><td><strong>Group</strong></td><td>Acteur attribué (APT28, FIN7, Lazarus…)</td></tr>
<tr><td><strong>Software</strong></td><td>Outil/malware utilisé (Mimikatz, Cobalt Strike…)</td></tr>
<tr><td><strong>Mitigation</strong></td><td>Mesures défensives associées</td></tr>
</table>
<div class="info-box blue" style="margin-top:.5rem;font-size:.82rem">
Matrices disponibles : Enterprise (Windows/Linux/macOS/Cloud/Containers), Mobile (Android/iOS), ICS (industriel).
</div>
</div>
<div class="card">
<h4>Exemple — Mimikatz (S0002)</h4>
<div class="codeblk"><span class="c-comment"># Tactiques où Mimikatz apparaît :</span>
- <span class="c-kw">Credential Access</span> (TA0006)
- <span class="c-kw">Lateral Movement</span> (TA0008)
- <span class="c-kw">Privilege Escalation</span> (TA0004)
- <span class="c-kw">Defense Evasion</span> (TA0005)
<span class="c-comment"># Techniques associées :</span>
T1003.001 <span class="c-comment"># OS Credential Dumping: LSASS Memory</span>
T1003.002 <span class="c-comment"># OS Credential Dumping: Security Account Manager</span>
T1003.004 <span class="c-comment"># OS Credential Dumping: LSA Secrets</span>
T1003.006 <span class="c-comment"># OS Credential Dumping: DCSync</span>
T1558.001 <span class="c-comment"># Steal or Forge Kerberos Tickets: Golden Ticket</span>
T1558.003 <span class="c-comment"># Kerberoasting</span>
T1550.002 <span class="c-comment"># Use Alternate Auth Material: Pass the Hash</span>
T1550.003 <span class="c-comment"># Pass the Ticket</span></div>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h4>Les 14 tactiques Enterprise (TA0001 → TA0040)</h4>
<p style="font-size:.82rem;color:var(--muted);margin-bottom:.5rem">Cliquez sur une tactique pour son détail</p>
<div class="mitre-grid">
<div class="tactic" onclick="showTactic('recon')"><strong>TA0043</strong>Reconnaissance</div>
<div class="tactic" onclick="showTactic('resource')"><strong>TA0042</strong>Resource Development</div>
<div class="tactic" onclick="showTactic('initial')"><strong>TA0001</strong>Initial Access</div>
<div class="tactic" onclick="showTactic('execution')"><strong>TA0002</strong>Execution</div>
<div class="tactic" onclick="showTactic('persistence')"><strong>TA0003</strong>Persistence</div>
<div class="tactic" onclick="showTactic('privesc')"><strong>TA0004</strong>Privilege Escalation</div>
<div class="tactic" onclick="showTactic('defense')"><strong>TA0005</strong>Defense Evasion</div>
<div class="tactic" onclick="showTactic('cred')"><strong>TA0006</strong>Credential Access</div>
<div class="tactic" onclick="showTactic('discovery')"><strong>TA0007</strong>Discovery</div>
<div class="tactic" onclick="showTactic('lateral')"><strong>TA0008</strong>Lateral Movement</div>
<div class="tactic" onclick="showTactic('collection')"><strong>TA0009</strong>Collection</div>
<div class="tactic" onclick="showTactic('c2')"><strong>TA0011</strong>Command & Control</div>
<div class="tactic" onclick="showTactic('exfil')"><strong>TA0010</strong>Exfiltration</div>
<div class="tactic" onclick="showTactic('impact')"><strong>TA0040</strong>Impact</div>
</div>
<div id="tactic-detail" style="display:none;margin-top:1rem;padding:1rem;background:var(--bg);border:2px solid var(--acc);border-radius:.5rem"></div>
</div>
<div class="grid g2" style="margin-top:1rem">
<div class="card">
<h4>D3FEND — le pendant défensif</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">MITRE D3FEND (2021) catalogue les contre-mesures techniques, organisées en 6 stratégies : Model, Harden, Detect, Isolate, Deceive, Evict.</p>
<table>
<tr><th>Stratégie</th><th>Description</th></tr>
<tr><td>Model</td><td>Cartographier les systèmes & données</td></tr>
<tr><td>Harden</td><td>Réduire la surface d'attaque (config, MAJ)</td></tr>
<tr><td>Detect</td><td>Identifier les activités malveillantes</td></tr>
<tr><td>Isolate</td><td>Limiter le blast radius (segmentation)</td></tr>
<tr><td>Deceive</td><td>Honeypots, honeytokens</td></tr>
<tr><td>Evict</td><td>Supprimer l'attaquant du système</td></tr>
</table>
</div>
<div class="card">
<h4>ATT&CK Navigator</h4>
<div class="info-box">
<strong>Outil :</strong> <a href="https://mitre-attack.github.io/attack-navigator/" style="color:var(--acc)">mitre-attack.github.io/attack-navigator</a>
</div>
<p style="font-size:.88rem;margin-top:.4rem">Permet de visualiser, annoter, comparer des matrices ATT&CK :</p>
<ul style="font-size:.85rem;padding-left:1.2rem;line-height:1.8">
<li>Heatmap des techniques observées sur votre infra</li>
<li>Comparer les TTPs de plusieurs APT</li>
<li>Identifier les gaps de détection</li>
<li>Exporter en JSON pour intégration SIEM</li>
</ul>
<div class="info-box green" style="margin-top:.5rem;font-size:.82rem">
<strong>Sigma rules :</strong> détections SIEM-agnostiques mappées sur ATT&CK. <a href="https://github.com/SigmaHQ/sigma" style="color:var(--acc)">github.com/SigmaHQ/sigma</a>
</div>
</div>
</div>
</section>
<section id="red">
<h2>Red Team — méthodologie offensive</h2>
<div class="grid g2">
<div class="card">
<h4>Pentest vs Red Team vs Bug Bounty</h4>
<table>
<tr><th>Activité</th><th>Scope</th><th>Objectif</th><th>Durée</th></tr>
<tr><td>Pentest</td><td>Défini (app, infra)</td><td>Trouver un max de vulns</td><td>1-4 semaines</td></tr>
<tr><td>Red Team</td><td>Large, réaliste</td><td>Atteindre un objectif (data, domain admin)</td><td>1-6 mois</td></tr>
<tr><td>Bug Bounty</td><td>Surface publique</td><td>Trouver des vulns spécifiques avec rémunération</td><td>Continu</td></tr>
<tr><td>Adversary Emulation</td><td>Suit un APT précis</td><td>Tester la détection blue team</td><td>2-6 semaines</td></tr>
</table>
</div>
<div class="card">
<h4>Méthodologies standards</h4>
<table>
<tr><th>Standard</th><th>Description</th></tr>
<tr><td><strong>PTES</strong></td><td>Penetration Testing Execution Standard — 7 phases</td></tr>
<tr><td><strong>OWASP WSTG</strong></td><td>Web Security Testing Guide</td></tr>
<tr><td><strong>OWASP MASTG</strong></td><td>Mobile Security Testing Guide</td></tr>
<tr><td><strong>NIST SP 800-115</strong></td><td>Technical Guide to Information Security Testing</td></tr>
<tr><td><strong>OSSTMM</strong></td><td>Open Source Security Testing Methodology Manual</td></tr>
<tr><td><strong>TIBER-EU</strong></td><td>Threat Intelligence-Based Ethical Red-teaming (BCE)</td></tr>
<tr><td><strong>CBEST / iCAST</strong></td><td>Frameworks UK / Singapour pour le secteur financier</td></tr>
</table>
</div>
</div>
<div class="grid g2" style="margin-top:1rem">
<div class="card">
<h4>Outils red team — catégories</h4>
<table>
<tr><th>Phase</th><th>Outils</th></tr>
<tr><td>Recon</td><td>Shodan, Censys, theHarvester, amass, subfinder, gobuster, masscan</td></tr>
<tr><td>Vuln scan</td><td>Nessus, OpenVAS, Nuclei, Nikto</td></tr>
<tr><td>Web pentest</td><td>Burp Suite, ZAP, sqlmap, ffuf, wpscan</td></tr>
<tr><td>Exploitation</td><td>Metasploit, exploit-db, searchsploit</td></tr>
<tr><td>C2</td><td>Cobalt Strike (commercial), Sliver, Mythic, Havoc, Brute Ratel</td></tr>
<tr><td>AD attacks</td><td>BloodHound, Mimikatz, Rubeus, Impacket, CrackMapExec, Certipy</td></tr>
<tr><td>Phishing</td><td>GoPhish, Evilginx2 (MFA bypass), King Phisher</td></tr>
<tr><td>Privilege escalation</td><td>WinPEAS, LinPEAS, PowerUp, GTFOBins</td></tr>
<tr><td>Wireless</td><td>aircrack-ng, hashcat, hcxdumptool</td></tr>
</table>
</div>
<div class="card">
<h4>OPSEC red team</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">Une bonne red team simule un vrai attaquant — donc évite la détection :</p>
<ul style="font-size:.85rem;padding-left:1.2rem;line-height:1.9">
<li><strong>Living off the land (LotL) :</strong> utiliser des outils légitimes (PowerShell, WMIC, certutil, rundll32, regsvr32) plutôt que d'apporter du malware</li>
<li><strong>Domain fronting / DoH :</strong> cacher le C2 dans du trafic légitime</li>
<li><strong>Jitter & sleep :</strong> beaconing irrégulier (pas toutes les 30s)</li>
<li><strong>Process injection :</strong> rester dans des process légitimes (svchost, explorer)</li>
<li><strong>Pas de "spray and pray" :</strong> sélection précise des cibles, pas de scans bruyants</li>
<li><strong>Anti-forensics :</strong> nettoyer les logs (mais discrètement)</li>
</ul>
</div>
</div>
</section>
<section id="blue">
<h2>Blue Team / SOC</h2>
<div class="grid g3">
<div class="team-card" style="background:linear-gradient(135deg,#dc2626,#991b1b)">
<h3>🔴 Red Team</h3>
<p>Simule l'attaquant. Trouve les faiblesses. Vise un objectif précis.</p>
</div>
<div class="team-card" style="background:linear-gradient(135deg,#2563eb,#1d4ed8)">
<h3>🔵 Blue Team</h3>
<p>Défend. Détecte, contient, éradique. SOC, IR, threat hunting.</p>
</div>
<div class="team-card" style="background:linear-gradient(135deg,#a855f7,#7c3aed)">
<h3>🟣 Purple Team</h3>
<p>Red + Blue collaborent. Améliore détection en temps réel.</p>
</div>
</div>
<div class="grid g2" style="margin-top:1rem">
<div class="card">
<h4>Structure d'un SOC</h4>
<table>
<tr><th>Niveau</th><th>Rôle</th><th>Activité typique</th></tr>
<tr><td>L1 (Analyst)</td><td>Triage des alertes</td><td>Tri SIEM, escalade, faux positifs</td></tr>
<tr><td>L2 (Investigator)</td><td>Investigation approfondie</td><td>Corrélation, contextualisation, IR mineur</td></tr>
<tr><td>L3 (Threat Hunter)</td><td>Recherche proactive</td><td>Hypothesis-driven hunting, custom queries</td></tr>
<tr><td>IR Team</td><td>Incident response</td><td>Containment, eradication, forensics</td></tr>
<tr><td>Threat Intel</td><td>CTI</td><td>Suivi APT, IOCs, briefings</td></tr>
<tr><td>SOC Manager</td><td>Coordination</td><td>Reporting, métriques, amélioration</td></tr>
</table>
<div class="info-box blue" style="margin-top:.5rem;font-size:.82rem">
<strong>MSSP</strong> (Managed Security Service Provider) : SOC externalisé. <strong>MDR</strong> (Managed Detection & Response) : SOC + IR en service.
</div>
</div>
<div class="card">
<h4>Stack technique blue team</h4>
<table>
<tr><th>Catégorie</th><th>Outils</th></tr>
<tr><td><strong>SIEM</strong></td><td>Splunk, Microsoft Sentinel, QRadar, Chronicle, Elastic SIEM, Wazuh</td></tr>
<tr><td><strong>EDR/XDR</strong></td><td>CrowdStrike Falcon, Microsoft Defender, SentinelOne, Carbon Black</td></tr>
<tr><td><strong>NDR</strong></td><td>Darktrace, Vectra, ExtraHop, Corelight (Zeek)</td></tr>
<tr><td><strong>SOAR</strong></td><td>Splunk SOAR, Palo Alto XSOAR, Tines, Shuffle</td></tr>
<tr><td><strong>TIP (Threat Intel)</strong></td><td>MISP, OpenCTI, Anomali, Recorded Future</td></tr>
<tr><td><strong>Sandbox</strong></td><td>Cuckoo, ANY.RUN, Joe Sandbox, Hatching Triage</td></tr>
<tr><td><strong>Forensics</strong></td><td>Volatility, Velociraptor, KAPE, Autopsy, FTK</td></tr>
<tr><td><strong>Vuln Mgmt</strong></td><td>Tenable, Qualys, Rapid7 InsightVM</td></tr>
<tr><td><strong>Honeypots</strong></td><td>Cowrie, T-Pot, Canarytokens</td></tr>
</table>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h4>Threat Hunting — exemple Sigma rule</h4>
<div class="codeblk"><span class="c-comment"># Détection : Mimikatz LSASS dump via comsvcs.dll</span>
<span class="c-kw">title</span>: LSASS Dump via comsvcs.dll
<span class="c-kw">id</span>: 1234abcd-...
<span class="c-kw">status</span>: stable
<span class="c-kw">references</span>:
- https://attack.mitre.org/techniques/T1003/001/
<span class="c-kw">tags</span>:
- attack.credential_access
- attack.t1003.001
<span class="c-kw">logsource</span>:
<span class="c-kw">product</span>: windows
<span class="c-kw">category</span>: process_creation
<span class="c-kw">detection</span>:
<span class="c-kw">selection</span>:
<span class="c-kw">Image|endswith</span>: <span class="c-str">'\rundll32.exe'</span>
<span class="c-kw">CommandLine|contains|all</span>:
- <span class="c-str">'comsvcs.dll'</span>
- <span class="c-str">'MiniDump'</span>
<span class="c-kw">condition</span>: selection
<span class="c-kw">fields</span>:
- User
- ParentImage
- CommandLine
<span class="c-kw">level</span>: <span class="c-val">high</span></div>
</div>
</section>
<section id="ir">
<h2>Incident Response (DFIR)</h2>
<div class="grid g2">
<div class="card">
<h4>Méthodologies IR</h4>
<table>
<tr><th>Framework</th><th>Phases</th></tr>
<tr><td><strong>NIST SP 800-61</strong></td><td>Preparation → Detection & Analysis → Containment, Eradication & Recovery → Post-Incident Activity</td></tr>
<tr><td><strong>SANS PICERL</strong></td><td>Preparation, Identification, Containment, Eradication, Recovery, Lessons learned</td></tr>
<tr><td><strong>ENISA</strong></td><td>Cycle continu : Detection, Triage, Analysis, Resolution, Post-incident</td></tr>
</table>
</div>
<div class="card">
<h4>Préparation — l'étape critique</h4>
<ul style="font-size:.88rem;padding-left:1.2rem;line-height:1.9">
<li><strong>IR plan documenté</strong> + testé via tabletop exercises annuels</li>
<li><strong>Contacts</strong> : CSIRT, légal, communication, autorités (CNIL, ANSSI, FBI)</li>
<li><strong>Outils prêts</strong> : forensic kit, isolated lab, jump bag</li>
<li><strong>Inventaire</strong> à jour (CMDB, asset list)</li>
<li><strong>Logs centralisés</strong> avec rétention suffisante (90 jours minimum)</li>
<li><strong>Backups testés</strong> et immuables (3-2-1-1-0 : 3 copies, 2 supports, 1 offsite, 1 offline, 0 erreur)</li>
<li><strong>Communication crise</strong> : qui dit quoi à qui (clients, presse, régulateurs)</li>
<li><strong>Cyber-assurance</strong> avec clauses claires (hotline, IR provider, coût)</li>
</ul>
</div>
</div>
<div class="grid g2" style="margin-top:1rem">
<div class="card">
<h4>Containment — décisions critiques</h4>
<div class="info-box red">
<strong>Dilemme :</strong> contenir vite (limiter le dégât) ou observer (comprendre l'attaquant). Décision à prendre avec direction et légal.
</div>
<table style="margin-top:.4rem">
<tr><th>Stratégie</th><th>Quand</th></tr>
<tr><td>Isolation immédiate</td><td>Ransomware actif, exfil en cours</td></tr>
<tr><td>Containment progressif</td><td>APT — éviter de griller la détection</td></tr>
<tr><td>Pas de containment (deception)</td><td>Honeypot/honeynet — observer pour CTI</td></tr>
</table>
<div class="info-box orange" style="margin-top:.4rem;font-size:.82rem">
<strong>À éviter :</strong> shutdown brutal d'un serveur = perte de mémoire volatile (RAM avec process malicieux, clés crypto). Toujours <em>image RAM avant power-off</em>.
</div>
</div>
<div class="card">
<h4>Forensics — chain of custody</h4>
<p style="font-size:.88rem;margin-bottom:.5rem">Si l'incident peut donner lieu à des poursuites, la preuve doit être valable légalement.</p>
<ol style="font-size:.85rem;padding-left:1.2rem;line-height:1.9">
<li><strong>Saisie :</strong> qui, quand, où, quoi (numéros de série)</li>
<li><strong>Hashage immédiat</strong> (SHA-256) des disques/images</li>
<li><strong>Acquisition :</strong> dd, FTK Imager, Magnet AXIOM — <em>sur copie</em>, jamais sur l'original</li>
<li><strong>Stockage scellé</strong> avec témoin et signature</li>
<li><strong>Analyse sur clone</strong> uniquement</li>
<li><strong>Documentation</strong> de chaque manipulation (timestamps)</li>
<li><strong>Restitution finale</strong> avec mise sous scellés</li>
</ol>
</div>
</div>
<div class="card" style="margin-top:1rem">
<h4>Artefacts forensiques courants</h4>
<table>
<tr><th>Source</th><th>Artefacts</th><th>Outils</th></tr>
<tr><td>RAM (volatile)</td><td>Process, sockets, clés crypto, malware injecté</td><td>Volatility, MemProcFS, Rekall</td></tr>
<tr><td>Disque Windows</td><td>MFT, USNJrnl, ShimCache, Amcache, Prefetch, registry, Event Logs, browser history</td><td>KAPE, Eric Zimmerman tools, Velociraptor</td></tr>
<tr><td>Disque Linux</td><td>bash_history, auth.log, syslog, journalctl, /tmp, cron, systemd, .ssh, processus</td><td>UAC, Linux forensic scripts</td></tr>
<tr><td>Réseau</td><td>PCAP, NetFlow, DNS logs, proxy logs, firewall</td><td>Wireshark, Zeek, Suricata</td></tr>
<tr><td>Cloud</td><td>CloudTrail (AWS), Activity Log (Azure), Audit Logs (GCP), GitHub audit</td><td>SOF-ELK, CloudGrappler</td></tr>
<tr><td>Email</td><td>Headers, attachments, Microsoft 365 audit log</td><td>Hawk, Magnet AXIOM</td></tr>
</table>
</div>
<div class="card" style="margin-top:1rem">
<h4>Métriques IR clés</h4>
<div class="grid g2">
<div class="info-box"><strong>MTTD</strong> — Mean Time To Detect : combien de temps avant qu'on détecte l'incident ? (IBM 2023 : 207 jours médian)</div>
<div class="info-box blue"><strong>MTTR</strong> — Mean Time To Respond/Recover : combien de temps pour résoudre</div>
<div class="info-box green"><strong>Dwell time</strong> : temps total avec attaquant dans le SI (souvent > 100 jours pour APT)</div>
<div class="info-box red"><strong>Coût moyen d'un breach</strong> : 4,45 M$ en 2023 (IBM), 4,88 M$ en 2024</div>
</div>
</div>
</section>
<section id="quiz">
<h2>Quiz — Cyber attaque/défense</h2>
<div id="quiz-container"></div>
<div id="quiz-score"></div>
</section>
<script>
function showTab(id){document.querySelectorAll('section').forEach(s=>s.classList.remove('active'));document.querySelectorAll('.tab-btn').forEach(b=>b.classList.remove('active'));document.getElementById(id).classList.add('active');event.target.classList.add('active')}
function toggleDetail(id){document.getElementById(id)?.classList.toggle('open')}
const tacticData={
recon:{n:'TA0043 Reconnaissance',d:'Récolte d\'informations sur la cible avant l\'attaque. OSINT, scanning passif, gathering victim identity/network/host information. Exemples T1589 (gather victim identity), T1590 (network info), T1595 (active scanning).'},
resource:{n:'TA0042 Resource Development',d:'L\'attaquant construit/achète l\'infrastructure et les capacités : domaines, serveurs C2, comptes (T1585), exploits (T1588), malware. Souvent invisible pour la victime.'},
initial:{n:'TA0001 Initial Access',d:'Vecteurs d\'entrée : phishing (T1566), exploit public-facing (T1190), supply chain compromise (T1195), trusted relationship (T1199), valid accounts (T1078), removable media (T1091).'},
execution:{n:'TA0002 Execution',d:'Faire tourner du code sur la cible : PowerShell (T1059.001), command interpreter, scheduled task (T1053), WMI, native API, container administration.'},
persistence:{n:'TA0003 Persistence',d:'Garder l\'accès après reboot/reset : registry run keys (T1547.001), services (T1543), scheduled tasks, BITS jobs, web shell (T1505.003), browser extensions, image file execution options.'},
privesc:{n:'TA0004 Privilege Escalation',d:'Passer d\'un user normal à admin/SYSTEM/root : UAC bypass (T1548.002), token impersonation (T1134), exploit kernel, sudo abuse, AD escalation (Kerberoasting, NTLM relay).'},
defense:{n:'TA0005 Defense Evasion',d:'Cacher l\'activité : obfuscated files (T1027), masquerading (T1036), disable security tools (T1562), DLL side-loading (T1574.002), process injection (T1055), timestomping (T1070.006), clear logs (T1070).'},
cred:{n:'TA0006 Credential Access',d:'Voler des credentials : LSASS dump (T1003.001), Kerberoasting (T1558.003), credential stuffing, brute force, keylogger, browser stored creds, Active Directory dump (NTDS).'},
discovery:{n:'TA0007 Discovery',d:'Cartographier l\'environnement : account discovery (T1087), system network config (T1016), domain trust discovery (T1482), permission groups discovery (T1069). BloodHound est très populaire ici.'},
lateral:{n:'TA0008 Lateral Movement',d:'Bouger entre systèmes : RDP, SMB (T1021), WMI exec, PsExec, Pass-the-Hash (T1550.002), Pass-the-Ticket (T1550.003), SSH, internal spearphishing.'},
collection:{n:'TA0009 Collection',d:'Récolter les données ciblées : data from local system (T1005), email collection, screen capture, audio capture, clipboard, staged data (T1074) avant exfil.'},
c2:{n:'TA0011 Command & Control',d:'Communication avec l\'attaquant : web protocols (T1071.001), domain fronting (T1090.004), proxy (T1090), removable media (T1092), DNS tunneling, fallback channels, encrypted channels.'},
exfil:{n:'TA0010 Exfiltration',d:'Sortir les données : over C2 channel (T1041), over web service (Dropbox, Mega, Drive), over physical medium, scheduled transfer, exfiltration over alternative protocol (DNS).'},
impact:{n:'TA0040 Impact',d:'Objectif final : data encrypted for impact (ransomware T1486), data destruction/wiper (T1485), defacement (T1491), denial of service (T1499), resource hijacking (cryptomining T1496), inhibit system recovery (T1490 — delete shadow copies).'}
};
function showTactic(t){const d=tacticData[t];const p=document.getElementById('tactic-detail');p.style.display='block';p.innerHTML=`<h3>${d.n}</h3><p style="margin-top:.4rem">${d.d}</p>`}
const quizData=[
{q:"Combien d'étapes compte la Cyber Kill Chain de Lockheed Martin ?",opts:["5","7","10","14"],a:1},
{q:"Que catalogue MITRE ATT&CK ?",opts:["Les CVE","Les Tactiques, Techniques et Procédures (TTP) d'adversaires observés","Les logiciels antivirus","Les frameworks de pentest"],a:1},
{q:"Quelle différence entre IOC et IoA ?",opts:["Aucune","IOC = artefact statique (hash, IP), IoA = comportement","IOC vient des USA, IoA d'Europe","IoA est plus ancien"],a:1},
{q:"Que signifie 'living off the land' (LotL) en red team ?",opts:["Vivre à la campagne","Utiliser des outils légitimes (PowerShell, certutil, etc.) plutôt que d'apporter du malware","Faire des recons longues","Cacher les fichiers"],a:1},
{q:"Quelle méthodologie IR a comme acronyme PICERL ?",opts:["NIST","SANS","ANSSI","ENISA"],a:1},
{q:"À quoi sert MITRE D3FEND ?",opts:["Catalogue d'attaques","Catalogue des contre-mesures défensives, complément de ATT&CK","Outil de pentest","SIEM"],a:1},
{q:"Que sont les Sigma rules ?",opts:["Des règles RGPD","Des détections SIEM-agnostiques mappées sur ATT&CK","Un protocole de chiffrement","Des règles firewall"],a:1},
{q:"Quelle est la première étape de la Cyber Kill Chain ?",opts:["Exploitation","Weaponization","Reconnaissance","Delivery"],a:2},
{q:"Un IAB (Initial Access Broker) vend...",opts:["Des certificats SSL","Des accès initiaux compromis à d'autres attaquants","Des outils légitimes","Des formations"],a:1},
{q:"Avant de power-off un serveur compromis, que faut-il faire ?",opts:["Rien","Imager la RAM (mémoire volatile = preuves perdues sinon)","Reformater le disque","Changer les mots de passe"],a:1},
{q:"Que désigne le 'dwell time' en cyber ?",opts:["Temps de connexion","Temps total avec l'attaquant dans le SI avant éradication","Temps de réponse SIEM","Durée d'un pentest"],a:1},
{q:"Quel est le rôle de la Purple Team ?",opts:["Une 3e équipe d'attaque","Collaboration en temps réel entre red et blue pour améliorer la détection","Audit légal","Communication crise"],a:1},
{q:"Quelle nouvelle fonction NIST CSF 2.0 ajoute le pilier 'gouvernance' ?",opts:["IDENTIFY","GOVERN","PROTECT","DETECT"],a:1},
{q:"Quel outil est devenu un standard pour la cartographie d'attaque AD ?",opts:["Nessus","Wireshark","BloodHound","Splunk"],a:2}
];
let answers=new Array(quizData.length).fill(null);
function buildQuiz(){const c=document.getElementById('quiz-container');c.innerHTML=quizData.map((q,i)=>`<div class="quiz-q"><p>${i+1}. ${q.q}</p>${q.opts.map((o,j)=>`<div class="quiz-opt" onclick="answer(this,${i},${j})">${o}</div>`).join('')}</div>`).join('')}
function answer(el,qi,oi){const parent=el.parentElement;if(parent.querySelector('.correct,.wrong'))return;answers[qi]=oi;const correct=quizData[qi].a;parent.querySelectorAll('.quiz-opt').forEach((o,j)=>{if(j===correct)o.classList.add('correct');else if(j===oi&&oi!==correct)o.classList.add('wrong')});if(answers.every(a=>a!==null)){const score=answers.filter((a,i)=>a===quizData[i].a).length;const sc=document.getElementById('quiz-score');sc.style.display='block';sc.innerHTML=`Score : ${score}/${quizData.length} ${score>=10?'Excellent !':score>=7?'Bien !':'À revoir'}`}}
buildQuiz();
</script>
</body>
</html>