[画像] NURO光で使用する管理者アカウントが特定される、見えてはいけない画面がまる見え&root権限も奪取可能



ソニーネットワークコミュニケーションズのインターネットワークサービス「NURO光」でレンタルされるネットワーク機器について、NURO光側が管理時に使用するアカウントIDとパスワードが特定されました。このアカウントを利用することで、通常はユーザーがアクセスできない機能にアクセスできるほか、root権限によるコマンド実行が可能になります。

GitHub - meh301/HG8045Q: Pwning the Nuro issued Huawei HG8045Q

https://github.com/meh301/HG8045Q/



目次

◆1:「HG8045Q」の脆弱性の指摘

◆2:脆弱性を確認してみた

◆3:新たな脆弱性を発見

◆4:脆弱性の報告とNURO光の対応

◆1:「HG8045Q」の脆弱性の指摘

研究者のAlex Orsholits氏によって報告された今回の脆弱性は、通信ネットワークの終端に設置する光回線終端装置(ONU)に関するもの。NURO光のONUにはいくつか種類がありますが、脆弱性が報告されているのはHuawei製の「HG8045Q」となっています。Orsholits氏は自身のHG8045Qをリバースエンジニアリングした結果、HG8045Qの「ウェブ管理画面」に存在する特殊なアカウントを発見したとのこと。

HG8045Qはウェブ管理画面からさまざまな設定を行うことが可能で、通常は「admin」というユーザー名と自身で設定したパスワードを用いて、管理画面にログインします。



ウェブ管理画面では、ONUのシリアル番号やファームウェアのバージョンといった機器の情報を確認したり……



再起動などを行ったりすることが可能です。しかし、この管理画面には「隠された機能」が存在しており、その機能はNURO光側で所有する「管理者アカウント」でログインすれば有効化できるとのこと。Orsholits氏はHG8045Qを解析し、管理者アカウントのIDとパスワードを特定する方法を公開しています。



◆2:脆弱性を確認してみた

GIGAZINE編集部ではNURO光を契約しており、さらに公開された脆弱性の対象であるHG8045QをNURO光から貸与されています。脆弱性の影響があるのか不安を覚えたので、実際に脆弱性を利用して管理者用のコントロールパネルにアクセスしてみました。Orsholits氏の解析によると、管理者アカウントのユーザー名はNURO光が提供するHG8045Qで共通の「admin_iksyomuac13」、パスワードは「iksyomuac13_admin_XXXX」の「XXXX」をPON MACアドレス「YYYYYYYXXXX-YY(YY)」の「XXXX」に置き換えたものであるとのこと。



実際に管理者アカウントを使って管理画面にアクセスしてみると……



通常のアカウントでは確認できなかった「CPU使用率」や「メモリ使用率」、HG8045Qがどのベンダー向けにカスタマイズされているかを表す「カスタマイズ情報」などを確認できる画面が表示されました。



画面下部には「初期化パスワードは管理者が使用します。このパスワードを変更する必要がある場合は、通信事業者にご連絡ください。パスワードの変更方法の詳細は、http://support.huawei.comの[セキュリティ保守]を参照してください。」という赤文字が見えます。



「http://support.huawei.com」にアクセスしてみると、Huaweiのエンタープライズ向けサポートページが表示されました。



管理者アカウントでログインすると、通常のアカウントでは表示されていなかったさまざまな機能を利用することができるようになりました。例えばLANポートをWANポートとして設定できる「WAN」の項目。



ルーティングテーブルの操作や……



デバイス制御の項目も追加されました。



管理者アカウントによって追加で表示されるようになった機能は以下。

◆ステータス

・「WAN情報」:IPv6アドレス、VLAN優先度の表示追加

・「スマートWiFiカバレッジ」項目の追加

・「デバイス情報」:ONT ID、CPU使用率、メモリ使用率、カスタマイズ情報の表示追加

・「リモート管理」項目の追加:リモート接続とサービスプロビジョニングのステータス表示追加

・「サービスプロビジョニングステータス」項目の追加:ONTとONUの接続状況などを確認可能

◆WAN(管理者アカウントで追加)

・「WAN設定」:WANポートの設定が可能。通常はLANで利用するポートもWANポートとして設定できる

・「DHCPクライアントオプション設定」

・「DHCPクライアントリスエストパラメータ」

◆LAN

・「LANポート動作方法」項目の追加:レイヤ3で使用するポートの選択

・「LANホスト設定」:セカンダリアドレスの設定追加

・「DHCPサーバ設定」:DHCPリレー、Option125、セカンダリDHCPサーバーの有効化設定を利用可能に

・「DHCPサーバオプション設定」の追加:LAN側のDHCPサーバオプションを設定可能

◆IPv6

・「デフォルトルート設定」の追加

・「スタティックルート設定」の追加

・「LANアドレス設定」:インターフェースのアドレス情報でIPv6アドレスのインターフェースIDを変更可能に

