セキュリティ担当者は、「絶対に安全なセキュリティなど存在しない」ということを肝に銘じておく必要があります。どんなに万全なセキュリティ対策を整えても、悪意のあるユーザは脆弱性を探したり、あるいは新しい技術との組み合わせによりまったく異なる穴を作り出したり…といったいたちごっこが、ここ十年以上繰り返されているのです。
この現実を振り返る上で重要な言葉が「ゼロデイ攻撃」です。
重要な情報を取り扱う人間も、そうでない人間も、常にセキュリティを整え、セキュリティソフトを準備しておかなければならない最大の要因と言っても過言ではありません。今回はそんな「ゼロデイ攻撃」とはいったい何なのか、考えてみましょう。
ゼロデイ攻撃とは
ゼロデイ攻撃とは、一般的には(誰によって発見されたかは問わず) 脆弱性が発見されて、修正プログラムが提供されるタイミングより前に攻撃が発生することを指した言葉です。元々は、悪意あるユーザが修正プログラム配布前に攻撃すること全体を指して使われていたのですが、現在では、「脆弱性が報告され、周知されたタイミング」から「修正プログラム配布前」に攻撃されたものを特別に指してゼロデイ攻撃ということもあります。
過去には脆弱性が報告されたにも関わらず、プログラム開発メーカーが対応を嫌がり、修正プログラムを出さないために、脆弱性の発見者が警鐘を鳴らすためにオープンな場で脆弱性を発表し、その脆弱性が周知されてしまうという例がありました。結果として悪意あるユーザによりゼロデイ攻撃が可能になってしまい、実際に攻撃が行われたケースも存在しています。
一方、「ゼロデイ攻撃」という言葉は本来、より広い意味をもっており、セキュリティの穴を悪意あるユーザが利用し、第三者のコンピュータに対して攻撃を行うことを指します。「すべてのソフトウェアにおいて、脆弱性が含まれている可能性が0になることはない」という説がありますが、複雑化したプログラムの中では多くの要素が連携しており、どこかに穴があったとしてもピンポイントに気づくことが難しい点が狙われるのです。
本来、穴が発見されると「脆弱性」として報告され、その脆弱性を修正するためにセキュリティパッチが公開されていきますが、実は穴が発見されてもすべてが報告されるわけではないため、悪意あるユーザにとって「つけ入るスキ」となってしまうのです。
ゼロデイ攻撃の発生件数
ゼロデイ攻撃が何件くらい発生しているか、を明確にすることは非常に難しいことです。マルウェアなどを介在して攻撃が実施されたり、フィッシング経由により感染したりといった具合に、ゼロデイ攻撃は複数の攻撃手法と共に実行されることが多く、ゼロデイ攻撃単体として明確に「どのくらい増えているか」「一日どれくらい発生しているのか」を知ることは難しくなっています。
しかしながら、ゼロデイ攻撃の温床となる、脆弱性の発見については日々留まるところを知りません。大手のソフトウェアでも年に数回は大きな脆弱性が発見されていたりします。
ゼロデイのデータベースとして有名なものにZER0-DAY.czがあります。ゼロデイとなっている脆弱性などが報告されており、いつ対処されるのかといった情報が載っていますが、特に大手ソフトウェアベンダーでは2012年から2016年にかけて数多くの脆弱性が報告されています。その後下火にはなっていますが、実態は統計以上に脆弱性を突いたゼロデイ攻撃が実施されていると言われているのです。
ゼロデイ攻撃の事例
有名なゼロデイ攻撃の例として2008年に検出されたConflickerというWindowsなどを標的としたコンピュータワームの事例があります。(閲覧注意 : ミミズの画像が含まれます)このソフトウェアはネットワークサービスのSMBの脆弱性を利用することで次から次へとコンピュータに感染をしていき、190ヶ国以上、1100万を超えるコンピュータ・デバイスが感染したと言われています。
このワームはコンピュータの制御をのっとり、悪意ある攻撃を可能にするというものでした。幸いにも実際の被害を伴う攻撃は実施されていないと言われていますが、ゼロデイ脆弱性を経由したおぞましい数の感染例と言えるでしょう。
また、明確にはゼロデイではありませんが、2017年に発生したランサムウェアWannaCryは、ゼロデイ攻撃にとても近いものと言えます。WannaCryがあれほどまでに感染を拡大させた最大の要因は、ゼロデイで発見された脆弱性でした。(流出経路が非常に特徴的だったのもひとつの要因ではあります)
このとき、セキュリティパッチはすでに公開されていたのですが、残念なことにこのセキュリティパッチを適用しているユーザは多くなく、結果として数多くの企業や個人のコンピュータが感染し、社会的な混乱まで引き起こしました。
ゼロデイ攻撃に対する対応策
ゼロデイ攻撃はこのように、「まだ見つかっていない」「まだ報告されていない」「まだ対策されていない」という検知が非常に難しい攻撃の類いです。ゼロデイを含む未知の攻撃を防ぐために、特にセキュリティソフトではいかにして攻撃を検出するかということに注力してきました。
プログラムのふるまいを検知し、不穏な動作をするようであればその動作を強制停止するといったことはもちろんのこと、一般的に知られていないプログラムであれば、コンピュータ内のセキュリティソフトが用意した箱庭内で動作させ、安全かどうかを検証するサンドボックス機能、プログラムの動作を予測してマルウェアか調査するヒューリスティック機能など、多くの技術によりゼロデイ攻撃を含めた未知の攻撃への対策をとっているのです。
また、最近ではOS自体に「プログラムに対して不穏な動作をさせない」機能を盛り込む傾向があります。セキュリティソフトが導入されてないコンピュータであっても最低限の防御を行えるようになっているのです。(もっとも、セキュリティソフトなしで動作させるのは企業にとっては愚行以外のなにものでもありません)
社内での検知方法
さて、そんなゼロデイ攻撃ですが、企業において検知する手段は大きく分けて二つ存在しています。
ひとつは個別のコンピュータに対してのセキュリティソフト導入による対策。これは前項で紹介した通りです。
もうひとつが、入り口対策です。企業のネットワークの入り口にファイルウォールやUTMなどを設置することによってネットワークを流れるデータ自体を検証し、そのふるまいを分析することによって攻撃を遮断するという手法を指します。
二つを組み合わせることによって、よりセキュリティの安全性を高めることができます。必要に応じて検討すると良いでしょう。
まとめ ゼロデイは他山の石ではない、常に備えよ
ゼロデイ攻撃が蔓延した2010年台中盤以降、「脆弱性発見に対して懸賞金をかける」というIT企業も出てきました。これにより著名なハッカーが脆弱性を企業に報告し、ゼロデイ攻撃を防ぐことができている実例は増えつつあります。
その一方で、懸賞金を支払わなかったことに腹を立てたハッカーが脆弱性を公開してしまう、という事例もあります。また、「今日パッチを当てなくてもいいや」などの慢心から、本来はゼロデイを未然に防げたにも関わらず被害を受けた実例も多く存在しています。
自分が被害者にならないためにも、セキュリティソフトやUTMなどで万全のネットワーク環境を構築しましょう。