見出し画像

【WannaCry】ランサムウェアの侵入経路と対策 日本でも被害を受けたサイバー攻撃の実態

WannaCryとは

WannaCryランサムウェアは、2017年5月に発生し、世界中で大規模な被害を引き起こしました。以下では、WannaCryの具体的な侵入経路とそれに対する対策、そして留意点についてエンジニアの視点から解説します。

侵入経路

WannaCryは主にWindowsのSMB(Server Message Block)v1プロトコルの脆弱性を利用して侵入しました。この脆弱性はエターナルブルー(EternalBlue)というエクスプロイトによって悪用されました。具体的には、エターナルブルーはネットワークをスキャンしてポート445が開いているWindowsマシンを探し、その脆弱性を突いてバッファオーバーフローを引き起こし、マルウェアのペイロードを注入します。このペイロードが実行されることで、ランサムウェアの機能が起動します。

対策

WannaCryのようなランサムウェア攻撃を防ぐためには、いくつかの対策を講じる必要があります。まず第一に、オペレーティングシステムやアプリケーションソフトウェアを常に最新の状態に保ち、セキュリティパッチを迅速に適用することが重要です。具体的には、Microsoftがリリースしたエターナルブルーに対するパッチ(MS17-010)を適用することが必須です。自動更新機能を有効にしておけば、パッチ適用漏れを防ぐことができます。

ネットワークセキュリティの強化も重要な対策の一つです。ファイアウォールを設定し、ポート445を含む不要なポートを閉じることで、外部からの攻撃を防ぎます。また、ネットワークをセグメント化し、感染が広がるリスクを最小限に抑えることが有効です。

さらに、アンチウイルスソフトウェアを最新の状態に保ち、リアルタイムスキャンを有効にすることも大切です。エンドポイント検出と対応(EDR)ソリューションを導入し、エンドポイントでの異常な動作をリアルタイムで監視・対応することで、マルウェアの侵入を未然に防ぐことができます。

定期的なバックアップも忘れてはなりません。重要なデータのバックアップを定期的に行い、バックアップデータはネットワークから切り離して安全な場所に保管します。また、バックアップからのデータ復旧手順を定期的にテストし、実際に復旧可能であることを確認することが重要です。

ユーザー教育と意識向上も不可欠です。フィッシングメールを通じたマルウェアの侵入を防ぐため、従業員に対して定期的なセキュリティ教育を実施します。また、ランサムウェアのリスクや対策についての認識を高め、従業員が適切なセキュリティ行動を取るよう促します。

留意点

WannaCryのような攻撃からシステムを守るためには、いくつかの留意点があります。まず、ゼロトラストモデルの導入が有効です。これは全てのデバイスとユーザーを信頼しない前提で、厳格なアクセス制御を実施するという考え方です。必要な最低限のアクセス権限を付与し、不必要な権限を削除することで、攻撃の被害を最小限に抑えることができます。

また、インシデント対応計画を策定し、サイバー攻撃が発生した際の対応手順を明確にすることも重要です。定期的に演習を行い、迅速な対応が可能な体制を整えておくことが、被害を最小限に抑える鍵となります。

脅威インテリジェンスの活用も効果的です。サイバー脅威の最新情報を収集し、攻撃の兆候やトレンドを把握することで、事前に対策を講じることが可能です。また、サードパーティのリスク管理も重要で、ベンダー評価を実施し、脆弱性がないかを確認することで、外部からの攻撃経路を防ぎます。

日本での被害事例

日本でもWannaCryの被害が報告されています。例えば、日立製作所や東芝などの大手企業が影響を受けました。日立製作所では、社内のネットワークに接続されているパソコンが感染し、一部のシステムが停止しました。このため、業務に支障をきたし、復旧作業に多大な労力を費やすことになりました。また、東芝でも同様に一部のパソコンが感染し、ネットワークの一部が遮断される事態となりました。

