ネットワークカメラをボット化する「PERSIRAI」拡散と追随するその他のマルウェア

ネットワークカメラをボット化する「PERSIRAI」拡散と追随するその他のマルウェア

トレンドマイクロは、2017 年 5 月上旬、1000 機種以上のネットワークカメラ(IP カメラ)を標的にIoT ボットネットを構築するマルウェア「PERSIRAI」(「ELF_PERSIRAI.A」として検出)」に関する記事を公開しました。そして、オンライン検索エンジン「Shodan」を利用した弊社の調査によると、現在、カスタム http サーバを備えた IP カメラの 64 %がこの PERSIRAI に感染していることが判明しました。PERSIRAI が6割以上を占める中、IP カメラは格好の標的であり、多くのマルウェアが利用の機会を狙っています。

弊社では、IP カメラを狙う 4 種類のマルウェアを確認しています。それぞれ特徴的な機能を備えており、IP カメラという限られた標的を巡って縄張りを争い、競争相手をブロックするための防御手段まで構築しています。

名称 攻撃開始 初登場 自己防衛機能 拡散手段 特徴 主に標的とする TCP ポート
PERSIRAI 2017 年 4 月 2017 年 有り SSDP
Web
LAN の SSDP 脆弱性による拡散

組み込みの Web カメラ脆弱性攻撃機能

81
DvrHelper 2017 年 3 月 2016 年 無し Telnet

Web

MIRAI と同じ機能

Layer7 DDoS*1

80
MIRAI 2017 年 2 月 2016 年 無し Telnet

Web

その他*2

DDoS のタイプ:

GRE IP/GRE ETH/SYN/ACK/STOMP/DNS/UDP

81
TheMoon 2017 年 2 月 2014 年 有り Web

(Linksys を含む)SOAP RCE

Asus.infosvr.UDP

P2P 通信 (複数の C&C)

外部の Socks5 モジュール

サポートプラグイン

80

注:
1. Layer 7 DDoS は既存の Python コードから複製
2. MIRAI の亜種は様々な手段で拡散

表1:IP カメラを狙ったマルウェアのファミリ

■PERSIRAI

2016 年は、マルウェアに感染した IoT 機器を利用した大規模な「分散型サービス拒否(Distributed
Denial-of-Service、DDoS)」攻撃が初めて確認された年でした。PERSIRAI の開発者は、これらの攻撃を観察し、従来型マルウェアで有効だった手法を把握しつつ、新たな手法も考案したようです。5 月初旬の記事では、そうしたPERSIRAIの仕組みを感染フローと共に解説しました。

注目すべき特徴は、IP カメラへの侵入後に既知の脆弱性 3 つを突いて他の IP カメラへ攻撃を開始する点です。

  • カスタム http サーバプロバイダの脆弱性
    1. login.cgi:認証を回避し、管理者パスワードを取得することが可能
    2. set_ftp.cgi:管理者パスワード取得後、コマンドインジェクションやマルウェアの配置が可能
  • 脆弱性「CVE-2014-8361」:作成した「NewInternalClient」リクエストを介して遠隔で任意のコードを実行可能

攻撃者は、これらの脆弱性を利用してユーザのパスワードを窃取できるため、パスワードの強さに関係なくコマンド注入が可能です。

■MIRAI

IoT機器のボットネットによる DDoS 攻撃は、「MIRAI」(「ELF_MIRAIファミリ」として検出)の攻撃が注目されたこともあり、PERSIRAIが確認される前から報道機関およびサイバーセキュリティ業界では大きな話題となっていました。2016 年 8 月に初めて確認された MIRAI は、史上最大規模の DDoS 攻撃に利用され、世界的にも注目されました。さらに悪いことには、2016 年 10 月、開発者が MIRAI のソースコードを公開したため、誰もが新しい亜種を作成できるようになりました。ロシアでも被害が確認されているMIRAIが、IP カメラを標的とするこの競争に加わったとしても不思議はありません。

2017 年 2 月には、従来型よりも多くのポートをスキャンすることで拡散能力を強化した Windows 版 MIRAIが確認されています。このマルウェアは、22(SSH)、23(Telnet)135(DCE/RPC)、445(ActiveDirectory)、1433(MSSQL)、3306(MySQL)、3389(RDP)のポートの開放を確認します。

■DvrHelper

