Cisco Japan Blog

注目の脆弱性:CUJO Smart Firewall、Das U-Boot、OCTEON SDK, Webroot BrightCloud の複数の脆弱性

1 min read



エグゼクティブ サマリー

CUJO AI 社は、マルウェア、フィッシング Web サイト、ハッキングなどの多数の脅威からホーム ネットワークを保護する CUJO Smart Firewall を提供しています。最近 Cisco Talos は、CUJO Smart Firewall に 11 個の脆弱性を発見しました。これらの脆弱性によって、攻撃者は、root アカウントのコンテキストで任意のコードを実行するか、影響を受けたシステムに未署名のカーネルをアップロードして実行することで、安全なブラウジング機能をバイパスし、デバイスを完全に制御できる可能性があります。

Talos は情報開示方針に従って CUJO AI 社と協力し、これらの脆弱性が解決されたことと、影響を受けた利用者向けにファームウェア アップデートが利用可能であることを確認しています。最も一般的なシナリオでは、このファームウェア アップデート プロセスは CUJO AI 社によって処理されるため、このアップデートは影響を受けた顧客に自動的に導入されます。通常これらのデバイスがネットワーク環境の保護のために導入されていることを考えると、影響を受けたユーザには、デバイスがアップデートされていることを早急に確かめ、これらの脆弱性の影響を受けなくなっていることを確認するようお勧めします。

悪用

これらの問題が実環境にもたらす脅威に対する理解を深めるために、このセクションでは、悪用されうる現実的な攻撃シナリオに基づいて脆弱性をグループ分けし、これらの脆弱性を連鎖させることによってデバイスへの影響がどのように高まるかを説明します。

CUJO は OCTEON の SDK をベースにしています。したがって、Internet of Things(IoT)アプライアンスには珍しく、Linux ベース オペレーティング システムで実行されているカーネルに PaX パッチが適用されています。ただし、これらの脆弱性の大半はこの対策の影響を受けません。

認証なしでの永続的なリモート コード実行

私たちは、認証なしでリモートからのコードの実行に使用できる 2 つの連鎖を特定しました。

  1. TALOS-2018-0683 には、Webroot BrightCloud SDK が提供する Web サイトの分類およびレピュテーション データの取得に使用するサービスの脆弱性について記述されています。CUJO は、安全なブラウジング保護の一部として BrightCloud を使用しています。この脆弱性を悪用すると、認証されていない攻撃者が BrightCloud のサービスになりすまし、root ユーザとしてデバイス上でコードを実行できる可能性があります。TALOS-2018-0686 で説明されているように、BrightCloud SDK はデフォルトで HTTP 接続を使用してリモートの BrightCloud サービスと通信するため、攻撃者が CUJO と BrightCloud 間のトラフィックをキャッチできれば、TALOS-2018-0683 は簡単に悪用できてしまいます。

 

  1. CUJO は、Lunatik Lua エンジンを使用してカーネルのコンテキストから Lua スクリプトを実行します。この機能は、ネットワーク全体のトラフィック分析で使用されていて、CUJO の安全なブラウジング保護の一部をなしています。TALOS-2018-0703 には、ローカル ネットワーク内の認証されていない任意のユーザが、HTTP 要求に任意の「Host」ヘッダーを指定することで、カーネルで Lua スクリプトを実行できるようにする、スクリプト インジェクションの脆弱性について記述されています。Lunatik では、保護されていない「load()」Lua 関数の使用が認められているため、攻撃者にカーネルで任意のコードの実行を許可してしまいます。さらに TALOS-2018-0702 には、CUJO に任意のホスト名を抽出および分析させるために使用可能な脆弱性について記述されています。TALOS-2018-0703 アドバイザリの最後に記載されているように、悪意のある Web サイトは両方の脆弱性を連鎖させ、CUJO ネットワーク内の任意のクライアント マシンに JavaScript 経由で POST 要求を実行させ、Lua インジェクションをトリガーし、カーネル内で効果的にコードを実行可能です。

 

上記の脆弱性は、ローカル ネットワークからも実行可能であることに注意してください。さらにこれらの脆弱性は、デバイスを永続的に侵害するために、以下で説明されている「ベリファイド ブートのバイパス」と連鎖させることができます。

認証なしでのローカル ネットワーク コード実行

前述したように、上記の 2 つの連鎖は、ローカル ネットワークから悪用できます。

