ディーリンク社のカメラに潜む脆弱性を悪用し、攻撃者がビデオストリームに侵入

この記事をシェア

ESETの研究者は、自宅やオフィスのセキュリティを高める目的で設置されている機器に、多くのセキュリティホールが見つかったことを明らかにした。詳細を解説する。

この記事は、ESETが運営するマルウェアやセキュリティに関する情報サイト「Welivesecurity」の記事を翻訳したものである。

ディーリンク社のカメラに潜む脆弱性を悪用し、攻撃者がビデオストリームに侵入

5月31日追記
ディーリンク社はこの記事内のESETによる報告について、以下の通り認知する声明を発表した。 「私たちディーリンクでは報告があったセキュリティ問題を踏まえ、問題解決に向けて調査と研究に取り組んできています。現在配布中となるファームウェアのバージョンでは、すでにいくつかの脆弱性を解決しています。今後も詳しい情報があり次第、お伝えしていきます。」

自宅やオフィスのセキュリティを高めるために、「スマートカメラ」の設置を検討しているユーザーも少なくないだろう。直接インターネットに接続した後、わずか数回のクリックでいつでもストリーミングにて監視できるようになる。しかし、そのカメラ自体にセキュリティの脆弱性が潜んでいると、この便利な機能が裏目に出る恐れがある。攻撃者がこの脆弱性を悪用し、システムへ不正侵入を試みるからだ。スマートホームに関するESETの研究によると、これに該当するのはディーリンク社が製造しているDCS-2132Lクラウドカメラである。攻撃者は録画したビデオを傍受し、盗み見るだけでなく、デバイスのファームウェアを巧みに操作するのである。

ディーリンク社のDCS-2132Lクラウドカメラが抱える最も深刻な問題は、ビデオストリームが暗号化されずに通信されることである。カメラとクラウド間だけでなく、クラウドとユーザーの視聴アプリ間でも、暗号化されずに通信がおこなわれるのだ。侵入者にとっては中間者(MITM)攻撃を仕掛ける格好の場であり、被害者のビデオストリームをのぞき見できるようになる。

図1 – 脆弱なデータ通信とMITM攻撃のイメージ図

視聴アプリとカメラは、ディーリンク社のカスタムのトンネリングプロトコルに基づくTCPトンネルを利用し、2048番ポートのプロキシサーバー経由で通信をおこなう。暗号化されるのは、このトンネルを通過するトラフィックの一部に限定される。カメラのIPアドレスやMACアドレスのリクエスト、バージョン情報、ビデオ/オーディオストリーム、さまざまなカメラ情報といった極めて機密性の高い情報が暗号化されずに通信されている。

このような問題や、本稿の後半で説明する問題を引き起こす脆弱性の原因とはそもそも何なのか。それは、カメラへのHTTPリクエストを処理するrequest.c ファイル(ディーリンク社がカスタマイズしたオープンソースのBoaと呼ばれるウェブサーバーのソースコード)の条件部分である。127.0.0.1からのHTTPリクエストがすべて、管理者レベルまで引き上げられているため、攻撃者はデバイスに簡単にアクセスできてしまうのだ。

図2 – Boaウェブサーバーのソースコードの条件。受信リクエストはすべて管理者レベルまで引き上げられている。

ビデオ/オーディオストリームの傍受

MITM攻撃者は、視聴アプリとクラウド間、またはクラウドとカメラ間のネットワークでやり取りされるトラフィックを傍受する。彼らは、サーバー(クラウド)の2048番ポートで確立されたTCP接続のデータストリームを悪用し、ビデオ/オーディオパケットを要求するHTTPリクエストを傍受するのである。次に、攻撃者はいつでもこれを復元、再生し、カメラから最新のビデオ/オーディオストリームを入手する。ESETが実験したところ、2つのRAW形式(特に、M-JPEGとH.264)においてストリーミング方式のビデオコンテンツを入手することができた。

ビデオストリームは、いくつかの手順を踏むだけで復元可能である(シンプルなプログラムやスクリプトで簡単に自動化可能)。

  • ビデオストリームであるトラフィックを確認する。このトラフィックは複数のブロックに分かれたデータで構成されている。各ブロックには特定のヘッダーが付けられ、長さが決まっている。
  • データ部とヘッダーを分ける。
  • 最後に、ビデオの部分をファイルに結合する。

このように入手したビデオファイルは、コンテナファイル形式ではなくRAWストリーミング形式*1であるため、簡単に再生できない場合がある。しかし、適切なコマンドラインスイッチで実行すると、メディアプレイヤーでこのようなRAW形式を処理することができる(例えば、MPlayerはM-JPEGファイルを処理可能であり、VLCはH.264ファイルを再生できる)。

*1 RAWストリーミング形式とはRAW(Record and Watch)ファイルを用い、Adobe Flash Playerでストリーミング再生するものを指す。この場合、WAVやMP4のようなコンテナファイル形式と異なり、リアルタイムで再生後、ユーザーの手元のファイルは随時削除される仕様となっている。しかし、記事中にもあるように、特定の手順で復元が可能である。

プラグインに潜む問題

