ゼロデイ攻撃のゼロってどういう意味?攻撃手法と対策について
ゼロデイ攻撃 をご存知でしょうか。
ゼロデイ攻撃とはアプリケーションやソフトウェアの脆弱性や不具合に対して、修正パッチが適用される前に、その脆弱性や不具合を利用して行われるサイバー攻撃を指します。
脆弱性を解消するパッチなどが提供された日を One Day として捉えた場合、それより以前の期間は Zero Day(脆弱性を解消するための対策がない状態)となるため、ゼロデイ攻撃と呼称されています。
本記事ではゼロデイ攻撃の概要から対策方法についてをご紹介します。
ゼロデイ攻撃の流れ
具体的にゼロデイ攻撃が行われるまでの流れを見ていきましょう。
時系列で整理すると、ゼロデイ攻撃は以下のような流れで発生します。
ある製品の脆弱性に対するゼロデイ攻撃の例
- あるベンダーがソフトウェアを開発し、リリースしました。(しかしソフトウェアには、開発元が気づいていない脆弱性が存在しています。)
- 攻撃者は開発元より先に脆弱性を発見します。
- 脆弱性が修正される前に、攻撃者はその脆弱性を悪用するエクスプロイト・コード(攻撃コード)を作成、実装し、ゼロデイ攻撃を仕掛けます。(攻撃コードは攻擊者間で配布や提供などの方法で入手することもあります。)
- エクスプロイト・コードによるゼロデイ攻撃が行われ、不正アクセスや情報漏えいなどの被害が発生します。
上記が簡易なゼロデイ攻撃の流れです。
なお、ここで利用されるエクスプロイト・コードはゼロデイエクスプロイトとも呼ばれ、対策が存在しないため非常に効果的かつ危険なコードです。
利用される不具合や脆弱性はさまざまですが、以前のブログ記事でもご紹介した以下のような脆弱性は利用されることが多いです。
ゼロデイ攻撃の特徴と危険性
なぜゼロデイ攻撃は危険なのでしょうか。
その理由はゼロデイ攻撃にはクリティカルな対策が存在しないことに尽きます。
製品ベンダーはゼロデイ対策で利用された脆弱性や不具合を発見しなければ修正パッチなどを含めた対策を提供することができません。
つまり発見までにかかる時間はなすすべなくゼロデイ攻撃の標的となる状況が続きます。
また、修正パッチが開発/提供された後でも、ユーザーは自分たちのシステムに修正パッチを適用する必要があります。
この期間もゼロデイ攻撃の対象となります。
ゼロデイ攻撃の危険度をさらに増加させるのは、一部の先進的なサイバー犯罪組織などがゼロデイ攻撃を戦略的に使用しているということです。
これらのグループは、ダークウェブなどを利用してまだ公開されていない脆弱性やゼロデイエクスプロイトを取引したり配布しています。
この場合には意図的に脆弱性の発見や攻撃までが組織ぐるみで行われるため、非常にスムーズにゼロデイ攻撃の被害に結びつきます。
ゼロデイ攻撃の種類
ゼロデイ攻撃にはどのような種類の攻撃が存在するのでしょうか。
ゼロデイ攻撃は大きく 2 つの種類に分けられます。
標的型ゼロデイ攻撃
標的型ゼロデイ攻撃はターゲットに対して明確に狙いを定め、ゼロデイ攻撃を仕掛ける方法です。
対象となるターゲットは、政府や公的機関、大企業、企業システムへの特権アクセス、機密データへのアクセスなどさまざまです。
非標的型ゼロデイ攻撃
非標的型ゼロデイ攻撃は不特定多数のユーザーに対して広く行われます。
※組織に所属しているなども問いません。
攻撃者は各 PC や Web ブラウザから OS やソフトウェアなどの製品に存在する脆弱性や不具合を利用したゼロデイ攻撃を仕掛けます。
そして、たとえば大規模なボットネット(攻撃者がマルウェアや悪意あるプログラムを使用して乗っ取った多数のゾンビコンピュータで構成されるネットワークのこと)などを構築します。
最近では WannaCry 攻撃で、Windows SMB ファイルプロトコルの EternalBlue エクスプロイトを使用して、1 日で 200,000 台を超えるマシンが侵害されたという報告が存在します。
ゼロデイ攻撃への対策
ゼロデイ攻撃には対策は存在しないのでしょうか。
前項のとおりゼロデイ攻撃は、まだ発見されていなかつたり、修正方法が提供されていない脆弱性や不具合を突いた攻撃です。
そのため、攻撃に前もって備えるという根本的な対策を打つことは難しいのが現状です。
しかし、以下に挙げるような対策を講じることで、万が一ゼロデイ攻撃を受けた場合でも、被害を回避、もしくは被害を低減につなげる可能性を高めることはできます。
ここでは数種類の対策をご紹介します。
開発元から提供される対応策を速やかに適用する
各製品の開発元から脆弱性を修正するプログラムが提供された場合には、可及的速やかに自アプリケーションやシステムに適用する対応策です。
また修正パッチの提供に先立って、被害を低減、回避するための対応策(設定変更など)が提供されることもあります。
これらの情報は CVE や NVD などの公開情報や対象の製品ベンダーの製品サイトなどで提供されます。
そのため常に情報収集を欠かさず、対応策が発表され次第、検討 / 適用することが重要です。
入口対策を行う
入口対策とは外からの侵入などのサイバー攻撃への対策を指します。
具体的にはファイアウォール(外からの不正な通信をブロック)、サンドボックス(不正なファイルなどを開いた時に異常な動きがないかを分析、外部への影響をブロック)などを利用し、入口部分で可能な限りサイバー攻撃を防ぎます。
多層防御による被害の最小化
ゼロデイ攻撃を受けた場合にも、防御策を複数設けることで被害を抑えることが可能です。
たとえばゼロデイ攻撃により不正アクセスを受けたり、マルウェアを仕掛けられた場合にも、機密情報などの資産に到達される可能性を下げるなどの対策です。
具体例としては以下のようなものが存在します。
- 機密情報を他のサーバーへ隔離する
- ファイルの暗号化
- ホワイトリスト型のセキュリティツール(動作を許可したアプリケーション以外は、起動や実行ができないように制限する)を導入
ホワイトハッカーや脆弱性診断サービスの利用
アプリケーションを解析、ハッキングし、未知の脆弱性を製品側に報告する等の活動を行い、技術を善良な目的に活かすハッカーをホワイトハッカーと呼びます。
このホワイトハッカーやユーザーコミュニティなどの協力を得ることもゼロデイ攻撃に対するひとつの対抗策となります。
またシステムやアプリケーションの脆弱性診断を提供するサービスやツールも存在します。
危険な脆弱性の検出や対応を効率的に行うことが可能になるため、ゼロデイ攻撃のリスクを低減する有効な対策といえます。
ゼロデイ攻撃に対する製品やシステムの開発側の対策で重要なことはいかに攻撃者よりも早く未知の脆弱性を見つけるかということです。
しかしながら自社内だけでそれらに対応することはリソースや時間と言った面で必ずしも対応可能とは言えません。
そのため、ベンダーの中には、自社製品の脆弱性を報告してくれた人に懸賞金を出す(バグバウンティと呼ばれる制度)などの対応を行っている会社もあります。
さいごに
ゼロデイ攻撃は Web アプリケーション開発者のみならず、Web サイトの運営者も必ず注意を払うべき脆弱性であり、また根本的かつクリティカルな対策が取りづらい攻撃となります。
ゼロデイ攻撃につながるような危険度の高い脆弱性や不具合は日々新たに発見されています。
開発時には存在していなくとも、運用開始後に発見される脆弱性も珍しくありません。
そして攻撃者は日々新たな脆弱性をキャッチし、攻撃の機会を伺っています。
脆弱性に対する修正パッチなどの適用を見送った場合には、脆弱性が攻撃可能な状態のまま放置されることになり、サイバー攻撃の被害を受けるリスクが高くなります。
ゼロデイ攻撃のリスクを抑えるためには、脆弱性を正しく理解し、適切な対応を行うことが大切になります。
脆弱性対策や管理を効率的に行うことで、システム / プロダクト開発にリソースを集中することも可能になるでしょう。
また日々発見される脆弱性や不具合は膨大であり、そのすべてを人間の目で確認し、対応を検討することは多大な工数がかかります。
この対応には脆弱性対策ツールや脆弱性管理ツールなどのサービスも提供されているため、それらの利用も検討に入れてもいいかもしれません。
最後になりますが、ゼロデイ攻撃につながる脆弱性の検出ならびに攻撃される危険性の高さ等を基準にした脆弱性の自動判別は、脆弱性自動管理ツール「yamory」を用いることで可能です。
ぜひ一度お試しいただければ幸いです。