muaddib-scanner 1.1.7 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.fr.md +383 -339
- package/README.md +383 -363
- package/bin/muaddib.js +35 -1
- package/data/iocs.json +1 -1
- package/docker/Dockerfile +19 -0
- package/docker/sandbox-runner.sh +26 -0
- package/package.json +1 -1
- package/src/sandbox.js +154 -0
package/README.fr.md
CHANGED
|
@@ -1,339 +1,383 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="MUADDIBLOGO.png" alt="MUAD'DIB Logo" width="200">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
|
-
<h1 align="center">MUAD'DIB</h1>
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
<strong>
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<img src="https://img.shields.io/npm/v/muaddib-scanner" alt="npm version">
|
|
13
|
-
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
|
|
14
|
-
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node">
|
|
15
|
-
<img src="https://img.shields.io/badge/IOCs-930%2B-red" alt="IOCs">
|
|
16
|
-
</p>
|
|
17
|
-
|
|
18
|
-
<p align="center">
|
|
19
|
-
<a href="#installation">Installation</a> |
|
|
20
|
-
<a href="#utilisation">Utilisation</a> |
|
|
21
|
-
<a href="#features">Features</a> |
|
|
22
|
-
<a href="#vs-code">VS Code</a> |
|
|
23
|
-
<a href="#
|
|
24
|
-
</p>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
MUAD'DIB
|
|
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
|
-
muaddib
|
|
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
|
-
muaddib
|
|
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
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="MUADDIBLOGO.png" alt="MUAD'DIB Logo" width="200">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">MUAD'DIB</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Détection et réponse aux menaces supply-chain npm</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<img src="https://img.shields.io/npm/v/muaddib-scanner" alt="npm version">
|
|
13
|
+
<img src="https://img.shields.io/badge/license-MIT-green" alt="License">
|
|
14
|
+
<img src="https://img.shields.io/badge/node-%3E%3D18-brightgreen" alt="Node">
|
|
15
|
+
<img src="https://img.shields.io/badge/IOCs-930%2B-red" alt="IOCs">
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<p align="center">
|
|
19
|
+
<a href="#installation">Installation</a> |
|
|
20
|
+
<a href="#utilisation">Utilisation</a> |
|
|
21
|
+
<a href="#features">Features</a> |
|
|
22
|
+
<a href="#vs-code">VS Code</a> |
|
|
23
|
+
<a href="#ci-cd">CI/CD</a>
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<a href="README.md">English version</a>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Pourquoi MUAD'DIB ?
|
|
33
|
+
|
|
34
|
+
Les attaques supply-chain npm explosent. Shai-Hulud a compromis 25K+ repos en 2025. Les outils existants détectent, mais n'aident pas à répondre.
|
|
35
|
+
|
|
36
|
+
MUAD'DIB détecte ET guide votre réponse.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Positionnement
|
|
41
|
+
|
|
42
|
+
MUAD'DIB est un outil éducatif et une première ligne de défense gratuite. Il détecte les menaces npm **connues** (930+ IOCs) et les patterns suspects basiques.
|
|
43
|
+
|
|
44
|
+
**Pour une protection enterprise**, utilisez :
|
|
45
|
+
- [Socket.dev](https://socket.dev) - Analyse comportementale ML, sandboxing cloud
|
|
46
|
+
- [Snyk](https://snyk.io) - Base de vulnérabilités massive, intégrations CI/CD
|
|
47
|
+
- [Opengrep](https://opengrep.dev) - Analyse dataflow avancée, règles Semgrep
|
|
48
|
+
|
|
49
|
+
MUAD'DIB ne remplace pas ces outils. Il les complète pour les devs qui veulent une vérification rapide et gratuite avant d'installer un package inconnu.
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## Installation
|
|
54
|
+
|
|
55
|
+
### npm (recommandé)
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g muaddib-scanner
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Depuis les sources
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
git clone https://github.com/DNSZLSK/muad-dib
|
|
65
|
+
cd muad-dib
|
|
66
|
+
npm install
|
|
67
|
+
npm link
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Utilisation
|
|
73
|
+
|
|
74
|
+
### Scan basique
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
muaddib scan .
|
|
78
|
+
muaddib scan /chemin/vers/projet
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Mode interactif
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
muaddib
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Lance un menu interactif pour vous guider à travers toutes les fonctionnalités.
|
|
88
|
+
|
|
89
|
+
### Installation sécurisée
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
muaddib install <package>
|
|
93
|
+
muaddib install lodash axios --save-dev
|
|
94
|
+
muaddib i express -g
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Scanne les packages AVANT installation. Bloque les packages malveillants connus.
|
|
98
|
+
|
|
99
|
+
### Score de risque
|
|
100
|
+
|
|
101
|
+
Chaque scan affiche un score de risque 0-100 :
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
[SCORE] 58/100 [***********---------] HIGH
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Mode explain (détails complets)
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
muaddib scan . --explain
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Affiche pour chaque détection :
|
|
114
|
+
- Rule ID
|
|
115
|
+
- Technique MITRE ATT&CK
|
|
116
|
+
- Références (articles, CVEs)
|
|
117
|
+
- Playbook de réponse
|
|
118
|
+
|
|
119
|
+
### Export
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
muaddib scan . --json > results.json # JSON
|
|
123
|
+
muaddib scan . --html rapport.html # HTML
|
|
124
|
+
muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Seuil de sévérité
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
muaddib scan . --fail-on critical # Fail seulement sur CRITICAL
|
|
131
|
+
muaddib scan . --fail-on high # Fail sur HIGH et CRITICAL (défaut)
|
|
132
|
+
muaddib scan . --fail-on medium # Fail sur MEDIUM, HIGH, CRITICAL
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Mode paranoid
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
muaddib scan . --paranoid
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Détection ultra-stricte avec moins de tolérance. Utile pour les projets critiques. Détecte tout accès réseau, exécution de sous-processus, évaluation de code dynamique et accès aux fichiers sensibles.
|
|
142
|
+
|
|
143
|
+
### Webhook Discord/Slack
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
muaddib scan . --webhook "https://discord.com/api/webhooks/..."
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
Envoie une alerte avec le score et les menaces sur Discord ou Slack.
|
|
150
|
+
|
|
151
|
+
### Surveillance temps réel
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
muaddib watch .
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Mode daemon
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
muaddib daemon
|
|
161
|
+
muaddib daemon --webhook "https://discord.com/api/webhooks/..."
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Surveille automatiquement tous les `npm install` et scanne les nouveaux packages.
|
|
165
|
+
|
|
166
|
+
### Mise à jour des IOCs
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
muaddib update
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Scraper de nouveaux IOCs
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
muaddib scrape
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Récupère les derniers packages malveillants depuis plusieurs sources de threat intelligence :
|
|
179
|
+
- Shai-Hulud 2.0 Detector (GitHub)
|
|
180
|
+
- Datadog Security Labs
|
|
181
|
+
- OSV.dev
|
|
182
|
+
- Socket.dev reports
|
|
183
|
+
- Phylum Research
|
|
184
|
+
- AlienVault OTX
|
|
185
|
+
- Aikido Intel
|
|
186
|
+
|
|
187
|
+
### Sandbox Docker
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
muaddib sandbox <nom-package>
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Analyse un package dans un container Docker isolé. Capture :
|
|
194
|
+
- Connexions réseau (détecte exfiltration vers hosts suspects)
|
|
195
|
+
- Accès fichiers (détecte vol credentials : .npmrc, .ssh, .aws, .env)
|
|
196
|
+
- Spawn de processus (détecte reverse shells, abus curl/wget)
|
|
197
|
+
|
|
198
|
+
Nécessite Docker Desktop installé.
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
muaddib sandbox lodash # Package safe
|
|
202
|
+
muaddib sandbox suspicious-pkg # Analyser un package inconnu
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Features
|
|
208
|
+
|
|
209
|
+
### Détection typosquatting
|
|
210
|
+
|
|
211
|
+
MUAD'DIB détecte les packages dont le nom ressemble à un package populaire :
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
[HIGH] Package "lodahs" ressemble à "lodash" (swapped_chars). Possible typosquatting.
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Analyse dataflow
|
|
218
|
+
|
|
219
|
+
Détecte quand du code lit des credentials ET les envoie sur le réseau :
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
[CRITICAL] Flux suspect: lecture credentials (readFileSync, GITHUB_TOKEN) + envoi réseau (fetch)
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Attaques détectées
|
|
226
|
+
|
|
227
|
+
| Campagne | Packages | Status |
|
|
228
|
+
|----------|----------|--------|
|
|
229
|
+
| Shai-Hulud v1 (Sept 2025) | @ctrl/tinycolor, ng2-file-upload | Détecté |
|
|
230
|
+
| Shai-Hulud v2 (Nov 2025) | @asyncapi/specs, posthog-node, kill-port | Détecté |
|
|
231
|
+
| Shai-Hulud v3 (Dec 2025) | @vietmoney/react-big-calendar | Détecté |
|
|
232
|
+
| event-stream (2018) | flatmap-stream, event-stream | Détecté |
|
|
233
|
+
| eslint-scope (2018) | eslint-scope | Détecté |
|
|
234
|
+
| Protestware | node-ipc, colors, faker | Détecté |
|
|
235
|
+
| Typosquats | crossenv, mongose, babelcli | Détecté |
|
|
236
|
+
|
|
237
|
+
### Techniques détectées
|
|
238
|
+
|
|
239
|
+
| Technique | MITRE | Détection |
|
|
240
|
+
|-----------|-------|-----------|
|
|
241
|
+
| Vol credentials (.npmrc, .ssh) | T1552.001 | AST |
|
|
242
|
+
| Exfiltration env vars | T1552.001 | AST |
|
|
243
|
+
| Exécution code distant | T1105 | Pattern |
|
|
244
|
+
| Reverse shell | T1059.004 | Pattern |
|
|
245
|
+
| Dead man's switch | T1485 | Pattern |
|
|
246
|
+
| Code obfusqué | T1027 | Heuristiques |
|
|
247
|
+
| Typosquatting | T1195.002 | Levenshtein |
|
|
248
|
+
| Supply chain compromise | T1195.002 | IOC matching |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## VS Code
|
|
253
|
+
|
|
254
|
+
L'extension VS Code scanne automatiquement vos projets npm.
|
|
255
|
+
|
|
256
|
+
### Installation
|
|
257
|
+
|
|
258
|
+
Cherchez "MUAD'DIB" dans les Extensions VS Code, ou :
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
code --install-extension dnszlsk.muaddib-vscode
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Commandes
|
|
265
|
+
|
|
266
|
+
- `MUAD'DIB: Scan Project` - Scanner tout le projet
|
|
267
|
+
- `MUAD'DIB: Scan Current File` - Scanner le fichier actuel
|
|
268
|
+
|
|
269
|
+
### Configuration
|
|
270
|
+
|
|
271
|
+
- `muaddib.autoScan` - Scanner automatiquement à l'ouverture (défaut: true)
|
|
272
|
+
- `muaddib.webhookUrl` - URL webhook Discord/Slack
|
|
273
|
+
- `muaddib.failLevel` - Niveau d'alerte (critical/high/medium/low)
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## CI/CD
|
|
278
|
+
|
|
279
|
+
### GitHub Actions
|
|
280
|
+
|
|
281
|
+
```yaml
|
|
282
|
+
name: Security Scan
|
|
283
|
+
|
|
284
|
+
on: [push, pull_request]
|
|
285
|
+
|
|
286
|
+
jobs:
|
|
287
|
+
scan:
|
|
288
|
+
runs-on: ubuntu-latest
|
|
289
|
+
permissions:
|
|
290
|
+
security-events: write
|
|
291
|
+
contents: read
|
|
292
|
+
steps:
|
|
293
|
+
- uses: actions/checkout@v4
|
|
294
|
+
- uses: actions/setup-node@v4
|
|
295
|
+
with:
|
|
296
|
+
node-version: '20'
|
|
297
|
+
- run: npm install -g muaddib-scanner
|
|
298
|
+
- run: muaddib scan . --sarif results.sarif
|
|
299
|
+
- uses: github/codeql-action/upload-sarif@v3
|
|
300
|
+
with:
|
|
301
|
+
sarif_file: results.sarif
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Les alertes apparaissent dans Security > Code scanning alerts.
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Architecture
|
|
309
|
+
|
|
310
|
+
```
|
|
311
|
+
MUAD'DIB Scanner
|
|
312
|
+
|
|
|
313
|
+
+-- IOC Match (930+ packages, YAML/JSON DB)
|
|
314
|
+
+-- AST Parse (acorn)
|
|
315
|
+
+-- Pattern Matching (shell, scripts)
|
|
316
|
+
+-- Typosquat Detection (Levenshtein)
|
|
317
|
+
+-- Paranoid Mode (ultra-strict)
|
|
318
|
+
+-- Docker Sandbox (behavioral analysis)
|
|
319
|
+
|
|
|
320
|
+
v
|
|
321
|
+
Dataflow Analysis (credential read -> network send)
|
|
322
|
+
|
|
|
323
|
+
v
|
|
324
|
+
Threat Enrichment (rules, MITRE ATT&CK, playbooks)
|
|
325
|
+
|
|
|
326
|
+
v
|
|
327
|
+
Output (CLI, JSON, HTML, SARIF, Webhook)
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## Contribuer
|
|
333
|
+
|
|
334
|
+
### Ajouter des IOCs
|
|
335
|
+
|
|
336
|
+
Editez les fichiers YAML dans `iocs/` :
|
|
337
|
+
|
|
338
|
+
```yaml
|
|
339
|
+
- id: NEW-MALWARE-001
|
|
340
|
+
name: "malicious-package"
|
|
341
|
+
version: "*"
|
|
342
|
+
severity: critical
|
|
343
|
+
confidence: high
|
|
344
|
+
source: community
|
|
345
|
+
description: "Description de la menace"
|
|
346
|
+
references:
|
|
347
|
+
- https://example.com/article
|
|
348
|
+
mitre: T1195.002
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
### Développer
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
git clone https://github.com/DNSZLSK/muad-dib
|
|
355
|
+
cd muad-dib
|
|
356
|
+
npm install
|
|
357
|
+
npm test
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Communauté
|
|
363
|
+
|
|
364
|
+
- Discord: https://discord.gg/y8zxSmue
|
|
365
|
+
|
|
366
|
+
---
|
|
367
|
+
|
|
368
|
+
## Documentation
|
|
369
|
+
|
|
370
|
+
- [Threat Model](docs/threat-model.md) - Ce que MUAD'DIB détecte et ne détecte pas
|
|
371
|
+
- [IOCs YAML](iocs/) - Base de données des menaces
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Licence
|
|
376
|
+
|
|
377
|
+
MIT
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
<p align="center">
|
|
382
|
+
<strong>The spice must flow. The worms must die.</strong>
|
|
383
|
+
</p>
|