supply-chain-guard 5.15.0 → 5.16.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.md +2 -1
- package/dist/cli.js +1 -1
- package/dist/npm-scanner.d.ts +29 -0
- package/dist/npm-scanner.d.ts.map +1 -1
- package/dist/npm-scanner.js +187 -0
- package/dist/npm-scanner.js.map +1 -1
- package/dist/reporter.js +5 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -60,6 +60,7 @@ For a deep dive into how GlassWorm infiltrates the software supply chain and the
|
|
|
60
60
|
- Install hook deep analysis (secret harvesting, download-exec chains, binary blobs)
|
|
61
61
|
- Levenshtein-based typosquatting detection against top 100 npm packages with known-safe whitelist
|
|
62
62
|
- Dependency confusion and namespace squatting
|
|
63
|
+
- Starjacking: in `npm <pkg>` mode, corroborates a package's claimed `repository` against the repo's own `package.json` and flags a repo borrowed from an unrelated popular project to inherit its stars/trust (conservative: monorepos, forks, related names, and unfetchable repos are not flagged)
|
|
63
64
|
- Known-bad version blocklist (axios, ua-parser-js, coa, rc, event-stream, node-ipc, colors, faker)
|
|
64
65
|
- Publishing anomaly detection (maintainer changes, version gaps, script additions)
|
|
65
66
|
|
|
@@ -124,7 +125,7 @@ Run the scanner as a [pre-commit](https://pre-commit.com) hook (Python-ecosystem
|
|
|
124
125
|
```yaml
|
|
125
126
|
repos:
|
|
126
127
|
- repo: https://github.com/homeofe/supply-chain-guard
|
|
127
|
-
rev: v5.
|
|
128
|
+
rev: v5.16.0
|
|
128
129
|
hooks:
|
|
129
130
|
- id: supply-chain-guard
|
|
130
131
|
```
|
package/dist/cli.js
CHANGED
|
@@ -20,7 +20,7 @@ const program = new commander_1.Command();
|
|
|
20
20
|
program
|
|
21
21
|
.name("supply-chain-guard")
|
|
22
22
|
.description("Open-source supply-chain security scanner. Detects GlassWorm and similar malware campaigns in npm packages, PyPI packages, code repos, VS Code extensions, and project dependencies.")
|
|
23
|
-
.version("5.
|
|
23
|
+
.version("5.16.0");
|
|
24
24
|
// ── scan command ────────────────────────────────────────────────────
|
|
25
25
|
program
|
|
26
26
|
.command("scan")
|
package/dist/npm-scanner.d.ts
CHANGED
|
@@ -11,6 +11,35 @@ import type { Finding, ScanReport, ScanOptions } from "./types.js";
|
|
|
11
11
|
export declare function scanNpmPackage(packageName: string, options: Omit<ScanOptions, "target"> & {
|
|
12
12
|
target?: string;
|
|
13
13
|
}): Promise<ScanReport>;
|
|
14
|
+
/**
|
|
15
|
+
* Normalize the many shapes of a package.json `repository` field to a GitHub
|
|
16
|
+
* owner/repo (+ monorepo subdirectory), or null when it is not a GitHub repo.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseRepositoryField(repository: unknown): {
|
|
19
|
+
owner: string;
|
|
20
|
+
repo: string;
|
|
21
|
+
directory?: string;
|
|
22
|
+
} | null;
|
|
23
|
+
/**
|
|
24
|
+
* Corroborate a package's claimed source repository (starjacking detection).
|
|
25
|
+
*
|
|
26
|
+
* A malicious package can set `repository` to a popular project's URL to inherit
|
|
27
|
+
* its trust score and stars. We fetch the claimed repo's root package.json and
|
|
28
|
+
* flag ONLY the high-confidence borrowed-trust case: the repo publishes a
|
|
29
|
+
* DIFFERENT, unrelated package and is not a monorepo containing this one.
|
|
30
|
+
*
|
|
31
|
+
* Deliberately conservative (best-effort, medium severity) - every ambiguous or
|
|
32
|
+
* benign case is left unflagged:
|
|
33
|
+
* - no repository field, or a non-GitHub host -> skip
|
|
34
|
+
* - repository.directory set (a monorepo subdirectory) -> skip (legit)
|
|
35
|
+
* - the repo declares `workspaces` (a monorepo) -> skip (legit)
|
|
36
|
+
* - the repo could not be fetched (404/private/network) -> skip
|
|
37
|
+
* - the repo's package.json name equals this package -> skip (corroborated)
|
|
38
|
+
* - the names share a significant token (same project) -> skip
|
|
39
|
+
*/
|
|
40
|
+
export declare function checkRepositoryClaim(packageName: string, versionData: {
|
|
41
|
+
repository?: unknown;
|
|
42
|
+
}, findings: Finding[]): Promise<void>;
|
|
14
43
|
/**
|
|
15
44
|
* Scan the extracted tarball contents for malicious patterns.
|
|
16
45
|
* Exported for tests (the download path needs network; this walker does not).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-scanner.d.ts","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-scanner.d.ts","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA8BnF;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,UAAU,CAAC,CA2ErB;AAqHD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqB5D;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf;AAqED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EAAE,GAClB,IAAI,CA0CN"}
|
package/dist/npm-scanner.js
CHANGED
|
@@ -40,6 +40,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
})();
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.scanNpmPackage = scanNpmPackage;
|
|
43
|
+
exports.parseRepositoryField = parseRepositoryField;
|
|
44
|
+
exports.checkRepositoryClaim = checkRepositoryClaim;
|
|
43
45
|
exports.scanExtractedNpmFiles = scanExtractedNpmFiles;
|
|
44
46
|
const fs = __importStar(require("node:fs"));
|
|
45
47
|
const os = __importStar(require("node:os"));
|
|
@@ -48,6 +50,7 @@ const https = __importStar(require("node:https"));
|
|
|
48
50
|
const types_js_1 = require("./types.js");
|
|
49
51
|
const archive_extractor_js_1 = require("./archive-extractor.js");
|
|
50
52
|
const patterns_js_1 = require("./patterns.js");
|
|
53
|
+
const github_trust_scanner_js_1 = require("./github-trust-scanner.js");
|
|
51
54
|
const TOOL_VERSION = "1.0.0";
|
|
52
55
|
const NPM_REGISTRY = "https://registry.npmjs.org";
|
|
53
56
|
/**
|
|
@@ -72,6 +75,10 @@ async function scanNpmPackage(packageName, options) {
|
|
|
72
75
|
checkPackageScripts(versionData, findings);
|
|
73
76
|
// Check dependencies against known malicious packages
|
|
74
77
|
checkDependencies(versionData, findings);
|
|
78
|
+
// Corroborate the claimed source repository (starjacking): a package that
|
|
79
|
+
// points its `repository` at a popular project it does not own inherits that
|
|
80
|
+
// project's trust/stars. Network-requiring, so best-effort; never throws.
|
|
81
|
+
await checkRepositoryClaim(packageName, versionData, findings);
|
|
75
82
|
// Download and scan tarball
|
|
76
83
|
const tarballUrl = versionData.dist?.tarball;
|
|
77
84
|
if (tarballUrl) {
|
|
@@ -185,6 +192,186 @@ function checkDependencies(pkg, findings) {
|
|
|
185
192
|
}
|
|
186
193
|
}
|
|
187
194
|
}
|
|
195
|
+
// ---------------------------------------------------------------------------
|
|
196
|
+
// Repository-claim corroboration (starjacking) - v5.16.0
|
|
197
|
+
// ---------------------------------------------------------------------------
|
|
198
|
+
/** Tokens too generic to prove two package names refer to the same project. */
|
|
199
|
+
const GENERIC_NAME_TOKENS = new Set([
|
|
200
|
+
"js", "ts", "lib", "libs", "core", "sdk", "api", "utils", "util", "common",
|
|
201
|
+
"node", "cli", "app", "client", "server", "plugin", "tool", "tools", "kit",
|
|
202
|
+
"pkg", "package", "module", "src", "www", "web", "main", "index", "project",
|
|
203
|
+
]);
|
|
204
|
+
/** Split a package name into significant lowercase tokens (scope stripped). */
|
|
205
|
+
function significantTokens(name) {
|
|
206
|
+
const unscoped = name.replace(/^@[^/]+\//, "");
|
|
207
|
+
return new Set(unscoped
|
|
208
|
+
.toLowerCase()
|
|
209
|
+
.split(/[-_./@]+/)
|
|
210
|
+
.filter((t) => t.length >= 3 && !GENERIC_NAME_TOKENS.has(t)));
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Two package names are "related" (likely the same project) if they share any
|
|
214
|
+
* significant token, so `cool-lib` published from the `cool-project` repo is
|
|
215
|
+
* not flagged. Purely a false-positive guard.
|
|
216
|
+
*/
|
|
217
|
+
function namesAreRelated(a, b) {
|
|
218
|
+
const ta = significantTokens(a);
|
|
219
|
+
for (const t of significantTokens(b))
|
|
220
|
+
if (ta.has(t))
|
|
221
|
+
return true;
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Normalize the many shapes of a package.json `repository` field to a GitHub
|
|
226
|
+
* owner/repo (+ monorepo subdirectory), or null when it is not a GitHub repo.
|
|
227
|
+
*/
|
|
228
|
+
function parseRepositoryField(repository) {
|
|
229
|
+
let url;
|
|
230
|
+
let directory;
|
|
231
|
+
if (typeof repository === "string") {
|
|
232
|
+
url = repository;
|
|
233
|
+
}
|
|
234
|
+
else if (repository && typeof repository === "object") {
|
|
235
|
+
const r = repository;
|
|
236
|
+
if (typeof r.url === "string")
|
|
237
|
+
url = r.url;
|
|
238
|
+
if (typeof r.directory === "string")
|
|
239
|
+
directory = r.directory;
|
|
240
|
+
}
|
|
241
|
+
if (!url)
|
|
242
|
+
return null;
|
|
243
|
+
// Shorthand forms: "github:owner/repo", "owner/repo".
|
|
244
|
+
const shorthand = url.match(/^(?:github:)?([a-zA-Z0-9_.-]+)\/([a-zA-Z0-9_.-]+)$/);
|
|
245
|
+
if (shorthand && !url.includes("://") && !url.includes("github.com")) {
|
|
246
|
+
const parsed = (0, github_trust_scanner_js_1.parseGitHubUrl)(`github.com/${shorthand[1]}/${shorthand[2]}`);
|
|
247
|
+
return parsed ? { ...parsed, directory } : null;
|
|
248
|
+
}
|
|
249
|
+
const parsed = (0, github_trust_scanner_js_1.parseGitHubUrl)(url);
|
|
250
|
+
return parsed ? { ...parsed, directory } : null;
|
|
251
|
+
}
|
|
252
|
+
/** GET a URL over HTTPS, resolving null on any non-200 / error (never throws). */
|
|
253
|
+
function httpsGetTextOrNull(url) {
|
|
254
|
+
return new Promise((resolve) => {
|
|
255
|
+
let settled = false;
|
|
256
|
+
const done = (v) => {
|
|
257
|
+
if (!settled) {
|
|
258
|
+
settled = true;
|
|
259
|
+
resolve(v);
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
try {
|
|
263
|
+
const req = https.get(url, { headers: { Accept: "application/json", "User-Agent": "supply-chain-guard" } }, (res) => {
|
|
264
|
+
if (res.statusCode !== 200) {
|
|
265
|
+
res.resume?.();
|
|
266
|
+
done(null);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
let data = "";
|
|
270
|
+
let size = 0;
|
|
271
|
+
res.on("data", (chunk) => {
|
|
272
|
+
size += chunk.length;
|
|
273
|
+
if (size > patterns_js_1.MAX_FILE_SIZE) {
|
|
274
|
+
done(null);
|
|
275
|
+
req.destroy?.();
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
data += chunk.toString();
|
|
279
|
+
});
|
|
280
|
+
res.on("end", () => done(data));
|
|
281
|
+
res.on("error", () => done(null));
|
|
282
|
+
});
|
|
283
|
+
// Bound the wait so a hung/slow host cannot stall the whole npm scan.
|
|
284
|
+
req.setTimeout?.(10_000, () => { done(null); req.destroy?.(); });
|
|
285
|
+
req.on("error", () => done(null));
|
|
286
|
+
}
|
|
287
|
+
catch {
|
|
288
|
+
done(null);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Corroborate a package's claimed source repository (starjacking detection).
|
|
294
|
+
*
|
|
295
|
+
* A malicious package can set `repository` to a popular project's URL to inherit
|
|
296
|
+
* its trust score and stars. We fetch the claimed repo's root package.json and
|
|
297
|
+
* flag ONLY the high-confidence borrowed-trust case: the repo publishes a
|
|
298
|
+
* DIFFERENT, unrelated package and is not a monorepo containing this one.
|
|
299
|
+
*
|
|
300
|
+
* Deliberately conservative (best-effort, medium severity) - every ambiguous or
|
|
301
|
+
* benign case is left unflagged:
|
|
302
|
+
* - no repository field, or a non-GitHub host -> skip
|
|
303
|
+
* - repository.directory set (a monorepo subdirectory) -> skip (legit)
|
|
304
|
+
* - the repo declares `workspaces` (a monorepo) -> skip (legit)
|
|
305
|
+
* - the repo could not be fetched (404/private/network) -> skip
|
|
306
|
+
* - the repo's package.json name equals this package -> skip (corroborated)
|
|
307
|
+
* - the names share a significant token (same project) -> skip
|
|
308
|
+
*/
|
|
309
|
+
async function checkRepositoryClaim(packageName, versionData, findings) {
|
|
310
|
+
const claim = parseRepositoryField(versionData.repository);
|
|
311
|
+
if (!claim)
|
|
312
|
+
return;
|
|
313
|
+
// A monorepo subdirectory legitimately means the root name differs.
|
|
314
|
+
if (claim.directory)
|
|
315
|
+
return;
|
|
316
|
+
// The package's scope matching the repo owner is a strong ownership signal: an
|
|
317
|
+
// org publishing @acme/* from github.com/acme/<mono> is the common legit case
|
|
318
|
+
// (and the dominant pnpm/lerna monorepo layout). Cheap, no fetch. Skip.
|
|
319
|
+
const scope = packageName.match(/^@([^/]+)\//)?.[1];
|
|
320
|
+
if (scope && scope.toLowerCase() === claim.owner.toLowerCase())
|
|
321
|
+
return;
|
|
322
|
+
// If either name reduces to no SIGNIFICANT token (e.g. "core"/"cli"/"@x/api"),
|
|
323
|
+
// relatedness cannot be judged, so unrelatedness cannot be proven - skip
|
|
324
|
+
// rather than emit a maximally-FP-prone flag (v5.16.0 gate finding).
|
|
325
|
+
if (significantTokens(packageName).size === 0)
|
|
326
|
+
return;
|
|
327
|
+
const body = await httpsGetTextOrNull(`https://raw.githubusercontent.com/${claim.owner}/${claim.repo}/HEAD/package.json`);
|
|
328
|
+
if (body === null)
|
|
329
|
+
return; // unfetchable: too benign to flag
|
|
330
|
+
let repoPkg;
|
|
331
|
+
try {
|
|
332
|
+
repoPkg = JSON.parse(body);
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
return;
|
|
336
|
+
}
|
|
337
|
+
// Monorepo / workspace-root signals: a root that declares `workspaces`, or is
|
|
338
|
+
// marked private (the near-universal marker of an unpublished monorepo root
|
|
339
|
+
// that legitimately publishes many differently-named member packages).
|
|
340
|
+
if (repoPkg.workspaces !== undefined)
|
|
341
|
+
return;
|
|
342
|
+
if (repoPkg.private === true)
|
|
343
|
+
return;
|
|
344
|
+
const repoName = typeof repoPkg.name === "string" ? repoPkg.name : undefined;
|
|
345
|
+
if (!repoName)
|
|
346
|
+
return; // no name to compare
|
|
347
|
+
if (repoName === packageName)
|
|
348
|
+
return; // corroborated
|
|
349
|
+
if (significantTokens(repoName).size === 0)
|
|
350
|
+
return; // repo name too generic to judge
|
|
351
|
+
if (namesAreRelated(packageName, repoName))
|
|
352
|
+
return; // likely the same project
|
|
353
|
+
// Last-resort monorepo check (only on the would-flag path, so no latency on
|
|
354
|
+
// the common case): pnpm/lerna monorepos leave the package.json workspaces key
|
|
355
|
+
// empty. If a workspace manifest exists in the repo, treat it as a monorepo.
|
|
356
|
+
for (const manifest of ["pnpm-workspace.yaml", "lerna.json"]) {
|
|
357
|
+
const m = await httpsGetTextOrNull(`https://raw.githubusercontent.com/${claim.owner}/${claim.repo}/HEAD/${manifest}`);
|
|
358
|
+
if (m !== null)
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
findings.push({
|
|
362
|
+
rule: "STARJACKING_SUSPECTED",
|
|
363
|
+
description: `Package "${packageName}" claims repository github.com/${claim.owner}/${claim.repo}, but that ` +
|
|
364
|
+
`repository publishes a different, unrelated package ("${repoName}") and is not a monorepo ` +
|
|
365
|
+
"containing this one - the repository may be borrowed to inherit its stars/trust.",
|
|
366
|
+
severity: "medium",
|
|
367
|
+
confidence: 0.7,
|
|
368
|
+
category: "supply-chain",
|
|
369
|
+
file: "package.json",
|
|
370
|
+
recommendation: `Verify that github.com/${claim.owner}/${claim.repo} is really the source of "${packageName}". ` +
|
|
371
|
+
"Starjacking points a malicious package at a popular project's repo to inflate trust scores; " +
|
|
372
|
+
"confirm the repo actually builds and publishes this package before trusting it.",
|
|
373
|
+
});
|
|
374
|
+
}
|
|
188
375
|
/**
|
|
189
376
|
* Fetch package metadata from the npm registry.
|
|
190
377
|
*/
|
package/dist/npm-scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-scanner.js","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npm-scanner.js","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/reporter.js
CHANGED
|
@@ -62,7 +62,7 @@ function formatJson(report) {
|
|
|
62
62
|
function formatText(report) {
|
|
63
63
|
const lines = [];
|
|
64
64
|
// ── layout constants ───────────────────────────────────────────────────────
|
|
65
|
-
const VERSION = "5.
|
|
65
|
+
const VERSION = "5.16.0";
|
|
66
66
|
const W = 76; // visible chars between "│ " and " │" (total line = 80)
|
|
67
67
|
// ── ANSI helpers ───────────────────────────────────────────────────────────
|
|
68
68
|
const stripAnsi = (s) => s.replace(/\x1b\[[0-9;]*m/g, "");
|
|
@@ -497,7 +497,7 @@ function formatSarif(report) {
|
|
|
497
497
|
tool: {
|
|
498
498
|
driver: {
|
|
499
499
|
name: "supply-chain-guard",
|
|
500
|
-
version: "5.
|
|
500
|
+
version: "5.16.0",
|
|
501
501
|
informationUri: "https://github.com/homeofe/supply-chain-guard",
|
|
502
502
|
rules,
|
|
503
503
|
},
|
|
@@ -559,7 +559,7 @@ function formatSbom(report) {
|
|
|
559
559
|
timestamp: report.timestamp,
|
|
560
560
|
tools: {
|
|
561
561
|
components: [
|
|
562
|
-
{ type: "application", name: "supply-chain-guard", version: "5.
|
|
562
|
+
{ type: "application", name: "supply-chain-guard", version: "5.16.0" },
|
|
563
563
|
],
|
|
564
564
|
},
|
|
565
565
|
component: {
|
|
@@ -677,7 +677,7 @@ function formatGitlab(report) {
|
|
|
677
677
|
name: "supply-chain-guard",
|
|
678
678
|
url: "https://github.com/homeofe/supply-chain-guard",
|
|
679
679
|
vendor: { name: "supply-chain-guard" },
|
|
680
|
-
version: "5.
|
|
680
|
+
version: "5.16.0",
|
|
681
681
|
};
|
|
682
682
|
const vulnerabilities = report.findings
|
|
683
683
|
.filter((f) => !f.suppressed)
|
|
@@ -907,7 +907,7 @@ footer{text-align:center;padding:24px;color:#94a3b8;font-size:13px}
|
|
|
907
907
|
` : ""}
|
|
908
908
|
|
|
909
909
|
<footer>
|
|
910
|
-
Generated by <a href="https://github.com/homeofe/supply-chain-guard">supply-chain-guard</a> v5.
|
|
910
|
+
Generated by <a href="https://github.com/homeofe/supply-chain-guard">supply-chain-guard</a> v5.16.0
|
|
911
911
|
</footer>
|
|
912
912
|
</div>
|
|
913
913
|
<script>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "supply-chain-guard",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.16.0",
|
|
4
4
|
"description": "Open-source supply-chain security scanner for npm, PyPI, Cargo, Go, RubyGems, Composer, NuGet, Docker, VS Code extensions, GitHub Actions, IaC and Solana C2. Detects GlassWorm, Shai-Hulud, PPE attacks, dependency confusion and 180+ threat indicators across all major lockfile formats (npm, pnpm, yarn, bun). Generates CycloneDX 1.6 SBOMs, verifies SLSA provenance, and correlates findings into attack-chain incidents.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|