Cisco の脆弱性 CVE-2018-0171 は危険:7年前から公開され続ける脆弱なデバイスとは?

Seven Years Later: Cisco CVE-2018-0171 Still Exposes Thousands to RCE

2024/04/10 SecurityOnline — 長年にわたり存在してきた Cisco の脆弱性 CVE-2018-0171 だが、最新の知見と実環境におけるテストにより、その全容が明らかにされた。Smart Install のリモートコード実行 (RCE) の脆弱性は、7年前に公開されたものだが、いまも 1,200台以上の Cisco デバイスが、この脆弱なサービスをインターネットに公開し続けている。この記事では、シニア・セキュリティ・コンサルタントであり、元ネットワーク・エンジニアでもある Guy Bruneau が公開した、詳細なレポートを紹介していく。

Guy Bruneau は、「対象なるポートと Cisco Smart Install (SMI) に関連付けられたサービス名を、Censys で簡単に検索したところ、このサービスが公開されている 1,239台のデバイスが見つかった」と述べている。

以前にも彼は、旧式の Cisco ハードウェアを起動し、OSS のエクスプロイト・ツールをロードすることで、機密性の高いネットワーク・コンフィグ情報を、攻撃者が容易に盗み出せることを実証している。

Cisco の Smart Install は、新しいネットワーク・デバイスの初期コンフィグを自動化するために設計された機能であり、管理者の直接的な介入なしに、デバイスを “プラグ&プレイ” でインフラに接続するものだ。

この機能は便利だが、デフォルトでも有効化されており、認証を必要としない。また、多くのケーにおいて、ポート 4786 で公開アクセスが可能な状態になっている。

Guy Bruneau は、「これらのデバイス 1,239台 の全てが脆弱であるという意味ではない。しかし、Smart Install サービスを実行する、公開アクセスが可能なデバイスが広く普及していることが判明した」と指摘している。

不正な Smart Install パケットを送信する攻撃者は、脆弱性 CVE-2018-0171 の悪用を達成し、認証情報を必要とせずに検証を回避し、任意のコマンド実行に到達するとされる。

この研究者が検証で用いたのは、脆弱性の存在が確認されている、ファームウェア・バージョン IOS 12.2(55)SE11 を搭載する、Cisco Catalyst 3750 スイッチである。彼は、Smart Install Exploitation Tool (SIET) を活用したが、この SIET には、以下の機能が取り込まれている。

  • ターゲットへの接続を開始する (conn_with_client)
  • 悪意のコンフィグ・コマンドを送信する (change_tftp)
  • TFTP 経由でデバイス設定を取得し、ファイルをコピーする

わずか数個のフラグを設定するだけで、彼は以下の操作に成功したという。

  • デバイスが実行しているコンフィグをフラッシュ・メモリにコピーする。
  • そのファイルを TFTP 経由でローカル・マシンに転送する。
  • Wireshark でコンフィグ・ファイルを解析する。

Guy Bruneau は、「攻撃を実行し、Cisco 3750 のコンフィグ・ファイルを取得した後に、パケット・キャプチャを停止した。すると、TFTP ファイル転送が始まり、そのデータ部分において、3750 で実行中のコンフィグ・ファイル全体を確認できた」と述べている。

彼はは、流出したコンフィグ・ファイルの中で、管理者アカウント (privilege 15) のType 7 暗号化パスワードを特定した。これらのパスワードは、公開鍵を用いる脆弱な Vigenere 暗号を使用している。

Guy Bruneau は、「これらのパスワードを即座に解読するための、複数の Web でサイト/GitHub ツール/攻撃プラットフォームが存在する」と指摘している。

クラック済みの認証情報を入手した攻撃者は、以下のことを可能にする。

  • SSH 経由でのログイン (公開されている場合)
  • 正規のアクセスを用いる検知の回避
  • 新しいアカウントを作成しないことで検出を回避

この脆弱性 CVE-2018-0171 は新しいものではないが、その悪用が続いてしまう原因は、パッチ適用の不備と、安全が確保されないデフォルト・コンフィグにある。Bruneau の調査結果で強調されるのは、ネットワーク防御担当者にとって不可欠な手順である。

  • Smart Install を無効化する (vstack を使用しない)
  • Cisco の Software Checker を用いて Cisco IOS ファームウェアを更新する
  • ACL を用いて、ポート 4786 へのアクセスを制限する
  • Type 7 パスワードの使用を避ける (より安全なハッシュを使用)
  • コンフィグ変更と TFTP トラフィックを監視する