muaddib-scanner 2.4.3 → 2.4.5
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/LICENSE +20 -20
- package/README.md +15 -1
- package/iocs/builtin.yaml +131 -131
- package/iocs/hashes.yaml +214 -214
- package/iocs/packages.yaml +276 -276
- package/package.json +2 -3
- package/src/canary-tokens.js +184 -184
- package/src/ioc/bootstrap.js +181 -181
- package/src/ioc/yaml-loader.js +223 -223
- package/src/maintainer-change.js +224 -224
- package/src/output-formatter.js +192 -192
- package/src/publish-anomaly.js +206 -206
- package/src/report.js +230 -230
- package/src/sarif.js +96 -96
- package/src/scanner/ai-config.js +183 -183
- package/src/scanner/ast-detectors.js +40 -17
- package/src/scanner/ast.js +1 -0
- package/src/scanner/dataflow.js +14 -2
- package/src/scanner/dependencies.js +223 -223
- package/src/scanner/entropy.js +7 -0
- package/src/scanner/hash.js +118 -118
- package/src/scanner/npm-registry.js +128 -128
- package/src/scanner/python.js +442 -442
- package/src/scoring.js +3 -1
- package/src/shared/analyze-helper.js +49 -49
- package/src/temporal-analysis.js +260 -260
- package/src/temporal-runner.js +139 -139
- package/src/utils.js +327 -327
- package/src/watch.js +55 -55
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 MUAD'DIB Contributors
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 MUAD'DIB Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -683,6 +683,7 @@ MUAD'DIB 2.3.1 Scanner
|
|
|
683
683
|
| +-- Canary Tokens / Honey Tokens (sandbox)
|
|
684
684
|
|
|
|
685
685
|
+-- Validation & Observability (v2.1)
|
|
686
|
+
| +-- Datadog 17K Benchmark (88.2% raw, ~100% JS/Node.js adjusted)
|
|
686
687
|
| +-- Ground Truth Dataset (51 real-world attacks, 91.8% TPR)
|
|
687
688
|
| +-- Detection Time Logging (first_seen tracking, lead time metrics)
|
|
688
689
|
| +-- FP Rate Tracking (daily stats, false positive rate)
|
|
@@ -722,10 +723,21 @@ Output (CLI, JSON, HTML, SARIF, Webhook, Threat Feed)
|
|
|
722
723
|
|
|
723
724
|
| Metric | Result | Details |
|
|
724
725
|
|--------|--------|---------|
|
|
726
|
+
| **Wild TPR** (Datadog 17K) | **88.2%** raw · **~100%** adjusted | 17,922 real malware samples. 2,077 misses are all out-of-scope (see below) |
|
|
725
727
|
| **TPR** (Ground Truth) | **91.8%** (45/49) | 51 real-world attacks (49 active). 4 out-of-scope: browser-only (3) + FP-risky (1) |
|
|
726
728
|
| **FPR** (Benign, global) | **7.4%** (39/525) | 529 npm packages (525 scanned), real source code via `npm pack`, threshold > 20 |
|
|
727
729
|
| **ADR** (Adversarial + Holdout) | **98.7%** (77/78) | 38 adversarial + 40 holdout evasive samples. 1 documented miss: `require-cache-poison` (accepted trade-off) |
|
|
728
730
|
|
|
731
|
+
**Datadog 17K benchmark** — [DataDog Malicious Software Packages Dataset](https://github.com/DataDog/malicious-software-packages-dataset), 17,922 real malware samples (npm). Raw TPR: 88.2% (15,810/17,922). The 2,077 misses (score=0) were manually categorized:
|
|
732
|
+
|
|
733
|
+
| Category | Count | Reason |
|
|
734
|
+
|----------|-------|--------|
|
|
735
|
+
| Phishing pages (HTML/CSS/JS frontend) | 1,233 | No Node.js APIs (no `require`, `child_process`, `fs`, `process.env`). Fake login pages, redirects, captchas. |
|
|
736
|
+
| Native binaries (no JS files) | 824 | Platform-specific binaries (darwin-arm64, linux-x64, etc.). 201 from @42ailab alone. |
|
|
737
|
+
| Corrected libraries | 20 | Temporarily compromised then fixed. Malicious code removed before scan. |
|
|
738
|
+
|
|
739
|
+
All 2,077 misses lack Node.js malware patterns. MUAD'DIB performs AST-based Node.js static analysis — phishing HTML and native binaries are out of scope. Adjusted TPR on JS/Node.js malware: **~100%** (15,810/~15,845). See [Evaluation Methodology](docs/EVALUATION_METHODOLOGY.md#14-datadog-17k-benchmark).
|
|
740
|
+
|
|
729
741
|
**FPR by package size** — FPR correlates linearly with package size. Per-file max scoring (v2.2.11) significantly reduces FP on medium/large packages:
|
|
730
742
|
|
|
731
743
|
| Category | Packages | FP | FPR |
|
|
@@ -747,12 +759,13 @@ Output (CLI, JSON, HTML, SARIF, Webhook, Threat Feed)
|
|
|
747
759
|
| v4 | **80%** (8/10) | Deobfuscation effectiveness |
|
|
748
760
|
| v5 | 50% (5/10) | Inter-module dataflow (new scanner) |
|
|
749
761
|
|
|
762
|
+
- **Wild TPR** (Datadog Benchmark): detection rate on 17,922 real malware packages from the [DataDog Malicious Software Packages Dataset](https://github.com/DataDog/malicious-software-packages-dataset). Raw 88.2% (15,810/17,922). Adjusted ~100% on JS/Node.js malware when excluding out-of-scope samples (1,233 phishing HTML pages, 824 native binaries, 20 corrected libraries). See [Evaluation Methodology](docs/EVALUATION_METHODOLOGY.md#14-datadog-17k-benchmark).
|
|
750
763
|
- **TPR** (True Positive Rate): detection rate on 49 real-world supply-chain attacks (event-stream, ua-parser-js, coa, flatmap-stream, eslint-scope, solana-web3js, and 43 more). 4 misses are browser-only (lottie-player, polyfill-io, trojanized-jquery) or risky to fix (websocket-rat) — see [Threat Model](docs/threat-model.md).
|
|
751
764
|
- **FPR** (False Positive Rate): packages scoring > 20 out of 529 real npm packages (source code scanned, not empty dirs). The 6.2% on standard packages (<10 JS files, 290 packages) is the most representative metric for typical use — most npm packages are small.
|
|
752
765
|
- **ADR** (Adversarial Detection Rate): detection rate on 78 evasive malicious samples — 38 adversarial + 40 holdout (5 batches of 10, testing obfuscation, inter-module dataflow, etc.). 1 documented miss: `require-cache-poison` (score 10 < threshold 20, accepted trade-off from FP reduction P3).
|
|
753
766
|
- **Holdout** (pre-tuning): detection rate on 10 unseen samples with rules frozen (measures generalization)
|
|
754
767
|
|
|
755
|
-
Datasets: 529 npm + 132 PyPI benign packages, 78 adversarial/holdout samples, 51 ground-truth attacks (65 documented malware packages). **1387 tests**, 86% code coverage.
|
|
768
|
+
Datasets: 17,922 Datadog malware samples, 529 npm + 132 PyPI benign packages, 78 adversarial/holdout samples, 51 ground-truth attacks (65 documented malware packages). **1387 tests**, 86% code coverage.
|
|
756
769
|
|
|
757
770
|
See [Evaluation Methodology](docs/EVALUATION_METHODOLOGY.md) for the full experimental protocol.
|
|
758
771
|
|
|
@@ -790,6 +803,7 @@ npm test
|
|
|
790
803
|
|
|
791
804
|
- **1387 unit/integration tests** across 20 modular test files - 86% code coverage via [Codecov](https://codecov.io/gh/DNSZLSK/muad-dib)
|
|
792
805
|
- **56 fuzz tests** - Malformed YAML, invalid JSON, binary files, ReDoS, unicode, 10MB inputs
|
|
806
|
+
- **Datadog 17K benchmark** - 17,922 real malware samples, 88.2% raw TPR, ~100% on JS/Node.js malware (2,077 out-of-scope misses: phishing, binaries, corrected libs)
|
|
793
807
|
- **78 adversarial/holdout samples** - 38 adversarial + 40 holdout, 77/78 detection rate (98.7% ADR). 1 documented miss: `require-cache-poison` (accepted trade-off)
|
|
794
808
|
- **Ground truth validation** - 51 real-world attacks (45/49 detected = 91.8% TPR). 4 out-of-scope: browser-only (3) + FP-risky (1)
|
|
795
809
|
- **False positive validation** - 7.4% FPR global (39/525) on real npm source code via `npm pack`
|
package/iocs/builtin.yaml
CHANGED
|
@@ -1,132 +1,132 @@
|
|
|
1
|
-
version: "1.1.0"
|
|
2
|
-
updated: "2026-01-08"
|
|
3
|
-
|
|
4
|
-
packages:
|
|
5
|
-
# Shai-Hulud v1 (septembre 2025)
|
|
6
|
-
- name: "@ctrl/tinycolor"
|
|
7
|
-
version: "4.1.1"
|
|
8
|
-
source: shai-hulud-v1
|
|
9
|
-
- name: "ng2-file-upload"
|
|
10
|
-
version: "*"
|
|
11
|
-
source: shai-hulud-v1
|
|
12
|
-
- name: "ngx-bootstrap"
|
|
13
|
-
version: "*"
|
|
14
|
-
source: shai-hulud-v1
|
|
15
|
-
|
|
16
|
-
# Shai-Hulud v2 (novembre 2025)
|
|
17
|
-
- name: "@asyncapi/specs"
|
|
18
|
-
version: "*"
|
|
19
|
-
source: shai-hulud-v2
|
|
20
|
-
- name: "@asyncapi/openapi-schema-parser"
|
|
21
|
-
version: "*"
|
|
22
|
-
source: shai-hulud-v2
|
|
23
|
-
- name: "get-them-args"
|
|
24
|
-
version: "*"
|
|
25
|
-
source: shai-hulud-v2
|
|
26
|
-
- name: "kill-port"
|
|
27
|
-
version: "*"
|
|
28
|
-
source: shai-hulud-v2
|
|
29
|
-
- name: "shell-exec"
|
|
30
|
-
version: "*"
|
|
31
|
-
source: shai-hulud-v2
|
|
32
|
-
- name: "posthog-node"
|
|
33
|
-
version: "*"
|
|
34
|
-
source: shai-hulud-v2
|
|
35
|
-
- name: "posthog-js"
|
|
36
|
-
version: "*"
|
|
37
|
-
source: shai-hulud-v2
|
|
38
|
-
- name: "@postman/tunnel-agent"
|
|
39
|
-
version: "*"
|
|
40
|
-
source: shai-hulud-v2
|
|
41
|
-
- name: "@zapier/secret-scrubber"
|
|
42
|
-
version: "*"
|
|
43
|
-
source: shai-hulud-v2
|
|
44
|
-
|
|
45
|
-
# Shai-Hulud v3 Golden Path (28 decembre 2025)
|
|
46
|
-
- name: "@vietmoney/react-big-calendar"
|
|
47
|
-
version: "0.26.2"
|
|
48
|
-
source: shai-hulud-v3
|
|
49
|
-
description: "First confirmed v3 payload - testing phase"
|
|
50
|
-
|
|
51
|
-
# Attaques historiques
|
|
52
|
-
- name: "flatmap-stream"
|
|
53
|
-
version: "0.1.1"
|
|
54
|
-
source: event-stream-2018
|
|
55
|
-
- name: "event-stream"
|
|
56
|
-
version: "3.3.6"
|
|
57
|
-
source: event-stream-2018
|
|
58
|
-
- name: "eslint-scope"
|
|
59
|
-
version: "3.7.2"
|
|
60
|
-
source: eslint-scope-2018
|
|
61
|
-
|
|
62
|
-
# Protestware
|
|
63
|
-
- name: "node-ipc"
|
|
64
|
-
version: "10.1.1"
|
|
65
|
-
source: protestware
|
|
66
|
-
- name: "node-ipc"
|
|
67
|
-
version: "10.1.2"
|
|
68
|
-
source: protestware
|
|
69
|
-
- name: "node-ipc"
|
|
70
|
-
version: "10.1.3"
|
|
71
|
-
source: protestware
|
|
72
|
-
- name: "colors"
|
|
73
|
-
version: "1.4.1"
|
|
74
|
-
source: protestware
|
|
75
|
-
- name: "colors"
|
|
76
|
-
version: "1.4.2"
|
|
77
|
-
source: protestware
|
|
78
|
-
- name: "faker"
|
|
79
|
-
version: "6.6.6"
|
|
80
|
-
source: protestware
|
|
81
|
-
|
|
82
|
-
# Typosquats historiques confirmes
|
|
83
|
-
- name: "crossenv"
|
|
84
|
-
version: "*"
|
|
85
|
-
source: typosquat
|
|
86
|
-
- name: "cross-env.js"
|
|
87
|
-
version: "*"
|
|
88
|
-
source: typosquat
|
|
89
|
-
- name: "mongose"
|
|
90
|
-
version: "*"
|
|
91
|
-
source: typosquat
|
|
92
|
-
- name: "babelcli"
|
|
93
|
-
version: "*"
|
|
94
|
-
source: typosquat
|
|
95
|
-
|
|
96
|
-
files:
|
|
97
|
-
# Shai-Hulud v2
|
|
98
|
-
- setup_bun.js
|
|
99
|
-
- bun_environment.js
|
|
100
|
-
- node-gyp.dll
|
|
101
|
-
# Shai-Hulud v3 (nouveaux noms)
|
|
102
|
-
- bun_installer.js
|
|
103
|
-
- environment_source.js
|
|
104
|
-
- cl0vd.json
|
|
105
|
-
- pigS3cr3ts.json
|
|
106
|
-
- actionsSecrets.json
|
|
107
|
-
# Artefacts exfiltration v3
|
|
108
|
-
- 3nvir0nm3nt.json
|
|
109
|
-
- c9nt3nts.json
|
|
110
|
-
- c0nt3nts.json
|
|
111
|
-
|
|
112
|
-
hashes:
|
|
113
|
-
# Shai-Hulud v2 payloads
|
|
114
|
-
- "62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0"
|
|
115
|
-
- "cbb9bc5a8496243e02f3cc080efbe3e4a1430ba0671f2e43a202bf45b05479cd"
|
|
116
|
-
- "f099c5d9ec417d4445a0328ac0ada9cde79fc37410914103ae9c609cbc0ee068"
|
|
117
|
-
- "a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a"
|
|
118
|
-
- "4b2399646573bb737c4969563303d8ee2e9ddbd1b271f1ca9e35ea78062538db"
|
|
119
|
-
|
|
120
|
-
markers:
|
|
121
|
-
# Shai-Hulud v1/v2
|
|
122
|
-
- "Shai-Hulud"
|
|
123
|
-
- "Sha1-Hulud"
|
|
124
|
-
- "The Second Coming"
|
|
125
|
-
# Shai-Hulud v3
|
|
126
|
-
- "Goldox-T3chs"
|
|
127
|
-
- "Only Happy Girl"
|
|
128
|
-
- "SHA1HULUD"
|
|
129
|
-
# Protestware
|
|
130
|
-
- "peacenotwar"
|
|
131
|
-
# Generic malicious
|
|
1
|
+
version: "1.1.0"
|
|
2
|
+
updated: "2026-01-08"
|
|
3
|
+
|
|
4
|
+
packages:
|
|
5
|
+
# Shai-Hulud v1 (septembre 2025)
|
|
6
|
+
- name: "@ctrl/tinycolor"
|
|
7
|
+
version: "4.1.1"
|
|
8
|
+
source: shai-hulud-v1
|
|
9
|
+
- name: "ng2-file-upload"
|
|
10
|
+
version: "*"
|
|
11
|
+
source: shai-hulud-v1
|
|
12
|
+
- name: "ngx-bootstrap"
|
|
13
|
+
version: "*"
|
|
14
|
+
source: shai-hulud-v1
|
|
15
|
+
|
|
16
|
+
# Shai-Hulud v2 (novembre 2025)
|
|
17
|
+
- name: "@asyncapi/specs"
|
|
18
|
+
version: "*"
|
|
19
|
+
source: shai-hulud-v2
|
|
20
|
+
- name: "@asyncapi/openapi-schema-parser"
|
|
21
|
+
version: "*"
|
|
22
|
+
source: shai-hulud-v2
|
|
23
|
+
- name: "get-them-args"
|
|
24
|
+
version: "*"
|
|
25
|
+
source: shai-hulud-v2
|
|
26
|
+
- name: "kill-port"
|
|
27
|
+
version: "*"
|
|
28
|
+
source: shai-hulud-v2
|
|
29
|
+
- name: "shell-exec"
|
|
30
|
+
version: "*"
|
|
31
|
+
source: shai-hulud-v2
|
|
32
|
+
- name: "posthog-node"
|
|
33
|
+
version: "*"
|
|
34
|
+
source: shai-hulud-v2
|
|
35
|
+
- name: "posthog-js"
|
|
36
|
+
version: "*"
|
|
37
|
+
source: shai-hulud-v2
|
|
38
|
+
- name: "@postman/tunnel-agent"
|
|
39
|
+
version: "*"
|
|
40
|
+
source: shai-hulud-v2
|
|
41
|
+
- name: "@zapier/secret-scrubber"
|
|
42
|
+
version: "*"
|
|
43
|
+
source: shai-hulud-v2
|
|
44
|
+
|
|
45
|
+
# Shai-Hulud v3 Golden Path (28 decembre 2025)
|
|
46
|
+
- name: "@vietmoney/react-big-calendar"
|
|
47
|
+
version: "0.26.2"
|
|
48
|
+
source: shai-hulud-v3
|
|
49
|
+
description: "First confirmed v3 payload - testing phase"
|
|
50
|
+
|
|
51
|
+
# Attaques historiques
|
|
52
|
+
- name: "flatmap-stream"
|
|
53
|
+
version: "0.1.1"
|
|
54
|
+
source: event-stream-2018
|
|
55
|
+
- name: "event-stream"
|
|
56
|
+
version: "3.3.6"
|
|
57
|
+
source: event-stream-2018
|
|
58
|
+
- name: "eslint-scope"
|
|
59
|
+
version: "3.7.2"
|
|
60
|
+
source: eslint-scope-2018
|
|
61
|
+
|
|
62
|
+
# Protestware
|
|
63
|
+
- name: "node-ipc"
|
|
64
|
+
version: "10.1.1"
|
|
65
|
+
source: protestware
|
|
66
|
+
- name: "node-ipc"
|
|
67
|
+
version: "10.1.2"
|
|
68
|
+
source: protestware
|
|
69
|
+
- name: "node-ipc"
|
|
70
|
+
version: "10.1.3"
|
|
71
|
+
source: protestware
|
|
72
|
+
- name: "colors"
|
|
73
|
+
version: "1.4.1"
|
|
74
|
+
source: protestware
|
|
75
|
+
- name: "colors"
|
|
76
|
+
version: "1.4.2"
|
|
77
|
+
source: protestware
|
|
78
|
+
- name: "faker"
|
|
79
|
+
version: "6.6.6"
|
|
80
|
+
source: protestware
|
|
81
|
+
|
|
82
|
+
# Typosquats historiques confirmes
|
|
83
|
+
- name: "crossenv"
|
|
84
|
+
version: "*"
|
|
85
|
+
source: typosquat
|
|
86
|
+
- name: "cross-env.js"
|
|
87
|
+
version: "*"
|
|
88
|
+
source: typosquat
|
|
89
|
+
- name: "mongose"
|
|
90
|
+
version: "*"
|
|
91
|
+
source: typosquat
|
|
92
|
+
- name: "babelcli"
|
|
93
|
+
version: "*"
|
|
94
|
+
source: typosquat
|
|
95
|
+
|
|
96
|
+
files:
|
|
97
|
+
# Shai-Hulud v2
|
|
98
|
+
- setup_bun.js
|
|
99
|
+
- bun_environment.js
|
|
100
|
+
- node-gyp.dll
|
|
101
|
+
# Shai-Hulud v3 (nouveaux noms)
|
|
102
|
+
- bun_installer.js
|
|
103
|
+
- environment_source.js
|
|
104
|
+
- cl0vd.json
|
|
105
|
+
- pigS3cr3ts.json
|
|
106
|
+
- actionsSecrets.json
|
|
107
|
+
# Artefacts exfiltration v3
|
|
108
|
+
- 3nvir0nm3nt.json
|
|
109
|
+
- c9nt3nts.json
|
|
110
|
+
- c0nt3nts.json
|
|
111
|
+
|
|
112
|
+
hashes:
|
|
113
|
+
# Shai-Hulud v2 payloads
|
|
114
|
+
- "62ee164b9b306250c1172583f138c9614139264f889fa99614903c12755468d0"
|
|
115
|
+
- "cbb9bc5a8496243e02f3cc080efbe3e4a1430ba0671f2e43a202bf45b05479cd"
|
|
116
|
+
- "f099c5d9ec417d4445a0328ac0ada9cde79fc37410914103ae9c609cbc0ee068"
|
|
117
|
+
- "a3894003ad1d293ba96d77881ccd2071446dc3f65f434669b49b3da92421901a"
|
|
118
|
+
- "4b2399646573bb737c4969563303d8ee2e9ddbd1b271f1ca9e35ea78062538db"
|
|
119
|
+
|
|
120
|
+
markers:
|
|
121
|
+
# Shai-Hulud v1/v2
|
|
122
|
+
- "Shai-Hulud"
|
|
123
|
+
- "Sha1-Hulud"
|
|
124
|
+
- "The Second Coming"
|
|
125
|
+
# Shai-Hulud v3
|
|
126
|
+
- "Goldox-T3chs"
|
|
127
|
+
- "Only Happy Girl"
|
|
128
|
+
- "SHA1HULUD"
|
|
129
|
+
# Protestware
|
|
130
|
+
- "peacenotwar"
|
|
131
|
+
# Generic malicious
|
|
132
132
|
- "/dev/tcp"
|