muaddib-scanner 1.0.21 → 1.1.0

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 CHANGED
@@ -1,325 +1,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>Detection et reponse 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="#discord">Discord</a>
24
- </p>
25
-
26
- ---
27
-
28
- ## Pourquoi MUAD'DIB ?
29
-
30
- Les attaques supply chain npm explosent. Shai-Hulud a compromis 25K+ repos en 2025. Les outils existants detectent, mais n'aident pas a repondre.
31
-
32
- MUAD'DIB detecte ET guide votre reponse.
33
-
34
- | Feature | MUAD'DIB | Socket | Snyk | Opengrep |
35
- |---------|----------|--------|------|----------|
36
- | Detection IOC | Oui | Oui | Oui | Non |
37
- | Analyse AST | Oui | Oui | Oui | Oui |
38
- | Analyse Dataflow | Oui | Non | Non | Oui |
39
- | Detection Typosquatting | Oui | Oui | Oui | Non |
40
- | Playbooks Reponse | Oui | Non | Non | Non |
41
- | Score de Risque | Oui | Oui | Oui | Non |
42
- | SARIF / GitHub Security | Oui | Oui | Oui | Oui |
43
- | Mapping MITRE ATT&CK | Oui | Non | Non | Non |
44
- | Webhooks Discord/Slack | Oui | Non | Non | Non |
45
- | Extension VS Code | Oui | Oui | Oui | Non |
46
- | Mode Paranoid | Oui | Non | Non | Non |
47
- | Mode Daemon | Oui | Non | Non | Non |
48
- | 100% Open Source | Oui | Non | Non | Oui |
49
-
50
- ---
51
-
52
- ## Installation
53
-
54
- ### npm (recommande)
55
- ```bash
56
- npm install -g muaddib-scanner
57
- ```
58
-
59
- ### Depuis les sources
60
- ```bash
61
- git clone https://github.com/music-muse/muad-dib.git
62
- cd muad-dib
63
- npm install
64
- npm link
65
- ```
66
-
67
- ---
68
-
69
- ## Utilisation
70
-
71
- ### Scan basique
72
- ```bash
73
- muaddib scan .
74
- muaddib scan /chemin/vers/projet
75
- ```
76
-
77
- ### Score de risque
78
-
79
- Chaque scan affiche un score de risque 0-100 :
80
- ```
81
- [SCORE] 58/100 [***********---------] HIGH
82
- ```
83
-
84
- ### Mode explain (details complets)
85
- ```bash
86
- muaddib scan . --explain
87
- ```
88
-
89
- Affiche pour chaque detection :
90
- - Rule ID
91
- - Technique MITRE ATT&CK
92
- - References (articles, CVEs)
93
- - Playbook de reponse
94
-
95
- ### Export
96
- ```bash
97
- muaddib scan . --json > results.json # JSON
98
- muaddib scan . --html rapport.html # HTML
99
- muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
100
- ```
101
-
102
- ### Seuil de severite
103
- ```bash
104
- muaddib scan . --fail-on critical # Fail seulement sur CRITICAL
105
- muaddib scan . --fail-on high # Fail sur HIGH et CRITICAL (defaut)
106
- muaddib scan . --fail-on medium # Fail sur MEDIUM, HIGH, CRITICAL
107
- ```
108
-
109
- ### Mode paranoid
110
- ```bash
111
- muaddib scan . --paranoid
112
- ```
113
-
114
- Detection ultra-stricte avec moins de tolerance. Utile pour les projets critiques. Detecte tout acces reseau, execution de sous-processus, evaluation de code dynamique et acces aux fichiers sensibles.
115
-
116
- ### Webhook Discord/Slack
117
- ```bash
118
- muaddib scan . --webhook "https://discord.com/api/webhooks/..."
119
- ```
120
-
121
- Envoie une alerte avec le score et les menaces sur Discord ou Slack.
122
-
123
- ### Surveillance temps reel
124
- ```bash
125
- muaddib watch .
126
- ```
127
-
128
- ### Mode daemon
129
- ```bash
130
- muaddib daemon
131
- muaddib daemon --webhook "https://discord.com/api/webhooks/..."
132
- ```
133
-
134
- Surveille automatiquement tous les `npm install` et scanne les nouveaux packages.
135
-
136
- ### Mise a jour des IOCs
137
- ```bash
138
- muaddib update
139
- ```
140
-
141
- ### Scraper de nouveaux IOCs
142
- ```bash
143
- muaddib scrape
144
- ```
145
-
146
- Recupere les derniers packages malveillants depuis plusieurs sources de threat intelligence :
147
- - Shai-Hulud 2.0 Detector (GitHub)
148
- - Datadog Security Labs
149
- - OSV.dev
150
- - Socket.dev reports
151
- - Phylum Research
152
- - AlienVault OTX
153
- - Aikido Intel
154
-
155
- ---
156
-
157
- ## Features
158
-
159
- ### Detection typosquatting
160
-
161
- MUAD'DIB detecte les packages dont le nom ressemble a un package populaire :
162
- ```
163
- [HIGH] Package "lodahs" ressemble a "lodash" (swapped_chars). Possible typosquatting.
164
- ```
165
-
166
- ### Analyse dataflow
167
-
168
- Detecte quand du code lit des credentials ET les envoie sur le reseau :
169
- ```
170
- [CRITICAL] Flux suspect: lecture credentials (readFileSync, GITHUB_TOKEN) + envoi reseau (fetch)
171
- ```
172
-
173
- ### Attaques detectees
174
-
175
- | Campagne | Packages | Status |
176
- |----------|----------|--------|
177
- | Shai-Hulud v1 (Sept 2025) | @ctrl/tinycolor, ng2-file-upload | Detecte |
178
- | Shai-Hulud v2 (Nov 2025) | @asyncapi/specs, posthog-node, kill-port | Detecte |
179
- | Shai-Hulud v3 (Dec 2025) | @vietmoney/react-big-calendar | Detecte |
180
- | event-stream (2018) | flatmap-stream, event-stream | Detecte |
181
- | eslint-scope (2018) | eslint-scope | Detecte |
182
- | Protestware | node-ipc, colors, faker | Detecte |
183
- | Typosquats | crossenv, mongose, babelcli | Detecte |
184
-
185
- ### Techniques detectees
186
-
187
- | Technique | MITRE | Detection |
188
- |-----------|-------|-----------|
189
- | Vol credentials (.npmrc, .ssh) | T1552.001 | AST |
190
- | Exfiltration env vars | T1552.001 | AST |
191
- | Execution code distant | T1105 | Pattern |
192
- | Reverse shell | T1059.004 | Pattern |
193
- | Dead man's switch | T1485 | Pattern |
194
- | Code obfusque | T1027 | Heuristiques |
195
- | Typosquatting | T1195.002 | Levenshtein |
196
- | Supply chain compromise | T1195.002 | IOC matching |
197
-
198
- ---
199
-
200
- ## VS Code
201
-
202
- L'extension VS Code scanne automatiquement vos projets npm.
203
-
204
- ### Installation
205
-
206
- Cherchez "MUAD'DIB" dans les Extensions VS Code, ou :
207
-
208
- ```bash
209
- ext install music-music.muaddib-security
210
- ```
211
-
212
- ### Commandes
213
-
214
- - `MUAD'DIB: Scan Project` - Scanner tout le projet
215
- - `MUAD'DIB: Scan Current File` - Scanner le fichier actuel
216
-
217
- ### Configuration
218
-
219
- - `muaddib.autoScan` - Scanner automatiquement a l'ouverture (defaut: true)
220
- - `muaddib.webhookUrl` - URL webhook Discord/Slack
221
- - `muaddib.failLevel` - Niveau d'alerte (critical/high/medium/low)
222
-
223
- ---
224
-
225
- ## Integration CI/CD
226
-
227
- ### GitHub Actions
228
- ```yaml
229
- name: Security Scan
230
-
231
- on: [push, pull_request]
232
-
233
- jobs:
234
- scan:
235
- runs-on: ubuntu-latest
236
- permissions:
237
- security-events: write
238
- contents: read
239
- steps:
240
- - uses: actions/checkout@v4
241
- - uses: actions/setup-node@v4
242
- with:
243
- node-version: '20'
244
- - run: npm install -g muaddib-scanner
245
- - run: muaddib scan . --sarif results.sarif
246
- - uses: github/codeql-action/upload-sarif@v3
247
- with:
248
- sarif_file: results.sarif
249
- ```
250
-
251
- Les alertes apparaissent dans Security > Code scanning alerts.
252
-
253
- ---
254
-
255
- ## Architecture
256
- ```
257
- MUAD'DIB Scanner
258
- |
259
- +-- IOC Match (930+ packages, YAML/JSON DB)
260
- +-- AST Parse (acorn)
261
- +-- Pattern Matching (shell, scripts)
262
- +-- Typosquat Detection (Levenshtein)
263
- +-- Paranoid Mode (ultra-strict)
264
- |
265
- v
266
- Dataflow Analysis (credential read -> network send)
267
- |
268
- v
269
- Threat Enrichment (rules, MITRE ATT&CK, playbooks)
270
- |
271
- v
272
- Output (CLI, JSON, HTML, SARIF, Webhook)
273
- ```
274
-
275
- ---
276
-
277
- ## Contribuer
278
-
279
- ### Ajouter des IOCs
280
-
281
- Editez les fichiers YAML dans `iocs/` :
282
- ```yaml
283
- - id: NEW-MALWARE-001
284
- name: "malicious-package"
285
- version: "*"
286
- severity: critical
287
- confidence: high
288
- source: community
289
- description: "Description de la menace"
290
- references:
291
- - https://example.com/article
292
- mitre: T1195.002
293
- ```
294
-
295
- ### Developper
296
- ```bash
297
- git clone https://github.com/music-muse/muad-dib.git
298
- cd muad-dib
299
- npm install
300
- npm test
301
- ```
302
-
303
- ## Communaute
304
-
305
- - Discord: https://discord.gg/y8zxSmue
306
- - Issues: https://github.com/music-muse/muad-dib/issues
307
-
308
- ---
309
-
310
- ## Documentation
311
-
312
- - [Threat Model](docs/threat-model.md) - Ce que MUAD'DIB detecte et ne detecte pas
313
- - [IOCs YAML](iocs/) - Base de donnees des menaces
314
-
315
- ---
316
-
317
- ## Licence
318
-
319
- MIT
320
-
321
- ---
322
-
323
- <p align="center">
324
- <strong>The spice must flow. The worms must die.</strong>
325
- </p>
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>Detection et reponse 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="#discord">Discord</a>
24
+ </p>
25
+
26
+ ---
27
+
28
+ ## Pourquoi MUAD'DIB ?
29
+
30
+ Les attaques supply chain npm explosent. Shai-Hulud a compromis 25K+ repos en 2025. Les outils existants detectent, mais n'aident pas a repondre.
31
+
32
+ MUAD'DIB detecte ET guide votre reponse.
33
+
34
+ | Feature | MUAD'DIB | Socket | Snyk | Opengrep |
35
+ |---------|----------|--------|------|----------|
36
+ | Detection IOC | Oui | Oui | Oui | Non |
37
+ | Analyse AST | Oui | Oui | Oui | Oui |
38
+ | Analyse Dataflow | Oui | Non | Non | Oui |
39
+ | Detection Typosquatting | Oui | Oui | Oui | Non |
40
+ | Playbooks Reponse | Oui | Non | Non | Non |
41
+ | Score de Risque | Oui | Oui | Oui | Non |
42
+ | SARIF / GitHub Security | Oui | Oui | Oui | Oui |
43
+ | Mapping MITRE ATT&CK | Oui | Non | Non | Non |
44
+ | Webhooks Discord/Slack | Oui | Non | Non | Non |
45
+ | Extension VS Code | Oui | Oui | Oui | Non |
46
+ | Mode Paranoid | Oui | Non | Non | Non |
47
+ | Mode Daemon | Oui | Non | Non | Non |
48
+ | 100% Open Source | Oui | Non | Non | Oui |
49
+
50
+ ---
51
+
52
+ ### Installation
53
+
54
+ Cherchez "MUAD'DIB" dans les Extensions VS Code, ou :
55
+ ```bash
56
+ marketplace.visualstudio.com/items?itemName=dnszlsk.muaddib-vscode
57
+ ```
58
+
59
+ ### Depuis les sources
60
+ ```bash
61
+ git clone https://github.com/DNSZLSK/muad-dib
62
+ cd muad-dib
63
+ npm install
64
+ npm link
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Utilisation
70
+
71
+ ### Scan basique
72
+ ```bash
73
+ muaddib scan .
74
+ muaddib scan /chemin/vers/projet
75
+ ```
76
+ ### Mode interactif
77
+ ```bash
78
+ muaddib
79
+ ```
80
+
81
+ Lance un menu interactif pour vous guider a travers toutes les fonctionnalites.
82
+
83
+ ### Installation securisee
84
+ ```bash
85
+ muaddib install <package>
86
+ muaddib install lodash axios --save-dev
87
+ muaddib i express -g
88
+ ```
89
+
90
+ Scanne les packages AVANT installation. Bloque les packages malveillants connus.
91
+
92
+ ### Score de risque
93
+
94
+ Chaque scan affiche un score de risque 0-100 :
95
+ ```
96
+ [SCORE] 58/100 [***********---------] HIGH
97
+ ```
98
+
99
+ ### Mode explain (details complets)
100
+ ```bash
101
+ muaddib scan . --explain
102
+ ```
103
+
104
+ Affiche pour chaque detection :
105
+ - Rule ID
106
+ - Technique MITRE ATT&CK
107
+ - References (articles, CVEs)
108
+ - Playbook de reponse
109
+
110
+ ### Export
111
+ ```bash
112
+ muaddib scan . --json > results.json # JSON
113
+ muaddib scan . --html rapport.html # HTML
114
+ muaddib scan . --sarif results.sarif # SARIF (GitHub Security)
115
+ ```
116
+
117
+ ### Seuil de severite
118
+ ```bash
119
+ muaddib scan . --fail-on critical # Fail seulement sur CRITICAL
120
+ muaddib scan . --fail-on high # Fail sur HIGH et CRITICAL (defaut)
121
+ muaddib scan . --fail-on medium # Fail sur MEDIUM, HIGH, CRITICAL
122
+ ```
123
+
124
+ ### Mode paranoid
125
+ ```bash
126
+ muaddib scan . --paranoid
127
+ ```
128
+
129
+ Detection ultra-stricte avec moins de tolerance. Utile pour les projets critiques. Detecte tout acces reseau, execution de sous-processus, evaluation de code dynamique et acces aux fichiers sensibles.
130
+
131
+ ### Webhook Discord/Slack
132
+ ```bash
133
+ muaddib scan . --webhook "https://discord.com/api/webhooks/..."
134
+ ```
135
+
136
+ Envoie une alerte avec le score et les menaces sur Discord ou Slack.
137
+
138
+ ### Surveillance temps reel
139
+ ```bash
140
+ muaddib watch .
141
+ ```
142
+
143
+ ### Mode daemon
144
+ ```bash
145
+ muaddib daemon
146
+ muaddib daemon --webhook "https://discord.com/api/webhooks/..."
147
+ ```
148
+
149
+ Surveille automatiquement tous les `npm install` et scanne les nouveaux packages.
150
+
151
+ ### Mise a jour des IOCs
152
+ ```bash
153
+ muaddib update
154
+ ```
155
+
156
+ ### Scraper de nouveaux IOCs
157
+ ```bash
158
+ muaddib scrape
159
+ ```
160
+
161
+ Recupere les derniers packages malveillants depuis plusieurs sources de threat intelligence :
162
+ - Shai-Hulud 2.0 Detector (GitHub)
163
+ - Datadog Security Labs
164
+ - OSV.dev
165
+ - Socket.dev reports
166
+ - Phylum Research
167
+ - AlienVault OTX
168
+ - Aikido Intel
169
+
170
+ ---
171
+
172
+ ## Features
173
+
174
+ ### Detection typosquatting
175
+
176
+ MUAD'DIB detecte les packages dont le nom ressemble a un package populaire :
177
+ ```
178
+ [HIGH] Package "lodahs" ressemble a "lodash" (swapped_chars). Possible typosquatting.
179
+ ```
180
+
181
+ ### Analyse dataflow
182
+
183
+ Detecte quand du code lit des credentials ET les envoie sur le reseau :
184
+ ```
185
+ [CRITICAL] Flux suspect: lecture credentials (readFileSync, GITHUB_TOKEN) + envoi reseau (fetch)
186
+ ```
187
+
188
+ ### Attaques detectees
189
+
190
+ | Campagne | Packages | Status |
191
+ |----------|----------|--------|
192
+ | Shai-Hulud v1 (Sept 2025) | @ctrl/tinycolor, ng2-file-upload | Detecte |
193
+ | Shai-Hulud v2 (Nov 2025) | @asyncapi/specs, posthog-node, kill-port | Detecte |
194
+ | Shai-Hulud v3 (Dec 2025) | @vietmoney/react-big-calendar | Detecte |
195
+ | event-stream (2018) | flatmap-stream, event-stream | Detecte |
196
+ | eslint-scope (2018) | eslint-scope | Detecte |
197
+ | Protestware | node-ipc, colors, faker | Detecte |
198
+ | Typosquats | crossenv, mongose, babelcli | Detecte |
199
+
200
+ ### Techniques detectees
201
+
202
+ | Technique | MITRE | Detection |
203
+ |-----------|-------|-----------|
204
+ | Vol credentials (.npmrc, .ssh) | T1552.001 | AST |
205
+ | Exfiltration env vars | T1552.001 | AST |
206
+ | Execution code distant | T1105 | Pattern |
207
+ | Reverse shell | T1059.004 | Pattern |
208
+ | Dead man's switch | T1485 | Pattern |
209
+ | Code obfusque | T1027 | Heuristiques |
210
+ | Typosquatting | T1195.002 | Levenshtein |
211
+ | Supply chain compromise | T1195.002 | IOC matching |
212
+
213
+ ---
214
+
215
+ ## VS Code
216
+
217
+ L'extension VS Code scanne automatiquement vos projets npm.
218
+
219
+ ### Installation
220
+
221
+ Cherchez "MUAD'DIB" dans les Extensions VS Code, ou :
222
+
223
+ ```bash
224
+
225
+ ```
226
+
227
+ ### Commandes
228
+
229
+ - `MUAD'DIB: Scan Project` - Scanner tout le projet
230
+ - `MUAD'DIB: Scan Current File` - Scanner le fichier actuel
231
+
232
+ ### Configuration
233
+
234
+ - `muaddib.autoScan` - Scanner automatiquement a l'ouverture (defaut: true)
235
+ - `muaddib.webhookUrl` - URL webhook Discord/Slack
236
+ - `muaddib.failLevel` - Niveau d'alerte (critical/high/medium/low)
237
+
238
+ ---
239
+
240
+ ## Integration CI/CD
241
+
242
+ ### GitHub Actions
243
+ ```yaml
244
+ name: Security Scan
245
+
246
+ on: [push, pull_request]
247
+
248
+ jobs:
249
+ scan:
250
+ runs-on: ubuntu-latest
251
+ permissions:
252
+ security-events: write
253
+ contents: read
254
+ steps:
255
+ - uses: actions/checkout@v4
256
+ - uses: actions/setup-node@v4
257
+ with:
258
+ node-version: '20'
259
+ - run: npm install -g muaddib-scanner
260
+ - run: muaddib scan . --sarif results.sarif
261
+ - uses: github/codeql-action/upload-sarif@v3
262
+ with:
263
+ sarif_file: results.sarif
264
+ ```
265
+
266
+ Les alertes apparaissent dans Security > Code scanning alerts.
267
+
268
+ ---
269
+
270
+ ## Architecture
271
+ ```
272
+ MUAD'DIB Scanner
273
+ |
274
+ +-- IOC Match (930+ packages, YAML/JSON DB)
275
+ +-- AST Parse (acorn)
276
+ +-- Pattern Matching (shell, scripts)
277
+ +-- Typosquat Detection (Levenshtein)
278
+ +-- Paranoid Mode (ultra-strict)
279
+ |
280
+ v
281
+ Dataflow Analysis (credential read -> network send)
282
+ |
283
+ v
284
+ Threat Enrichment (rules, MITRE ATT&CK, playbooks)
285
+ |
286
+ v
287
+ Output (CLI, JSON, HTML, SARIF, Webhook)
288
+ ```
289
+
290
+ ---
291
+
292
+ ## Contribuer
293
+
294
+ ### Ajouter des IOCs
295
+
296
+ Editez les fichiers YAML dans `iocs/` :
297
+ ```yaml
298
+ - id: NEW-MALWARE-001
299
+ name: "malicious-package"
300
+ version: "*"
301
+ severity: critical
302
+ confidence: high
303
+ source: community
304
+ description: "Description de la menace"
305
+ references:
306
+ - https://example.com/article
307
+ mitre: T1195.002
308
+ ```
309
+
310
+ ### Developper
311
+ ```bash
312
+ git clone https://github.com/DNSZLSK/muad-dib
313
+ cd muad-dib
314
+ npm install
315
+ npm test
316
+ ```
317
+
318
+ ## Communaute
319
+
320
+ - Discord: https://discord.gg/y8zxSmue
321
+
322
+ ---
323
+
324
+ ## Documentation
325
+
326
+ - [Threat Model](docs/threat-model.md) - Ce que MUAD'DIB detecte et ne detecte pas
327
+ - [IOCs YAML](iocs/) - Base de donnees des menaces
328
+
329
+ ---
330
+
331
+ ## Licence
332
+
333
+ MIT
334
+
335
+ ---
336
+
337
+ <p align="center">
338
+ <strong>The spice must flow. The worms must die.</strong>
339
+ </p>