特集:IoT時代のセキュリティリスクに備える
特集
» 2017年04月13日 09時00分 公開

超速解説:IoTデバイスを狙うマルウェア「Mirai」とは何か――その正体と対策

史上最大規模のDDoS攻撃を引き起こしたとされるマルウェア「Mirai(ミライ)」。なぜ多くのIoTデバイスがMiraiに感染してしまったのか? 本格的なIoT時代の到来を前に、あらためてMiraiによる攻撃の手口と対策について解説する。

[宮田健,TechFactory]

 2016年9月、著名なセキュリティ情報ブログ「Krebs on Security」が、大量のパケットを送り込むことでサービスをダウンさせる、いわゆる「DDoS攻撃(Distributed Denial of Service attack)」の被害に遭い、サーバがダウンしました。問題はその攻撃の規模で、同サイトに向けて665Gbpsもの帯域がDDoS攻撃に使われたとみられており、これは当時史上最大規模のものでした。

 この665Gbpsものトラフィックをどのように作ったのでしょうか。実はその攻撃は、ルーターやWebカメラなどのネットワーク接続機能を備えた機器(ここでは、これらを含めた機器を「IoTデバイス」と定義します)をターゲットにしたマルウェア「Mirai(ミライ)」によるものだと考えられています。この攻撃とほぼ同時期に、フランスのホスティングサービス「OVH」に対しても、ピーク時に1Tbpsを超えるDDoS攻撃が観測されており、大規模攻撃を可能とする「ボットネット」の登場が注目されました。

 そして、2016年10月にMiraiのソースコードがインターネット上の掲示板サイトに公開されたことで、その手口が明らかとなりました。今回はこのマルウェア、Miraiが引き起こしたインシデント内容とそのソースコードから、IoTデバイスの開発などに携わるエンジニアやベンダーが考えるべきポイントを探ります。

組み込み開発の視点で見る、「IoTと組み込みセキュリティ」その概念と実装

IoTがもたらす明るい未来にばかり注目が集まるが、サイバー攻撃によるリスクについても考える必要がある。無料電子ブックレット『「IoTと組み込みセキュリティ」その概念と実装』では、IoTが本質的に持つリスクとその対策について解説する。

⇒ダウンロードはこちら



「Mirai」とは何か?

 Miraiを紹介する前に、まずはボットネットとは何かを学びましょう。ボットネットは、多数の攻撃可能な機器が、攻撃対象のサーバへ一斉に通信を行い、サーバ負荷をかけるという攻撃アプローチをとります。Webブラウザの「F5アタック」のようなイメージですね。

 ここでいう“攻撃可能な機器”とは、マルウェアに感染した一般のPC端末であることが多く、「C&C(コマンド&コントロール)」と呼ばれる管理端末を操作することで、マルウェアに感染した機器が一斉にターゲットに対して攻撃を仕掛けます。これを利用することで、ある攻撃対象サーバに特定のパケットを大量に送り付け、攻撃対象サーバの負荷を増大させてリソースを枯渇させることで、サービスを正常に提供できない状態に陥れます。

 なぜこのような仕組みを作るのでしょうか。実は、このボットネットはブラックマーケット(闇市場)で売れるのです。サイバー犯罪者はマルウェアを多数の機器に感染させて、それらをボット化して、ボットの集合体であるボットネットのコントロール権を利用者に対して時間貸しで販売するのです。

 これにより、サイバー犯罪者は金銭を得ることができ、利用者は自分たちに技術力がなくてもあるターゲットに対してサイバー攻撃を仕掛けることができるのです。ボットネットはブラックマーケットで販売されるだけでなく、「負荷テストツール」という表現で堂々と提供されている場合もあります。このように、犯罪者が金銭目的でボットを作成し、それを簡単に利用できることでエコシステムが出来上がっているのです。

 Miraiはそのボットネットを構成するマルウェアで、C&Cサーバ機能、クライアント機能が備わっていました。そして、ボット化の対象がLinuxで動作するIoTデバイスであったことが大きな特徴で、それが今回のような大規模なボットネットを構成し、史上まれに見る規模の攻撃が成立しました。