さらに Talos は、mDNS メッセージの解析に影響を与える 2 つのコード実行の脆弱性(TALOS-2018-0653、TALOS-2018-0672)を特定しました。ただし CUJO は、権限の低い chroot 環境では影響を受けた「mdnscap」プロセスを抑制します。したがって、攻撃者がデバイスを完全に侵害するためには、権限を昇格させる必要があります。

永続的なスマートフォン アプリ コードの実行

CUJO ユーザは、デバイスを設定するために Android デバイスと iOS デバイスにアプリをダウンロードできます。CUJO はルータとして機能し、DHCP 要求を処理するため、このアプリを使用して静的 DHCP エントリをセットアップすることが可能です。TALOS-2018-0627 には、root ユーザとして任意のオペレーティング システム コマンドを実行するために、DHCP ホスト名の処理方法の脆弱性を活用する方法が記述されています。

さらにこの脆弱性は、デバイスを永続的に侵害するために、以下で説明している「ベリファイド ブートのバイパス」と連鎖させることができます。

デバイスのローカルのベリファイド ブートのバイパス(永続的手法)

CUJO は、Das U-Boot の「ベリファイド ブート」を使用します。Das U-Boot は、未許可の修正からブート プロセスを保護すること、つまりデバイスの永続的な侵害の防止を目的とするオープン ソースの主要なブートローダです。さらに、CUJO に最初に導入された 16 MB の eMMC は永続的に書き込み保護されているため、製造業者であっても、このシステムのブートローダを修正することは不可能です。私たちは、これらの保護機能をバイパスする 2 つの脆弱性を特定しました。

  • まず、Das U-Boot の問題を発見しました。これはバージョン07-rc1 ~ 2014.07-rc2 に影響します。TALOS-2018-0633 には、U-Boot は現在も古い未署名のイメージからブート可能であるため、FIT イメージの署名が適用されていないことが記述されています。この動作は、署名付き FIT イメージを古い(したがって未署名の)イメージと置き換えるだけで悪用することが可能です。CUJO が使用している OCTEON SDK は U-Boot バージョン 2013.07 を使用しているため、CUJO と OCTEON SDK はいずれもこの問題の影響を受けます。この事実、そしてこれらの製品は、この問題を回避せずに影響を受けた U-Boot バージョンを使用するのが不可能なことから、この CVE は U-Boot に割り当てられていました。

前述のように、U-Boot ブートローダは修正不可能であるため、TALOS-2018-0633 は CUJO では修正できません。ただしこの問題は、単独では重大度が低いことに注意してください。詳細については、以下の説明を参照してください。

  • TALOS-2018-0634 には、このセキュア ブート プロセスをバイパスする別の方法が記載されています。「conf」ファイルを修正することで、DHCP サーバにシェル コマンドを実行させることが可能です。このファイルはリブート後に永続性を維持するため、ブートのたびに root として任意のコマンドを実行することが可能で、システムの整合性を効果的に侵害できます。

安全なブラウジングのバイパス

最後に TALOS-2018-0702 には、CUJO の安全なブラウジングをバイパスし、CUJO のフィルリングが実行されていても悪意のある Web サイトにマルウェアを保持させる方法が記載されています。

脆弱性の詳細

CUJO Smart Firewall の静的 DHCP ホスト名に起因するコマンド インジェクションの脆弱性(TALOS-2018-0627/CVE-2018-3963)

CUJO Smart Firewall は、影響を受けたデバイスの DHCP デーモン設定内のコマンド インジェクションに対して脆弱です。この脆弱性の原因は、DHCP 設定プロセス中に適切な入力サニタイズが行われないことです。この脆弱性は、影響を受けたデバイスに新しい静的 DHCP アドレスを設定するときにトリガーされる可能性があります。攻撃者は、DHCP 要求メッセージを送信し、対応する静的 DHCP エントリを設定することにより、この脆弱性をトリガー可能です。デバイスの DHCP 設定を変更するために、攻撃者はまず有効なユーザ クレデンシャルを使用してシステムへの認証を受ける必要があることに注意してください。この脆弱性が悪用されると、攻撃者によって、システムの root アカウントのコンテキストで任意のコードが実行される可能性があります。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

Das U-Boot のベリファイド ブートのバイパス(TALOS-2018-0633/CVE-2018-3968)

