ゼロデイ攻撃(ゼロデイアタック)とは? 脆弱性の検知方法と対策について
修正プログラムが提供される前を狙うサイバー攻撃「ゼロデイ攻撃」。 脆弱性を解消する手段がない状況下で、いわゆる素手の状態で攻撃されるため、非常に対策の難しいサイバー攻撃として知られています。 本記事では、ゼロデイ攻撃の検知方法と対策について解説します。
目次
ゼロデイ攻撃とは?

ゼロデイ攻撃とは、セキュリティホールが開発元に発見される前に、サイバー攻撃を行うこと。
開発元が修正プログラムを発表する前に脆弱性を発見するため、パターンマッチング方式などで検知・防御ができないのが、このサイバー攻撃の最大の特徴です。 修正プログラムが発表日である「ワンデイ(OneDay)」よりも、前に攻撃を仕掛けることから、「ゼロデイ」と呼ばれるようになりました。
対策0日(ゼロデイ)で行われるサイバー攻撃
上述したように、脆弱性を修正する間もなく攻撃を仕掛けるため、非常に対応が難しいです。 では、脆弱性がないソフトウェアやアプリケーションを使えばよいかと言うとそういうわけにもいかないのが現状です。
ソフトウェアやアプリケーションはたえず、PCやスマホの進化に合わせて、またさまざまなソフトやツールとの互換性を保つために、アップデートという作業を日々繰り返します。
そのため、100%セキュリティーホールが出ないソフトウェアやアプリケーションを開発することは現実的に困難なのです。
主な攻撃手法はマルウェア
ゼロデイ攻撃で使われる主な手法はマルウェアです。 不特定多数を狙った手法もありますが、特定の対象を狙った「標的型攻撃」の割合が多い傾向にあります。 その対象にカスタムしたマルウェアになっているため、検知したころにはすでに多くのサイトがクラッキング、また機密情報が流出しているなど手遅れになっているケースが大半です。
マルウェアは、今や世界で1分に244個の新種が誕生していると言われています。 僅かな違いであっても亜種・新種のマルウェアであれば、容易にセキュリティソフトをすり抜けてしまうため、セキュリティソフト開発側と攻撃者で「いたちごっこ」になっているのが現状です。
脆弱性とは?

脆弱性とは、プログラムの不具合や設計ミスによって起こったセキュリティにおける欠陥やバグのことを指します。 「セキュリティホール」と呼ぶこともあります。
脆弱性は、システム操作のミスにより発露することもあれば、ブラウザやOSのアップデートなどの互換性でエラーが起こる場合など、外的要因によっても脆弱性が生じます。
一般的に、開発元によって脆弱性がないか日々チェックが行われているため、セキュリティパッチが公式サイトなどで発表されますが、全てのソフトウェアやプログラムにおいて脆弱性のチェックが行われているとは限りません。
今では個人もソフトウェアやアプリケーションを開発し販売することができるため、ダウンロード・使用前に開発者情報をチェックするというプロセスが利用者にも求められます。
また現在、WordPressはオープンソースソフトウェアであり、誰でもかんたんに応用して使えるよう、プログラムコードが公開されています。 この仕組を逆手にとり、脆弱性を発見して、サイバー攻撃を仕掛ける事例も増えています。
脆弱性は、放置されると不正アクセスや情報漏えいなどの原因になり、甚大な被害をもたらします。 また開発元は、脆弱性を改善するまでサービスの停止を余儀なくされ、多大な改善コストとユーザー対応に追われます。
脆弱性が発生する要因

なぜ、脆弱性が発生してしまうのでしょうか? その要因は主に以下の3つが挙げられます。
最初、完璧な設計を行ったつもりでも、後々になって予測しなかった使われ方をして、想定外の挙動が起こるケースは多いです。
ソフトウェアやアプリケーションでは、リリース前に必ずバグや欠陥がないか「デバック」と呼ばれる作業が行われますが、例えば、アップデート作業中にミスが起こるケースもあります。
その他、外的な要因として、OSやブラウザの互換性でエラーが起こり脆弱性が生まれるケース、WordPressなど、オープンソースソフトウェアのものを利用しWebサイトを作っている場合に、プラグインやテーマに脆弱性が見つかり、そのままサイト全体に悪影響を及ぼすケースもあります。
脆弱性の種類


脆弱性にはいくつか種類があります。 脆弱性は、米MITRE社が管理する脆弱性識別子「CWE(Common Weakness Enumeration)」が世界共通とされており、日本語では「共通脆弱性タイプ一覧」と訳されます。 CWEでは、脆弱性を大きく4つのタイプに分類し、管理されます。
ゼロデイ攻撃が増える背景

一つには、ソフトウェアやアプリケーションの数が年々増えていることが挙げられます。 アップデートし続けることが前提である今、100%脆弱性を取り除くことは困難を極めます。 脆弱性が修正されないままで放置されれば、サイバー攻撃の温床となり、各所に甚大な被害を及ぼします。
もう一つが、クラッカーの脆弱性を発見する精度が向上していることが挙げられます。 ゼロデイ攻撃のきっかけとなる脆弱性情報は、今やダークウェブなどで取引され、サイバー攻撃で使用されるマルウェア自体も高値で売られるケースが増えてきています。 また、AI技術を悪用してアプリケーションやソフトウェアの脆弱性を分析し、ハッキングを試みるクラッカーも登場してきており、より巧妙かつ複雑な手口になっています。
ゼロデイ攻撃による被害事例

