監視カメラに潜むアクセス制御の不備(監視カメラ怖い😖)

  唐突ですが、私は旅行が好きです。学生時代は自転車にキャンプ道具一式を載せ、北海道を旅行したりしていました。旅行の目的はその土地の景色を見たり、美味しいもの食べたり。自分の知らない町の景色を見る事、わくわくしますよね?そんな私、社会人になると旅行に行くのも難しくなり…それを埋め合わすようにライブカメラをみて旅行気分を味わう、そんな楽しみを覚えていた時期がありました。
 そんなわたし、これまでもこのblogで紹介をしてきましたshodanを使って、お仕事として様々な調査をしています。ある日、いつものように調査をしていたところ、不思議な光景に出会いました。今回はその不思議な光景について、話をしていこうと思います。
 なお、これははじめに目的を明確にしておきたいと思いますが、本BlogにおいてはOSINTツールの使い方を実事例を通して紹介する事と、設定に不備または脆弱性があるカメラを使う事の危険性を啓蒙することです。その点、ご理解をください。

 今回使うshodanの検索式は"has_screenshot:true"です。これはshodanによるスキャンの結果、何らかのスクリーンショット(含む画像)が取得できている物を検索結果として得る場合に使う検索式になります。検索式についてだけ知りたい方はこちらにかきました。

1. はじめに:Shodanで見た不思議な光景のお話

 Shodanには"Images"=スキャンしたホストから画像情報を抽出して表示する機能があります。通常、僕らが仕事の一環として調査をする場合、ImagesはRDP(Remote Desktop Protocol:WIndowsのリモートデスクトップ)の有無について調べる場合に使います。攻撃者がどのような言語でOSを使っているのか、等得られる情報があるからです。
 そのImages検索をしている中で、不思議な光景を目にしました。一般家庭の家の中やオフィスの画像。特に一般家庭の画像がImage検索に含まれることには強烈な違和感を感じました。これ、完全にプライバシー的に問題ありだろうと。明らかに本来は外部に公開することを目的としていない様々な画像が含まれています。公開されているとはいえ、これは意図せず公開されてしまっているのでは?と感じざるを得ません。

画像25

 今回はそこに、調査を行うモチベーションがありました。それでは実際に調査を進めていきます。

 調査をしていく中で、プライバシーにある程度配慮可能な対象を探していきます。すると、少し見覚えがある道路の画像がありました。それがこちらです。

画像2

