@guardbee/security-suite 0.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.md ADDED
@@ -0,0 +1,129 @@
1
+ # @guardbee/security-suite
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@guardbee/security-suite.svg)](https://www.npmjs.com/package/@guardbee/security-suite)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
5
+
6
+ Tüm GuardBee MCP güvenlik araçlarını tek pakette toplayan meta-paket. Secret scanner, dependency auditor, SSL inspector ve DNS intelligence tek kurulumla kullanılabilir.
7
+
8
+ ---
9
+
10
+ ## Hızlı Başlangıç
11
+
12
+ ```bash
13
+ npm install -g @guardbee/security-suite
14
+ ```
15
+
16
+ ### Claude Desktop (MCP — tüm araçlar tek server)
17
+
18
+ ```json
19
+ {
20
+ "mcpServers": {
21
+ "guardbee": {
22
+ "command": "npx",
23
+ "args": ["-y", "@guardbee/security-suite", "serve"]
24
+ }
25
+ }
26
+ }
27
+ ```
28
+
29
+ ---
30
+
31
+ ## CLI Kullanımı
32
+
33
+ ```bash
34
+ guardbee secret-scan <path> # Secret taraması
35
+ guardbee dep-audit <dir> # CVE denetimi
36
+ guardbee ssl-inspect <domain>... # TLS denetimi
37
+ guardbee dns-check <domain> # DNS/SPF/DMARC kontrolü
38
+ ```
39
+
40
+ ### Ortak Seçenekler
41
+
42
+ ```
43
+ --fail-on=<level> critical | high | medium | low (varsayılan: araç özelinde)
44
+ --format=text|json|sarif
45
+ ```
46
+
47
+ ### Örnekler
48
+
49
+ ```bash
50
+ guardbee secret-scan . --fail-on=high
51
+ guardbee dep-audit . --fail-on=critical --format=sarif > results.sarif
52
+ guardbee ssl-inspect example.com api.example.com shop.example.com
53
+ guardbee dns-check example.com --fail-on=medium
54
+ ```
55
+
56
+ ---
57
+
58
+ ## CI/CD Entegrasyonu
59
+
60
+ ### GitHub Actions
61
+
62
+ ```yaml
63
+ name: Security Suite
64
+ on: [push, pull_request]
65
+
66
+ jobs:
67
+ security:
68
+ runs-on: ubuntu-latest
69
+ steps:
70
+ - uses: actions/checkout@v4
71
+ - uses: actions/setup-node@v4
72
+ with: { node-version: 20 }
73
+ - run: npm ci
74
+
75
+ - name: Secret scan
76
+ run: npx @guardbee/security-suite secret-scan . --fail-on=high
77
+
78
+ - name: Dependency audit
79
+ run: npx @guardbee/security-suite dep-audit . --fail-on=high
80
+
81
+ - name: SARIF upload (GitHub Security tab)
82
+ if: always()
83
+ run: |
84
+ npx @guardbee/security-suite secret-scan . --format=sarif > secrets.sarif || true
85
+ npx @guardbee/security-suite dep-audit . --format=sarif > deps.sarif || true
86
+
87
+ - uses: github/codeql-action/upload-sarif@v3
88
+ if: always()
89
+ with:
90
+ sarif_file: secrets.sarif
91
+
92
+ - uses: github/codeql-action/upload-sarif@v3
93
+ if: always()
94
+ with:
95
+ sarif_file: deps.sarif
96
+ ```
97
+
98
+ ### GitLab CI
99
+
100
+ ```yaml
101
+ include:
102
+ - template: Security/Secret-Detection.gitlab-ci.yml
103
+
104
+ guardbee-security:
105
+ image: node:20
106
+ script:
107
+ - npx @guardbee/security-suite secret-scan . --fail-on=high
108
+ - npx @guardbee/security-suite dep-audit . --fail-on=high
109
+ only:
110
+ - merge_requests
111
+ - main
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Dahil Olan Araçlar
117
+
118
+ | Araç | Paket | Açıklama |
119
+ |------|-------|----------|
120
+ | `secret-scan` | `@guardbee/mcp-secret-scanner` | 40+ pattern ile secret tespiti |
121
+ | `dep-audit` | `@guardbee/mcp-dependency-auditor` | OSV CVE veritabanı denetimi |
122
+ | `ssl-inspect` | `@guardbee/mcp-ssl-inspector` | TLS sertifika ve cipher analizi |
123
+ | `dns-check` | `@guardbee/mcp-dns-intelligence` | DNS, SPF, DMARC, dangling subdomain |
124
+
125
+ ---
126
+
127
+ ## Lisans
128
+
129
+ MIT — [GuardBee](https://guardbee.ai)
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
package/dist/cli.js ADDED
@@ -0,0 +1,166 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @guardbee/security-suite — unified CLI for all GuardBee security tools.
4
+ *
5
+ * MCP mode: guardbee serve → combined MCP server (all tools)
6
+ * CLI mode: guardbee <tool> <args> → delegates to the specific tool's CLI
7
+ */
8
+ import { spawnSync } from "child_process";
9
+ import { fileURLToPath } from "url";
10
+ import { dirname, resolve } from "path";
11
+ import { existsSync } from "fs";
12
+ // ── Tool → package mapping ─────────────────────────────────────────────────────
13
+ const TOOL_MAP = {
14
+ "secret-scan": { pkg: "@guardbee/mcp-secret-scanner", cmd: "scan" },
15
+ "dep-audit": { pkg: "@guardbee/mcp-dependency-auditor", cmd: "audit" },
16
+ "ssl-inspect": { pkg: "@guardbee/mcp-ssl-inspector", cmd: "inspect" },
17
+ "dns-check": { pkg: "@guardbee/mcp-dns-intelligence", cmd: "check" },
18
+ };
19
+ // ── Resolve a package's dist/cli.js via import.meta.resolve ───────────────────
20
+ async function resolveCliJs(pkgName) {
21
+ // Resolve the main export of the package, then find dist/cli.js relative to it
22
+ const mainUrl = await import.meta.resolve(pkgName);
23
+ const mainPath = fileURLToPath(mainUrl);
24
+ const pkgDir = dirname(dirname(mainPath)); // mainPath = <pkg>/dist/index.js → up twice
25
+ const cliPath = resolve(pkgDir, "dist", "cli.js");
26
+ if (existsSync(cliPath))
27
+ return cliPath;
28
+ // Fallback: maybe dist is one level up
29
+ const cliPath2 = resolve(dirname(mainPath), "cli.js");
30
+ if (existsSync(cliPath2))
31
+ return cliPath2;
32
+ throw new Error(`Cannot find cli.js for ${pkgName} (tried ${cliPath})`);
33
+ }
34
+ // ── CLI delegation ─────────────────────────────────────────────────────────────
35
+ async function runTool(tool, args) {
36
+ const entry = TOOL_MAP[tool];
37
+ if (!entry) {
38
+ console.error(`Unknown tool: ${tool}`);
39
+ printHelp();
40
+ process.exit(2);
41
+ }
42
+ const cliPath = await resolveCliJs(entry.pkg);
43
+ const result = spawnSync(process.execPath, [cliPath, entry.cmd, ...args], {
44
+ stdio: "inherit",
45
+ env: process.env,
46
+ });
47
+ process.exit(result.status ?? 1);
48
+ }
49
+ // ── MCP server (combined) ─────────────────────────────────────────────────────
50
+ async function runServe() {
51
+ // Start all 4 tools as a combined MCP server by re-exporting their tools
52
+ // into a single McpServer instance.
53
+ const { McpServer } = await import("@modelcontextprotocol/sdk/server/mcp.js");
54
+ const { StdioServerTransport } = await import("@modelcontextprotocol/sdk/server/stdio.js");
55
+ const { z } = await import("zod");
56
+ // Import core functions from each tool
57
+ const { scanDirectory, scanFile } = await import("@guardbee/mcp-secret-scanner");
58
+ const { parseNpmManifest } = await import("@guardbee/mcp-dependency-auditor");
59
+ const { parsePipRequirements } = await import("@guardbee/mcp-dependency-auditor");
60
+ const { queryOsvBatch } = await import("@guardbee/mcp-dependency-auditor");
61
+ const { inspectHost, checkHsts } = await import("@guardbee/mcp-ssl-inspector");
62
+ const { enumerateDomain, enumerateSubdomains } = await import("@guardbee/mcp-dns-intelligence");
63
+ const server = new McpServer({ name: "guardbee-security-suite", version: "0.1.0" });
64
+ // ── Secret Scanner tools ────────────────────────────────────────────────────
65
+ server.tool("scan_directory", "Scan a directory for exposed secrets, API keys, and credentials", { directory: z.string(), maxFiles: z.number().optional() }, async ({ directory, maxFiles = 5000 }) => {
66
+ const result = scanDirectory(directory, { maxFiles });
67
+ const counts = {};
68
+ for (const f of result.findings)
69
+ counts[f.severity] = (counts[f.severity] ?? 0) + 1;
70
+ const summary = result.findings.length === 0
71
+ ? `✅ No secrets found in ${result.scannedFiles} files`
72
+ : `⚠️ Found ${result.findings.length} secrets — Critical:${counts["critical"] ?? 0} High:${counts["high"] ?? 0} Medium:${counts["medium"] ?? 0}`;
73
+ return { content: [{ type: "text", text: summary + "\n\n" + JSON.stringify(result.findings.slice(0, 20), null, 2) }] };
74
+ });
75
+ server.tool("scan_file", "Scan a single file for secrets", { filePath: z.string() }, async ({ filePath }) => {
76
+ const result = scanFile(filePath);
77
+ return { content: [{ type: "text", text: JSON.stringify(result, null, 2) }] };
78
+ });
79
+ // ── Dependency Auditor tools ────────────────────────────────────────────────
80
+ server.tool("audit_dependencies", "Audit npm/pip dependencies for known CVEs", { directory: z.string() }, async ({ directory }) => {
81
+ const lines = [];
82
+ const npmDeps = parseNpmManifest(directory).filter((d) => !d.isDev);
83
+ if (npmDeps.length > 0) {
84
+ const results = await queryOsvBatch(npmDeps.map((d) => ({ name: d.name, version: d.version, ecosystem: "npm" })));
85
+ const vuln = results.filter((r) => r.vulns.length > 0);
86
+ lines.push(`npm: ${vuln.length}/${results.length} vulnerable packages`);
87
+ }
88
+ const pipDeps = parsePipRequirements(directory);
89
+ if (pipDeps.length > 0) {
90
+ const results = await queryOsvBatch(pipDeps.map((d) => ({ name: d.name, version: d.version, ecosystem: "PyPI" })));
91
+ const vuln = results.filter((r) => r.vulns.length > 0);
92
+ lines.push(`pip: ${vuln.length}/${results.length} vulnerable packages`);
93
+ }
94
+ return { content: [{ type: "text", text: lines.join("\n") || "No manifests found" }] };
95
+ });
96
+ // ── SSL Inspector tools ─────────────────────────────────────────────────────
97
+ server.tool("inspect_ssl", "Inspect TLS certificate, cipher suite, and HSTS for a domain", { host: z.string(), port: z.number().optional() }, async ({ host, port = 443 }) => {
98
+ const result = await inspectHost(host, port);
99
+ const hsts = await checkHsts(host, port);
100
+ result.supportsHsts = hsts.enabled;
101
+ const issues = result.findings.filter((f) => f.code !== "OK");
102
+ const summary = issues.length === 0
103
+ ? `✅ ${host} — no SSL issues`
104
+ : `⚠️ ${host} — ${issues.length} issue(s): ${issues.map((f) => f.code).join(", ")}`;
105
+ return { content: [{ type: "text", text: summary }] };
106
+ });
107
+ // ── DNS Intelligence tools ──────────────────────────────────────────────────
108
+ server.tool("check_dns", "Enumerate DNS records and check SPF/DMARC/DKIM configuration", { domain: z.string() }, async ({ domain }) => {
109
+ const result = await enumerateDomain(domain);
110
+ const issues = result.findings.filter((f) => f.severity === "high" || f.severity === "critical");
111
+ const summary = issues.length === 0
112
+ ? `✅ ${domain} — no critical DNS issues`
113
+ : `⚠️ ${domain} — ${issues.length} high/critical issue(s)`;
114
+ return { content: [{ type: "text", text: summary + "\n\n" + JSON.stringify(result.findings, null, 2) }] };
115
+ });
116
+ const transport = new StdioServerTransport();
117
+ await server.connect(transport);
118
+ }
119
+ // ── Help ───────────────────────────────────────────────────────────────────────
120
+ function printHelp() {
121
+ console.log(`@guardbee/security-suite
122
+
123
+ Usage (MCP server — all tools combined):
124
+ guardbee serve
125
+
126
+ Usage (CLI — direct tool invocation):
127
+ guardbee secret-scan <path> Scan for exposed secrets
128
+ guardbee dep-audit <dir> Audit npm/pip for CVEs
129
+ guardbee ssl-inspect <domain>... TLS certificate inspection
130
+ guardbee dns-check <domain> DNS/SPF/DMARC/dangling check
131
+
132
+ Each command supports:
133
+ --fail-on=<level> critical | high | medium | low (| any for secrets)
134
+ --format=text|json|sarif
135
+
136
+ Examples:
137
+ guardbee secret-scan . --fail-on=high --format=sarif > secrets.sarif
138
+ guardbee dep-audit . --fail-on=critical
139
+ guardbee ssl-inspect example.com api.example.com
140
+ guardbee dns-check example.com --fail-on=medium
141
+ `);
142
+ }
143
+ // ── Entry point ────────────────────────────────────────────────────────────────
144
+ const [, , firstArg, ...rest] = process.argv;
145
+ if (!firstArg || firstArg === "--help" || firstArg === "-h") {
146
+ printHelp();
147
+ process.exit(0);
148
+ }
149
+ else if (firstArg === "serve") {
150
+ runServe().catch((err) => {
151
+ console.error("Fatal:", err.message);
152
+ process.exit(1);
153
+ });
154
+ }
155
+ else if (TOOL_MAP[firstArg]) {
156
+ runTool(firstArg, rest).catch((err) => {
157
+ console.error("Error:", err.message);
158
+ process.exit(2);
159
+ });
160
+ }
161
+ else {
162
+ console.error(`Unknown command: ${firstArg}`);
163
+ printHelp();
164
+ process.exit(2);
165
+ }
166
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { scanText, scanFile, scanDirectory } from "@guardbee/mcp-secret-scanner";
2
+ export { parseNpmManifest, parsePipRequirements, queryOsvBatch, getSeverity, getFixedVersion } from "@guardbee/mcp-dependency-auditor";
3
+ export { inspectHost, checkHsts, formatInspectReport } from "@guardbee/mcp-ssl-inspector";
4
+ export { enumerateDomain, enumerateSubdomains, formatDnsReport } from "@guardbee/mcp-dns-intelligence";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACvI,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ // Selective re-exports to avoid naming conflicts
2
+ export { scanText, scanFile, scanDirectory } from "@guardbee/mcp-secret-scanner";
3
+ export { parseNpmManifest, parsePipRequirements, queryOsvBatch, getSeverity, getFixedVersion } from "@guardbee/mcp-dependency-auditor";
4
+ export { inspectHost, checkHsts, formatInspectReport } from "@guardbee/mcp-ssl-inspector";
5
+ export { enumerateDomain, enumerateSubdomains, formatDnsReport } from "@guardbee/mcp-dns-intelligence";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACvI,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@guardbee/security-suite",
3
+ "version": "0.1.0",
4
+ "description": "All GuardBee MCP security tools in one package — secret scanner, dependency auditor, SSL inspector, DNS intelligence",
5
+ "type": "module",
6
+ "bin": {
7
+ "guardbee": "./dist/cli.js",
8
+ "guardbee-suite": "./dist/cli.js"
9
+ },
10
+ "main": "./dist/index.js",
11
+ "files": ["dist", "README.md"],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "start": "node dist/cli.js",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "dependencies": {
18
+ "@guardbee/mcp-secret-scanner": "^0.1.5",
19
+ "@guardbee/mcp-dependency-auditor": "^0.1.5",
20
+ "@guardbee/mcp-ssl-inspector": "^0.1.4",
21
+ "@guardbee/mcp-dns-intelligence": "^0.1.4",
22
+ "@modelcontextprotocol/sdk": "^1.0.0"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^26.0.0",
26
+ "typescript": "^5.0.0"
27
+ },
28
+ "keywords": ["mcp", "security", "secret-scanner", "dependency-audit", "ssl", "dns", "guardbee", "devtools", "cli"],
29
+ "license": "MIT",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/GuardBee/guardbee-mcp-security-suite"
33
+ }
34
+ }