修正プログラムが提供される前の未知の脆弱性を突く攻撃。
ゼロデイ攻撃とは、修正プログラムが提供される前の未知の脆弱性を突く攻撃です。脆弱性(=ソフトウェアに潜む安全上の欠陥のこと)が見つかっても、それを直すための修正プログラム(パッチ)がまだ用意されていない段階を狙います。
ふつう、ソフトウェアの欠陥が見つかると、開発者が修正プログラムを作って配布し、利用者がそれを当てることで安全になります。しかしゼロデイ攻撃は、その修正がまだ存在しないタイミングで行われるため、守る側に有効な手立てがなく、極めて防ぎにくいのです。
身近な例で考えると、家の鍵に欠陥が見つかったのに、まだ交換用の鍵が売られていない状態に似ています。泥棒だけがその欠陥を知っていれば、住人が対策できないうちに侵入されてしまいます。上の図解では、攻撃から修正公開までの時間の流れを示しています。
ゼロデイ攻撃が特に危険なのは、守る側に準備の時間がまったくないからです。脆弱性の存在を攻撃者だけが知っていて、開発者や利用者が気づいていない状態では、対策のしようがありません。
危険性を高めている主な要因は次のとおりです。
・修正プログラムが存在しない:パッチを当てるという基本対策が使えない
・検知されにくい:未知の手口のため、既知のパターンに頼るウイルス対策ソフトをすり抜けやすい
・標的型攻撃と組み合わさる:特定の組織を狙う攻撃に使われると、被害が深刻化しやすい
身近な例で考えると、誰も知らない抜け道を泥棒だけが知っている状況に似ています。地図(既知の脆弱性一覧)に載っていない道なので、警備員が見回っても見つけられず、対処が後手に回ってしまうのです。
修正プログラムがない以上「脆弱性そのものを直す」対策は使えません。そこで、攻撃を受けても被害を最小限に抑えるという考え方が中心になります。
代表的な対策は次のとおりです。
・挙動検知の導入:EDR(端末の不審な動きを監視・対処する仕組み)などで、未知の攻撃でも「いつもと違う動き」から異常を見つける
・多層防御:1つの防御が破られても次の防御で食い止められるよう、対策を何重にも重ねる
・迅速なパッチ適用:修正プログラムが公開されたら、できるだけ早く適用して無防備な期間を短くする
・最小権限・分離:万一侵入されても被害が広がらないよう、権限やネットワークを区切る
身近な例で考えると、玄関の鍵だけでなく、防犯カメラ・センサー・金庫を組み合わせるのと同じ発想です。1つの守りを突破されても被害を最小限にとどめ、欠陥を直す鍵(修正プログラム)が届いたら速やかに交換するのが、ゼロデイ攻撃への現実的な備えになります。
ゼロデイ攻撃が防げない理由は、セキュリティ対策の「仕組みの限界」にあります。普通のウイルス対策ソフト(=マルウェア検知ソフトのこと)は、既知の攻撃パターンを記録したリストと照合することで危険を見つけます。
しかしゼロデイ攻撃はまだ誰も知らない手口を使うため、そのリストに載っていません。結果として、次の構造的な問題が生まれます。
・修正プログラムがない:欠陥そのものを直す手段が存在しない
・パターン一覧(シグネチャ)に載っていない:既知の攻撃と照合するウイルス対策ソフトが素通りさせてしまう
・開発者ですら知らない:誰も気づいていないうちに攻撃が進むことがある
身近な例で考えると、「手配書(既知の犯罪者一覧)に載っていない犯人」のようなものです。警備員がどれだけ手配書をチェックしても、そこに顔写真がなければ入場を止められません。だからこそ、「怪しい行動をしていないか」を見る挙動ベースの監視が有効なのです。
| 用語 | 意味 | たとえ |
|---|---|---|
| 脆弱性 | ソフトウェアに潜む安全上の欠陥 | 家の鍵の欠陥 |
| パッチ | 脆弱性を修正するプログラム | 新しい鍵への交換 |
| ゼロデイ | パッチが出る前の無防備な期間 | 欠陥を知るのは泥棒だけの状態 |
| ゼロデイ攻撃 | ゼロデイ期間に脆弱性を突く攻撃 | その状態で侵入される |
この4つの用語はセットで理解するのが重要です。脆弱性が見つかる → 攻撃者がそれを利用する(ゼロデイ攻撃)→ 開発者が気づいてパッチを作る → 利用者が適用して安全になる、という流れが基本です。
なお「ゼロデイ」という名前の由来は、「修正に使える猶予日数がゼロ(0日)」という意味です。守る側に準備する時間がないことを表しています。修正プログラムが出た後に攻撃が続く場合は「ワンデイ攻撃」「Nデイ攻撃」とも呼ばれますが、最も危険なのがパッチのないゼロデイ期間です。