これらの事例からもわかるように、大企業であってもセキュリティ対策が不十分である場合、ランサムウェアの被害を受ける可能性があります。特に、業務に使用するすべてのシステムやデバイスが最新のセキュリティパッチを適用していることを確認し、定期的なバックアップを実施することが重要です。

WannaCryのようなランサムウェア攻撃を防ぐためには、システムの定期的な更新、ネットワークセキュリティの強化、アンチウイルスソフトウェアの導入、定期的なバックアップ、ユーザー教育など、多層的な防御が必要です。また、ゼロトラストモデルの導入やインシデント対応計画の策定、脅威インテリジェンスの活用、サードパーティのリスク管理も重要です。これらの対策を組み合わせることで、ランサムウェアの侵入を防ぎ、被害を最小限に抑えることができます。日本においても、これらの対策を徹底することで、WannaCryのようなサイバー攻撃から企業や個人を守ることができます。

実際にあったWannaCryの攻撃

2017年5月12日の朝、何の変哲もない日常が始まるかと思いきや、あなたはコンピュータを起動し、次のような画面に遭遇します。画面には「WannaCrypter」というプログラムからのメッセージが表示され、すべてのデータが暗号化されており、復号キーは身代金を支払わなければ入手できないと告げられています。3日以内に初期の身代金300ドルを支払わない場合、額は600ドルに引き上げられ、1週間以内に支払いがなければファイルは永久に失われるとされています。これが「WannaCry」として知られる世界的なサイバー攻撃の最初の被害者となった瞬間です。

ワームの急速な拡散

WannaCryは感染すると完全に自律的な自己複製メカニズムを持ち、ネットワーク全体に静かに広がります。これにより、ユーザーの操作なしに急速に増殖し、ネットワーク全体を感染させます。2017年5月12日7:44 UTCに最初のケースが東南アジアのISPで確認され、その後5時間以内にアジアのISPの72%が感染しました。

被害の拡大

WannaCryの被害は甚大で、24時間以内に世界150か国以上の230,000台のコンピュータが感染し、損害額は数億ドルから数十億ドルに上りました。特にイギリスの国民保健サービス(NHS)は、最大70,000台のデバイスが影響を受け、一部の病院では緊急患者の受け入れを拒否し、救急車が他の病院に転送される事態となりました。

攻撃者の正体

2017年12月、アメリカは正式に北朝鮮がこの攻撃の背後にいると断定し、北朝鮮の3人の役人を起訴しました。北朝鮮は関与を否定しましたが、アメリカの起訴状によると、北朝鮮の工作員は銃ではなくキーボードを使い、現金ではなく暗号通貨のデジタルウォレットを盗むことで、世界の主要な銀行強盗となったとされています。

続くサイバー攻撃

WannaCryの混乱が収まる約1か月後、2017年のウクライナランサムウェア攻撃では、NotPetyaマルウェアが解き放たれました。当初はランサムウェアと誤認されましたが、実際にはディスクワイパーであり、最大の被害を与えることを目的としていました。わずか1日で10億ドル以上の被害が推定され、歴史上最も壊滅的なサイバー攻撃の一つとなりました。アメリカはロシアが背後にいるとし、6人のロシア人役人を起訴しましたが、ロシアは関与を否定しました。

エターナルブルーの登場

これらのサイバー攻撃の背後には、NSAが開発したエターナルブルーというエクスプロイトがありました。エターナルブルーは、WindowsのSMB(Server Message Block)v1プロトコルを標的とするエターナルエクスプロイトの一部として開発されました。SMBはファイル共有やプリントサービスに広く使用されており、その脆弱性はコンピュータワームにとって理想的なものでした。

シャドーブローカーズによる漏洩

NSAはこの脆弱性を数年間にわたって秘密にしていましたが、2016年にシャドーブローカーズと呼ばれるハッカーグループによってハッキングされ、エクスプロイトが盗まれました。これを受けて、NSAはMicrosoftに通知し、2017年3月14日にパッチがリリースされました。しかし、シャドーブローカーズは4月14日にエクスプロイトを無料で公開し、エターナルブルーを含む一連のエクスプロイトが一般に利用可能となりました。