脆弱性を突いて、「ゼロデイ攻撃」される例は年々増加しています。 実際の被害事例をいくつかご紹介します。
SCADA(産業制御システム)
Windoe OSの脆弱性を利用し、産業用制御システムの一種である「SCADA(Supervisory Control And Data Acquisition)」にサイバー攻撃された事案。 ロシア政府と関連のあるハッカー集団「サンドワーム・チーム(Sandworm Team)」が関与したとみられています。 ロシアと対立しているウクライナ、ポーランドにあるSCADAが標的にされました。
Adobe Flash Player
世界的にもユーザーの多いAdobe Flash Playerでは、幾度となくゼロデイ攻撃が行われています。 2014年10月には「Pawn Storm 作戦」にAdobe Flash Playerの脆弱性が利用され、2018年1月には脆弱性「CVE-2018-4878」が明らかになり、Windowsを対象の標的型攻撃で悪用されたと報告しています。
Bash
Linuxなどで利用されているオープンソースプログラムである「Bash」に次々と脆弱性が発覚した事案。この脆弱性を悪用し、ゼロデイ攻撃が行われました。 深刻な状況を受け、IPA(独立行政法人 情報処理推進機構)も緊急発令を行いました。 当時、多くの企業のサーバーの運用管理で使われており、被害範囲も広範囲かつ被害が甚大であったため、「シェルショック事件」として後に名を残しました。 ゼロデイ攻撃の事案の中では最も有名。
Google Chrome
2019年3月に、GoogleChromeの最新版「72.0.3626.121」において、脆弱性(CVE-2019-5786)が発見されました。 セキュリティパッチが発表される前に、ゼロデイ攻撃が行われたといわれています。 原因としては、Chromeに存在する「FileReader」のメモリ管理エラーとされています。
Internet Explorer
2020年1月17日、Internet Explorerに関するリモートコード実行(RCE)の脆弱性「CVE-2020-0674」が発見されました。 この脆弱性を悪用し、攻撃者が新しいアカウントを作成したり、データを改ざんしたり、マルウェアをインストールさせたりするなどの攻撃を仕掛ける可能性があります。
UNACEV2
圧縮ファイルを解答する際に使われるダイナミックリンクライブラリ(DLL)のUNACEV2に、「ディレクトリトラバーサル」と呼ばれる脆弱性が見られました。 このUNACEV2というライブラリは、有名なところだと「WinRAR」「Explzh」でも使用されており、特にExplzhは、XP から Window10 に対応した圧縮解凍ソフトであり、ユーザーは数億人以上と推定されます。 脆弱性を悪用されると、通常ではアクセスできないはずのディレクトリやファイルにアクセスできてしまいます。
ゼロデイ攻撃への対策

ゼロデイ攻撃を防ぐには、複数の防護柵を張り、対処することがきわめて肝心です。
サンドボックスの構築
サンドボックスとは直訳すると「砂場」となり、まさに子供の遊び場のように、攻撃者に「好きなように攻撃されても良いおとり環境」のことを指します。 サンドボックスを構築することで、マルウェアなど悪質なファイルの隔離を行うことができたり、サイバー攻撃の傾向を分析できます。
ただし、サンドボックスも万能ではなく、サンドボックスと判断し動作を止める巧妙なマルウェアも存在し、全てのマルウェアに通用するわけではありません。
また、サンドボックスはあくまでサイバー攻撃をおびき寄せるワナに過ぎず、根本的な遮断の手段にはなりえません。 サンドボックスに侵入している場合、本体の部分にもサイバー攻撃の手が及んでいるケースも多いです。
ホワイトリスト式セキュリティの導入
ホワイトリストとは、警戒する必要がなく安全と認められた対象について、起動・実行を許可する方式のこと。 これとは反対に、警戒すべき危険な対象を拒否する方式を「ブラックリスト」と呼びます。
有害なサイトの閲覧を遮断する「フィルタリングサービス」や、迷惑メール対策なども、ホワイトリスト/ブラックリスト方式の一つです。
ホワイトリストでは、セキュリティ上問題がないと判断したプログラムやアプリケーションのみ許可するため、偶発的なマルウェアの感染を防げます。 ブラックリストのように、信用性が低いものだけ遮断するという方式ではないため、新しいものに関しては一つずつ登録が必要になり、管理が少々煩雑になります。
「脆弱性診断ツール」を利用する

自身のWebサイトやアプリケーションの脆弱性を判断したいのであれば、「脆弱性診断ツール」を利用しましょう。 無料のものと有料の2種類があります。
まとめ

ゼロデイ攻撃は、開発元がセキュリティパッチを出す前に行われるサイバー攻撃のため、対策が難しいです。
日々利用しているソフトウェアやアプリケーションの脆弱性の確認や、ブラウザやOS等のバージョン更新をこまめに行い、基本的なセキュリティ対策を合わせて行いましょう。