雑記

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|09|11|
2009|02|03|05|06|07|08|10|11|12|
2010|01|03|04|05|06|07|08|09|10|
2011|05|06|09|10|
2012|03|07|09|12|
2013|01|02|04|05|07|08|10|11|
2014|04|05|08|10|12|
2015|01|05|
2016|09|

2013-08-10 [長年日記]

SuperMicro社のBMC/IPMI搭載製品における初期設定の問題について

[概要]

SuperMicro社のBMC/IPMI搭載製品では、その初期設定の状態に問題があるため、特定の条件下で外部からコンソール等にアクセス可能となる可能性があります。

本問題については、該当製品で稼働しているOSのroot権限を取得できる可能性があるため、発見後すぐにIPAに脆弱性関連情報の届出を行いましたが、1年以上に渡り返信が無い状態が継続しているという事であり、また適切に設定する事により回避することができるため、広く公開して注意喚起したほうが公益に資すると判断し、公開するものです。

[公開までの経緯]

[flat] ;2012/03/19;:IPAに届け出 ;2012/04/04;:IPAより届け出受理の連絡 ;2013/07/17;:IPAより2012/05/16(起算日)以降、製品開発者へ連絡をとっているが、返信がない旨の連絡 ;2013/07/18;:IPAに情報非開示依頼の取下げを依頼 ;2013/08/02;:IPAより情報非開示依頼の取下げの連絡 ;2013/08/10;:本エントリ公開

[対象となる製品]

本問題の対象となる製品は以下の通りです。

IPMI Manual (AMI)より

[border]

Intel UP Motherboards supportedIntel DP Motherboards supportedAMD Motherboards supported
X7SB3-FX7DCT-3FH8DMT-F
X8ST3-FX7DCT-3IBXFH8DMT-IBXF
X8STi-FX7DCT-LF
X8STi-3FX8DAH+-F
X8DT3-F
X8DT3-LN4F
X8DTH-6F
X8DTH-iF
X8DTi-F
X8DTi-LN4F
X8DTT-F
X8DTT-IBQF
X8DTT-IBXF
X8DTU-F

IPMI Manual (SMT)より

[border]

Intel Dual-Processor Motherboards supported (-F models only)Intel Single-Processor Motherboards supported (-F models only)AMD Motherboards supported (for -F models only)
X8DTL-3F/-6F/iFX7SPA/E-HF/-D525H8DGG-QF
X8DTN+-FX7SPT-DF-D525H8DGT-HF/-HIBQF/-HLF/-HLIBQF
X8DTU-6F+/6TF+/LN4F+/TFX8SI6-FH8DGU-F/-LN4F+
X9DBU-6F/iFX8SIA-FH8SGL-F
X9DR6/i-FX8SIE-F/LN4FH8SCM-F
X9DRT-H6FX8SIL-FH8DCL-6F/-iF
X9DRG-QF+X8SIT-F/-HFH8DCT-F/-HIBQF/-HLN4F/-IBQF
X8SIU-FH8DG6-F
X9SCA-FH8DGi-F
X9SCD-F
X9SCi-LN4F
X9SCL-F
X9SCM-F
X9SRE-F
X9SRW-F

[問題の詳細]

上記のマザーボードには、Nuvoton WPCM450というBaseboard Management Controller(BMC)が搭載されています。このコントローラにより、専用ポートまたはオンボードのLAN1ポート経由で遠隔地からのコンソールの操作やCDイメージのマウント、電源の制御などが行えます。

このコントローラの標準の設定は以下のような組み合わせになっています。

[flat] ;LANポート:;:Failover ;IPアドレス:;:DHCPで取得

