「Mirai」ソースコード徹底解剖−その仕組みと対策を探る大規模DDoS攻撃を引き起こしたIoTボットネット(1/4 ページ)

2016年9月以降に発生した複数の大規模なDDoS攻撃。本稿ではその攻撃に用いられたとされるマルウェア「Mirai」のソースコードを読み解き、対策法を紹介します。

» 2016年11月08日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

Miraiボットネットとは


 Mirai2016913Brian KrebsWebKrebs on SecurityDDoS使MiraiWebIoTDDoS

DDoS

 稿KrebsAkamai2

 20161021TwitterNetflixDNSDDoSMirai

 KrebsMiraiGitHub1

注1

GitHub上へコードが転載されたリポジトリは複数ありますが、今回は下記のリポジトリを参照しました。

https://github.com/jgamblin/Mirai-Source-Code


 MiraiIoT

 IoTDDoSIoTPCMiraiARMARM7MIPSPowerPCSH4SPARCx86

 稿GitHubMirai

Mirai


 Mirai3
  1. 攻撃者が操作するC&C(Command and Control)サーバ機能
  2. C&Cサーバから操作されるボット機能
  3. ボットプログラムを頒布するためのダウンローダー機能

 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
リスト1 ディレクトリ構成

 Miraiボットネットは、攻撃者が1.のC&Cサーバを通じて2.のボットにコマンドを送り、大量のボットが対象を攻撃するC&C中心型ボットネットです。また、並行してボットは感染できるデバイスがないかをスキャンして、見つけたデバイスの情報をレポートサーバに送り、3.のダウンローダーがボットプログラムを送り込むという動きをしています(図1)。

図1.Miraiボットネットの動き 図1.Miraiボットネットの動き

 そこで、まずはC&CサーバのコードからMiraiの動きを読み解いていきます。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。