APIリファレンス
Security Scanner MCPのプログラム的なAPI。
インストール
npm install security-scanner-mcp
コアスキャナー
scanSecrets
コード内のハードコードされたシークレットを検出します。
import { scanSecrets } from 'security-scanner-mcp';
const code = `
const apiKey = "AIzaSyC1234567890";
const password = "admin123";
`;
const issues = scanSecrets(code);
console.log(issues);
// [
// {
// type: 'Google API Key',
// severity: 'critical',
// message: 'Google APIキーがハードコード',
// fix: '環境変数を使用',
// line: 2,
// match: 'AIza****890',
// owaspCategory: 'A07:2021',
// cweId: 'CWE-798'
// }
// ]
パラメータ:
code: string- スキャンするソースコード- 戻り値:
SecurityIssue[]
scanInjection
SQL、NoSQL、コマンドインジェクション脆弱性を検出します。
import { scanInjection } from 'security-scanner-mcp';
const code = `
const query = \`SELECT * FROM users WHERE id = \${userId}\`;
exec(\`ping \${host}\`);
`;
const issues = scanInjection(code, 'javascript');
console.log(issues);
// [
// {
// type: 'Template Literal SQL',
// severity: 'high',
// message: 'SQLクエリがテンプレートリテラルを使用',
// fix: 'プリペアドステートメントを使用',
// line: 2
// },
// {
// type: 'Command Injection',
// severity: 'critical',
// message: 'exec()がユーザー入力で呼び出し',
// fix: '引数配列でexecFileを使用',
// line: 3
// }
// ]
パラメータ:
code: string- ソースコードlanguage: string- 'javascript' | 'typescript' | 'python' | 'java' | 'go'- 戻り値:
SecurityIssue[]
scanXss
Cross-Site Scripting脆弱性を特定します。
import { scanXss } from 'security-scanner-mcp';
const code = `
element.innerHTML = userInput;
eval(code);
`;
const issues = scanXss(code, 'javascript');
パラメータ:
code: stringlanguage: string- 戻り値:
SecurityIssue[]
scanCrypto
暗号化の脆弱性をチェックします。
import { scanCrypto } from 'security-scanner-mcp';
const code = `
const hash = crypto.createHash('md5');
const random = Math.random();
`;
const issues = scanCrypto(code, 'javascript');
パラメータ:
code: stringlanguage: string- 戻り値:
SecurityIssue[]
scanAuth
認証とセッションセキュリティを監査します。
import { scanAuth } from 'security-scanner-mcp';
const code = `
res.cookie('session', token);
app.use(cors({ origin: '*' }));
`;
const issues = scanAuth(code, 'javascript');
パラメータ:
code: stringlanguage: string- 戻り値:
SecurityIssue[]
scanPath
パストラバーサルとファイルの脆弱性を検出します。
import { scanPath } from 'security-scanner-mcp';
const code = `
const file = fs.readFileSync(userPath);
fs.rmSync(userDir, { recursive: true });
`;
const issues = scanPath(code, 'javascript');
パラメータ:
code: stringlanguage: string- 戻り値:
SecurityIssue[]
包括的なスキャン
scanAll
すべてのスキャナーを一度に実行します。
import { scanAll } from 'security-scanner-mcp';
const code = `/* コード */`;
const language = 'javascript';
const allIssues = scanAll(code, language);
console.log(allIssues.summary);
// {
// total: 10,
// critical: 2,
// high: 3,
// medium: 4,
// low: 1
// }
パラメータ:
code: stringlanguage: string- 戻り値:
ScanResult
interface ScanResult {
success: boolean;
issues: SecurityIssue[];
summary: {
critical: number;
high: number;
medium: number;
low: number;
};
duration?: number;
linesScanned?: number;
}
IaCスキャン
scanDockerfile
import { scanDockerfile } from 'security-scanner-mcp/iac';
const dockerfile = `
FROM node:latest
ENV SECRET="abc123"
RUN apt-get update
`;
const issues = scanDockerfile(dockerfile);
scanKubernetes
import { scanKubernetes } from 'security-scanner-mcp/iac';
const yaml = `
apiVersion: v1
kind: Pod
spec:
containers:
- name: app
securityContext:
privileged: true
`;
const issues = scanKubernetes(yaml);
scanTerraform
import { scanTerraform } from 'security-scanner-mcp/iac';
const tf = `
resource "aws_s3_bucket" "data" {
bucket = "my-bucket"
acl = "public-read"
}
`;
const issues = scanTerraform(tf);