これは道路標識等から考えて下図の近辺であることは間違いありません。東京外環道の側道の国道298号線を監視するカメラだと思われます。(https://www.shodan.io/host/124.255.1.33)。ここであれば大きくプライバシーには…ここから調査を開始していきたいと思います。

2. 画像の曝露

 それでは先ほど見つかったホストについて少し見ていきます。Shodan上にあるスキャン結果から見ていきます。

画像3

 53(DNS)、80(HTTP)、123(NTP)、554(RTSP)、8080(ONVIF:OpenNetworkVideoInterfaceForum)があいていることがわかります。また、80/TCPについてはHTTPヘッダからBasic認証がかかっている事がわかります。個人的に興味があるのは554/TCPです。554/TCPはRTSP(RealTime Streaming Protocol)と呼ばれており、その名前が表すように、リアルタイムストリーミング(簡単に言うとリアルタイムに画像を配信するためのプロトコル)を目的としています。実際、確認をしてみると、

画像4

このように、554/TCPに画像が関連付けられています。この項目にデバイスを特定するヒントが含まれています。HTTPのレスポンスヘッダ、Server: の箇所に書かれている"Hipcam RealServer /V1.0"が、そのデバイスを表している可能性があります。この情報について少し調べてみたいと思います。

3. Hipcam RealServer /V1.0とは

 いきなり結論を書いてしまいますが、Hipcam RealServer /V1.0とは、Baby monitorや監視カメラに使われる、ソフトウェア(ファームウェア上で動いているソフトウェア)になります。これをキーワードに早速ググってみましたが…速攻で香ばしい結果がでました。もったいぶってもしかたないので、ご紹介をします。このBlog記事書く前に、自分が初だったらどこかで発表するネタになるかな?と考えていたのですが…残念
The Scary World of Baby Monitor 'Hacking'
(https://wjmccann.github.io/blog/2017/11/11/The-Scary-World-Of-Baby-Monitor-Hacking)
Misconfigured Baby Monitors Allow Unauthorized Viewing
(https://threatpost.com/baby-monitors-unauthorized-viewing/163982/)
 各記事ではHipcamを含めたBaby Monitorにはアクセス制御に問題があることを書いています。どのようなアクセス制御なのか、図で書いてみたいと思います。
非常にシンプルに書くとこのようになります。

画像5

 80/TCPの管理UIには認証がかかっているものの(認証といってもBasic認証ですが)、RTSPについては認証がかかっていないことがわかります。恐らく、shodanはこの認証がかかっていない、RTSPポートからアクセス。画像を取得して、検索結果に反映していると考えられます。それではこのHipcamが動いている製品とは?と探しているとありました。

3.1 Hipcamが動いている製品とは?(前編)

 Hipcamが動いている製品を調査していくと、製品の特定に繋がる製品マニュアルを発見しました。それがこちらです。

画像7

(プロダクトガイドからの抜粋、プロダクトガイドはこちら(PDF)

これはGoTake社という中国の会社が開発、製造した製品です。少なくともGoTake社の製品では使われているのは確実です。

3.1.1 プロダクトガイドを読んで認証設定を探る

プロダクトガイドを読んでいくと興味深い事が色々と見つかります。
例えばこれ。

画像8

Dynamic DNSを使って外部公開ができる仕組みがあるのですが、3rdパーティーとしてdyndnsが紹介されているほかに、hipcam.orgというオリジナルのドメインでDynamic DNSサービスを提供しているのですね。ちょっと調べるだけで多数出てきます。

画像22

その他にもこのような情報が。この情報は調査に使えそうです。

画像9

 これはVLC Streaming media playerでカメラをモニターする手法について書いています。ちなみに、FirstやSecondは通信品質によって分けているようです。さて、目下の興味はリモートアクセスのアクセス制御についてです。リモートアクセスについてはこのページですね。

画像10

あ。。。これだけか。それなら認証は

画像11

でました。これですね。ユーザパスワードが設定できると。これがちゃんと設定してあればRTPについても何らかの認証が動作するのかな?先ほどの道路のカメラにアクセスしてみます。

画像12

 いやいや、全然認証かかっていない…VLCでアクセスすると普通に見えてしまいます。ちなみに、管理UIの方はShodanの結果からも認証がかかっている事がわかっていますのでアクセスしません。
 参考までですが、Canonのカメラのマニュアルを見てみましょう。https://global.canon/ja/support/security/pdf/nwc-security.pdf

画像13

このようにHTTPとRTSPにDigest認証ができるようになっています。

3.2 Hipcamが動いている製品とは?(後編)

 3.1ではGoTake社の監視カメラについて書きましたが、他にはどのような製品で使われているのでしょうか?探しているとHipcamの設定について言及しているWebを発見しました。
szsinocam IP カメラマニュアル(備忘録)
http://sanchan.good-cat.net/bgc1/2018/06/01

画像15

 このWebを読む限り、著者はAmazonで入手しているようです。

画像15

この辺か…普通に検索で出てきました。調査をしていくと
・Hipcamは複数のメーカーの中国製の監視カメラに使われている
・国内だとAmazonや楽天等、通販サイトで販売されている

という実態が見えてきました。今回の記事を書く上で機器の入手はまだしていませんが、追ってカメラの入手をして調査をしてみたいと思います。ちなみに、このカメラですが、iphoneというURIにアクセスすると以下のようなファイルがダウンロードされます。この事から、他にもいろいろなアクセス経路が存在しているのでは?とみています。

画像16

4. Hipcamだけがそうなのか?

 今回、Hipcam RealServer /V1.0が動いている装置にてアクセス制御に不備(CWE-264に該当か)がある機器が存在していることがわかりました。当然、「それだけなのか?」と疑問が浮かんでくるかと思います。4章ではその点について可能性の観点で調査をしてみます。
 まずはshodanを使って”RTSP+スクリーンショットが取得できている”の条件で検索を行います(https://beta.shodan.io/search?query=%22RTSP%22+has_screenshot%3Atrue)。
 結果、世界中で10万を超えるデバイスでスクリーンショットが取得できてしまっていることがわかります。もちろん、この中には意図的に公開しているものが含まれている可能性がありますので、意図しない形で公開されているものはもう少し少ないかもしれません。また、この画面の中をみても、すでにHipcam以外でも画像を取得できてしまっている事がわかります。

画像17

 そこで、このshodanのデータをダウンロードして分析をしてみたいと思います。今回はライセンスの都合上、約10万件のデータのうち、無作為8千件のみを分析の対象としました。調査は網羅性は重視していません、ご了承ください。ShodanのデータはJSON形式で提供されます。そのJSONデータをSplunkに投入して分析を行います。SPLはこんな感じです。

index=shodan202104cam
| rex field=data ".*?Server\:\s*(?P<server>.*).*"
| fillnull
| stats count by server
| sort - count

画像18

 このような結果が得られています。この事からも、アクセス制御に不備がある可能性があるデバイスは他にも存在している実態が見えてきます。

5.(まとめ)対策はあるのか?

 ここまでで、この問題は認証とアクセス制御の問題=CWE-264であることが判ってきています。それでは対策はあるのでしょうか?

(1)VPN GW(Firewall)を用いてアクセス制御を行う

 イメージとしては以下となります。

画像19

 この案は既存のカメラをそのまま使い続ける事を前提としています。VPN GWと書いている所はFirewallと読み替えていただいてもかまいません。Firewallで通信の制御をおこない、かつカメラにアクセスする通信はすべてVPNを使う(つまり認証を行う)構成であれば、セキュアになります。ただし、VPN GWを追加で買う、VPNのコンフィグレーションや、閲覧に使うデバイス(スマートフォン等)にもVPNの設定をしなければなりません。面倒…却下

(2)セキュアな機器に買い替える

 もっとも現実的な回答はこれになるかと思います。しかし、残念ながら(ごめんなさい)どの機器がセキュアなのか、私は情報を持ち得ておらず。ごめんなさい。
 ただ、一つ言える事は、先にあげました道路を監視するために使うようなカメラであるとか、業務用途で使われるようなカメラについては安価なかつどこの製品だかわからないようなものはものは使うべきではないと考えます。
 例えば、このような場所に使うカメラです。

画像20

 画面ではカメラが見つけにくいとは思いますが画面中央部の箱の下に見える透明の半球体の形状をしている物が監視カメラになります。これは私が実際に現地にいって撮影をしてきました。見た目、こんなしっかりとした据付を行っているカメラですが、実態は

画像21

 Hipcam RealServer/V1.0です。そして、このカメラに写っているのは東京は銀座線渋谷駅の駅工事現場です。この区画は一般人は立ち入り禁止。工事関係者が設置したカメラです。調査を行った時点で、適切なアクセス制御はなされていない状態で使われていました。なお、このカメラについては関係者に通報、通報後、カメラは停止されています。業務で使われる場合は調達の適正化の観点で機器選定は慎重かつ妥当な検討をされる事を強く推奨します。
 実はこれまでも監視カメラを調査している中で、閉店後のデパートであるとか、レジのドロアを写しているカメラも見つかっています。また、病院の受付を上から映しているカメラでは、患者のカルテが見えているケースも見つかっており(デフォルトで可読化である他、カメラの認証を突破することでカメラの制御を奪取でき、カメラのアングルの変更、ズームをする事も可能です)、重大なプライバシー侵害を生む可能性もあります。
 これまで、場所を特定し、実際に現場にいって実際にアクセスをして見せる事をしたことがありますが、ほとんどの方が認識をしていなかったとコメントされています(そしてその直後、カメラは撤去されました)。

 簡単な設定をすることで、簡単に外出先から見えて便利だ、という実態の裏には、このようなリスクが潜んでいるということ、改めて知っていただき、利用の継続可否を検討していただければ幸いです。

6. 今回使ったshodan検索式のおさらい

 今回使ったshodanのコマンドは"has_screenshot:true"です。

画像24

もちろん、ここから国を絞って検索する場合は

画像25

のように書きます(その他、AS指定、組織指定なども可能)。
 少し横道にそれますが、検索の仕方によっては得られる結果が異なるということについて少しお話をします。以下の場合、似たような検索式ながら、若干、検索結果が異なっている事がお分かりいただけるかと思います。

画像26

 ここで使っている検索式、"ALL:"についてはshodanのFilter Referenceでも詳しくは書かれていないため、良くわかっていません(ごめんなさい)。ただ、過去の経験として、ALL:なしで検索をした場合、検索はraw dataの.dataを検索をしていると理解しています(以下が.data領域の例)。

画像27

 これをALL:とすることで、全データ領域を検索対象とするようにできる個人的には理解をしています。その為、ALL:と指定することで、検索結果がより多くなる、と考えています。この辺は探したいところを把握して、その上で検索をする方が良いかもしれませんね。

参考

Shodan(以下は要ログインです)
https://beta.shodan.io/search?query=%22RTSP%22+has_screenshot%3Atrue 
※すべての国と地域を対象としたRTSP+画面ショットが保存された検索
https://images.shodan.io/?query=%22RTSP%22+
※Shodanのイメージ検索。Shodanではイメージ付きの結果を検索する機能があります。リモートデスクトップ等の画面キャプチャ等もされており、調査には有効に活用できます。
szsinocam IP カメラマニュアル(備忘録)
http://sanchan.good-cat.net/bgc1/2018/06/01
The Scary World of Baby Monitor 'Hacking'
(https://wjmccann.github.io/blog/2017/11/11/The-Scary-World-Of-Baby-Monitor-Hacking)
Misconfigured Baby Monitors Allow Unauthorized Viewing
(https://threatpost.com/baby-monitors-unauthorized-viewing/163982/)





この記事が気に入ったらサポートをしてみませんか?