脆弱性を継続して見つけ、修正する
完了脆弱性の検出から本番で検証した修正まで、継続的なプロセスを作ります。成功した試作品が隠し得る保守の不足を理解します。
理解度を確認アプリは三か月間変更されていません。最後の依存関係スキャンは、リリース時に成功しました。根拠のある記述はどれですか?演習に取り組む
学べること
- 変更していないソフトウェアにも、継続的なセキュリティレビューが必要な理由を説明します。
- スキャンの種類ごとに、対象範囲と限界を把握します。
- 検出結果を、優先順位付け、修正、デプロイ、検証まで追跡します。
動く試作品が、保守されないサービスになる
Vibe codingなら、有用な試作品を素早く作れます。継続的なセキュリティ保守なしに使い続けると、本番のリスクが増えます。これは重大な不足です。作成者が仕事は完了したと考えていても、ソフトウェアはリスクにさらされたままになります。
不足は技術だけでなく、組織にもあります。スキャナーがあっても、責任者がいない場合があります。検出結果に担当者がいても、リリース経路がない場合があります。修正をmergeしても、本番では古い成果物が動き続ける場合があります。
実際の開発プラットフォームと設定を評価してください。セキュリティ機能を備えたツールもあります。製品の呼び名だけでは、デプロイ済みアプリに継続的なスキャンと検証済みの修正が届くかは分かりません。
証拠が変わる時点でスキャンする
変更案とビルド済み成果物に対し、関連する確認を実行します。commitがなくても脆弱性情報は変わるため、サポートするバージョンを定期的に再評価します。関連する脆弱性情報、曝露の変化、インシデントが現れたら、追加レビューを開始します。
対象範囲を明示します。リポジトリ、ブランチ、lockfile、イメージ、デプロイ済みダイジェスト値、ランタイム、環境を特定します。機能開発を終えていても、利用者にサービスを提供しているアプリは含めます。
失敗したスキャンは、証拠の不足です。スキャンの鮮度、情報フィードの障害、認証失敗、未対応コンポーネント、対象範囲の抜けを監視します。ジョブが失敗した後の空の検出一覧は、問題なしの結果ではありません。
問いに合う確認を使う
| 確認 | 有用な対象範囲 | 重要な限界 |
|---|---|---|
| ソフトウェア構成分析(SCA) | 特定された間接依存パッケージも含む、依存関係の既知の脆弱性 | アプリの認可が正しいことは確認できない |
| 静的アプリケーションセキュリティテスト(SAST) | ツールが検出に対応する、安全でないコードのパターン | 実行時の動作を見逃したり、分類が必要な検出結果を出したりする |
| シークレットスキャン | スキャン内容に含まれる、検出可能な認証情報のパターン | 文字列を削除しても、別の場所に有効な認証情報が残る場合がある |
| インフラと設定の確認 | スキャンしたリソースや設定における、定義済みポリシーへの違反 | リポジトリの設定と稼働中の環境が異なる場合がある |
| 許可された動的テスト | テスト対象範囲内の、稼働中アプリの動作 | 許可、適切なデータ、副作用への注意が必要 |
これらを、レビューや関連するセキュリティテストと組み合わせます。どのスキャンも、脆弱性がないことを証明すると主張しないでください。
架空の検出結果を本番まで追う
| 時刻 | 出来事 | 実際の状態 |
|---|---|---|
| 月曜日09:00 | 新しい脆弱性情報が、影響するPDF依存パッケージを特定する | 既存リリースの評価が必要 |
| 月曜日09:15 | 定期スキャンが、該当する本番バージョンを特定する | 検出済みだが、未修正 |
| 月曜日10:00 | 責任者が曝露を確認し、サポートされたパッチを選ぶ | 修正を計画済み |
| 月曜日13:00 | テストが成功し、パッチのPRがmergeされる | リポジトリは修正済み。本番へのデプロイはまだ必要 |
| 月曜日14:00 | パイプラインが修正済みイメージをデプロイする | 新しい成果物が稼働。検証はまだ必要 |
| 月曜日14:20 | 成果物のスキャンとエクスポートの回帰テストが成功する | 確認した範囲内で修正を検証済み |
深刻度、悪用の証拠、曝露、影響するデータ、利用できる緩和策から優先順位を決めます。CISAのカタログは、確認された悪用を特定する助けになります。一つの情報源であり、完全なリスク評価ではありません。CISAカタログを参照してください。
一時的な例外には、証拠、責任者、代替の管理策、有効期限または見直し条件が必要です。パッチがなければ、許可された回避策、機能制限、影響するコンポーネントの削除を検討します。
保守の不足を解消する
優先順位ごとに、分類までの時間と、検証済みの修正までの時間を測ります。期限を超えた例外、古いスキャン、影響する本番バージョン、繰り返す検出結果を追跡します。検出件数の減少は、対象範囲の縮小を示す場合もあります。分母を確認してください。
TaigaのMaintainingは、接続したリポジトリを変更後および定期的にスキャンします。検出結果を記録し、修正をinitiativeとレビュー済みの変更に結び付けます。スキャンの状態と、現在の文書に記載された動作を確認してください。Maintainingを参照してください。
パイプラインには、引き続き適切なリリース条件が必要です。サービス責任者は、デプロイと運用上の正しさを確認する必要があります。この継続的なつながりは、AIソフトウェアファクトリーの運用の一部です。最初のバージョンが試作品だった製品にも当てはまります。
演習に取り組む
このレッスンの架空の時系列を使います。チームが誤って成功と判断しそうな地点を特定します。スキャンの開始条件、失敗のアラート、修正責任者、リリース後の検証、一時的な例外の期限を定めてください。
ワークシートをダウンロード(Markdown)この選択を解除すると、このブラウザーに保存した進捗がすべて削除されます。
進捗はこのブラウザー内に保存されます。アカウントも追跡もありません。
出典と参考資料
- NIST: Secure Software Development Framework ↗
- CISA: Known Exploited Vulnerabilities Catalog ↗
- Taiga docs: Maintaining ↗