🎄この記事は【慶應義塾大学 SFC 村井研 (RG) Advent Calendar 2021】3日目の記事です⛄
初期設定が完了したと思っていたYamaha製ルーター ”FWX120” を研究室ネットワークを通して公開したところ、初期パスワードで内蔵Telnetサーバーが全世界に公開されるインシデントを発生させてしまいました。その反省をもとに、自戒を込めて経緯と対策をまとめます。
ファイアウォールがセキュリティーホールになるっていうのは、まったく笑えない話です。
またこの場をお借りして、ルーターの脆弱性を早期に発見し初動対応にあたってくださったネットワーク管理者 (rgroot) の皆様に、改めて深くお礼を申し上げます。
前提
FWX120
セキュリティー・高速ルーティング・マネジメントを1台で実現するファイアウォール
https://network.yamaha.com/products/firewalls/fwx120/index
通常のルーターより少しファイアーウォール機能を拡張したルーターという位置づけの製品という認識。分解したら中身はRTX810と同じだった

Telnet
IPネットワークにおいて、遠隔地にあるサーバやルーター等を端末から操作する通信プロトコル、またはそのプロトコルを利用するソフトウェアである。
(Wikipedia)
SSHと概ね同じことを暗号化せず平文で行う、昔のプロトコル。
無名ユーザー
これはどうもYamahaNW製品特有の存在らしい。初期ユーザーがユーザー名なに設定されており、この無名ユーザーは削除できない。参考
経緯
夏休み頃から研究室内で一切のセキュリティやFWが設定されていないネットワーク (unfilterdセグメント) の固定IPを取得し、UbuntuServer実機1台を接続していた。
当該ルーター (FWX120) 自体はハ◯ドオフのジャンク品で買ってきたもので、ポートフォワードなどを使って1つの固定IPから自席の複数端末へアクセスできないかと思い、勉強がてら導入しようとしていた。基本的に動作に問題は見つかっていない。
当時の設定状況
当該ルーターをUnfilterdに接続する前に、おおむね以下のような設定を行っていた。
- 筐体に固定IPアドレスと、unfilterdセグメントに接続している旨を記載
- 自分のユーザーアカウントの作成
- WAN (LAN2) 側からのHTTPアクセスを禁止
- 「管理用パスワード」の変更
- WAN側固定IP設定
- WAN側「セカンダリIPアドレス」をDHCPから取得するよう設定
- これに関しては特に使う予定もなしに「何だろうこれ?」と軽い気持ちで有効化してしまった
見落としていた点
この初期設定において以下の点を見落としていたことがインシデントの原因となった。
- 新規ユーザーアカウントを作成しても、無名ユーザーは削除されない。別途「無名ユーザーのパスワード」を変更しなければ、デフォルトの ”ログイン名なし/パスワードdoremi”でログインができる
- デフォルトでTelnetサーバー機能がLAN,WAN側ともに有効になっている。
- ※新しいファームウェアでは、初期設定が「LAN側のみ有効」に改められている
この状態で一切のセキュリティやFWが設定されていないunfilterdセグメントに接続してしまった。
インシデントの発覚
当該ルーターを接続し3日目頃、
- ネットワーク管理者が導入している外部監視ツールからの警告で、インシデントを招いているYamaha製品の存在が発覚
- ネットワーク管理者が当該IPの端末に、無名ユーザー/doremiでTelnetログインが可能であることを確認
- ネットワーク管理者が研究室内を探し回ったところ、私の席の当該ルーターであると発覚
- 外部ツールの検出したIPが固定IPではなくDHCP取得のセカンダリIPだったため、場所や持ち主の特定に手間を増やしてしまった
- ネットワーク管理者が当該ルーターのLANケーブル、電源を物理的に取り外し
- 筐体に記名があったため、Slackで私へ連絡
このように外部ツールの発報以降、ネットワーク管理者の皆様が迅速に初期対応をしてくださり、当該ルーターがまだ悪用されていないとみられる段階でネットワークから隔離された。
今後取るべき対策(主に自分向け)
FWX120を含めたYamahaの初期設定で、今後実施するべきだと思う項目を列挙する。
ファームウェアのアップデート
今回の場合、最新のファームウェアであればデフォルトでTelnetサーバーがWAN側に公開されず、インシデントの原因の1つがなくなっていた。
ファームウェア入手元 RTPro からファームウェアをダウンロードし、USBメモリやmicroSDの直下に入れてFWX120に入れ、電源を投入する。
WEB GUI > 詳細設定と情報 > 設定ファイル・ファームウェアファイルのコピー にアクセスし、ファームウェアのファイルをファイルを外部メモリから内部にコピー

その後自動再起動とかでアップデートされた気がする。設定でファームウェアのバージョンを確認すればOK
シリアルコンソールの言語・文字コードを変更
console character ascii
ユーザーアカウントを作成
自分が使うアカウントを作成する。
login user ユーザー名 encrypted パスワード
無名ユーザーを無力化する
FWX120の初期アカウントはユーザー名なし・PWdoremi。これが「無名ユーザー」であり、無名ユーザーのアカウント自体は削除できない仕様になっている。
せめて無害化しようと思うと、各インターフェースからのログインを拒否し、各種権限を剥奪するしかなさそう。
とりあえず無名ユーザーのPW変更
login password encrypted
# 旧,新PWの入力
デフォルトではで無名ユーザーでログインした場合PWなしで昇格できてしまうので、管理パスワードを設定
administrator password encrypted
シリアル、WEB GUI、SSHのいずれのインターフェースから無名ユーザーにログインできなくしておく
user attribute administrator=off
user attribute connection=off
no user attribute host=any
これであらゆるインターフェースからログインできなくなったはず
無名ユーザーで (ユーザー名を入力せずに) でログインをしようと試すとエラーが出る
Error: Login not allowed with user attribute
インターフェースを閉じる
使わないインターフェースは災のもとだということを学んだので、とりあえず片っ端からそれっぽいのを閉じておく。
telnet
ファームウェアのバージョンによってはデフォルトoffらしい
telnetd service off
クライアントから接続ができなくなったことを確認する
$ telnet 192.168.100.1
Trying 192.168.100.1...
telnet: connect to address 192.168.100.1: Connection refused
telnet: Unable to connect to remote host
ssh
sshd service off
クライアントから接続ができなくなったことを確認する
$ ssh ユーザー名@192.168.100.1
ssh: connect to host 192.168.100.1 port 22: Connection refused
TFTP
ヤマハルーター に設定した項目は、TFTP により LAN 上のホストから設定ファイルとして読み出すことができます。またホスト上の設定ファイルを本機に読み込ませて設定を行うこともできます。
使う予定がなければ、とりあえず全ホストからの接続を拒否したほうが良いだろうと思われる。
tftp host none
HTTP
もしHTTPを使わないなら
httpd service off
自分は使いたいので、LAN1(LAN側)からだけ見れるようにする
httpd host none
httpd host lan1
以上
最後に
この記事の下書きはインシデント発生翌日に書いたものの、以後当該ルーターに触れる時間が取れず、まだ再接続できずにいます。
この記事の内容について不足/修正点などあれば、コメント頂けますと幸いです。