2016年9月以降に発生した複数の大規模なDDoS攻撃。本稿ではその攻撃に用いられたとされるマルウェア「Mirai」のソースコードを読み解き、対策法を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
C&Cサーバ部分はGo言語で書かれており、ボットやダウンローダー部分、その他の暗号化ツールなどは主にC言語で書かれています。公開されているリポジトリのディレクトリ構成と照らし合わせると、Miraiの構成は以下のようになります(リスト1)。
├── ForumPost.md // ハッカーフォーラムでソースコードが公開されたときの投稿テキスト ├── ForumPost.txt ├── LICENSE.md ├── README.md ├── dlr // ボットの頒布にwgetやtftpが使えないときに利用するダウンローダー │ ├── build.sh │ ├── main.c │ └── release ├── loader // 3.ダウンローダー │ ├── bins │ ├── build.debug.sh │ ├── build.sh │ └── src ├── mirai //mirai本体 │ ├── bot // 2.ボット部分のコードがあるディレクトリ │ ├── build.sh │ ├── cnc // 1.C&Cサーバ部分のコードがあるディレクトリ │ ├── prompt.txt │ └── tools // 暗号化ツールなど └── scripts // 設定に必要なコマンドやスクリプトなど ├── cross-compile.sh ├── db.sql └── images
Miraiボットネットは、攻撃者が1.のC&Cサーバを通じて2.のボットにコマンドを送り、大量のボットが対象を攻撃するC&C中心型ボットネットです。また、並行してボットは感染できるデバイスがないかをスキャンして、見つけたデバイスの情報をレポートサーバに送り、3.のダウンローダーがボットプログラムを送り込むという動きをしています(図1)。
そこで、まずはC&CサーバのコードからMiraiの動きを読み解いていきます。
Copyright © ITmedia, Inc. All Rights Reserved.