ゼロデイとは何か?まだパッチのない欠陥
ゼロデイとは、ベンダーがまだ認識していない、または修正していない脆弱性であり、防御側はパッチを準備するための日数がゼロである状態を指します。
ゼロデイとは、修正がまだ存在しない脆弱性です。修正できる人々がそれを知らない、またはパッチを出荷していないためです。この名前は防御側の立場を反映しています。すなわち警告の日数がゼロということです。ゼロデイは、まさに利用可能な防御手段がないために攻撃者に重宝され、そのため迅速な対応能力が不可欠になります。
なぜゼロデイは危険なのか
既知の脆弱性であれば、パッチを当てたり緩和したりできます。ゼロデイの場合、定義上、攻撃の時点で公式な修正が存在しません。防御側は、用意されたパッチではなく、検出、隔離、迅速な対応に頼ります。
ライフサイクル
- 発見: 誰か - 攻撃者または研究者 - が欠陥を見つける。
- 悪用または開示: 攻撃に使用されるか、ベンダーに報告される。
- パッチ: ベンダーが修正を出荷し、ゼロデイではなくなる。
ゼロデイと既知の脆弱性の違い
パッチが存在すれば、欠陥はもはやゼロデイではありませんが、パッチが当てられていないシステムはリスクにさらされたままです。実際、ほとんどの侵害は、更新が遅かったシステム上の既知の、すでにパッチ済みの脆弱性を悪用します。ここでCI駆動のパッチ適用が効果を発揮します。
なぜ高速なpipelineが重要なのか
ゼロデイを防ぐことはできませんが、「パッチがリリースされた」から「パッチがデプロイされた」までの期間を短縮することはできます。高速で信頼性の高いCI/CD pipelineは、緊急パッチを日常的なdeployに変え、露出時間を劇的に削減します。
CI/CDでの備え
新たに開示された問題を監視する依存関係のスキャン、自動化された修正pull request、そしてパッチを迅速に出荷できるpipelineが実用的な防御策です。依存関係のゼロデイが開示されたとき、deployまで数日ではなく数分の距離にいたいものです。
常時露出の低減
長期間有効なsecretと広範な権限を最小化することで、攻撃者がゼロデイを悪用したとしても、彼らができることを制限します。短期間有効な認証情報と、隔離された使い捨てのrunnerは、成功したエクスプロイトの影響範囲を封じ込めます。
重要なポイント
- ゼロデイとは、攻撃時点で利用可能なパッチがない脆弱性です。
- 実際の侵害のほとんどは、更新が遅いシステム上の既知の、すでにパッチ済みの欠陥を悪用します。
- 高速なCI/CD pipelineは、パッチのリリースからデプロイまでの期間を短縮します。