| name | software-vulnerability-analysis |
| description | ソフトウェア開発における脆弱性分析を行う場合にこのスキルを使用してください。
アプリケーションコード、API、認証認可、依存関係、データ保護を中心に、特定・分析・優先度付け・対策立案のガイドラインを提供します。
|
ソフトウェア脆弱性分析スキル
このスキルは、アプリケーション実装や設計に起因する脆弱性を分析するための指針を提供します。主対象はコード、API、認証認可、データ処理、依存関係です。
有効化するタイミング
- アプリケーションコードや API の脆弱性を分析する場合
- セキュリティレビューで実装不備や設計不備を確認する場合
- SAST、DAST、ペネトレーションテストの結果を分析する場合
- 認証認可、セッション、入力検証、秘密情報管理の妥当性を確認する場合
進め方
- 資産、信頼境界、攻撃面を特定する
- 入力点、認証経路、権限境界、外部接続を洗い出す
- 脆弱性の成立条件、影響範囲、悪用難易度を評価する
- 修正方法と暫定緩和策を整理する
- 修復後の再テスト観点を定義する
主要な観点
入力処理とインジェクション
- SQL インジェクション
- パラメータ化クエリの使用を確認する
- 動的 SQL 生成が残っていないかを確認する
- NoSQL インジェクション
- クエリオブジェクトや JSON 入力の検証が適切かを確認する
- LDAP インジェクション
- LDAP クエリ構築時のエスケープが実装されているかを確認する
- OS コマンドインジェクション
- シェル経由の実行を避けているかを確認する
- 引数制御がホワイトリストベースかを確認する
- XXE / XML 処理の安全性
- 外部エンティティが無効化されているかを確認する
- 危険なパーサー設定が制限されているかを確認する
Web と API の脆弱性
- XSS
- 反射型、格納型、DOM-based を分けて評価する
- 出力地点ごとの防御を確認する
- CSRF
- SSRF
- 外部接続先の制限を確認する
- 内部ネットワークへの到達可能性を確認する
- IDOR
- オブジェクト単位で認可確認が行われているかを確認する
- API 濫用
- レート制限、認可漏れ、過剰データ返却がないかを確認する
認証・認可
- パスワード管理
- セッション管理
- 安全な生成、固定化対策、失効処理が妥当かを確認する
- MFA
- MFA の有無だけでなく、迂回経路や不十分なリカバリーフローも確認する
- アクセス制御
- RBAC / ABAC の妥当性を確認する
- 最小権限の原則が守られているかを確認する
- 権限昇格経路の有無を確認する
データ保護と秘密情報
- 保存時・転送時暗号化
- 鍵管理とローテーション
- 情報漏洩
- ログ、エラー、デバッグ出力を通じた漏洩がないかを確認する
- エラーメッセージの情報露出
- レスポンスするエラーメッセージに機密情報を含めていないかを確認する
- 内部実装、スタックトレース、接続情報、秘密情報が外部に露出しないかを確認する
- 秘密情報のハードコード
- クレデンシャルのハードコードを行っていないかを確認する
- ソースコードや設定ファイルに秘密情報が埋め込まれていないかを確認する
- デシリアライズ
- 信頼できないデータのデシリアライズが行われていないかを確認する
依存関係とフレームワーク
- 依存関係スキャン
- CVE の影響評価
- CVE の有無だけでなく、利用形態に照らした影響を評価する
- フレームワークの本番設定
- 本番設定が適用されているかを確認する
- 危険な開発用設定が残っていないかを確認する
優先度付け
Critical
認証回避、任意コード実行、大規模な情報漏洩、広範な権限昇格につながる状態です。
High
悪用条件はあるものの、機密性や完全性に重大な影響がある状態です。
Medium
単独では限定的でも、他の弱点と組み合わさると実害がある状態です。
Low
影響が限定的で、短期的な運用回避策が成立する状態です。
修復戦略
即座の緩和策
根本的修復
- 設計修正
- 実装修正
- 安全な API やライブラリへの置換
修復検証
- 再現手順ベースの再テスト
- 回帰テスト
- セキュリティテストの再実行