エクスプロイト(攻撃)とは?ゼロデイに気を付けよう!

セキュリティ管理

はじめに

本記事をご覧いただいている皆様は、「エクスプロイト」という言葉を聞いたことはありますでしょうか?一言で説明しますと、システムの脆弱性を攻撃するコードやプログラムのことです。

今回の記事では、企業の情報システム部門のご担当者向けに、エクスプロイトとはどういうものなのか、どんなアプリケーションが狙われやすいのか、エクスプロイト攻撃をどうやって防ぐのかについてご紹介したいと思います。

エクスプロイトとは?

冒頭でも簡単に説明しましたが、エクスプロイトとは、OSやアプリケーションに含まれるセキュリティ脆弱性(セキュリティホール)をつくコードやプログラムの事です。エクスプロイトを実行されてしまう事により、悪意のあるコードが実行され、システムに侵入されたり、さらに悪意のあるプログラムを実行されたりします。

エクスプロイトはマルウェアの一種であり、その中でもセキュリティ脆弱性を攻撃するコードやプログラムのことをエクスプロイトと言って区別しています。エクスプロイトという言葉は、本来の意味は「手柄・功績」「何かを利用する」という意味で、もともとセキュリティ脆弱性を利用するハッカーの間で使われていたようです。

エクスプロイトは、セキュリティ脆弱性をつくことによって成立します。そのため、セキュリティ脆弱性がなければエクスプロイトもなくなるのですが、OSやアプリケーションは人が開発しているため、セキュリティ脆弱性をゼロにすることは残念ながら難しいです。そのため、一般的には、セキュリティ脆弱性が発見された後にベンダーがセキュリティパッチなどの対応策を公開し、さらにその後にPC利用者が対応策を講ずるという形となり、セキュリティ脆弱性を解消するにはそれなりの日数がかかります。

セキュリティ脆弱性が発見された場合、それはすぐには一般公開されず、ベンダーのみに通報され、ベンダーがセキュリティパッチなどの対応策を準備してから一般に公開されるケースが大半ですが、なかにはセキュリティ脆弱性やエクスプロイトが先に公開されてしまい、セキュリティ脆弱性を解消する手段がない場合があります。また、そもそもセキュリティ脆弱性が悪意のある攻撃者にのみ知られているケースも考えられます。

上記のように、セキュリティパッチが作成されていないため、セキュリティ脆弱性を解消する手段がなく、脅威にさらされている状況を「ゼロデイ」と言います。悪意のある攻撃者はこの段階で攻撃を開始するため、ゼロデイ攻撃と言われています。ゼロデイの状態で、PCがエクスプロイトによる攻撃を受けてしまうとアプリケーションのバージョン等の条件さえ満たしていれば確実に攻撃が成功してしまうため、重大な脅威の一つと認識されています。

インターネットの世界では、ゼロデイの脆弱性やエクスプロイトが公開されると、それを悪用しようとする攻撃が目に見えて増大します。

どんなアプリが狙われやすいのか?

悪意のある攻撃者は、色々なアプリケーションの脆弱性を探しています。効率性を重視して、一般的に広く普及しており、どのPC・サーバーにもインストールされているアプリケーションが狙われやすい傾向にあります。

クライアントPCの場合、Webブラウザー、Adobe Flash Player、Adobe Acrobat Reader、Oracle Java、Microsoft Officeといったアプリケーションの脆弱性が狙われやすいです。

JVN iPediaというJPCERTコーディネーションセンターと独立行政法人情報処理推進機構 (IPA)が共同で運営している脆弱性対策情報データベースをご覧いただくと、上記のようなアプリケーションやサーバーアプリケーションの脆弱性情報が日々公開されていることが確認できるでしょう。

どのような攻撃なのか?

では、エクスプロイトを使った攻撃はどのような形になるのでしょうか?

エクスプロイトは様々な形で潜んでいます。多くの場合、エクスプロイトはメールの添付ファイルを開いたり、不正に改ざんされたWebサイトにアクセスしたりしてしまうだけで、攻撃を受けてしまいます。

例えば、典型的なパターンとして、メールの添付ファイルに攻撃が含まれていた場合を考えてみます。この場合、アプリケーションが不正なデータを読み込んでしまい、その結果、セキュリティ脆弱性をつかれてメモリーのバッファオーバーフローなどの問題が発生してしまいます。これによってメモリーが書き換えられ、悪意のある攻撃者が意図した不正なプログラムの実行を許してしまうケースが多いです。

