研究者は、安価なIPカメラの内部メカニズムを特定し、独自のクラウドプラットフォームをバイパスしてONVIF標準を介したローカルビデオストリーミングを可能にすることに成功した。このプロジェクトは、ファームウェア解析によって、メーカーがエンドユーザーに隠していることが多いハードコードされたRTSP URL形式や構成キーをいかに明らかにできるかを示している。

ファームウェアの抽出とカーネルの特定

調査は、binwalkツールを使用してカメラのファームウェアイメージを抽出することから始まった。抽出の結果、デバイスは2013年3月にリリースされたバージョンであるLinux 3.4.35カーネル上で動作していることが判明した。

抽出されたファイルシステム内で、研究者は初期化スクリプトと、カメラのコア機能を実行する主要なアプリケーションバイナリである「ppsapp」を特定した。

「ONVIFストリーミングURLの形式は判明したが、それがどのポートで動作するかはまだ特定する必要がある。」

— Taking another shot at the cheap IP camera, part 2

ONVIFおよびRTSPロジックの特定

「ppsapp」バイナリに対して「strings」コマンドを実行することで、研究者はONVIFサーバーロジックの存在を確認し、特定のRTSP URL形式「rtsp://%s:%d/Streaming/Channels/101」を特定した。

この発見により、ONVIFサーバーはファームウェアに組み込まれているものの、ストリーミングポートはソフトウェア構成によってデフォルトで無効化されていることが確認された。

リバースエンジニアリングされたIPカメラからキャプチャされたライブRTSPビデオストリーム。
内部ロジックを特定した後のカメラからの正常なRTSPストリーム。ericswpark.com

この画像は、ローカルビデオストリームをアンロックしようとした研究者の努力の成功結果を示している。

Ghidraによる構成ロジックのデコンパイル

Ghidraリバースエンジニアリングツールを使用して、研究者はバイナリが「onvif_enable」構成キーをどのように処理するかを追跡した。解析の結果、ソフトウェアが「tuya_config.json」を読み取り、動作設定、パスワード、アラーム機能のための内部データ構造を構築していることが示された。

ファームウェア内でONVIF_ENABLEキーが参照されている特定の場所を示す技術的な図またはリスト。
バイナリ内のONVIF_ENABLE構成キーの参照場所。ericswpark.com

この視覚情報は、デバイスがONVIF構成キーをどのように処理するかについての技術的分析をサポートするものである。

デコンパイラにより、「onvif_pwd」(パスワード)が特定のメモリ領域で処理および保存されていることが判明し、デバイスがローカルアクセスの試行をどのように検証するかのロードマップが提供された。

自動解析のトレードオフと制限

研究者は、LLM(大規模言語モデル)がリバースエンジニアリングの時間とコストを劇的に削減できる一方で、単純な難読化によって妨げられる可能性があることを強調した。例えば、開発者がビット演算を使用して、単純なテキスト検索からパスワード文字列を隠す可能性がある。

研究者はRTSP URL形式と構成ロジックを特定することには成功したが、この特定の解析においてはストリームの具体的なポート番号は未解決のまま残っている。

Hacker Newsの読者の反応

  • 体験談: 企業環境でファームウェアの執筆経験があるコメント投稿者は、完全な難読化が行われていないのは、単純な見落としではなく、開発者がセキュリティスキャナーをパスするための最低限の作業しか行わなかったためである可能性が高いと示唆した。 コメント ↗
  • 体験談: ある読者は、研究者がパスワードを見つけるためにLLMを使用したものの、モデルは他のブログで見られる一般的なパターンに基づいて、近くにある「enter password」のような難読化されていない文字列を特定しただけである可能性が高いと指摘した。 コメント ↗
  • 体験談: あるコメント投稿者は、リバースエンジニアリングに異なるAIモデルを使用した経験を共有し、モデルによっては安全フィルターに関して協力的なものがあることや、リセラープラットフォームを使用することで様々なプロバイダーのテストが容易になることを述べた。 コメント ↗
  • 体験談: ドローンのコンポーネントをレースに使用しているコメント投稿者は、低電力・低遅延のビデオフィードは広く利用可能で手頃な価格であるものの、信号の品質は伝送パイプラインの解像度によって制限される可能性があると指摘した。 コメント ↗

Hacker Newsのスレッドで出た意見の要約です。事実として検証されたものではありません。 議論の全文を読む ↗