◆WLAN

・「2.4G詳細ネットワーク設定」:規制区域を日本以外の国に変更可能に

・「5G詳細ネットワーク設定」:規制区域を日本以外の国に変更可能に

・「WiFi自動切断」の有効化:WiFi機能を使用していない間、自動で停止するように設定することが可能

・「スマートWiFiカバレッジ管理」:「Wi-FiネットワークのSSIDを指定することが可能です。またスキャンした外部APをこのWi-Fiネットワークに追加することが可能です。さらに、外部APとこのデバイスでWi-Fiネットワーク全体を構成し、ご利用の無線デバイスからシームレスにこのネットワークにアクセス可能」との説明

◆セキュリティ

・「ファイアウォールレベル設定」の有効化:「無効」「高」「中」「低」「カスタム設定」から選択可能

・「デバイスアクセス制御」の有効化:LAN、WAN、無線通信それぞれのネットワークでFTP、HTTP、telnetへのアクセスを制御、WAN側送信元アドレスの設定が可能

・「WANアクセス制御設定」:の有効化:単一のWANポートでHTTPモード、telnet、FTP、SSH、送信元アドレスの許可設定が可能

◆ルート(管理者アカウントで追加)

・「デフォルトルート設定」:デフォルトルートを設定可能

・「スタティックルート設定」:ドメイン名、IPアドレス、サブネットマスク、ゲートウェイIPアドレス、WANポート名など、スタティックルートの設定が可能

・「ポリシールート設定」:サービスポリシー経路を設定可能

・「VLANバインディング設定」

・「サービスルート設定」:サービス経路を設定可能

・「ルーティングテーブル」:宛先IPアドレス、宛先サブネットマスク、ゲートウェイ、出力インターフェースなど、現在のルーティング情報を照会することが可能

◆ネットワークアプリ

・「ポータル設定」項目の追加:はじめてインターネットにアクセスした際に表示するウェブサイトを設定可能

・「DDNS設定」項目の追加:dyndnsやNO-IPといったDDNSを設定可能

・「IGMP設定」項目の追加

・「インテリジェントチャネル設定」項目の追加

・「端末制限設定」項目の追加:インターネットに接続する端末数を制限可能

・「ARP Ping」項目の追加

・「ARPエージング」項目の追加:ARPのエージング時間を設定可能

◆システムツール

・「設定ファイル」項目の追加:設定ファイルの保存やダウンロード、アップデートが可能

・「ファームウェアアップグレード」項目の追加:ファームウェアファイルを指定してファームウェアをアップデート可能

・「保守」:PingテストのDSCP値変更、ハードウェア障害検出機能の追加

・「リモートミラーリング」項目の追加:CPUで送受信されたパケットのミラーリングが可能

・「ONT認証」項目の追加:OLTがONTを認証する際に必要なパラメータを変更可能

・「時間設定」項目の追加:DSTを有効にする項目の追加

・「TR-069」項目の追加:プロバイダがユーザーの機器をリモートで操作する際に利用するプロトコル・TR-069に関する設定が可能

・「拡張電力管理」項目の追加:省電力モードに切り替えることが可能

・「ログインパスワードの変更」:証明書認証機能の追加

・「インテリジェントチャネル統計」項目の追加:インテリジェントチャネルトラフィックの統計収集とクエリ統計を利用可能

・「障害情報の収集」項目の追加:障害情報の収集とダウンロードが可能

◆3:新たな脆弱性を発見

上記の管理者アカウントを用いると、LANからHG8045QにSSH接続を行うことが可能になります。SSHでログインすると「WAP」というシェルが表示されました。



このWAPはHuawei製のネットワーク機器で利用できるシェルで、コマンドに「?」を追加すると、利用方法を見ることができます。



例えば「ping?」を実行すると、pingコマンドの利用方法が返されます。



試しに通常のpingコマンドで利用方法を表示する「ping -h」を実行すると、「ping: invalid option -- h」と無効な引数であるにも関わらず、BusyBoxがpingコマンドの利用方法を返答しました。このことから、「WAPで利用できるコマンドにはHuaweiが独自に実装しているコマンドもあれば、シェルスクリプトからBusyBoxを利用するコマンドもあるのでは?」と推測。



BusyBoxを呼び出しているシェルスクリプトを調査していると、なんと管理者アカウントの特定とは別の新しい脆弱性を発見しました。脆弱性の再現手順としては、まずシェルスクリプトからBusyBoxを利用しているコマンドの後に、文字入力を受け付けなくなるまで文字列を入力。その後Enterキーを押してコマンドを実行します。



コマンド実行後、特にエラーなどは表示されず入力待機状態になるので「"」を入力し改行。



「> |」の後に実行したいコマンドを入力。通常はWAPで使うことができないユーザー表示コマンド「whoami」を実行してみます。