このカメラについては、ウェブブラウザーのプラグインである「mydlinkservices plugin」に別の深刻な問題が潜んでいた。これには、ユーザーに提供されている視聴アプリと、今回ESETの研究対象から外れたモバイルアプリが含まれる。

このウェブブラウザーのプラグインはクライアントのブラウザーでTCPトンネルを作成し、ライブビデオを再生する。さらに、ローカルホストで動的に生成されたポートで待ち受けているトンネルを通じて、ビデオ/オーディオデータストリームのリクエストを転送する。

トンネルはOS全体に張り巡らされているため、クライアントのコンピューターのアプリケーションやユーザーはhxxp://127.0.0.1:RANDOM_PORT/にリクエストするだけで、カメラのウェブインターフェイスに簡単にアクセスすることができる(ライブビデオストリーミング中に限られる)。

ローカルホストIPからアクセスする場合(視聴アプリのローカルホストは、カメラのローカルホストとトンネルで接続されている)、カメラのウェブサーバーへのHTTPリクエストは自動的に管理者レベルまで引き上げられるため、許可を得る必要がない。

この脆弱性を悪用して、攻撃者は正規のファームウェアを彼ら自身で不正操作することや、バックドアを仕掛けたものにすり換えることなども可能になるのだ。

以下のYoutube動画は、プラグインのセキュリティ問題(現在は解決済み)を簡単に示したものである。

不正ファームウェアへのすり替え

本稿執筆時点(2019年5月上旬)で、「mydlinkservice plugin」の問題は提供元により解決済みである。

しかしそれでも、攻撃者は本稿冒頭で述べた、ディーリンク社がカスタムしたトンネリングプロトコルに潜む脆弱性を突き、悪意のあるファームウェアにすり替えることは可能な状態である。そのため、偽のファームウェアの「アップデート」をアップロードし、実行するPOSTリクエストとビデオストリームのGETリクエストをすり替えることで、トラフィックの変更が可能だ。

ここで少し注意してほしい。このような攻撃を仕掛けるのは容易ではない。トンネリングプロトコルのすべての規則に従い、特定のヘッダーが付けられ、最大長が決められたブロックにファームウェアのファイルを分けなければならないからだ。

しかし、ファームウェアのバイナリーは、アップデート中に信頼性の検証がおこなわれていない。そのため、仮想通貨のマイニング、バックドア、スパイウェア、ボットネットや他のトロイの木馬など、別の「隠れた」機能でカスタマイズされたファームウェアがデバイスにアップロードされることがある。さらに、信頼性をしっかり確認しなければ、悪意のある攻撃者によってデバイスが使用できなくなる可能性もある。

UPnPによってHTTPポートがインターネット上にさらされることに

ディーリンク社のDCS-2132Lは、上記以外にも小さな問題をいくつか抱えている。このカメラはユニバーサルプラグアンドプレイ (UPnP) を利用すると、自宅のルーターに接続されたカメラ自体へのポートフォワーディングを設定できる。従って、設定の「UPnPプレゼンテーションを有効にする」または「UPnPポートフォワーディングを有効にする」フィールドがオフであっても、ユーザーの許可なく、80番ポートのHTTPインターフェイスがインターネット上に開放された状態になる恐れがある。

カメラにこのような危険な設定をしている理由は明らかとなっていない。現在、Shodan上の調査では、80番ポートがネット上にさらされたディーリンク社のDCS-2132Lカメラは約1,600台を数える。そのほとんどは米国、ロシア、オーストラリアにあることがわかっている。

図3 –80番ポートに接続されたDCS-2132Lに関するShodanの検索結果

この現在のリスクを解消する最も簡単な方法は、ユーザーのルーター側でUPnPを無効にすることである。

プラグインに潜む問題が解決されても、他の問題が残っている

責任ある情報開示の一環として、ESETは2018年8月22日にディーリンク社の製品に問題が見つかったことを報告した。この報告には、暗号化されていない脆弱なクラウド通信、不十分なクラウドメッセージ認証、暗号化されていないLAN通信などが含まれる。

ディーリンク社は迅速に対応し、脆弱性報告を社内の研究開発チームに送り、追跡調査の実施を約束するとESETに報告した。

その後、ESETによる検証では脆弱性のいくつかが解消されていることがわかっている。現在、「mydlink service plugin」のセキュリティは十分に確保されている。ただし、まだ別の問題が残っている。本稿執筆時点で、カメラのファームウェアの最新バージョンは2016年11月からダウンロードが開始されたが、脆弱性に対処していなかったため、悪意のあるファームウェアにすり替えられるだけでなく、ビデオ/オーディオストリームが傍受されてしまうことになった。

ディーリンク社のDCS-2132Lカメラは、現在も販売が続いている。このカメラを所有するユーザーは、80番ポートがインターネット上に開放されていないかをまず確認すること。さらに、このカメラを自宅や会社の機密性が高い場所の監視に使用しているのであれば、リモートアクセス機能の使用について再考してほしい。

この記事をシェア

IoTのセキュリティ対策に

サイバーセキュリティ
情報局の最新情報を
チェック!