2022年初頭、複数の破壊的なワイパーがウクライナの企業を襲い、さまざまなセクターの組織を攻撃しました。ワイパーそのものは目新しくはありませんが、セキュリティ業界では「デジタル兵器」の使用やその影響力について、関心が一気に高まりました。悪名高いShamoonワイパーは、10年以上前から存在しています。10年前にもワイパーが、現在と同様に有効だったというのはどういうことでしょうか。何が変わったのか、あるいは何が変わっていないのでしょうか。
このブログでは、最近の20種類以上のワイパーファミリーについて、傾向や技術、他のワイパーと重複する点などを分析した内容をお伝えします。いくつかのワイパーで同じコードや技術が使い回されている場合は、同じ攻撃者に帰属する可能性が推測されますが、そのつながりだけで結論を急いでしまうことがよくあります。本稿は、よくある一般的なマルウェアファミリーの比較ではなく、ワイパーの技術的な側面についても言及し、この破壊的なソフトウェアの高レベル、低レベルのもののどちらについても分析します。
また、この分析では、ウクライナの被害者に使用されたワイパーだけでなく、同時期に出回っていた一般的なワイパーにも着目しています。標的型のワイパーと一般的なワイパーの類似点と相違点から、いくつかの興味深い点が明らかになりました。
最終的には、将来のワイパー関連のインシデントの影響の軽減のためにとるべき、防御策について説明します。
本題に入る前に、一般市民や研究者の効率的分析の便宜のため、本稿が引用する関連レポートを進んで公開していただいた関連組織に対して、ここに謝意を表したいと思います。
目次
FUD(恐怖、不安、疑念)とは
ワイパーの話に移る前に、一部の報道で使われているfear, uncertainty, and doubt(「恐怖、不安、疑念」しばしばFUDと略される)について簡単に説明します。今年の初め、「ワイパーで狙われたウクライナの企業 – 影響と防止策(War, Weapons, and Wipers)」と題したブログ記事で、このテーマについて少し触れました。もう少し詳しく説明しますと、表明された危機感や影響の大きさ、使用されたマルウェアはソースによって異なるにもかかわらず、危機的状況下では、拙速にとりあえずの分析が行われがちなのです。多くのマルウェア攻撃に対してこのような恐怖を煽るような反応が起こりますが、これは有害な結果をもたらすだけです。つまり、「オオカミ少年化」してしまうのです。あらゆる攻撃キャンペーンがあらゆる人に同等の影響を与えると主張することによって、組織からの反応を鈍化させてしまい、結果的に、せっかくの警告の効果を限定的にしてしまうことになるのです。
マルウェア攻撃キャンペーンに関する緊急警告が、常に恐怖や不安、疑念を広げているということではありません。緊張性が高いときにはとりわけ、取り上げる際の文脈やニュアンスが重要だということなのです。
ワイパーの定義
ワイパーの定義がまだ定まっていないので、まず明確に特定することが重要です。従来の定義では、被害者のシステムを麻痺させることを意図したマルウェアを指します。複数の機能を持つマルウェアなら、ワイパーコンポーネントを使用してシステムを破壊することも可能です。
しかし、ランサムウェアの中には、意図しないワイパーの使用例もあります。ランサムウェアの暗号化に不具合がある場合、復旧のオプションがないか、またはランサムウェアを展開した脅威者に連絡が取れないため、身代金を要求されたシステムは機能不全のままとなります。また、攻撃者のメールアドレスがブロックされたり、ウェブサイトがオフラインになったりして、複合化キーの入手が不可能になるケースもあります。
第三に、より不明瞭なワイパーの亜種である偽ランサムウェアです。そもそもデータを復号化する意図がないにもかかわらず、ランサムウェアを隠れ蓑にして、システムが身代金請求されたように装うマルウェアもあります。ファイルシステムを適切に暗号化することは、上述のとおり、システムのデータを消去することと同じであり、どちらの場合もデータにアクセスできない状態が維持されるからです。
本ブログでは、マルウェアの一部であれ、マルウェアの単独目的であれ、デバイスをワイプする意図を持つマルウェアをワイパーと見なしています。
新旧のワイパー
10年前、Shamoonワイパーがサウジアラムコのネットワーク内の多数の端末に感染し、大混乱に陥ったことがありました。この10年間で、セキュリティ対策は大幅に改善され、攻撃者の戦術やテクニックも改善されました。ブルーチームと敵対チームとの間の絶え間ない駆け引きは、以前より頻繁に繰り返されるようになっています。かつて、システム更新は新しいフロッピーを物理的に郵送することから始まりましたが、今ではほぼリアルタイムで実行できます。しかし、古い技術は、たとえ短期間であっても価値があることが証明されました。結局のところ、攻撃者が利益を得るためにそんなに時間はかからないのです。
目標の達成
ワイパー攻撃への対応で最も重要なのは、攻撃の目的と動機を理解することです。一般的にランサムウェアのオペレーターには金銭的な動機がありますが、ワイパーは違った使われ方をしています。企業や政府の端末をワイプすることの直接的な金銭的利益はありません。一時的であれ恒久的であれ競合他社がシャットダウンしたことによる競争上の優位性など、間接的な利益の場合が多いのです。
上述の「競合他社」という言葉は広義にとらえるべきです。攻撃者は競合する事業を持っている誰かで、違法な手段で事業に損害を生じさせようという意図があることもあります。また競合企業や政府機関を指すこともあります。ウクライナは後者の典型例であり、攻撃側の軍隊を支援する目的で、軍事侵攻の前と最中に複数の異なるワイパーが使われた最初の事例の一つです。
図1 2022年の1月から4月までのワイパー発生状況を時系列で表示
上のタイムラインには、ロシアのワイパー以外に、戦争反対派、推進派の活動家が作ったワイパーも含まれています。その1つが、Snykが観測したnode-ipcと呼ばれるNodeJSのプロセス間通信パッケージです。このパッケージはよく使われるもので、悪意のあるバージョンではユーザーのIPのジオロケーションがロシアを示している時に、進行中のプロジェクト内のすべてのファイルをハートの絵文字で上書きするために使われます。さらに、同じユーザーが作成したpeacenotwarパッケージを含めるなどの追加的な変更により、以下のようなロシアに向けた反戦メッセージも表示されるようになりました。
図2 活動家のメッセージ、画像提供:Snyk
APT(Advanced Persistent Threat)攻撃では、政治的な表明を行なわれるのとは別に、ワイパーを利用して大混乱を引き起こされることもあります。さまざまなセキュリティ企業が、ウクライナの企業を狙ったワイパーの多くは親ロシア派によるものと結論づけています。ワイパーは、作る労力が少ない分、投資収益率は高いといえます。しかし、ワイパーには複雑なものもあり、すべてが同じつくりのわけではありません。HermeticWiperの作成者は、NTFSとFATファイルシステムに精通しているようで、遭遇したすべてのファイルを単に削除または上書きするのではなく、高度な方法でファイルシステムを反復して変更します。以下の画像は、ワイパー内のNTFS解析コードの一部で、解析時に正しいデータ型を割り当てる前後のものです。これらの構造体は、ほとんどの解析プログラムにデフォルトで含まれておらず、検索や作成にさらに時間がかかります。攻撃側の目的は、防御側の動きをできるだけ遅くすることなので、必要な時間が増えることは、攻撃側にとって有利に働きます。下の2つの画像は、“fileData”変数について、最初のものはオフセットのまま、次のものは構造名を適用したものです。
図3 正しい型のないHermeticWiperのNTFS関連オブジェクトの擬似コード
図4 正しい型のHermeticWiperのNTFS関連オブジェクトの擬似コード
ファイルではなく、ファイルシステム自体が破壊されるため、一部のファイルを単純に復元することで被害にあった端末を「修復」することが難しくなります。完全なバックアップを復元する必要があり、特に大量な場合は、さらに時間がかかります。
ターゲットの選定
攻撃主体の視点から見て、ターゲットの選択では、主に次の2つの決定要因があります。まず、攻撃の性質です。APT攻撃グループは発見されないようにする傾向がありますが、政治活動家は通常、自分たちの目的を知ってもらいたいと考え、政治的メッセージを流布するためにメディアを利用します。
より洗練されたグループが標的型のマルウェア攻撃を行う際にも、理由は違うものの同様のことが言えます。大量に拡散されているマルウェアは、一般的にコモディティマルウェアに分類され、いずれも悲惨な影響を及ぼしますが、その拡散の手口はさまざまです。
2つ目の要因は、対象となるOSです。企業ネットワークではWindowsが最も多く使われていますが、サーバーのホスティングには様々なLinuxディストリビューションがよく使われています。従業員の端末からファイルを消去することは、十分実務に支障を来たします。また権限昇格が必要ないため、わずかな労力で行うことができます。
今回観測されたワイパーの多くは、Windowsオペレーティングシステムを対象としています。しかし、観測されたワイパーの中には、非常に特殊なニッチをターゲットにしているものもあり、ワイパーに対する防御として異なるプラットフォームを使用することは解決策にはなりません。そのようなニッチの例として、SentinelOne社が報告したAcidRainワイパーによるViasat KA-SATモデムのワイプがあります。その他の例としては、ESETが観測したShredワイパーがあり、Solarisオペレーティングシステムだけでなく、Linuxディストリビューションも標的にしています。
配布方法
いずれにせよ、攻撃者は被害者の端末で好きなマルウェアを実行しようと考えています。数多くの方法がありますが、今回はその中から最もよく見られたワイパーの配布方法について紹介します。
これまで観察されてきた実行方法の1つは、デバイスごとに、あるいはグループポリシーを通じて、多数の機器で一度にワイパーを手動で実行する方法です。シマンテック社の報告によると、HermeticWiperは被害端末のスケジュールされたタスクを介して実行されているとのことです。
攻撃者は、それに加え、またはその代わりに、接続可能なすべてのデバイスでワイパーを実行するワームのような拡散メカニズムを作成することができます。ESETの説明によると、HermeticWizardには、HermeticWiperを展開するためのそのような機能があるということです。
共通点と有益な相違点
ワイパーにはコードの重複が含まれるものもありますが、必ずしも特定の攻撃者と結び付けられているわけではありません。同じ攻撃主体がコードの背後にいると想定できる例としては、RURansomとその開発版とされるdnWipe、そしてCaddyWiperの2つの異なるバージョンが挙げられます。前者2つはTrendMicroが発見し、後者はESETが発見しました。
dnWipeサンプルは、ワイプするのではなくファイルをbase64エンコードするだけですが、いくつか実装される機能があり、そのうちの1つを以下に紹介します。
図5 dnWipeにはスプレッド関数が欠落
RURansom ワイパーは非常によく似たコードを使用しており、その拡散の少なさから、他の攻撃主体によって dnWipe からコピーされる可能性は低いと考えられます。下の画像は、スプレッド関数が実装されたことを示しています。
図6 RURansom の実装されたスプレッド関数
CaddyWiperが2回使用されました。この2つのバージョンには、使用されるアセンブラ司令に関する、わずかですが有益な違いがありますが、マルウェアの動作は変わっていません。初期バージョンでは、以下のスクリーンショットのように、wide stack-stringが1文字ずつ作成されていました。
図 7 – CaddyWiper でのwide stack-stringの作成
2つ目のバージョンも、元々はESETが観測し、メモリからダンプして得たもので、以下のスクリーンショットのように、可能な限りダブルワードを使って wide stack-stringを構築しています。両方とも、両サンプルのエントリーポイントから取得されていることに注意してください。
図8 CaddyWiper II におけるwide stack-stringの作成。
このような小さな(そしておそらくコンパイラーに関連した)変更は、多くの場合、マルウェアをコンパイルした人物がソースコードレベルでアクセスしたことを示します。しかし、ソースコードレベルのアクセスだからといって、単純に同じ攻撃者によるものと断定するのは誤りです。コードが流出した可能性もあるし、PlugXのように国家の軍事組織で広く利用されている可能性もあります。
ファイルの動作を変更するパッチが適用できるため、コードの小さな変更は、必ずしもソースコードへのアクセスに関連するとは限らないことに注意してください。デバイスを永久に暗号化することができる改変されたキルスイッチを備えたWannaCryの多くの亜種が、依然として出回っているのがその一例です。
攻撃主体の特定とその難しさ
この問題に関して、注意すべき点としては、マルウェアを使用する攻撃者はマルウェアの作成者とは全く異なる可能性があるということです。これは、ランサムウェアのアフィリエイトを見ればすぐわかることで、彼らはランサムウェアを利用することはあっても、自分で書くことはほとんどないのです。国家支援型攻撃者であれば、ソフトウェア技術者と契約して自分たちのためにプログラムを作成することは大いにあり得えます。作成者によって微妙なニュアンスの違いからまったく別のプログラミング言語を使用することまで、コーディングスタイルに幅広い相違点があるため、コードベースでの特定が今以上に難しくなります。
この仮説には決定的な証拠があるわけではありませんが、考える材料にはなります。ウクライナで使用された複数のワイパーについては、すべて同じようには見えず、コードベース的な証拠はないものの、地政学的問題のため、1つの国家の仕業である可能性が高いです。2022年6月に紹介したとおり、WhisperGateワイパーで被害者のシステムをワイプすることを意図した攻撃者が確認されましたが、この攻撃は失敗しました。2回目の試みでは、代わりにHermeticWiperが使用されました。当時のワイパーの公開状況を考えると事例証拠に過ぎませんが、まさに上記の仮説のシナリオ通りです。
復旧(リカバリー)オプション
ワイパーという用語から、対象となるシステムからファイルが削除されると思われがちですが、そうとは限りません。ワイパーの目的はシステムを不能にすることであり、これはファイルを上書きすることによっても可能です。なお、ここでは簡略化のため、ディスクの種類やファイルシステムの違いについては省略しています。ワイパーの多くは、Windowsに焦点を絞り、10年以上にわたってデフォルトのファイルシステムとしてNTFSを使用してきました。
ファイルの削除ではなく、ファイルの上書きを選択する理由はさまざまです。ワイパーを書いた人は、あまり考えずに選んだのかもしれませんが、ファイルの復元を試みる際には違いがあります。ファイルを削除すると、そのファイルはそのままディスク上に残され、多くの場合、新たな書き込み操作のために自由に使えるサイズで表示されます。そのため、デバイスからすべてのファイルを削除すると、多くのデータを保存したまま、多くの空きディスク容量を確保することができます。ディスクを復元する際には、この方法で多数のファイルの復元が可能です。
しかし、WhisperGateワイパーには、高度な仕組みはほとんど見られず、対象となるファイルを、各ファイルの最初のメガバイトを0xCCで繰り返し上書きすることで破損します。同様に、CaddyWiperの2つの亜種はゼロファイルを使用しますが、RURansom はファイルごとにランダムな暗号化キーを使用し、Nominatus_ToxicBattery (G-Data で報告) は自身のコピーでファイルを上書きしてシステムをワイプします。以下の画像は、記載されているサンプルの一部を抜粋したものです。対象ファイルサイズより大きいファイルもあるため、上書きされるのではなく、ファイルが破損される可能性もあります。いずれにせよファイルは使用できなくなります。
図9 最初のメガバイトを 0xCC で上書きする WhisperGate のワイパーの疑似コード
図10 ターゲット ファイルの最初の 10 メガバイトをゼロで上書きするCaddyWiper (I と II の両方)
図11 ファイルごとに呼び出される RURansom のランダム パスワード生成
図 12 – ファイルを自身のコピーに置き換える Nominatus_ToxicBattery の「暗号化」機能
ただし、上書きされたファイルが復元できないわけではありません。ディスク上のファイルの再編成は、ファイルの上書きと同時に、確実にではありませんが、自由に使えるディスクセグメントを上書きする可能性があります。(部分的に)上書きされたディスクセグメントであっても、ファイル復元ツールによって、失われたデータのすべてではないにしても、そのほとんどを復元できることもあります。
データの復旧は、次のステップのバックアップとも関連しています。
バックアップの復元
ワイパーが破壊するのは、しばしばデバイスのメインドライブ(Windowsでは通常C:)に限りません。WhisperGateワイパー、HermeticWiperともに、26文字バインドドライブも対象とすることが可能です。これにより、バックアップから復元しなければならないデータ量が大幅に増加し、ワイパーの与える影響が大きくなることがあります。
図13 HermeticWiper によるドライブナンバーの反復処理
図14 WhisperGateのワイパーはワイプする論理ドライブを繰り返し表示
特に、自宅で仕事をしている人が、プライベートで使用するブロードバンド回線を使って大量のデータをダウンロードする場合、復元速度が遅すぎることがあります。さらに、バックアップ先のアップリンクは、ある時点まで制限されています。数百台の端末を修復する場合だと、アップリンクはすべての端末を同時に適切な速度で処理できない、あるいは同時処理数にまったく対応できない可能性があります。
数台のデバイスの復旧速度が遅いことは、さほど支障がないように思われますが、感染したデバイスの数が増えれば、復旧時間も増え、最初のマルウェア感染が修復された後のダウンタイムが予想以上に長くなってしまいます。
無害なドライバー
誤検出のない検出ルールを作ることは、ITセキュリティ業界にとっての永遠のジレンマです。Shamoonワイパーは、ファイルシステムを操作するために良性のドライバーを使用していました。このドライバーは署名されており、そのようなドライバーに期待される方法で使用されているため、このソフトウェアを悪意あるものとヒューリスティックに定義することは困難です。ファイルシステムの変更のタイプを見ることで、このプログラムがマルウェアであることは明らかになります。2022年2月23日、HermeticWiperが初めて発見されました。このワイパーも、下の画像のとおり、Shamoonが使っていたものと同じような目的を持った無害なドライバーも使われていました。
図15 HermeticWiperでの無害なドライバーの使用
安全対策
以下の対策は、ブルーチームがワイパーやランサムウェアのような類似の動作をするマルウェアに対して、インフラをさらに強化するためのいくつかの重要なポイントです(ここでは全ての対策を網羅的にリストアップするのが趣旨ではありません)。
ランサムウェアと同様に、ワイパーは数分で何千ものファイルとやり取りをします。そのため、短時間に数百のファイルを削除、リネーム、または書き換えるプロセスにフラグを立てる検出ルールが有効です。なお、取り込まれたログによっては、多くのファイルを含む圧縮アーカイブ(暗号化されているかどうかにかかわらず)を作成すると同じ特性に一致するため、このようなルールだと誤検出されやすいことに注意してください。
さらに、ワイパーによっては、シャドーコピーやイベントログを含む、遭遇したすべてのファイルを単純に削除する場合もあります。この2つは通常、削除されることも完全に上書きされることもないため、監視対象としては興味深いものです。同じことはマスターブートレコード(MBR)についても言えますが、MBRが変更されることは稀です。
次のアドバイスは、ワイパーの犠牲になったときだけに限らず、常に有益です:バックアップを作成し、テストしてください。バックアップシステムは、バックアップを保存するときだけマシンに接続するようにしないと、ワイパーに限らず様々なマルウェアの影響を受ける危険性があります。ランサムウェアは接続されたすべてのドライブのファイルを暗号化することが多く、接続されているバックアップドライブも対象になります。
このセクションにおける最後のアドバイスは、ユーザーの特権を、仕事をするために必要な最小限のものに制限することです。管理者権限によって、ワイパーの影響をファイルの消失からデバイスの起動不能に変更することができます。いずれの場合も、端末は再イメージ化される可能性が高いですが、ノートパソコンをリモートで復元できないため、復元プロセスが長くなります。また被害者はセキュリティオペレーションセンターへの別の連絡手段を講じなければなりません。
結論
総じて、ワイパーは効果的であることが証明されました。ワイパーのヒューリスティックな挙動はランサムウェアに酷似しており、初期の破壊的なインパクトは同等かそれ以上となる場合があります。個人の被害者の場合、利用可能なバックアップがあれば、その質によって影響が異なる可能性があります。企業でも国家でも、影響を受けるデバイスの台数やインシデント発生のタイミングによって、その影響は異なります。戦時中は通信が命です。たとえバックアップが数日で支障なく復旧したとしても、通信が制限されている数日間は相手に有利になる可能性があるため、ウクライナでのワイパー攻撃は悲惨な影響を与えていたかもしれません。
ワイパーは攻撃者の技術力に関係なく有効であり、最も単純なワイパーでも感染したシステムに大打撃を与えることができます。このようなマルウェアの作成に必要な時間は、複雑なスパイ用バックドアやそれに付随する脆弱性と比較すると、特に低時間だと言えます。その場合、投資利益率は高くなくてもよいのです。数本のワイパーの作成自体はそれほど手間がかかるとも思えません。
このような深刻なイベントに備えることで、組織のセキュリティ態勢は向上します。なぜなら、類似のもう少し軽微な事件なら、同じ手法を使って被害を軽減することができるからです。「備えあれば憂いなし」という言葉があります。
ハッシュ値
本項では、詳細について言及したワイパーのハッシュ値を、出現順に以下に共有します。なお、リンク先の記事は同じサンプルに言及していますが、透明性を確保するためにここに集約しています。
HermeticWiper
SHA-256 |
1bc44eef75779e3ca1eefb8ff5a64807dbc942b1e4a2672d77b9f6928d292591 |
SHA-1 |
61b25d11392172e587d8da3045812a66c3385451 |
MD-5 |
3f4a16b29f2f0532b7ce3e7656799125 |
dnWipe
SHA-256 |
610ec163e7b34abd5587616db8dac7e34b1aef68d0260510854d6b3912fb0008 |
SHA-1 |
fbeb9eb14a68943551b0bf95f20de207d2c761f6 |
MD-5 |
191e51cd0ca14edb8f06c32dcba242f0 |
RURansom
SHA-256 |
107da216ad99b7c0171745fe7f826e51b27b1812d435b55c3ddb801e23137d8f |
SHA-1 |
a30bf5d046b6255fa2c4b029abbcf734824a7f15 |
MD-5 |
8fe6f25fc7e8c0caab2fdca8b9a3be89 |
CaddyWiper I
SHA-256 |
a294620543334a721a2ae8eaaf9680a0786f4b9a216d75b55cfd28f39e9430ea |
SHA-1 |
98b3fb74b3e8b3f9b05a82473551c5a77b576d54 |
MD-5 |
42e52b8daf63e6e26c3aa91e7e971492 |
CaddyWiper II
SHA-256 |
7f76e7a9e784b90463a67ad40b1acf68c6e706fe489f82058ae608dbc203f832 |
SHA-1 |
b903014ade8b2c19e18cfd366b0dd8670e8747a6 |
MD-5 |
87f906fe3d7be0f0f941a59ffa41dd27 |
WhisperGate wiper
SHA-256 |
191ca4833351e2e82cb080a42c4848cfbc4b1f3e97250f2700eff4e97cf72019 |
SHA-1 |
8be3c66aecd425f1f123aadc95830de49d1851b5 |
MD-5 |
343fcded2aaf874342c557d3d5e5870d |
Nominatus_ToxicBattery
SHA-256 |
45e433d6fd0710d2905f21fda25c02fccab9eef43732384f0f0ea65ee464b936 |
SHA-1 |
d91ae3b5ac290e0687d02605a4a3168823da5943 |
MD-5 |
2dd15c0d305242a89a35c8b61e4398ff |
本記事およびここに含まれる情報は、啓蒙目的およびTrellixの顧客の利便性のみを目的としてコンピュータ セキュリティの研究について説明しています。Trellixは、脆弱性合理的開示ポリシーに基づいて調査を実施しています。記載されている活動の一部または全部を再現する試みについては、ユーザーの責任において行われるものとし、Trellixおよびその関連会社はいかなる責任も負わないものとします。
※本ページの内容は2022年11月15日(US時間)更新の以下のTrellix Storiesの内容です。
原文:Wipermania: an all you can wipe buffet
著者:Max Kersten