LANポートの"Failover"という設定では、BMCの専用ポートがネットワークに接続されていなければ、オンボードのLAN1ポートで接続を試みます。このため、初期設定の状態で、

  • OSで利用するためLAN1ポートをグローバルなネットワークに接続した
  • LAN1ポートに接続したネットワーク上でDHCPサーバが稼働していた
  • DHCPサーバではMACアドレスによるフィルタリング等は行わずに接続された任意の機材にIPアドレスを割り当てるよう設定していた
  • BMC機能は使わないつもりでBMC専用ポートにはなにも接続しなかった

といった条件を満たしていると、OSで利用している通信とLAN1ポートをシェアする形でBMCにも独立したIPアドレスが割り当てられ、BMCが提供する各機能にアクセスできるようになります。この時さらに、

  • DHCPサーバでグローバルIPを割り当てていた
  • 割り当てられるグローバルIPに対して、ファイアウォール等でパケットフィルタリングを設定していなかった

という条件が重なった場合は、インターネットからBMCへのアクセスが可能となってしまいます。

このBMCはWeb UIも提供しており、その初期アカウント名とパスワードの情報はマニュアルに記載され、SuperMicro社のサポートページからダウンロード可能な状態で公開されているため、誰でも容易に入手可能な状態となっています。前述の通り、このWeb UIからはコンソールの操作が可能となり、また多くのUNIX系のOSではコンソールからの操作に関してはやや楽観的な初期設定が行われているため、

  1. Ctrl+Alt+DeleteでOSを強制的にリブート
  2. シングルユーザモードで起動する

などといった操作で、簡単にroot権限を奪う事ができてしまいます。また、コンソールに表示されているカーネルからのメッセージを確認する事も可能となります。

[回避方法]

BMCポートを外部から遮断されたネットワークに接続することで、ひとまずこの問題は回避できますが、接続先の機器の電源が落ちるなどしてネットワークが不通になると、すぐにオンボードのLAN1ポートに切り替わってしまいます。

さらに悪い事に、いったんBMCがLAN1ポートに切り替わってしまうと、BMC専用ポートの接続が復旧しても自動的に戻らないため、迅速に元に戻すためにはOSをシャットダウンして電源ケーブルを抜き、しばらく待ってから再起動する必要があります。

これらの問題も含めて回避するためのいくつかの方法を説明します。

  1. パスワードを変更する
Web UIにログインしてパスワードを変更します。一番基本的かつ有効な対策です。
  1. BMCは専用ポートのみで使用する
BMC専用ポートを保護されたネットワークに接続してこちらのみ使用するようにします。
    1. Web UIからログイン
    2. [Configuration]->[Network]に進む
    3. [Lan Interface]で"Dedicate"を選択する
    4. [Save]ボタンをクリックして設定を保存する
  1. (((

OS側でCtrl+Alt+Deleteによる再起動を無効にする

直接的な解決方法ではありませんが、インストールしているOS側でCtrl+Alt+Deleteキーによる再起動を無効化することもできます。

;Linux(CentOS)の場合:

(((

/etc/init/control-alt-delete.confを編集して次の行をコメントアウトする

 exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

または/etc/inittabを編集して以下の行をコメントアウトする

 ca::ctrlaltdel:/sbin/shutdown -t3 -r now

))) ;FreeBSDの場合:

(((

以下のコマンドを実行する

sysctl hw.syscons.kbd_reboot=0

さらに以下の行を/etc/sysctl.confに追加して再起動する

hw.syscons.kbd_reboot=0

))) )))

  1. BMCを無効にする
BMCの機能を使うつもりが無いのであれば、マザーボード上のJPBジャンパーの設定を変更してBMCを無効化してしまいましょう。

[免責事項]

  • 本エントリは、該当製品の利用者に安全な運用の方法を提示するために公開するものです。従って、本エントリに記載されている内容を悪用する事は禁止します。
  • 本エントリに記載されている内容をもとに第三者が管理するサーバにアクセスすると、不正アクセス行為の禁止等に関する法律で禁止された不正アクセス行為に該当すると思われます。
  • 本エントリを公開した結果生じたいかなる損害についても、筆者は一切責任を負いません。

以上