エターナルブルーの仕組み

エターナルブルーは、3つの異なるバグを利用するエクスプロイトチェーンです。最初の2つのバグはバッファオーバーフローを引き起こし、3つ目のバグは任意のサイズのメモリアロケーションを強制します。これらのバグは個別には微妙ですが、最終的にはエクスプロイトフェーズで一体となり、ヒープグルーミングと呼ばれる技術を使用してシステムを完全に侵害することができます。

SMBプロトコルの理解

SMBプロトコルでは、通信はリクエストとレスポンスの形式を取り、特定の情報単位はSMBメッセージまたはSMBパケットと呼ばれます。これらのパケットは、ヘッダーブロック、パラメーターブロック、データブロックの3つの部分に分けられます。ヘッダーブロックにはSMBコマンドのフィールドが含まれており、ファイルの作成、読み取り、削除などの操作を指定します。

バッファオーバーフローの詳細

バグA:不適切なキャスティング

エターナルブルーの最初のバグは、不適切なキャスティングによるバッファオーバーフローです。OS2形式のフィーをNT形式にキャストする際に、バッファオーバーフローが発生します。具体的には、NTフィーリストバッファのサイズを正確に計算し、そのバッファにデータをコピーする過程で、メモリが溢れ出る現象です。

バグB:サイズ不一致

バグBは、異なるサイズのフィールドを使用するトランザクションタイプを組み合わせた際に発生します。NTトランザクションとトランザクション2セカンダリのフィールドサイズが異なるため、解析時に誤った関数が使用されます。これにより、バッファオーバーフローが成功し、任意のデータがメモリに書き込まれます。

エターナルブルーの技術的詳細

ヒープグルーミング

エターナルブルーは、ヒープグルーミングという技術を使用して、ターゲットシステムのメモリを制御可能な状態にします。これにより、エクスプロイトがメモリ内の適切な位置にデータを配置し、検出されにくくします。

SMBプロトコルの解析

SMBプロトコル内の通信は、リクエストとレスポンスの形式を取り、特定の情報単位はSMBメッセージまたはSMBパケットと呼ばれます。これらのパケットは、ヘッダーブロック、パラメーターブロック、データブロックの3つの部分に分けられます。ヘッダーブロックにはSMBコマンドのフィールドが含まれており、ファイルの作成、読み取り、削除などの操作を指定します。

エターナルブルーは、任意のペイロードを使用してRCE(リモートコード実行)を達成するためのエクスプロイトであり、特定のペイロードに依存しません。エターナルブルーの理解とその対策は、現代のサイバーセキュリティにおいて非常に重要です。

バックドアが「漏洩」した時

エターナルブルーは、アメリカ国防総省の一部門である国家安全保障局(NSA)によって秘密裏に開発された高度なエクスプロイトです。2017年、NSAがシャドーブローカーズと呼ばれるハッカーグループによる攻撃を受け、このエクスプロイトが漏洩しました。この漏洩により、NSAの機密情報が公に利用可能となり、世界中の様々な脅威アクターがこれらを自分たちのマルウェアに組み込み始めました。

エターナルブルーの影響

エターナルブルーは、複数の国からの脅威アクターが新しいマルウェアを急いで開発するきっかけとなりました。これらのマルウェアはすべてコンピューターワームであり、一度デバイスが感染すると完全に自律的な自己複製メカニズムが起動し、ユーザーの操作なしにネットワーク全体に静かに急速に広がる特性を持っていました。このエクスプロイトの重大性から、新たに開発されたこれらの攻撃のいくつかは、世界で最も影響力のあるサイバー攻撃となり、数百万台のデバイスが影響を受け、数百億ドルの損害が報告されました。

バグCの解析