Das U-Boot は、攻撃者がデバイスにブート イメージを挿入できた場合、攻撃者に古いイメージ フォーマットで未署名のカーネルの実行を許可してしまいます。この脆弱性の原因は、デバイスで使用されている Das U-Boot の該当バージョンで、ブート プロセス中に適切な FIT 署名が適用されないことです。Das U-Boot は密かにこの問題を修正済みですが、CUJO Smart Firewall で使用されているバージョンは新バージョンに更新されていないため、現在もこの脆弱性の影響を受けます。ただし CUJO の脆弱性を悪用するには、デバイスへの物理的なアクセスまたはローカル アクセスが必要になる(例:追加の root の悪用による)ため、Talos ではこの問題の重大度は中レベルであると考えています。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の dhcpd.conf に起因するベリファイド ブートのバイパス(TALOS-2018-0634/CVE-2018-3969)

CUJO Smart Firewall は、ベリファイド ブート プロセスのバイパスに対して脆弱です。この脆弱性が悪用されると、攻撃者によってシステム ブート プロセス中に任意のシステム コマンドを実行される可能性があります。攻撃者は、システム コマンドを「/config/dhcpd.conf」ファイルに埋め込むことで、システムのリブートのたびにこれらのコマンドを強制的に実行することができます。また、この情報は /config パーティションに格納されるため、リブート後も保持されます。この脆弱性の悪用を成功させるには、攻撃者は影響を受けたシステムの「/config/dhcpd.conf」ファイルへの書き込み権限が必要になります。これは、前述の TALOS-2018-0627 を使用して達成可能であることに注意してください。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の mdnscap の mDNS レコード解析に起因するコード実行の脆弱性(TALOS-2018-0653/CVE-2018-3985)

CUJO Smart Firewall には、影響を受けたシステムの「mdnscap」バイナリに悪用可能な二重解放の脆弱性があります。この脆弱性の原因は、デバイスが mDNS パケットの解析中に無効なクエリの名前に遭遇したときに、システムがメモリ領域を 2 回解放することです。この脆弱性は、認証されていない攻撃者によって、mdnscap プロセスのコンテキストで任意のコードを実行する機能を取得するために利用される可能性があります。システムを完全に侵害するには、攻撃者は「chroot」環境をエスケープし、権限をさらに昇格させる必要があります。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の mdnscap の mDNS ラベル圧縮に起因するサービス拒否の脆弱性(TALOS-2018-0671/CVE-2018-4002)

CUJO Smart Firewall には、影響を受けたシステムの「mdnscap」バイナリに悪用可能なサービス拒否の脆弱性があります。この脆弱性の原因は、mDNS パケットを解析する際に、システムがラベル圧縮ポインタを正しく処理できないことです。特定の条件下では、mDNS パケットの圧縮ポインタを適切に処理できないと、再帰が制御不能になることがあります。これによりスタックが枯渇し、最終的には「mdnscap」プロセスがクラッシュし、サービス拒否の状況が発生する可能性があります。認証されていないリモートの攻撃者は、特別に細工した mDNS パケットを活用してこの脆弱性を悪用し、影響を受けたデバイスにサービス拒否の状況を引き起こすことができます。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の mdnscap の mDNS 文字列に起因するコード実行の脆弱性(TALOS-2018-0672/CVE-2018-4003)

CUJO Smart Firewall には、影響を受けたシステムの「mdnscap」バイナリに悪用可能なコード実行の脆弱性があります。この脆弱性の原因は、システムが mDNS リソース レコード内の文字列の文字列長を適切に処理できないことです。認証を受けていないリモートの攻撃者は、特別に細工された mDNS リソース レコードを活用して、ヒープベース バッファ オーバーフロー状態を引き起こし、最終的には影響を受けたデバイスの「mdnscap」プロセスのコンテキストで任意のコードを実行できる可能性があります。システムを完全に侵害するには、攻撃者は「chroot」環境をエスケープし、権限をさらに昇格させる必要があります。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の mdnscap の mDNS SRV レコードに起因するサービス拒否の脆弱性(TALOS-2018-0681/CVE-2018-4011)

CUJO Smart Firewall には、影響を受けたシステムの「mdnscap」バイナリに悪用可能な整数アンダーフローの脆弱性があります。この脆弱性の原因は、mDNS パケットの SRV レコードを解析する際に、システムが「RDLENGTH」値を適切に処理できないことです。認証されていないリモートの攻撃者は、特別に細工した SRV レコードを活用してこの脆弱性をトリガーし、影響を受けたデバイスにサービス拒否の状況を引き起こすことができます。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

Webroot BrightCloud SDK の HTTP ヘッダー解析に起因するコード実行の脆弱性(TALOS-2018-0683/CVE-2018-4012)

