security について
ソフトウェアの開発やレビュー向けのセキュリティスキルです。技術スタックに応じた実装指針、安全な既定値、コンプライアンス情報、コードレビュー項目を扱い、HIPAA と SOC 2 にも触れます。
主な機能
- 01技術スタック別の実装指針
- 02認証と Web セキュリティの既定値
- 03OWASP 脆弱性対策
- 04HIPAA と SOC 2 の指針
- 05セキュリティレビュー項目
活用シーン
- 01プロジェクトに適したセキュリティライブラリの選定
- 02エンドポイント、入力、データアクセスのレビュー
- 03医療分野の PHI 対策の計画
- 04SOC 2 基本統制の策定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ iankiku/ forwward-teams --skill securityインストール後、Claude Code で/securityを入力して読み込まれたか確認します。
詳細
セキュリティ — コンプライアンスと保護
侵害を前提に考えます。多層防御を実施します。あらゆる場面で最小権限を徹底します。
ステップ 0:技術スタックを特定する
具体的な実装を提案する前に、プロジェクトの技術スタックを特定してください(package.json、go.mod、Gemfile、pyproject.toml、pom.xml、Cargo.tomlを確認します)。セキュリティの原則は普遍的ですが、それを実装するライブラリは技術スタックによって異なります。常に、JavaScript 固有の方法ではなく、使用中の技術スタックに適した標準的な方法を推奨してください。
セキュリティのデフォルト設定
すべてのプロジェクトに、以下を実装します。
| 制御項目 | 実装内容 |
|---|---|
| 認証 | 技術スタックの標準ライブラリを使用した OAuth 2.0 / OIDC |
| セッション | HTTP 専用、Secure、SameSite=Strict の Cookie |
| パスワード | bcrypt または argon2、最小 12 文字、最大文字数の制限なし |
| API 認証 | 有効期限付きのベアラートークン、リフレッシュトークンのローテーション |
| CORS | 明示的な許可リストを設定し、本番環境では決して * を使用しない |
| HTTPS | すべての通信に適用します。例外はありません。HSTS ヘッダーを設定します。 |
| CSP | すべてのページに Content-Security-Policy ヘッダーを設定します |
| レート制限 | 認証エンドポイント:5 回/分。API:100 回/分。用途に応じて調整します。 |
OWASP Top 10 クイックリファレンス
| 脆弱性 | 防止策 |
|---|---|
| インジェクション(SQL、NoSQL、OS) | パラメーター化クエリ、ORM を使用し、文字列の連結は決して行わない |
| 認証の不備 | MFA、セッションタイムアウト、アカウントロック |
| 機密データの漏えい | 保存時と転送時に暗号化し、データ収集を最小限にする |
| XXE | 外部エンティティ処理を無効にする |
| アクセス制御の不備 | すべてのリクエストでサーバー側の権限を確認する |
| セキュリティ設定の不備 | デフォルトで無効にし、設定を強化し、本番環境ではデバッグを無効にする |
| XSS | 出力エンコーディング、CSP ヘッダー、HTML のサニタイズ |
| 安全でないデシリアライゼーション | すべてのシリアライズデータを検証し、型をチェックする |
| 既知の脆弱性 | 技術スタック用の依存関係監査ツール(npm audit、pip audit、go mod tidy、bundle auditなど)と自動更新 |
| 不十分なロギング | 認証イベント、アクセス拒否、入力検証の失敗を記録する |
HIPAA コンプライアンス(ヘルステック)
PHI(保護対象保健情報)を扱う場合は必須です:
| 要件 | 実装 |
|---|---|
| 保存データの暗号化 | データベースとファイルストレージに AES-256 を使用 |
| 転送データの暗号化 | すべての通信に TLS 1.2 以降を使用 |
| アクセス制御 | ロールベースで監査ログを記録し、最小権限を適用 |
| 監査証跡 | PHI へのアクセスごとに、誰が、何を、いつ行ったかを記録 |
| BAA | PHI を扱うすべてのベンダーと Business Associate Agreement を締結 |
| データの最小化 | 臨床上必要なデータのみを収集 |
| 侵害の通知 | 60 日以内の通知が必要です。計画を用意してください |
| 従業員研修 | 年次のセキュリティ意識向上研修 |
**PHI に含まれるもの:**氏名、日付、電話番号、メールアドレス、SSN、医療記録番号、デバイス ID、生体データ、写真、および患者を特定できるあらゆるデータ。
ベンダーのチェックリスト:
- クラウドプロバイダーは BAA に署名しますか?(AWS、GCP、Azure:はい。その他の多くのプロバイダー:いいえ。)
- 分析ツールは PHI を参照しますか?参照する場合は、BAA が必要です。または、事前に PHI を取り除いてください。
- エラー追跡ツールはスタックトレースに PHI を記録しますか?取り除いてください。
SOC 2 の基本
| 信頼の原則 | 実装内容 |
|---|---|
| セキュリティ | アクセス制御、暗号化、ファイアウォール、IDS |
| 可用性 | 稼働時間の監視、インシデント対応、バックアップ |
| 処理の完全性 | 入力検証、エラー処理、QA |
| 機密性 | 暗号化、アクセスログ、データ分類 |
| プライバシー | 同意、データ保持、削除、プライバシーポリシー |
**まずは:**セキュリティと可用性から始めます。顧客から求められたら、ほかの項目を追加します。
セキュリティレビューのチェックリスト
コードのセキュリティをレビューする際は、次の点を確認します。
- すべてのエンドポイントで認証していますか? — ルートだけでなく、データクエリも対象です
- 入力を境界で検証していますか? — 処理を行う前に、使用するスタックのスキーマ/検証ライブラリを使用します
- シークレットは環境変数に保存されていますか? — コード、Git、クライアントバンドルには決して含めません
- クエリをパラメーター化していますか? — 文字列連結や、SQL/コマンドへの文字列埋め込みは行いません
- エラーメッセージは安全ですか? — スタックトレースや内部パスをユーザーに表示しません
- 依存関係は最新ですか? — 使用するスタックの依存関係監査ツールを実行します
- ログは十分ですか? — 認証イベント、権限エラー、異常を記録します
- データを最小限に抑えていますか? — 必要なデータのみを収集し、必要な期間だけ保持します
コメント
Markdown 対応