ゼロデイ攻撃はソフトウェアの脆弱性を突いた攻撃で、ベンダーの修正プログラム適用前のセキュリティ対策が出来ていない無防備な状態で攻撃にさらされます。この攻撃に対して私たちはどのような対策を講じていけばよいのでしょうか。そもそも何故ゼロデイ攻撃が発生するのか、攻撃事例の紹介とともに、今すぐできる被害に会わないための対策を考察していきます。
目次
1. ゼロデイ攻撃
1-1 ゼロデイ攻撃とは
ゼロデイ攻撃は、ゼロデイアタック (Zero Day Attack)とも呼ばれ、ソフトウェアにセキュリティ上の脆弱性(セキュリティホール)が発見されたときに、問題の存在自体が広く公表される前にその脆弱性を悪用して行われる攻撃のことを指します。セキュリティベンダーのパッチ適用前(修正プログラムの配布前)の攻撃であるため不可避的に発生しうるものです。
ゼロデイとは「0日」のことを指し、脆弱性の発見後修正プログラムの配布が1日目とした場合に、それより前の日(0日目)の攻撃を指してゼロデイ攻撃と呼ばれています。
※脆弱性:OSやソフトウェアのプログラムの不具合や設計上のミスが原因で発生するセキュリティ上の不具合のことで、ここが弱点となり、攻撃を受ける可能性があります。
1-2 ゼロデイ攻撃が発生する背景
通常、新たな脆弱性は、「脆弱性が発見される → 関係機関などに報告される → 修正プログラムが作成される」という流れで、発見後にセキュリティベンダーが修正プログラムを配布し、ユーザーがパッチを適用することで対策が完了します。
しかし、脆弱性の発見者が攻撃者だった場合や修正プログラムの配布前に脆弱性が公表された場合、脆弱性のあるソフトウェアを利用している端末側は、攻撃への対策ができていない無防備な状態となります。その隙を突かれ、ゼロデイ攻撃を受けてしまう可能性があります。
また、攻撃者がウィルスソフトで検知されないことを確認したマルウェア(未知のマルウェア)を作ることもあり、パターンファイルで100%防御することは難しくなっています。
例えば、Virus Totalは、50以上のアンチウィルス製品のエンジンを活用して、指定したファイルやURLを検査できるツールで、怪しいファイルやURLなどを調べることに活用することができます。(利用は無料ですが、機密情報のアップロードなどには注意が必要です。利用される際はご自身の責任においてご利用ください。)
ユーザーにしてみると不審なものを調べることができる便利なツールですが、攻撃者の側に立つとこのようなツールを使ってベンダーの製品で検知されないマルウェアのチェックができてしまいます。
<ゼロデイ攻撃の概要>
このように攻撃者だけが知っている「未知の脆弱性」、関係者は認識しているが修正プログラム適応前の「未対応の脆弱性」が存在する以上、ゼロデイ攻撃は避けることが難しい厄介な攻撃といえます。
1-3 ゼロデイ攻撃の事例
・Adobe Flash Playerのゼロデイ攻撃(WEB経由のゼロデイ攻撃)
2015年1月、JPCERTコーディネーションセンター(JPCERT/CC)が、「Flash Player」に危険な脆弱性があることを報告しました。Flashコンテンツを読み込むと悪意のあるプログラムが実行される恐れがあり、脆弱性を悪用したWeb経由の攻撃(ドライブバイダウンロード攻撃)が確認されていることをアドビシステムズが確認しました。
※ドライブバイダウンロード (Drive-by download)とは、ユーザーが知らない間に、悪意あるウェブサイトにアクセスしただけで、ブラウザやJavaアプレットなどを利用しているソフトウェアの脆弱性を突き、スパイウェアやランサムウェアなどの不正なソフトウェアをダウンロードさせ、感染させる攻撃のことを指します。
・Javaの脆弱性を利用したゼロデイ攻撃
2012年8月、脆弱性情報公開サイト「JVN」(Japan Vulnerability Notes)は、Oracle Java7の脆弱性が不正なファイルにより利用されたことを報告しました。バックドア型のプログラムで、Javaが備えているサンドボックスを回避して、任意のOSコマンドを実行し不正にリモート操作することができる可能性があると報告されました。
※バックドア(backdoor)とは、表口から入るのではなく、正規の方法ではないやり方で裏口から侵入することを指し、悪意のある攻撃者がコンピューターに不正アクセスした際に次回から容易にアクセスできるように抜け道(裏口)を設置することです。バックドアが設置されると遠隔操作されてしまったりします。
1-4 ゼロデイ攻撃の被害
ゼロデイ攻撃を受けると、ID・パスワードなどの情報搾取、不正アクセス、なりすまし、DOS攻撃、他のコンピューターを攻撃するための踏み台にされるなどの被害を受けることがあります。
2.ゼロデイ攻撃の対策
脆弱性の発見から修正プログラムの配布が始まるまでの期間、無防備な状態になってしまいますので、こういった事態を想定して事前に対策を講じておくことが必要です。
2-1 ホワイトリスト型のセキュリティ対策をする
動作を許可するプログラムだけを登録してそれ以外のアプリケーションの起動・実行をできないように制限をかけます。動作を許可されたリスト(ホワイトリスト)しか実行できないため、未知のマルウェアによる悪意のあるプログラムの実行ができないことになります。
2-2 サンドボックスを活用する
サンドボックスは、「攻撃されてもよい環境」を仮想環境として構築し、その中で未確認ファイルや疑わしいファイルを隔離した上で動作させ、振る舞いを詳細に分析します。例えば、メールに含まれているURLをクリックしたり、添付ファイルを実行したりといった作業を行います。しかし、サンドボックスで分析中にもマルウェアがエンドポイントに到達してしまう可能性があり、万全な対策といえるわけではなく、以下で見ていく多層防御なども並行して行いましょう。
2-3 多層防御により未知のマルウェア対策を構築する
ファイアウォールの設置による不正な通信のブロック、IDS/IPSによる内部ネットワーク監視、ウィルスソフトによるエンドポイントの保護、重要サーバーの隔離による機密情報へのマルウェアの到達阻止、流出してしまった場合にデータを閲覧できないようにするためのファイルの暗号化など防御壁を複数設けること(多層防御)により、仮に入口の壁を突破されても次の壁でブロックし、本丸の機密情報に到達される確率を下げていくことができます。
3.今日からできること
新たに発見される脆弱性も、未知のものというより過去のウィルスの亜種や既知の脆弱性の悪用ということも多いため、まずは常に最新版にアップデートしておくなど基本的な対策を徹底しておくことが大切です。また、各種団体の発信情報をキャッチして組織内で最新の情報を保持しておくことも必要です。
3-1 社内で利用している各種ソフトウェアのアップデートの徹底
・OSのアップデート
特にサポートの切れたOSは更新プログラムが適用されませんので、ゼロデイ攻撃の脅威に永遠にさらされることになります。
・IE、Chrom、FireFoxなどブラウザのパッチ適用
ブラウザの設定やヘルプなどから最新バージョンへの更新を行うことを徹底しましょう
・Javaのアップデート
・Flashのアップデート
3-2 各種団体の発信情報のチェック
以下のようなサイトの確認で公開されている情報をチェックすることも必要です。
・IPA(情報処理推進機構)
重要なセキュリティ情報を掲載した緊急対策情報・注意喚起一覧です。
・JVN(Japan Vulnerability Notes)
日本で使用されているソフトウェアなどの脆弱性関連情報とその対策情報を提供する脆弱性ポータルサイトです。
・CVE(Common Vulnerabilities and Exposures:共通脆弱性識別子)を確認する
CVEは、ソフトウェアの脆弱性を対象として、米国政府の支援を受けた非営利団体のMITRE社が提供している脆弱性情報データベースです。
MITRE社はCVE-ID(脆弱性に付与されたユニークな識別番号でCVE-登録時の西暦-通し番号の形式)をCVE識別番号管理サイト(英語)で公開しています。CVE-ID がユニークな番号として、登録されることにより、概要、インパクト、影響するソフトウェア、対応策を紐付けて確認することができることが分かります。組織脆弱性検査ツールや脆弱性対策情報提供サービスの多くが利用しています。
ゼロデイ攻撃が発生する背景には脆弱性の存在があります。ソフトウェア開発時にコスト面の制約などからセキュリティが後回しにされたり、新たな攻撃手法が開発されたり、脆弱性が発生してしまう背景には様々な事情があります。残念ながら、脆弱性が無くなることはないと考えたほうが良いでしょう。その前提で、最新情報を仕入れて社内各部署にソフトウェアのアップデートを徹底する、脆弱性を突かれたときに攻撃を防御できるように多層防御などの対策を講じておくことが必要です。