Webroot BrightCloud SDK には、HTTP ヘッダー解析関数の悪用可能なバッファ オーバーフローの脆弱性があります。「bc_http_read_header」関数が長すぎるヘッダーを適切に処理しないことが原因で、任意のコードが実行される可能性があります。認証されていない攻撃者は、リモートの BrightCloud サーバになりすまし、この脆弱性をトリガーして、影響を受けたデバイスで任意のコードを実行する権限を取得できる可能性があります。この SDK は、CUJO Smart Firewall の内部、および CUJO Smart Firewall と Webroot BrightCloud SDK に含まれています。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

Webroot BrightCloud SDK の デフォルトの未保護の HTTP 接続に起因する脆弱性(TALOS-2018-0686/CVE-2018-4015)

悪用可能な脆弱性が Webroot BrightCloud SDK の HTTP クライアント関数に存在します。この SDK は CUJO Smart Firewall によって使用されています。この HTTP クライアント設定では、デフォルトで安全な接続が適用されないため、TLS 証明書の検証が失敗することがあります。攻撃者は、リモートの BrightCloud サーバになりすまし、中間者攻撃を使用してこの脆弱性を悪用する可能性があります。この脆弱性が悪用されると、機密性の高いクレデンシャルの漏えい、BrightCloud クエリの透過的な変更、基盤となる SDK の脆弱性の悪用につながる可能性があります。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall の安全なブラウジングのホスト ヘッダー解析に起因するファイアウォール バイパスの脆弱性(TALOS-2018-0702/CVE-2018-4030)

CUJO Smart Firewall には、自身の安全なブラウジング機能が使用する HTTP および HTTPS 解析方法に悪用可能なファイアウォール回避の脆弱性があります。この脆弱性の原因は、このファイアウォールが Web レピュテーション チェックの際に検査される HTTP および HTTPS トラフィック内のホスト情報を適切に処理できないことです。攻撃者は、特別に細工された Web トラフィックを作成してこのレピュテーション チェックを回避し、このファイアウォールが通常ならアクセスを許可しない外部 Web サーバへのアクセスをホストに許可することが可能です。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

CUJO Smart Firewall のスレッド ホスト名 レピュテーション チェック コード実行の脆弱性(TALOS-2018-0703 / CVE-2018-4031)

CUJO Smart Firewall には、自身の安全なブラウジング機能が使用する HTTP および HTTPS 解析方法に悪用可能なコード実行の脆弱性があります。この脆弱性の原因は、Web レピュテーション チェックの際に検査される HTTP および HTTPS トラフィック内のホスト情報をサニタイズできないことです。攻撃者は、この脆弱性を活用して、影響を受けたデバイス上で任意のコードを実行できる可能性があります。攻撃者は、特別に細工されたネットワーク パケットを作成するか、悪意のある Web サーバを活用してこの脆弱性を悪用することが可能です。詳細については、こちらpopup_iconからアドバイザリをご覧ください。

脆弱性が確認されたバージョン

Talos がテストした結果、以下の CUJO Smart Firewall のファームウェア バージョンが影響を受けることが確認されました:

TALOS-2018-0627 は CUJO Smart Firewall バージョン 7003 に影響します。

TALOS-2018-0633 は、CUJO Smart Firewall バージョン 7003、OCTEON-SDK 3.1.2 ~ 5.1、および Das U-Boot 2013.07-rc1 ~ 2014.07-rc2 に影響します。

まとめ

すでに説明したように、CUJO AI 社はこれらの問題を解決するためにシステム アップデートを提供しています。通常これらのデバイスは、ホーム ネットワーク環境を保護するために活用されているため、ネットワーク内の重要な場所に配置される可能性があります。影響を受けたユーザには、デバイスがアップデートされていることを早急に確かめ、これらの脆弱性の影響を受けなくなっていることを確認するようお勧めします。

カバレッジ

脆弱性のエクスプロイトは、以下の SNORTⓇ  ルールにより検出可能です。今後、脆弱性に関する新たな情報が追加されるまでの間は、ルールが追加されたり、現行のルールが変更されたりする場合がありますのでご注意ください。最新のルールの詳細については、Firepower Management Center または Snort.org を参照してください。

Snort ルール:47234、47663、47809、47811、47842、48261、48262

 

本稿は 2019年3月19日に Talos Grouppopup_icon のブログに投稿された「Vulnerability Spotlight: Multiple Vulnerabilities in CUJO Smart Firewall, Das U-Boot, OCTEON SDK, Webroot BrightCloudpopup_icon」の抄訳です。

コメントを書く