バッファオーバーフローを引き起こすことと、任意のコードを実行するためにこれを唯一のエクスプロイトとして使用することは全く異なる話です。エターナルブルーの全貌を理解するためには、攻撃者が任意のサイズのメモリチャンクを割り当てるバグCを理解する必要があります。バグCは、セッションセットアップリクエストがサーバーによって誤って解析されたときにトリガーされます。

SMBハンドシェイクの仕組み

エターナルブルーのエクスプロイトが機能するためには、二つのデバイス間でSMB(Server Message Block)ハンドシェイクが完了する必要があります。SMBハンドシェイクは、デバイス間でSMBセッションを確立し、どのSMBバージョンを使用するかを調整し、クライアントが適切な権限とアクセスコントロールを持って認証されることを確認します。

バグCのトリガー

バグCは、SMBコマンドセッションセットアップリクエストがサーバーによって誤って解析されたときに発生します。このリクエストは、認証のタイプに応じてNTセキュリティと拡張セキュリティの二つの形式で利用できます。どちらの形式でも、リクエストはSMBパラメータとSMBデータの二つのセクションに分かれています。パラメータ構造には、そのメンバーの総長を表すワードカウントフィールドが含まれており、NTセキュリティ形式では常に13、拡張セキュリティ形式では常に12になります。

データ構造には、そのメンバーの総長を表すバイトカウントフィールドが含まれています。解析時に、このバイトカウントフィールドは非ページプールにおけるメモリアロケーションのサイズを決定するために使用されます。SMBの解析にはバグがあり、攻撃者の選んだ制御値にバイトカウントが誤って抽出されます。これにより、ターゲットマシンがこの値を使用してメモリアロケーションのサイズを決定する際、攻撃者はこの値のサイズを直接制御できるようになります。

実際の攻撃手法

メモリアロケーションとバッファオーバーフロー

まず、バグAとBをトリガーして、OS2 FistをNT Fistに変換するファイル関連の操作を含むパケットを送信します。バッファオーバーフローを成功させるためには、二つの異なるSMBパケットでこれを行う必要があります。

非ページプールのグルーミング

次に、バグCをトリガーして任意のサイズのメモリチャンクを割り当てます。この時点で、特定のSMB接続を開いたままにしておき、メモリアロケーションが解放されるのを待ちます。次に、非ページプールのグルーミングを開始します。これは、SMBのサーベット接続を多数送信し、非ページプール内の多くのメモリチャンクをサーベット構造で埋め尽くすことで行います。これにより、ターゲットデバイスの次の動作が予測しやすくなります。

最終的な攻撃の成功

バグAとBの最終パケットを送信すると、OS2からNTへのキャスティングプロセスが開始され、NT Fistのためのメモリが割り当てられます。グルーミング技術により、NT Fistは特定のサーベット構造にオーバーフローし、そのフィールドを任意に上書きすることができます。

サーベット構造には、メモリ記述子リスト(MDL)と呼ばれるフィールドがあり、これを攻撃者が制御するアドレスに書き換えることができます。これにより、攻撃者は任意のデータを特定の場所に送信できます。また、サーベットWSK構造へのポインタも上書きし、これを攻撃者が制御するアドレスに設定します。これにより、偽のサーベットWSK構造を作成し、ペイロードを送信できます。

エターナルブルーの修正と教訓

エターナルブルーは、広範な攻撃に使用される前に既にパッチが適用されており、サーバーファームやデータセンターがOSの更新を適切に行っていれば、多くの被害を避けることができたでしょう。この事件は、セキュリティパッチの迅速な適用と、システムの定期的な更新の重要性を強調しています。

まとめ

エターナルブルーは、任意のペイロードを使用してRCE(リモートコード実行)を達成するためのエクスプロイトであり、特定のペイロードに依存しません。エターナルブルーの理解とその対策は、現代のサイバーセキュリティにおいて非常に重要です。

この記事が参考になったら、ぜひフォローして、いいねをお願いします!

この記事が気に入ったらサポートをしてみませんか?