application-security について
application-securityは、アプリケーションの設計・実装・レビューに使うセキュリティスキルです。OWASPの指針、安全な初期設定、脅威モデリング、導入前チェックを開発ルールとしてまとめています。
主な機能
- 01OWASP Top 10の対策指針
- 02セキュアな設計・実装原則
- 03デプロイ前のセキュリティチェックリスト
- 04STRIDE脅威モデリング
- 05リスクレベルとコンプライアンス概要
活用シーン
- 01アプリケーションの一般的な脆弱性を確認
- 02新機能のセキュリティ対策を計画
- 03デプロイ前にセキュリティ要件を点検
- 04脅威と信頼境界をモデル化
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ oakoss/ agent-skills --skill application-securityインストール後、Claude Code で/application-securityを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-security.mdauth.mddata-protection.mdinput-validation.mdmonitoring-compliance.mdsecure-config.mdsupply-chain.mdthreat-modeling.md詳細
セキュリティ
セキュリティは後付けではなく、最初から組み込まれています。すべての機能、エンドポイント、データフローで、セキュリティへの影響を考慮する必要があります。
OWASP Top 10(2025)
| # | 脆弱性 | 防止策 |
|---|---|---|
| 1 | アクセス制御の不備 | サーバー側で権限を検証し、デフォルトで拒否する |
| 2 | セキュリティ設定の不備 | 安全なデフォルト設定を適用し、未使用の機能を削除する |
| 3 | ソフトウェアサプライチェーンの障害 | SBOM、依存関係のスキャン、ビルドへの署名 |
| 4 | 暗号化の不備 | TLS を使用し、パスワードをハッシュ化する(argon2id)。個人情報を暗号化する |
| 5 | インジェクション | パラメーター化クエリ、入力値の検証 |
| 6 | 安全でない設計 | 脅威モデリング、セキュリティ要件 |
| 7 | 認証の不備 | 強力なパスワード、MFA、安全なセッション管理 |
| 8 | ソフトウェアまたはデータの完全性 | 依存関係を検証し、リリースに署名する |
| 9 | ロギングとアラートの不備 | セキュリティイベントをログに記録し、アラートを設定する |
| 10 | 例外的な状況への不適切な対応 | 安全に失敗し、クライアントには一般的なエラーを返す |
セキュリティの原則
| 原則 | ルール |
|---|---|
| 多層防御 | 複数のレイヤー:ファイアウォール、認証、認可、暗号化、監査 |
| 最小権限 | 必要最小限の権限のみを付与する |
| ゼロトラスト | 信頼せず、常に検証する。侵害を前提とする。 |
| デフォルトで安全 | HTTPS、厳格なパスワード設定、安全な Cookie を標準で適用する |
| 安全に失敗する | エラー時はアクセスを拒否し、ユーザーに内部情報を開示しない |
| サーバー側で検証する | クライアント側の検証は UX のため、サーバー側の検証はセキュリティのため |
デプロイ前チェックリスト
| 領域 | 要件 |
|---|---|
| パスワード | argon2id(推奨)または bcrypt(12 回以上のラウンド)でハッシュ化する |
| トークン | EdDSA/ES256 を使用した JWT、アクセストークンは 15 分/リフレッシュトークンは 7 日、httpOnly Cookie |
| セッション | HttpOnly、Secure、SameSite=Strict Cookie |
| レート制限 | 認証エンドポイント:15 分間に 5 回 |
| 認可 | すべてのルートでサーバー側の認証を確認し、デフォルトで拒否する |
| 入力 | スキーマ(Zod)で検証し、SQL をパラメーター化する |
| アップロード | 許可リストで種類を制限し、サイズ上限を適用する |
| シークレット | コードや VCS にシークレットを含めない |
| ヘッダー | CSP(nonce を使用)、HSTS、Permissions-Policy、X-Content-Type-Options |
| CORS | 厳格に制限して設定する |
| 暗号化 | 保存時(AES-256)および転送時(TLS 1.3)に個人情報を暗号化する |
| ロギング | セキュリティイベントの監査ログを記録する |
| 依存関係 | SBOM を生成し、npm audit に問題がなく、Dependabot を有効にする |
脅威モデリング(STRIDE)
| 脅威 | カテゴリ | 主な緩和策 |
|---|---|---|
| なりすまし | 認証 | MFA、強力なパスワード、有効期限の短い JWT |
| 改ざん | 完全性 | 入力検証、HTTPS/TLS、署名付きトークン |
| 否認 | 説明責任 | 監査ログ、デジタル署名 |
| 情報漏えい | 機密性 | 暗号化、最小権限、シークレット管理 |
| サービス拒否 | 可用性 | レート制限、入力検証、CDN/DDoS 対策 |
| 権限昇格 | 認可 | すべてのリクエストでの認可チェック、ABAC、権限監査 |
リスクレベル
| レベル | 対応 |
|---|---|
| 重大 | 直ちに対応が必要 |
| 高 | リリース前に対応 |
| 中 | リリース後に対応 |
| 低 | 監視し、リスクを許容する場合があります |
コンプライアンス概要
| フレームワーク | 対象範囲 | 主な要件 |
|---|---|---|
| GDPR | EU のデータ主体 | 同意、データ主体の権利、侵害通知(72 時間以内)、DPIA |
| HIPAA | 米国の医療データ | PHI の暗号化、RBAC、監査ログ、プロバイダーとの BAA |
| SOC 2 | SaaS の顧客データ | セキュリティポリシー、MFA、暗号化、インシデント対応 |
| PCI-DSS | クレジットカード情報 | 決済処理業者(Stripe)の利用、トークン化、ネットワークセグメンテーション |
アンチパターン
| アンチパターン | 修正 |
|---|---|
| セキュリティを後回しにする | 設計段階から組み込む |
| クライアント側で認可する | 常にサーバー側で権限を検証する |
| クライアントのデータ(例:リクエスト本文の userId)を信頼する | 認証済みセッションからユーザー ID を取得する |
| 独自の暗号化を実装する | 実績のあるライブラリ(argon2、bcrypt、libsodium)を使用する |
| コンプライアンス = セキュリティ | コンプライアンスは最低限の基準であり、セキュリティ対策は継続的に必要です |
| 詳細すぎるエラーレスポンス | クライアントには一般的なメッセージを返し、詳細はサーバー側に記録する |
よくある間違い
| 間違い | 正しい方法 |
|---|---|
| クライアント側でのみ認可チェックを実行する | 常にサーバー側で権限を検証する。クライアント側のチェックは UX のみを目的とする |
| リクエスト本文でユーザーが指定した ID(例:userId)を信頼する | 認証済みセッションまたはトークンからユーザー ID を特定する |
| 実績のあるライブラリを使わず、独自の暗号方式を実装する | すべての暗号処理に argon2id、bcrypt、または libsodium を使用する |
| コンプライアンス認証をセキュリティと同等に扱う | コンプライアンスは最低限の基準であり、セキュリティには継続的なレビューが必要です |
| スタックトレースを含む詳細なエラーメッセージをクライアントに返す | クライアントには一般的なメッセージを表示し、詳細はサーバー側のみに記録する |
委任
- OWASP Top 10 の脆弱性や安全でないパターンがないかコードベースをスキャンする:
Exploreエージェントを使用して、SQL インジェクション、XSS、ハードコードされたシークレットを検索します - 認証、認可、セキュリティヘッダーをエンドツーエンドで実装する:
Taskエージェントを使用して、JWT、RBAC、CSP、HSTS、レート制限を設定します - 新機能の脅威モデルとセキュリティアーキテクチャを設計する:
Planエージェントを使用して、STRIDE 手法を適用し、信頼境界を整理します
データベース層のセキュリティ(RLS ポリシー、Postgres/Supabase の強化、監査証跡)には、
database-securityスキルを使用してください。AI/LLM のセキュリティ(プロンプトインジェクション対策、エージェントのゼロトラスト、MCP ツールの強化)には、secure-aiスキルを使用してください。
参考資料
- 脅威モデリング — STRIDE 手法、リスク評価プロセス、信頼境界
- 認証と認可 — JWT、セッションベース認証、OAuth、RBAC、ABAC、IDOR 対策
- API セキュリティ — OWASP API Security Top 10、オブジェクトレベルの認可、レート制限、SSRF 対策、セキュリティテスト
- 入力検証 — SQL インジェクション、XSS、コマンドインジェクション、パストラバーサル、Zod による検証、ファイルアップロードのセキュリティ
- データ保護 — パスワードハッシュ化(argon2id/bcrypt)、AES-256-GCM 暗号化、シークレット管理
- 安全な設定 — セキュリティヘッダー、CORS、Express の強化、レート制限
- サプライチェーンセキュリティ — SBOM の生成、依存関係のスキャン、CI/CD の強化、アーティファクトの署名
- 監視とコンプライアンス — 監査ログ、エラー処理、GDPR/HIPAA/SOC2/PCI-DSS、トラブルシューティング
コメント
Markdown 対応