Volo di notte

お勉強の成果メモや日常のこと

IoTデバイス感染型 DDoS攻撃ボット "Mirai"

背景

先週の金曜日(10/21)にアメリカのダイナミック・ネットワーク・サービシズ(Dyn)が大規模なDDoS攻撃を受けてダウンした。DynはTwitterをはじめとする多くの企業が使っているDNSサービスを提供しており、現地にいた友人のよるとインターネット接続への影響はかなり大きかったとのこと。

f:id:Chachay:20161025221005p:plain

この攻撃の元になっているのは"Mirai"と名前がつけられているマルウェアで、IoT機器を乗っ取って攻撃を仕掛けるというものらしい。IoT機器と呼ぶと難しいですが、ネットワークカメラとか皆さんの好きなRaspberryとかあれですよ。

Grandstream GXP1610 IP電話機 1-SIP LCD

Grandstream GXP1610 IP電話機 1-SIP LCD

この間のCEATECもIoTを大きく掲げて、どんどんやろうぜみたいな雰囲気ですが、インターネットにつながった機器が増えてくると(場合によっては管理されずに野良化しているやつもいるはず!)、世界中のネットワークカメラが政府サーバに攻撃を仕掛けたりするディストピアが目に浮かんだりします。

現状ですら、ネットワークにつなげて2分もしないうちにマルウェアに感染する状況にあるといいます。

そのカメラは、12ドルのスマートウォッチを売ってる会社の、安物のノーブランド品だ。そういうものは、ファームウェアのアップデート、あるいは単純にパスワードの変更だけで問題が解決するが、やり方を知らない人もいるし、技術の分かる人でも2分でやるのは無理だ。 セキュリティカメラがWi-Fiネットワークに接続してから98秒後にマルウェアに感染した | TechCrunch Japan

最先端技術の分野ではどこの国も同じでしょうが、技術をあんまりわかってないおじさんたちがセキュリティに投資せずにどんどんやってっちゃう心配もなかったりしないでもない上に、長幼の序が厳しいこの国だと、さらにひどいことにならないかなという心配まで浮かんできた次第であります。

Miraiくん解体

その一方で、このMiraiのソースコードgithubで公開されるなどで話題を呼んでいます。読んでみると今後のIoTセキュリティどうするのという対策に役立つと感じたので、少しお付き合いください。

github.com

疑問1 "どうやって感染したの?"

とりあえず自分がお世話しているようなラズパイやネットワークカメラに感染する…というのはどうやってるのだろうという疑問ですが、IoT機器だけに能動的な行動、エッチなサイトを閲覧していたとかメールの添付ファイルを間違って開いちゃったとかいうのは原因ではなくて、どうもパスワードがイモだったからのようす。

どこかに感染したMiraiがパスワード設定の緩い別のIoT機器を見つけて、ディクショナリーアタックを仕掛けては侵入・感染し、次々に勢力を拡大しているそうです。

Gigazineさんが既報のとおりひどいパスワードを設定している人、(セキュリティ感覚が低い機器の)デフォルトのパスワードのまんまの人が乗っ取りにあってそう。

gigazine.net

一部ダメなパスワード例を抜粋しますので、良かったら確認してみてください。

root
パスワードなし,xc3511, vizxv, admin, 888888, xmhdipc, default, juantech, 123456, 54321, root, 12345, pass, 1111, 666666, password, 1234, klv123, klv1234, Zte521, hi3518, jvbzd, anko, zlxx., 7ujMko0vizxv, 7ujMko0admin, system, ikwb, dreambox, user, realtek, 00000000
admin
パスワードなし, admin, password, admin1234, smcadmin, 1111, 1111111, 1234, 12345, 54321, 123456, 7ujMko0admin, 1234, pass

(バリアントが出回ったら、この限りではないでしょうが)抜け漏れが心配なら原典のここの185行目までです。

疑問2 "感染するとやること"

1. 感染→住みやすいお家を作る

いったん感染すると、telnetサービスなどをkillしはじめて、外からのアクセスをシャットダウンするようにしていきます。一度感染されると、遠隔でロールバックや復旧ができなさそうなのやっかいだな。

山奥に設置したIoT機器のコントロールを取り戻すRPGとかそのうちできるで。

Mirai-Source-Code/killer.c at 6a5941be681b839eeff8ece1de8b245bcd5ffb02 · jgamblin/Mirai-Source-Code · GitHub

2. DDoS攻撃

HTTP flood, SYN floodなどだいたいなんでも実装されているそう。 あんまり興味ないので深追いせず。

https://github.com/jgamblin/Mirai-Source-Code/blob/6a5941be681b839eeff8ece1de8b245bcd5ffb02/mirai/bot/attack.h

3. 次の感染先を探す

GEなど特定の企業やペンタゴンを除いたランダムなIPアドレスを除いた広い世界にランダムにアクセスしていき、疑問1で言及したような、お鍵のゆるい機器に侵入。以下繰り返し。

4. そのほかの機能は?

もう少し読んでみないとわかりませんが、こんなところじゃない?

おわりに

IoTするならセキュリティ勉強しよう。

おうちで学べるセキュリティのきほん

おうちで学べるセキュリティのきほん

あと、IoTマルウェアに日本語の名前(一説によるとアニメ系?)つけるのはやっているみたいですね。

mokake.hatenablog.com