2017年に大きな話題となった「EternalBlue」もWindowsのSMB v1というファイル共有やプリンター共有に使われるプロトコルのセキュリティ的な欠陥を狙って、バッファオーバーフローを発生させ、不正なプログラムを実行したものでした。

EternalBlueで攻撃されていたら?

今回の記事では、実際にペネトレーションツールを使ってEternalBlueのエクスプロイト攻撃を再現し、検証機に対して攻撃を仕掛けてみましたので、その一部をご紹介します。攻撃手順の詳細はセキュリティ面を考慮し、公開いたしませんので予めご了承ください。

まずは、攻撃対象となる検証機として、Windows 7のPCを用意し、MS17-010のセキュリティパッチが適用されていないPCを用意しました。次に、攻撃側のPCを用意し、同一のネットワーク環境からEternalBlueの攻撃を実行しました。

EternalBlueによるエクスプロイトを実行した結果、攻撃対象である検証機では見かけ上何も変化はありませんでしたが、攻撃側のPCからは、検証機のホスト名やIPアドレス等の情報取得だけでなく、ファイルのダウンロード・アップロード・実行が可能な状態となっていました。(※以下のキャプチャーでは、ipconfigによるIPアドレスの取得を実行しています。)

つまり、エクスプロイトにより、WannCryやNotPetyaのようなランサムウェアをいつでも配布・実行できる状態にできたのです。エクスプロイトによる攻撃がいかに危険なものかご理解いただけたのではないでしょうか?

exploit_kali_linux.PNG

エクスプロイトキットの存在

エクスプロイトによる攻撃が盛んな要因の一つには、エクスプロイトキットの存在があります。エクスプロイトキットとは、様々なアプリケーションの脆弱性を利用するために攻撃者が使用するクラッキングツールです。

Rig EK」、「Magnitude EK」と言われるエクスプロイトキットがアンダーグラウンドで売買されており、管理画面なども用意されているので、高度なスキルを持たない攻撃者でもエクスプロイト攻撃ができる状況にあります。

最近では、このようなエクスプロイトキットを利用して、ランサムウェアだけでなく、仮想通貨マイニングマルウェアやインターネットバンキング不正送金マルウェアなどのマルウェアを送り込むことが増えてきているようです。

某セキュリティーベンダーからの情報では、2015年~2016年頃と比較すると、エクスプロイトキットの利用率は低下しているようですが、今後も危険な存在には変わりないでしょう。

エクスプロイト攻撃を防ぐには?

では、エクスプロイト攻撃を防ぐにはどうすればよいのでしょうか?

最も大切なのは、日々セキュリティ脆弱性情報を入手し、ベンダーがリリースしたセキュリティパッチを迅速にPCやサーバーに適用することです。これによりセキュリティホールがなくなるので、攻撃者はエクスプロイトを実行しても侵入することができなくなります。

次に、マルウェア対策製品の定義ファイルやエンジンを最新にしておくことで、エクスプロイトによる攻撃時に使用する不正なコード等を検知できる状態にしておくことも重要です。その他、怪しいURLやIPアドレスへのアクセスを防止するといった効果も期待できます。

但し、こうした対策だけではゼロデイ攻撃を防ぐことはできないので、上記の対策に加えて、「多層防御」「ホワイトリスト型のソリューションの導入」「振る舞い検知」「ネットワーク全体の監視」など、未知の攻撃に備えた対策も必要になってきます。

まとめ

今回の記事では、エクスプロイトとはどういうものなのか、エクスプロイト攻撃をどうやって防ぐのかについてご紹介しました。いかがでしたでしょうか?

エクスプロイト攻撃を防ぐには、セキュリティパッチの迅速な適用やマルウェア対策製品の定義ファイルを最新にするといった地道な運用が必要です。昨今の情報システム部門のご担当者は、少ない人員の中で多くの業務を抱えており、なかなかタイムリーな対応は難しいのではないでしょうか?

なお、弊社では「AppGuard」という、脆弱性を狙った未知の攻撃であってもアプリケーションの動作を隔離・監視することでシステム領域やレジストリへの不正な変更を確実にブロックするソリューションを提供しております。ご興味がございましたら、ぜひ弊社までお問い合わせください。

関連サービス:AppGuardマネージドサービス