ソースコードから見える「Mirai」の姿

 2016年10月、Miraiの作者とみられるAnna-senpai(ハンドルネーム)が突如として、そのソースコードを公開しました。そのソースコードから、Miraiの感染手法などが明らかになりました。

 まず、MiraiはランダムなIPアドレスに対して感染先を探します。感染できるデバイスを見つけ出し、感染可能な端末にログインして、ボットをダウンロードさせます。このとき利用されるのが、ソースコード内に設定された“ありがちな「ID」と「パスワード」の組み合わせ”です。

 Miraiに感染した端末は、その周囲に感染できるデバイスがあったとき、telnetで接続し、例えば「admin/admin」「root/123456」「guest/guest」といった、多くの機器がデフォルトで設定していそうなID/パスワードでログインを試みます(辞書攻撃)。万が一ログインされてしまった場合は、その端末自身もMiraiに感染して、さらなる感染可能な端末を探すようになります。

 そして、Miraiに感染してしまった端末は、C&Cサーバからの指示を待ちます。攻撃はUDP(User Datagram Protocol)パケットを送り付ける「UDPフラッド」、HTTPリクエストを大量に送り付ける「HTTPフラッド」、DNSの名前解決の仕組みを利用して負荷をかける「DNSリゾルバフラッド」など多数あり、その中には特定のゲームエンジンに対する攻撃も含まれていました。

 Miraiのソースコードからは、かなり高機能なボットネットを構築できることが読み取れます。性能面ではPCに劣りますが、インターネットに接続されたIoTデバイスの数は世の中に大量にあります。そのため、ランダムなIPアドレスに対する攻撃であっても多くの機器が感染してしまう可能性が高く、実際に今回のような巨大なボットネットが形成されてしまったのです。

Mirai Botnetのシステム構成 図1 Mirai Botnetのシステム構成(出典:Internet Infrastructure Review[IIR]Vol.33より)

 インターネットイニシアティブ(IIJ)が公開したInternet Infrastructure Review(IIR)」33号によると、

ファイアウォール外部から内部に対して、「23/TCP」と「2323/TCP」へのアクセス数がおよそ“9対1”になっているようであれば、Miraiの感染活動にさらされていると考えられます。

という記載があります。また、Miraiの通信は平文で行われているため、IDS/IPS(侵入検知・防御システム)での監視も可能です。まずは自社のネットワークが「ボットネットの攻撃に加担していないか」を確認してみてください。

組み込み開発の視点で見る、「IoTと組み込みセキュリティ」その概念と実装

IoTがもたらす明るい未来にばかり注目が集まるが、サイバー攻撃によるリスクについても考える必要がある。無料電子ブックレット『「IoTと組み込みセキュリティ」その概念と実装』では、IoTが本質的に持つリスクとその対策について解説する。

⇒ダウンロードはこちら


「Mirai」のその後――この戦いを終わらせるのはあなた自身

 では、Miraiからの感染を防ぐにはどうしたらよいのでしょうか。IIJのレポートには、

IoT機器のセキュリティを考える上で、メーカーの役割は非常に重要です。

との記述があります。

Mirai Botnetの検知と対策 図2 Mirai Botnetの検知と対策(出典:Internet Infrastructure Review[IIR]Vol.33より)

 今回の感染要因の1つとして、“デフォルトのパスワードを使い続けている”ということが挙げられます。IoTデバイスの中には、パスワードがハードコーディングされており、利用者が変更できないだけでなく、“利用者が知り得ない”“ユーザーを無効化できない”場合もあり得ます。これはもはや「バックドア」であり、メーカー/ベンダーの問題としてクローズアップされるべきものです。

 特に、パスワードに関する取り扱いには注意すべきで、文字数/文字種の制限なく利用者が自由に変更可能であることや、デフォルトパスワードのまま運用しないよう、製品出荷時から個体ごとにパスワードを変える、もしくは初回ログイン時に必ずパスワードを変更させるなどの仕組みを取り入れるべきでしょう。例えば、パスワードが8文字までで設定されていたり、英文字だけだったり、デフォルト固定のままだったりすると、今回のようなボットネットに組み込まれるリスクがあります。

 また、通信が平文で行われているという点にも着目すべきでしょう。telnetやHTTPは平文での通信ですので、SSHなどで通信を暗号化するように製品を設計すべきです。そして、バックドアと捉えられかねない、マニュアルに記載のないtelnetポートが存在することのないようにしましょう。



 Miraiはソースコードが公開されたことで、その挙動や対策が明らかになりました。しかし、それは攻撃者にとっても大きなヒントとなり、Miraiを改造したものと思われる新たなマルウェア(亜種)が登場する可能性も大いにあります。新たな攻撃を止めるには、対症療法ではなく「IoTデバイスの設計段階で、セキュリティをデザインすること」が重要です。現在では、IoTデバイス開発のガイドラインも多数登場しています。これらを参考にして、便利で安全なIoTデバイスを世に送り出してください。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.