MIRAI の新たな亜種「DvrHelper」(「ELF_MIRAI.AU」として検出)は、従来型MIRAIにさらなる改良が施されています。従来型 MIRAI が世界中の企業や業界に大きな影響を与えたことで、DDoS 攻撃への新たな対策が登場しました。このため、新型 MIRAI の亜種では、そうしたセキュリティの強化に対応するために、8 つの DDoS 攻撃モジュールが追加されました。DDoS 対策を回避する機能を備えた初めてのマルウェアでもありました。

具体的には、特定の CDN(Content DeliveryNetwork)が提供する DDoS 対策サービスを回避する 2 つの手段を備えています。

1 つ目の手段は、アンチボット技術の回避を狙ったもので、プロバイダによるチャレンジレスポンス認証を利用しています。


図1:プロバイダのアンチボット技術を回避する方法

以下の手順でアンチボット技術を回避します。

  1. ボットが標的のWebサイトにリクエストを送信し、JavaScript のチャレンジリクエストを受信
  2. リクエストから JavaScript のコードを抽出し、コマンド&コントロール(C&C)サーバに送信。C&C サーバは JavaScript を実行してレスポンスを生成しボットに返信
  3. ボットはレスポンスとその他の情報を組み合わせて DDoS 対策プロバイダに送信し、続いて実施する DDoS 攻撃のための有効な Cookieと「ユーザーエージェント(UserAgent、UA)」を取得

この手法は2014 年から Python のライブラリとして存在しています。ただし、IoT 機器の場合、JavaScript のコードをローカルで実行するには性能不足なため、クライアント側でJavaScript のコードを実行することはできません。今回の場合、開発者はアーキテクチャを設計して遠隔で実行しました。

2 つ目は、「Google reCAPTCHAレスポンス」トークンを利用する方法です。


図2:プロバイダの reCAPTCHA を回避する方法

  1. ボットが C&C サーバの URL にリクエストを送信し、有効な(共有された)Google reCAPTHA レスポンストークンを取得
  2. ボットは取得したトークンを利用して検証 URL にリクエストを送信し、有効なクッキー「__cfduid(訪問者の IP アドレスに基づきセキュリティ制限を上書きするためにプロバイダが利用)」と「cf_clearance(リクエストに含まれていた場合、それ以降のチャレンジは省略)」を取得し、DDoS 対策を回避

また、DvrHelper の最新亜種が利用する C&C サーバを確認したところ、以前ハードコードされていた IP アドレス「110[.]173[.]49[.]74」がホスト名「jbeupq84v7[.]2y[.]net」に変更されていました。このドメインについては、マルウェアや URL のオンラインスキャンサービス「VirusTotal」にも、ドメインに関する情報を収集した「パッシブ DNS レコード」があるだけで、ホスト名から IP アドレスを取得するための情報「A レコード」は存在していません。


図3:VirusTotal の検索結果

■TheMoon

最後の「TheMoon」(「ELF_THEMOON.B」として検出)は、IoT 機器を狙うマルウェアとしては最も古いタイプとなります。セキュリティ企業「SANS ICS」によって 2014 年に初めて検出され、脆弱性を狙って攻撃手法を更新し続けています。

最近確認された亜種複数と過去の亜種を比較したところ、C&C サーバのポート番号が変更されていました。最新の亜種群は、各亜種がそれぞれ特定の脆弱性を狙っており、新しい「iptables(Linux のパケットフィルタリング型ファイアウォール)」のルールを備えています。


図4:TheMoon の新しい iptables ルール

図 4 から確認できるように、感染した機器に iptables ルールがインポートされます。このルールによって TheMoon はファイアウォールを構築し、自身が感染した機器に他のマルウェアが感染するのを阻止します。このルールは亜種ごとに異なります。

ファイル名 ルール
.nttpd,17-arm-le-t1 INPUT -p tcp –dport 23 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

.nttpd,17-mips-be-t2 INPUT -p tcp -m multiport –dport 80,8080,7547 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

.nttpd,18-arm-le-t1 INPUT -p tcp –dport 23 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

.nttpd,19-mips-le-t1 INPUT -p udp –dport 9999 -j DROP

INPUT -p tcp -m multiport –dport 80,8080 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

.nttpd,port4444 INPUT -p tcp –dport 8080 -j DROP

INPUT -p tcp –dport 443 -j DROP

INPUT -p tcp –dport 80 -j DROP

INPUT -p tcp –dport 23 -j DROP

INPUT -p tcp –dport 22 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

.nttpd,port4446 INPUT -p tcp –dport 8080 -j DROP

