RADIUSはネットワーク接続の際に用いられる一般的なユーザー認証プロトコルです。元はダイヤルアップ接続を念頭に1991年に開発されたものでしたが、記事作成時点でもほぼすべてのスイッチ・ルーター・アクセスポイントなどでサポートされています。新たに報告された「Blast RADIUS攻撃」は、そんなRADIUSをバイパスして攻撃アクターがネットワークデバイスやサービスにアクセスできるようになる攻撃手法とのことです。

BLAST RADIUS

https://www.blastradius.fail/



RADIUS/UDP vulnerable to improved MD5 collision attack

https://blog.cloudflare.com/radius-udp-vulnerable-md5-attack

New Blast-RADIUS attack breaks 30-year-old protocol used in networks everywhere | Ars Technica

https://arstechnica.com/security/2024/07/new-blast-radius-attack-breaks-30-year-old-protocol-used-in-networks-everywhere/

New Blast-RADIUS attack bypasses widely-used RADIUS authentication

https://www.bleepingcomputer.com/news/security/new-blast-radius-attack-bypasses-widely-used-radius-authentication/

企業や通信ネットワーク上の多くのネットワークデバイスは、認証プロトコルとしてRADIUSを使用しています。RADIUSは長年にわたり軽量認証のデファクトスタンダードであり続けており、2000年代から記事作成時点までに出荷されたほぼすべてのスイッチ・ルーター・アクセスポイント・VPNコンセントレーターでサポートされているとのこと。

RADIUSの目的はリモートログインの認証・許可・アカウンティングをシームレスに行うことであり、クライアント/サーバーの相互作用を管理するために不可欠です。記事作成時点では、「VPNアクセス」「インターネットサービスプロバイダが提供するDSLおよびFTTH」「Wi-Fiおよび802.1X認証」「2Gおよび3Gセルラーローミング」「5Gデータネットワーク名認証」「モバイルデータのオフロード」「重要インフラ管理デバイスへの認証」など、さまざまな場面で用いられています。

RADIUSではMD5というハッシュ関数を暗号化に用いていますが、MD5は同じハッシュ値を返すメッセージの組み合わせを計算で割り出しにくいという「衝突困難性」が破られており、強度が必要な場合は使ってはいけないとされています。しかし、依然として複数のネットワークプロトコルではMD5が使われ続けており、RADIUSもそのひとつだとのこと。

新たに、RADIUSの脆弱(ぜいじゃく)性である「CVE-2024-3596」とMD5衝突攻撃を悪用することで、攻撃アクターがRADIUSによる認証をバイパスできてしまう「Blast RADIUS」という攻撃手法が報告されました。これはRADIUSのトラフィックにアクセスできる攻撃アクターがサーバーの応答を操作し、任意のプロトコル属性を追加できるようにすることで、ブルートフォース攻撃や認証情報の窃取をしなくても、攻撃アクターがRADIUSデバイスの管理者権限を取得可能になると説明されています。

以下の図は、パスワードを使用した一般的なRADIUS認証の流れを示したもの。まず、ユーザーによる「1:ユーザー名とパスワードの入力」がクライアントに送られ、クライアントからサーバーに「2:アクセスリクエスト」が行われます。これに対しサーバーは「3:アクセス受け入れ」をクライアントに返し、ユーザーに「4:ログイン成功」が伝えられるという仕組みです。



Blast RADIUSでは、攻撃アクターは中間者攻撃(MITM)を実行できる必要があります。つまり、攻撃アクターは被害者のデバイスのRADIUSクライアントおよびサーバー間を通過するすべてのデータの読み取り・ブロック・変更が可能である場合に、Blast RADIUSは実行可能だそうです。

研究チームが報告したBlast RADIUSの流れは以下の通り。まず、ユーザーを装った攻撃アクターが「1:誤ったユーザー名とパスワードの入力」を行い、クライアントがサーバーに「2:アクセスリクエスト」を送ります。攻撃アクターは中間者攻撃を実行してリクエストを傍受し、「3:MD5衝突攻撃」を行ってサーバーへの「4:アクセスリクエスト」を改変します。そしてサーバーからの「5:アクセス拒否」を傍受し、クライアントへの応答を改変して「6:アクセス受け入れ」に変更すれば、クライアントから攻撃アクターに「7:ログイン成功」が伝えられるという仕組みです。



研究チームは、「Blast RADIUS攻撃はRADIUSクライアントとサーバー間の中間者攻撃者が、失敗した認証リクエストに応答して、有効なプロトコル受け入れメッセージを偽造することを可能にします。この偽造により、攻撃者はパスワードや共有秘密鍵を推測または総当たりすることなく、ネットワークデバイスやサービスにアクセスできるようになります」と述べています。

研究チームは脆弱な製品を提供している少なくとも90のベンダーと協調し、Blast RADIUSを防ぐための短期的な修正を実装するパッチを送付しています。しかし、長期的にBlast RADIUSを防ぐには、RADIUSを転送する際にTLSまたはDTLSを使用することだそうで、インターネットプロトコルの標準化団体・IETFはこの仕様に取り組んでいるとのことです。