研究者がGNU InetUtilsのtelnetdに脆弱性を発見しました。これにより、リモートの攻撃者がパスワードなしでroot権限を取得できる可能性があり、公開されているTelnetサービスは完全なシステム侵害のリスクにさらされます。
この欠陥はユーザーの操作を必要とせず、細工したログイン要求によりネットワーク越しに悪用できます。
この脆弱性が悪用されると、クライアントは「…通常の認証プロセスを回避して自動的にrootとしてログインされる」ことが可能になると、研究者は述べています。
Telnetdの認証バイパスの仕組み
この認証バイパスはGNU InetUtilsのバージョン1.9.3から2.7に影響し、InetUtilsのtelnetdサービスを実行しているあらゆるシステムを、リモートから侵害される可能性にさらします。
Telnetはレガシープロトコルと見なされていますが、古いLinux/Unix環境、組み込み機器、分離されたネットワークなどでは依然として見られます。そのため、telnetdが信頼できないホストから到達可能な場合、この欠陥は特に危険です。
根本原因は、GNU InetUtilsのtelnetdが着信接続を処理する際に、システムの/usr/bin/loginプログラムを呼び出す方法にあります。
Telnetセッション中、telnetdはリモートクライアントからUSER環境変数を受け取り、入力をサニタイズせずにそのままloginへ渡すことがあります。
この危険な受け渡しによりパラメータ注入の機会が生まれ、攻撃者は-f rootを含む細工したUSER値を与えられるようになります。
多くのUnix系システムでは、loginは-fオプションを信頼されたログインを示すフラグとして解釈し、特定の条件下で通常の認証チェックを回避できる場合があります。
telnetdがユーザー提供の値をそのまま転送するため、攻撃者は認証を完全に回避して、パスワードの入力を求められることなく即座にrootアクセスを得られる可能性があります。
この問題は、リモートかつ未認証で成立し、悪用に必要な労力が最小限で、root権限による完全なシステム侵害に至るため、重大と見なされています。
この欠陥は2015年3月のコード変更で導入され、GNU InetUtils 1.9.3で初めて出荷されました。その後、バージョン2.7までのすべてのリリースにわたって残存していました。
Telnetの露出を減らす方法
この欠陥は未認証のrootアクセスを可能にするため、公開されているTelnetサービスは緊急のセキュリティリスクとして扱うべきです。
最善の防御はTelnetを完全に排除することですが、多くの組織はいまだにレガシーシステムや運用ワークフローのために依存しています。
- 可能な限りtelnetdを無効化し、リモート管理をSSHまたは他の安全な代替手段へ移行する。
- パッチ適用またはGNU InetUtilsを修正済みバージョンへアップグレードし、認証バイパスのリスクを排除する。
- 厳格な許可リスト、セグメンテーション、信頼できないアクセスを遮断するファイアウォールルールにより、Telnetの露出を制限する。
- 残存するTelnet利用についてはVPNまたは踏み台ホスト経由のアクセスを必須化し、一般ユーザーやインターネット向けネットワークから切り離す。
- ローカルファイアウォールなどのホストベース制御や強制アクセス制御ポリシーを適用し、Telnetセッションが到達できる範囲を制限する。
- 監視し、不審なTelnet活動に対してアラートを出す。予期しないrootログイン、異常なセッション量、新たな永続化の痕跡などを含む。
- レガシーなアクセスサービスに対するインシデント対応計画を定期的にテストし、封じ込め、認証情報のローテーション、復旧手順を検証する。
これらの対策を組み合わせることで、Telnetの露出を減らし、この脆弱性がrootによる全面的な侵害へ発展するのを防ぐ助けになります。
この脆弱性は、Telnetのようなレガシーサービスが、小さなコーディング上の欠陥を重大なセキュリティインシデントへ変えてしまい得ることを示しています。特に、外部から、または広範に到達可能な状態で残っている場合はなおさらです。
Telnetが限定的な運用ニーズにしか使われていないとしても、未認証のrootアクセスは対処が必要なリスクです。まずはtelnetdの無効化、影響を受けるシステムへのパッチ適用、そしてアクセス制御と監視の強化から始めるべきです。
これが、組織がゼロトラスト・ソリューションを採用している理由の一つです。暗黙の信頼を最小化し、レガシーかどうかに関わらず、あらゆるシステムへのアクセスを厳格に制御します。
翻訳元: https://www.esecurityplanet.com/threats/gnu-inetutils-telnetd-flaw-lets-attackers-log-in-as-root/