permafrost0

security-scan

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() でのクエリ構築 パラメータ化クエリ(? プレースホルダ)を使用
コマンドインジェクション subprocessshell=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:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.