security-testing について
自動スキャンと手動レビューでアプリケーションの脆弱性を調べる、開発者向けのセキュリティテストスキルです。インジェクションやアクセス制御、機密情報の露出など、Web と API のリスクを扱います。
主な機能
- 01OWASP Top 10 のテスト
- 02依存関係の脆弱性スキャン
- 03認証と認可の確認
- 04入力と API のセキュリティテスト
- 05セキュリティヘッダーと秘密情報の確認
活用シーン
- 01アプリケーションの一般的な Web 脆弱性の確認
- 02依存関係にある既知のセキュリティ問題の調査
- 03認証、セッション、アクセス制御の評価
- 04入力処理と API 保護のテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill security-testingインストール後、Claude Code で/security-testingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/authentication-authorization-testing.mdcsrf-protection-testing.mddependency-vulnerability-scanning.mdowasp-zap-dast.mdsecrets-detection.mdsecurity-headers-testing.mdsql-injection-testing.mdxss-testing.mdscripts/security-checklist.sh詳細
セキュリティテスト
目次
概要
セキュリティテストでは、アプリケーションの脆弱性、弱点、脅威を特定し、データを保護し、不正アクセスを防ぎ、システムの完全性を維持します。自動スキャン(SAST、DAST)に、手動のペネトレーションテストやコードレビューを組み合わせます。
使用する場面
- OWASP Top 10 の脆弱性をテストする
- 既知の脆弱性がないか依存関係をスキャンする
- 認証と認可をテストする
- 入力のサニタイズを検証する
- API のセキュリティをテストする
- 機密データが漏えいしていないか確認する
- セキュリティヘッダーを検証する
- セッション管理をテストする
クイックスタート
最小限の動作例:
# security_scan.py
from zapv2 import ZAPv2
import time
class SecurityScanner:
def __init__(self, target_url, api_key=None):
self.zap = ZAPv2(apikey=api_key, proxies={
'http': 'http://localhost:8080',
'https': 'http://localhost:8080'
})
self.target = target_url
def scan(self):
"""Run full security scan."""
print(f"Scanning {self.target}...")
# Spider the application
print("Spidering...")
scan_id = self.zap.spider.scan(self.target)
while int(self.zap.spider.status(scan_id)) < 100:
time.sleep(2)
print(f"Spider progress: {self.zap.spider.status(scan_id)}%")
# Active scan
print("Running active scan...")
// ... (see reference guides for full implementation)
リファレンスガイド
references/ ディレクトリにある詳細な実装ガイド:
| ガイド | 内容 |
|---|---|
| OWASP ZAP (DAST) | OWASP ZAP (DAST) |
| SQL インジェクションテスト | SQL インジェクションテスト |
| XSS テスト | XSS テスト |
| 認証・認可テスト | 認証・認可テスト |
| CSRF 保護テスト | CSRF 保護テスト |
| 依存関係の脆弱性スキャン | 依存関係の脆弱性スキャン |
| セキュリティヘッダーのテスト | セキュリティヘッダーのテスト |
| シークレットの検出 | シークレットの検出 |
ベストプラクティス
✅ 推奨事項
- CI/CD でセキュリティスキャンを実行する
- 実際の攻撃手法を使ってテストする
- 依存関係を定期的にスキャンする
- セキュリティヘッダーを使用する
- レート制限を実装する
- すべての入力を検証してサニタイズする
- パラメーター化クエリを使用する
- 認証・認可を徹底的にテストする
❌ 避けるべきこと
- シークレットをコードに保存する
- ユーザー入力を信頼する
- 詳細なエラーメッセージを公開する
- 依存関係の更新を省略する
- デフォルトの認証情報を使用する
- セキュリティ警告を無視する
- 正常系のパスだけをテストする
- 機密データをコミットする
コメント
Markdown 対応