すると、「admin_iksyomuac13」でログインしているにもかかわらず、root権限でコマンドを実行することができてしまいました。



CPUを確認できる「cat /proc/cpuinfo」コマンドなど、WAPシェルでは取得できない情報もBusyBoxに実装されていれば取得することができます。



WAPで使えるすべてのコマンドが脆弱性を持っているわけではなく、Huaweiが独自実装しているコマンドは引数の文字数制限が行われていることもわかりました。



HG8045QではWAN側のSSHポートは閉じられているため、SSHを利用したWAN経由でのハッキングは困難です。しかし、MACアドレスさえわかればSSH接続に必要な管理者アカウントのパスワードを特定できてしまい、MACアドレスは本体外面に記載されているため、物理的なアクセスができればroot権限によるコマンド実行が可能な状態となっています。

◆4:脆弱性の報告とNURO光の対応

「管理者アカウントの特定」はGitHub上で公開されていましたが、root権限によるコマンド実行の脆弱性はどこにも公開されていないようだったので、NURO光に問い合わせて脆弱性を報告することに。まずはバグ報奨金プラットフォームのHackerOneを確認してみましたが、NURO光は参加していませんでした。

ハードウェアベンダーのHuaweiのページは見つかりましたが、「psirt@huawei.com」宛に直接メールを送ってほしいと記載されており、HackerOneを経由したやり取りは不可能でした。



通常はバグ報告状況の「Hacktivity」や報告者一覧の「Thanks」ページなどが存在するのですが、Huaweiのページは「Policy」だけが存在する謎の状態。脆弱性の報告に対応してもらえるのか確証が持てなかったため、HackerOne経由での脆弱性報告は諦めることにしました。



次の手としてNURO光のホームページでバグを報告できる窓口がないか探してみましたが、「バグ報告はこちら」といった窓口はありませんでした。諦めずさらに調べると、以下のページで「テクニカルセンター」なるものを発見。

NURO光サポート・問い合わせ連絡先一覧│NURO光キャンペーンサイト

https://nuro-bc.jp/blog/renraku



バグ報告が「技術的な質問」にあたるのかどうかは不明ですが、テクニカルセンター以外にバグ報告ができそうな窓口がなかったため、テクニカルセンターに電話で脆弱性を報告しました。



問い合わせから最終的な回答までのタイムラインはこんな感じ。

・2020年9月28日:「管理者アカウントの特定」についてテクニカルセンター経由でNURO光に報告、「後日回答します」という返答

・2020年10月6日:「管理者アカウントの特定」および「root権限奪取」についてサポートデスクにメールで報告、「弊社担当へお伝えさせていただきます」という返答

・2020年10月27日:NURO光に再び連絡すると案件が放置されていたと判明、1週間以内に回答してもらうよう要請

・2020年10月28日:NURO光にメールで脆弱性の詳細を追加で報告

・2020年11月5日:NURO光から折り返しの電話あり、コールセンター責任者は「脆弱性を対応する」との返答

・2020年11月9日:NURO光から再び折り返しの電話あり、11月5日と同じ責任者から「NURO側から正式に『脆弱性は修正しない』という回答があった」との返答

問い合わせから約2週間後にNURO光から得られた最終的な回答は以下。

・特定されたアカウントはNURO光の管理者アカウントだが、直ちに外部から不正なアクセスをされるわけではないので修正などの対応はしない

・管理者アカウントを利用して不具合が発生しても、NURO光側としては一切のサポートはしない

・脆弱性の公開はできれば控えてほしいが、禁止するというわけではない

・2020年10月19日にアナウンスしたファームウェアアップデートでも、脆弱性の修正は行っていない

……というわけで、NURO光は今回の脆弱性については「一切関知しない」という姿勢のようです。

NURO光のONUは2020年6月に「IPv6のファイアウォールがない」ことから、セキュリティ上の問題を指摘されたばかり。問題の指摘が行われたQiitaの記事は現在は削除されていますが、インターネットアーカイブでは今でも読むことができます。

NURO光はセキュリティ的にやばいって話 (安全に使うための方法) - Qiita

https://web.archive.org/web/20200601005731/https://qiita.com/notoken3331/items/ca228e2ac28ac7ea4879



2020年10月19日に通知されたファームウェアのアップデートでIPv6のファイアウォールは有効化されましたが、今回の脆弱性は対応してもらうことが難しいようです。Facebookはバグ報奨金プログラムを運営して10周年を迎えており、GoogleやAppleなどの大手IT企業も同様のプログラムを持っています。任天堂やトヨタ自動車、NURO光の親会社であるソニーもバグ報奨金プログラムに参加している現状を鑑みると、NURO光の脆弱性に対する窓口対応の弱さが目立ちました。

Facebookのバグ報奨金プログラムが10周年、現在地点とこれからをセキュリティ責任者が語る - GIGAZINE