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