ゼロデイ攻撃とは?修正版が出る前に狙われる脆弱性

修正までの時間差を、欠けた部品のあるサーバーと砂時計で表した模型

30秒でわかる答え

ゼロデイ攻撃とは?

ゼロデイ攻撃は、修正版が提供される前などに、ソフトウェアの弱点を悪用する攻撃です。「新しい問題が発表されたこと」と「修正の準備が整う前に攻撃されたこと」は、分けて考える必要があります。

ゼロデイ攻撃は、修正版が提供される前などに、ソフトウェアの弱点を悪用する攻撃です。「新しい問題が発表されたこと」と「修正の準備が整う前に攻撃されたこと」は、分けて考える必要があります。

昨日まで普通に使っていたアプリに、突然「ゼロデイ」という言葉が付くと、不安になるかもしれません。何が新しいのかを、問題の公表、修正版、実際の悪用の三つに分けると、発表の意味を読み取りやすくなります。

ゼロデイ攻撃とは、修正版を待つ間などに起きる攻撃

ソフトウェアにある、安全上の弱点を脆弱性と呼びます。開発元が問題を直したプログラムは「修正版」「修正プログラム」「パッチ」などと呼ばれます。

警察庁は、メーカーが修正プログラムを配布するまでの間に、その弱点を利用して行う攻撃をゼロデイ攻撃と説明しています。警察庁の基本的なセキュリティ対策

修正版が出ていれば、対象の環境へ適用する対策を取れます。しかし、それがまだない段階では、修正版へ入れ替えるという方法を選べません。この時間差が、ゼロデイを理解するうえで大切です。

ゼロデイは「発見したその日だけ」という意味ではない

「ゼロ日」という名前でも、攻撃できる期間が一日未満に限られるわけではありません。問題の発見、開発元への連絡、公表、修正版の提供が、すべて同じ日に行われるとは限らないためです。

また、資料によっては、これまで知られていなかった弱点を悪用する点に重きを置きます。NISTの用語集も、そのように定義しています。NISTのzero-day attackの定義

呼び方だけで状況を決めず、いつ問題が知られ、いつ修正版が出て、いつの攻撃が確認されたかを見ることが重要です。開発元が問題を把握していても、修正版の提供前に攻撃される場合があります。

ゼロデイ脆弱性とゼロデイ攻撃は同じ?

「脆弱性」は弱点そのもの、「攻撃」はその弱点を悪用する行為です。弱点が見つかったという発表だけで、実際に攻撃が起きたと決めることはできません。

ニュースで「悪用を確認」「攻撃を観測」と書かれているか、それとも「悪用される可能性がある」と書かれているかも区別して読みます。後者だけなら、その文章は実際の被害を確認したとは言っていません。

ゼロデイと修正済みの脆弱性を狙う攻撃の違い

次の図は、順番を理解するための架空の例です。実際の事件の日付や、修正にかかる日数を示すものではありません。

例1:攻撃が、修正版の提供に先行する
1弱点が悪用される

この時点では修正版を入手できない

2修正版が提供される

更新による対策を取れるようになる

ゼロデイ攻撃を理解するための例。発見や公表のタイミング、修正までの期間は事例によって異なります。

例2:修正版の提供後も、未更新の環境が狙われる
1修正版が提供される

使っている環境には、まだ適用されていない

2古い環境が攻撃される

直せる弱点でも、その環境には残っている

修正版が出ることと、使っている環境で対策が完了することは別です。図の順番は架空の例です。

上の例では、攻撃が起きた時点で修正版がありません。下の例では、修正版はすでに出ていますが、使っている環境への適用が済んでいません。

修正版の公開後に、既知の弱点を狙う攻撃は「Nデイ攻撃」などと呼ばれることがあります。大切なのは用語よりも、修正版が存在するかと、自分の環境に適用されたかは別だということです。

「既知」なら安全、という意味でもない

知られている弱点でも、更新されていない環境では問題が残ります。ゼロデイという言葉が付かないから、対応の優先度が低いとは限りません。

逆に、今は修正版が出ている事件でも、調査の結果、提供前から悪用されていたと分かる場合があります。ニュースを読んだ日と、攻撃が起きた日を混同しないようにします。

新しいCVE番号だけでは、ゼロデイと判断できない

CVEは、脆弱性を区別して情報を共有するための識別番号です。番号が発表されたというだけでは、修正版の有無や、実際に攻撃されたかまでは分かりません。

CVE番号と、深刻さの評価であるCVSSの詳しい違いは、CVEとCVSSの違いで説明しています。本稿で押さえたいのは、番号、深刻さ、攻撃の有無を、それぞれ別の情報として読むことです。

ゼロデイ対策で修正版以外に確認する公式案内

修正版がまだない場合でも、何もできないとは限りません。提供元が、問題に関わる機能の一時停止や、接続範囲の制限などを案内することがあります。このように、原因を直接直す以外の方法で影響を避けるものを「回避策」「ワークアラウンド」と呼びます。

JVNという脆弱性対策情報のサイトも、製品とバージョン、開発元の対策に加え、回避策を掲載する場合があると説明しています。JVNに掲載される情報

公式発表では、三つの情報を別々に読む

確認すること読み取れることそれだけでは決まらないこと
公表日・更新日と対象製品いつの案内で、何が対象か最初の攻撃がいつ起きたか
修正版の有無と対象の版更新による対策を取れるか自分の環境で更新が完了したか
悪用の確認状況実際の攻撃が報告されているか自分が被害を受けたか

一つのニュースを読むとき、この三つに印を付けるつもりで探してみてください。分からない項目は、分からないまま残してかまいません。見出しから補って断定するより、続報で確かめるほうが正確です。

回避策は、対象の機種や版、使っている機能に合うものを選ぶ必要があります。別の製品向けの設定を流用すると、使えなくなる機能が増えたり、別の問題を作ったりするおそれがあります。管理されている職場の端末なら、担当者の案内を確認します。

修正版が出たら、回避策の扱いも見直す

修正版が出た後は、提供元の案内に従って更新します。回避策をいつ戻すか、追加の設定が必要かは、同じ案内や続報で確認します。問題が直ったことと、過去の不正な操作による影響が消えることも別です。

個別の発表の読み方として、PHPの脆弱性と修正版も参考になります。ただし、その記事にある問題を、すべてゼロデイ攻撃だったと位置付けるものではありません。

ゼロデイのニュースで確かめたいのは、怖い名前の強さではなく、今使える対策が何か、自分の環境で誰が実施するかです。問題の公表と修正と悪用を分けることで、必要な対応を見失いにくくなります。

内容の最終確認日: