Security audit workflow - vulnerability scan → verification
0
0
# Install this skill:
npx skills add permafrost0/02_skills_agents --skill "security-scan"
Install specific skill from multi-skill repository
# Description
セキュリティ脆弱性検出の判断基準。security-reviewerが使用する専用知識ベース。
# SKILL.md
name: security-scan
description: セキュリティ脆弱性検出の判断基準。security-reviewerが使用する専用知識ベース。
user-invocable: false
セキュリティスキャン基準 (security-scan)
このドキュメントは security-reviewer Agent 専用の知識ベースです。
セキュリティ脆弱性の検出パターン・深刻度判定・推奨対応を定義します。
CRITICAL(即時修正必須)
| 脆弱性 | 検出パターン | 対策 |
|---|---|---|
| SQLインジェクション | f-string / % / format() でのクエリ構築 | パラメータ化クエリ(? プレースホルダ)を使用 |
| コマンドインジェクション | subprocess に shell=True + 外部入力 |
shell=False + リスト形式の引数 |
| ハードコード認証情報 | ソースコードに直書きされたパスワード・トークン・キー | 環境変数・シークレット管理サービスへ移行 |
SQLインジェクション 詳細
f"SELECT ... {var}"のような文字列補間は全て対象ORDER BY {col}/LIMIT {n}もインジェクション可能 → ホワイトリスト検証が必要cursor.execute(query)のqueryがユーザー入力由来かを追跡する
コマンドインジェクション 詳細
shell=True+ ユーザー入力の組み合わせはRCE(任意コマンド実行)に直結os.system()/os.popen()も同様のリスク- 修正:
subprocess.run(["cmd", arg1, arg2], shell=False)
ハードコード認証情報 詳細
- 変数名に
PASSWORD,SECRET,KEY,TOKEN,CREDENTIALを含むもの - 文字列リテラルへの直接代入が対象
.envファイルへの移行 +python-dotenv/os.environ.get()で参照
HIGH(早急に対処)
| 脆弱性 | 検出パターン | 対策 |
|---|---|---|
| 弱いハッシュアルゴリズム | hashlib.md5() / hashlib.sha1() でのパスワードハッシュ |
bcrypt / argon2 / scrypt を使用 |
| 認証情報の平文ログ出力 | print(password) / logger.*(password) |
ログにパスワード・トークンを含めない |
| 認可チェック欠如 | 削除・更新操作前に権限確認がない | 操作前に認証・認可を確認 |
弱いハッシュ 詳細
- MD5・SHA1はパスワード保護用途では使用禁止
- ファイル整合性チェック用途は対象外
bcrypt.hashpw()/argon2-cffi/hashlib.scrypt()への移行を推奨
認証情報の平文ログ 詳細
print(f"password: {pw}")形式を検出logging.debug/info/warning/errorでのパスワード出力も対象- ログに含めて良いのはユーザーID・操作種別のみ
認可チェック欠如 詳細
delete_,remove_,update_,modify_プレフィックスの関数の先頭を確認- 呼び出し元の権限・ロールを検証するコードが存在しない場合は報告
MEDIUM(計画的に対処)
| 脆弱性 | 検出パターン | 対策 |
|---|---|---|
| 入力検証なし | ユーザー入力を直接使用 | バリデーション・サニタイズを追加 |
| リソースリーク | DB接続・ファイルの close() 忘れ |
with 文でリソース管理 |
| デバッグ情報の漏洩 | 本番コードでの print() デバッグ出力 |
ロギングフレームワークに統一 |
報告フォーマット
## セキュリティレビュー結果
### 発見事項
| 種別 | 深刻度 | 場所 | 問題 | 推奨対応 |
|---|---|---|---|---|
| SQLインジェクション | CRITICAL | get_user():24行目 | f-stringでクエリ構築 | パラメータ化クエリを使用 |
### カウント
- CRITICAL: N件
- HIGH: N件
- MEDIUM: N件
- LOW: N件
### 総評
<本番投入可否と根拠>
深刻度の優先順位: CRITICAL > HIGH > MEDIUM > LOW
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Amp
Antigravity
Claude Code
Clawdbot
Codex
Cursor
Droid
Gemini CLI
GitHub Copilot
Goose
Kilo Code
Kiro CLI
OpenCode
Roo Code
Trae
Windsurf
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.