INPUT -p tcp –dport 443 -j DROP

INPUT -p tcp –dport 80 -j DROP

INPUT -p tcp –dport 23 -j DROP

INPUT -p tcp –dport 22 -j DROP

INPUT -s 46.148.18.0/24 -j ACCEPT

INPUT -s 185.56.30.0/24 -j ACCEPT

INPUT -s 217.79.182.0/24 -j ACCEPT

INPUT -s 85.114.135.0/24 -j ACCEPT

INPUT -s 95.213.143.0/24 -j ACCEPT

INPUT -s 185.53.8.0/24 -j ACCEPT

表2:TheMoon が標的とするポート

表 2 に示されたルールから、TheMoon が標的とするポートは TCP/22(SSHリモートログインプロトコル)、TCP/23(Telnet)、TCP/80(HTTP)、TCP/443(HTTP overSSH/TLS)、TCP/7547(CPE WAN ManagementProtocol)、TCP/8080(HTTPのための代替ポート)、UDP/9999(ASUS ルータの「Infosvr」サービス)であることがわかります。各ポートは、特定の機器および脆弱性に対応しており、主な標的は IP カメラです。

そして感染すると、インストールスクリプトが「ne kemimbaruar!」という文字列に置き換わります。これは「私たちはやった!」という意味のアラビア語です。

■感染状況と内訳


図5:カスタムhttpサーバを持つIPカメラの感染率(日本と米国)

Shodan を利用した調査により、検索結果に表れる米国 IP カメラの半数以上が上述の 4 種類のマルウェアのいずれかに感染していることが確認されました。日本の場合、この数字はさらに高く、64.85% で感染が確認されました。


図6:4 種類のマルウェアの内訳(米国、日本、台湾、韓国のみ)

米国、日本、台湾、韓国で確認された感染機器の内訳を見ると、PERSIRAI が明らかに高い割合を占めています。しかし、状況は常に変化しており、脆弱性を抱えた多くの IP カメラが依然としてインターネットに露出しています。これら 4 種類のマルウェアによる攻撃の成功を受け、すぐにでも他の開発者が IP カメラを標的とした独自のマルウェアをリリースし、これまでとは全く異なった感染状況の結果をもたらすかもしれません。

■推奨される対策

これらの攻撃は、多くの場合、機器の管理画面で初期パスワードを利用しているという初歩的な不注意に起因しています。IP カメラの利用者は、大文字と小文字の両方、数字、特殊記号を含む 15 文字以上の強力なパスワードを作成し、すぐに初期パスワードを変更する必要があります。

強力なパスワードが通用しない PERSIRAI の例から分かるように、強力なパスワードは初歩に過ぎず、機器の安全を保証するものではありません。IP カメラの所有者は、ルータの「UniversalPlug and Play(UDP)」を無効にし、ネットワーク内の機器が警告なしに外部のインターネットに対してポートを開かないようにするべきです。

IP カメラのセキュリティ課題は利用者だけの問題ではありません。ベンダーも責任の一端を担い、機器が最新の状態に保たれて安全なことを確認するべきです。そしてこのためには、利用者もベンダーに協力し、脆弱性攻撃のリスクを減らすため、推奨される対策を実施して最新のファームウェアによる機器の更新を怠らないことです。

■トレンドマイクロの対策

上述の対策に加えて、ユーザはエンドポイントレベルでマルウェアを検出できるセキュリティ機能によって IoT デバイスを効果的に保護することができます。ネットワーク監視ソリューション「Deep Discovery Inspector」は気付くことが難しい標的型攻撃やゼロデイ攻撃をネットワーク上の振る舞いから見つけ出し、早期に対処し被害の深刻化を防ぐことができます。家庭用ルータを中心に構成されるホームネットワークを保護する「ウイルスバスター for Home Network」は、家庭内に接続されている各デバイスへの脆弱性を悪用する攻撃をネットワークレイヤでブロックし、ルータなどの脆弱性を悪用する攻撃に対応します。

これらのマルウェアファミリに感染した IP カメラの機種に関する情報は、こちらの資料(英語)をご参照ください。侵入の痕跡(Indicators ofCompromise、IoC)として、関連するハッシュ値(SHA256)と不正なドメインをご確認いただけます。

【更新情報】

2017/06/15 18:10 図5の色を変更しました。
2017/06/21 16:15 本文の一部を更新しました。

参考記事:

翻訳:澤山 高士(Core Technology Marketing, TrendLabs)