ゼロデイ攻撃の仕組み
「ゼロデイ(0-day)」は、開発者が脆弱性を修正するための猶予が「0日」しかない、という意味です。開発者が弱点に気づく前、または気づいていても修正版を出す前に攻撃が始まるため、更新をきちんと行っているサイトでも防ぎきれないことがあります。
たとえるなら、鍵メーカーがまだ把握していない錠前の欠陥を、泥棒が先に見つけて使い始めるようなものです。家の人がいつも最新の鍵に替えていても、メーカーの対策が出るまでは同じ手口で開けられてしまいます。
なお、修正版が公開されたあとは、脆弱性の内容が広く知られ、攻撃の方法も出回りやすくなります。そのため、更新していないサイトはかえって狙われやすくなります。
WordPressサイトでの例
WordPressでは、利用者の多いプラグインに未修正の脆弱性が見つかり、修正版が出る前から攻撃が始まる、ということが起こります。そうした場面では、次のような状況になりがちです。
- 開発者が修正版を準備している間に、攻撃が先に広まってしまう
- 修正版が公開されても、自動更新を有効にしていないサイトでは、更新するまで無防備な状態が続く
- 開発が止まったプラグインでは、修正版そのものが出ず、ゼロデイと同じ状態がいつまでも続く
利用者が多いプラグインほど、一つの弱点で多くのサイトを狙えるため、攻撃者にとって効率のよい標的になります。
見つけ方・確認方法
ゼロデイ攻撃は、まだ知られていない弱点を突くため、事前に「この脆弱性がある」と確かめることはできません。気づくきっかけになるのは、攻撃を受けたあとの変化です。
- 見覚えのないファイルや管理者ユーザーが増えていないか確認する
- アクセスログに、特定のプラグインのファイルへの不審なアクセスが急に増えていないか確認する
- 使っているプラグインの公式ページやセキュリティ情報サイトで、新しい脆弱性の発表がないか確認する
対策
ゼロデイ攻撃を完全に防ぐ方法はありません。そのため、「入られにくくする」「入られてもすぐ気づく」「元に戻せる」の3つを組み合わせて備えます。
- WAFを使い、よくある攻撃のパターンを遮断する。修正版が出るまでの時間稼ぎになることがあります
- 使うプラグインを必要なものに絞り、狙われる入口を減らす
- 修正版(パッチ)が出たら、すぐに適用する。プラグインの自動更新も検討する
- ファイルの改ざん検知と、定期的なバックアップを用意する
被害に気づいたときは、修正版の有無にかかわらず、侵入の痕跡が残っていないかを確認してください。判断に迷う場合は、専門業者に相談するのも一つの方法です。

