昨年、Nozomi Networks Labsは、複数のIPカメラとビデオ監視システムに関する広範なセキュリティ調査を実施しました。この調査により、AxisとThroughTek のデバイスに脆弱性が発見されました。今回、IPベースの監視ソリューションで非常に人気の高いメーカーであるDahuaが開発した一部のIPカメラにおいて、Open Network Video Interface Forum(ONVIF)のWS-UsernameToken認証メカニズムの実装に影響を与える新たな脆弱性(CVE-2022-30563で追跡)の詳細を公表します。この脆弱性を悪用すると、攻撃者は以前の暗号化されていない ONVIF とのやり取りを盗聴し、カメラに対する新しいリクエストで認証情報を再生することで、ネットワークカメラを侵害することができます。
このブログでは、ONVIF規格を紹介し、WS-UsernameToken認証メカニズムを概説し、観測された脆弱性の詳細を提供し、エンドユーザが適用できる具体的な改善策を共有する。
オープン・ネットワーク・ビデオ・インターフェース・フォーラム(ONVIF)
公式ウェブサイトによると、ONVIFは、IPベースの物理セキュリティ製品の効果的な相互運用性のために標準化されたインタフェースを提供し、促進するオープンな業界フォーラムです。ONVIFに準拠した製品は、標準化された一連のアプリケーション・プログラミング・インターフェース(API)を通じて、ベンダーにとらわれないソフトウェアからシームレスにアクセスできる。APIにより、ユーザーはリモートデバイス上でさまざまなアクションを実行できます。このようなアクションの例としては、カメラ映像の視聴、スマートドアの施錠・解錠、メンテナンス操作などがある。
ONVIF のリクエストは、ほとんどの場合、HTTP 経由の XML SOAP メッセージで送信されます。図1は、IPカメラの再起動をトリガーするONVIFリクエストの例です。
WS-UsernameToken 認証
他の認証メカニズムに加えて、ONVIF仕様は、OASIS仕様文書で説明されているWS-UsernameTokenを依然として受け入れている。WS-UsernameTokenは、リクエストを認証するために、以下のデータの送信に依存します:
- Username - 認証ユーザーのユーザー名
- Nonce - クライアントによって生成されるランダムな一意番号。
- Created - リクエストが作成されたUtcTime
- Password - 認証ユーザーのパスワード
仕様によると、「パスワード」はプレーンテキストで設定すべきではない。パスワードを設定すると「PasswordDigest」が生成されるが、これは以下のアルゴリズムに従って計算されたダイジェストである:
ダイジェスト = B64ENCODE( SHA1( B64DECODE( Nonce ) + Created + Password ) )
たとえば、こんな議論がある:
Nonce - LKqI6G/AikKCQrN0zqZFlg==
作成日時 - 2010-09-16T07:50:45Z
パスワード - userpassword
これは、リクエストを認証するためにリクエストに含まれる、結果のダイジェ ストである:
tuOSpGlFlIXsozq4HFNeeGeFLEI=
これにより、パスワードが不明瞭になり、リプレイ攻撃を防止する基盤が提供される。ONVIF標準によると、Webサービス・プロデューサがリプレイ攻撃を効果的に阻止するために、3つの対策も推奨されている(ここで「推奨」はRFC 2119のパラメータに従って解釈される):
1.
2. ウェブサービスのプロデューサは、タイムスタンプの「鮮度」制限を提供し、「古 い」タイムスタンプを持つUsernameTokenを拒否することを推奨する。
3.使用済みのnonceは、少なくとも上記のタイムスタンプの鮮度制限期間と同じ期間キャッ シュし、すでに使用された(したがってキャッシュにある)nonceを持つUsernameTokenを拒否するこ とを推奨する。
この仕様の手順は、機密性がなく、状態も変化しないリクエストに対して検証を実 行する負担からデバイスを解放するためのオプションと考えることができる。仕様では「推奨」されているだけであるが、セキュリティ上重要なリクエストに対して、 デバイスがこれらすべての対策を正しく検証することは極めて重要である。実際のところ、これらのチェックがない場合、暗号化されていないONVIFインタラクションを盗聴できる攻撃者は、カメラに対する新しいリクエストで認証情報を無期限に再生することもできます。
Dahua ONVIF 脆弱性の詳細
研究プロジェクトの 1 つで、Dahua 社製のドーム型ネットワークカメラである IPC-HDBW2231E-S-S2 を購入しました。デバイスのフィンガープリント情報を抽出する方法を調査している間、私たちは認証された demo_admin 管理者アカウントから以下のような状態を変更しない GetScope ONVIF リクエストを送信しました(図 2)。これはプローブ・メッセージにマッチするようディスカバリー・フェーズで使用されたデバイスのパブリック・スコープ・パラメータを返します。
図2:demo_adminユーザーからのONVIF GetScopesリクエスト。
この正確なリクエストを2度目に送信しようとすると、デバイスはリクエストを受け入れ、同じ応答で再び返信した。これは、要求される情報の機密性が低いことを考えれば、それなりに安全な動作である。
しかし私たちは、この条件が本当にマイナーなリクエストにのみ適用されることを 検証するために、さらに調査することにした。そこで、攻撃者が管理する管理者を密かに追加するCreateUsersリクエストを偽造してみた。異なるIPアドレスから、GetScopesリクエストの送信から約30時間後に、前のリクエストと同じ認証データを使用した。結果は以下の通りである:
図3に見られるように、デバイスは要求を受け入れ、攻撃者が制御する管理者を作成した。そして、この新しく作成されたアカウントを使用して、以下のようにカメラのライブ映像を見るなど、完全な権限でデバイスにアクセスすることができました。
この攻撃を実行するには、敵対者は WS-UsernameToken スキーマで認証された暗号化されていない ONVIF リクエストを 1 つスニッフィングできなければなりません。これは、以下の理由から、珍しい条件ではありません:
- WS-UsernameTokenは、ONVIF Device Managerや DSE VMSなど、多くの一般的なONVIFクライアントでデフォルトで使用されています。
- デフォルトでは、IPC-HDBW2231E-S-S2(他のDahuaデバイスと同様)はHTTPSサービスを公開しておらず、すべてのONVIFインタラクションは暗号化されていないHTTPを介して行われます。現実の世界では、資産所有者がこのような攻撃の発生を防ぐために、デフォルトのWS認証情報を使用せず、セキュアな接続にHTTPSを使用していることを期待しています。
概要
監視カメラは、建物のセキュリティに加え、石油・ガス、電力網、電気通信など、多くの重要なインフラ部門で使用されています。これらのカメラは多くの生産プロセスを監視するために使用され、プロセス・エンジニアに遠隔からの可視性を提供しています。脅威行為者、特に国家の脅威グループは、標的企業の設備や生産プロセスに関する情報収集のためにIPカメラをハッキングすることに関心を持つ可能性があります。この情報は、サイバー攻撃を開始する前に行われる偵察に役立つ可能性がある。標的の環境についてより多くの知識があれば、脅威行為者は、重要なインフラの生産プロセスを物理的に混乱させることができるカスタム攻撃を作成することができます。
Nozomi Networks Labsからの通知を受け、ベンダーは脆弱性を解決するためのパッチをリリースした。ユーザーは、脆弱性のあるデバイスを利用可能な最新のファームウェア・バージョンにアップデートするよう促される。また、Defense in depth(深層防御)のアプローチとして、公衆インターネット上のデバイスの露出を最低限に抑え、常にセキュアなプロトコル(HTTPSなど)を介してデバイスにアクセスすることを強く推奨する。