Claude Code Plugins

Community-maintained marketplace

Feedback

security-codeguard

@sumik5/dotfiles
0
0

セキュアコーディング - すべてのコード実装完了時にCodeGuardでセキュリティチェック。入力検証、機密情報管理、OWASP対策を実施。

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name security-codeguard
description セキュアコーディング - すべてのコード実装完了時にCodeGuardでセキュリティチェック。入力検証、機密情報管理、OWASP対策を実施。

セキュアコーディング

📚 目次

基本

詳細ガイド

🎯 使用タイミング

必須タイミング:

  • すべてのコード実装完了時(必須)
  • 外部入力処理時
  • 認証・認可実装時
  • 機密情報取扱時

推奨タイミング:

  • API実装時
  • データベース操作時
  • ファイルアップロード処理時
  • セッション管理実装時

🔒 CodeGuard統合(必須)

基本フロー

1. コード実装完了
   ↓
2. CodeGuard実行(必須)
   Skill tool: /codeguard-security:software-security
   ↓
3. 脆弱性検出
   ↓
4. 指摘された問題を修正
   ↓
5. 再度CodeGuardで検証
   ↓
6. すべてクリアを確認
   ↓
7. 完了報告

CodeGuard実行コマンド

# Skill toolを使用
/codeguard-security:software-security

重要:

  • CodeGuardの指摘を無視してはいけません
  • 必ずすべての問題を修正してから次のステップに進んでください
  • 完了報告にはCodeGuardチェック結果を含めてください

CodeGuardチェック項目

  • SQLインジェクション
  • XSS(クロスサイトスクリプティング)
  • CSRF(クロスサイトリクエストフォージェリ)
  • 認証・認可の問題
  • 機密情報漏洩
  • 安全でない暗号化
  • パストラバーサル
  • コマンドインジェクション
  • etc.

⚡ クイックリファレンス

最優先対策(必須)

1. すべての外部入力を検証

// ✅ 入力検証
import { z } from 'zod'

const schema = z.object({
  email: z.string().email(),
  age: z.number().min(0).max(150)
})

const validated = schema.parse(input)

2. SQLインジェクション対策

// ✅ プリペアドステートメント
const user = await db.query(
  'SELECT * FROM users WHERE id = $1',
  [userId]  // パラメータバインディング
)

3. XSS対策

// ✅ エスケープ処理
import DOMPurify from 'dompurify'
const sanitized = DOMPurify.sanitize(userContent)

4. 機密情報管理

// ✅ 環境変数
const apiKey = process.env.API_KEY

// ❌ ハードコーディング禁止
const apiKey = "key123"  // 絶対禁止

5. 認証・認可

// ✅ パスワードハッシュ化
import bcrypt from 'bcrypt'
const hashed = await bcrypt.hash(password, 10)

// ✅ 認可チェック
if (currentUser.role !== 'admin') {
  throw new Error('Unauthorized')
}

実装完了前チェックリスト

コード実装完了時に必ず確認:

  • CodeGuardセキュリティチェック実施済み
  • すべての外部入力を検証・サニタイゼーション
  • SQLインジェクション対策(プリペアドステートメント)
  • XSS対策(エスケープ処理)
  • CSRF対策(トークン検証)
  • 機密情報は環境変数で管理
  • パスワードはハッシュ化
  • 認可チェック実装
  • セキュリティヘッダー設定
  • エラーメッセージに機密情報を含まない
  • ログに機密情報を出力しない

📖 詳細ガイドへのナビゲーション

OWASP Top 10対策

OWASP Top 10の各脆弱性についての詳細解説と対策方法:

  • A01: アクセス制御の不備
  • A02: 暗号化の失敗
  • A03: インジェクション
  • A04: 安全が確認されない不安全な設計
  • A05: セキュリティの設定ミス
  • A06: 脆弱で古くなったコンポーネント
  • A07: 識別と認証の失敗
  • A08: ソフトウェアとデータの整合性の不備
  • A09: セキュリティログとモニタリングの失敗
  • A10: サーバーサイドリクエストフォージェリ

入力検証とインジェクション対策

入力検証、サニタイゼーション、各種インジェクション攻撃への対策:

  • 入力検証の実装方法
  • サニタイゼーション技術
  • SQLインジェクション対策
  • XSS(クロスサイトスクリプティング)対策
  • CSRF(クロスサイトリクエストフォージェリ)対策
  • コマンドインジェクション対策

認証・認可と機密情報管理

認証、認可、機密情報の安全な管理方法:

  • セキュアな認証実装
  • 認可とアクセス制御
  • パスワード管理のベストプラクティス
  • 環境変数による機密情報管理
  • 暗号化とハッシュ化
  • JWTトークンの安全な使用

セキュアヘッダーとその他の対策

HTTPヘッダー、ファイルアップロード、その他のセキュリティ対策:

  • セキュアHTTPヘッダーの設定
  • ファイルアップロード対策
  • レート制限の実装
  • セキュアなログ管理
  • 依存関係のセキュリティ管理

🔗 関連スキル

💡 ベストプラクティス

セキュリティファースト開発

  1. 設計段階からセキュリティを考慮

    • Threat Modeling(脅威モデリング)
    • Principle of Least Privilege(最小権限の原則)
    • Defense in Depth(多層防御)
  2. 実装時の心構え

    • すべての入力は信頼できないと仮定
    • セキュアなデフォルト設定
    • 早期失敗(Fail Fast)
  3. 継続的なセキュリティ向上

    • 定期的な依存関係更新
    • セキュリティスキャンの自動化
    • インシデント対応計画の策定

セキュリティツールの活用

  • CodeGuard: AIによるセキュリティコードレビュー(必須)
  • 依存関係スキャン: npm audit, Snyk, Dependabot
  • 静的解析: ESLint security plugins, SonarQube
  • 動的解析: OWASP ZAP, Burp Suite

⚠️ よくある間違い

❌ やってはいけないこと

  • CodeGuardチェックをスキップする
  • エラーメッセージに機密情報を含める
  • eval()exec()を使用する(特別な理由がない限り)
  • クライアントサイドのバリデーションのみに依存
  • 古い依存関係を放置する
  • セキュリティ警告を無視する

✅ 正しいアプローチ

  • すべてのコード実装後にCodeGuardを実行
  • サーバーサイドでの検証を必須とする
  • 定期的な依存関係更新
  • セキュリティ警告への迅速な対応
  • セキュリティテストの自動化

📚 参考資料

公式ガイド

セキュリティツール


次のステップ: 各詳細ガイドを参照して、セキュアなコードを実装してください。