エクスプロイト&脆弱性
脆弱性「CVE-2021-45462」の悪用によるユーザ端末から5G通信インフラへの攻撃リスク
無線インフラへの攻撃シナリオとして、5Gコア内で稼働するステートマシンの不備が突かれる可能性があります。5Gは、防衛や公共事業、医療機関を基幹産業で重宝され、そのメリットを活かしたスマートデバイスが日常的に利用されています。本稿では、プライベート5G用ネットワークがDoS攻撃に遭う可能性の1つとして、脆弱性「CVE-2021-45462」のリスクについて解説します。
第5世代移動通信システムである5Gは、企業や組織に対してデジタルトランスフォーメーションの高速化、運用コストの削減、費用対効果の改善、生産性の向上といったメリットをもたらすものであり、従来の無線通信方式では達成できなかったさまざまな活用法が見出されています。こうした目標を達成できるように、5Gでは、多数同時接続(mMTC:massive Machine-Type Communications)、超高速(eMBB:enhanced Mobile Broadband)、低遅延・高信頼(ultra-Reliable Low-Latency Communication)という3種のサービス要件を掲げています。
5Gネットワークの一形態である「プライベート5G」は、業務用途の拡大に合わせて普及に拍車がかかり、その利用者数も増加傾向にあります。プライベート5Gを先駆的に導入した業界として、製造、防衛、港湾、エネルギー、流通、鉱業などが挙げられますが、これは全体の一部に過ぎません。特に、IoT(Internet of Things:モノのインターネット)の迅速な導入によって生産システムやサプライチェーンのデジタル化を進める企業や組織においては、プライベート5Gの利用が顕著に見られました。パブリック5Gと異なり、プライベート5Gでは、無線インフラ用の機器を所有、運用するのが通信キャリアとなっている場合もあれば、ユーザ企業自身やシステムインテグレータとなっている場合もあります。さまざまな技術を開発するために、5Gの利用法に関する研究や調査が盛んに行われています。しかし、サイバー犯罪者もまた、企業や個人のシステム内に侵入するために、5Gという新たな通信規格に潜むリスクや脅威を利用しようと画策しています。本稿では、一般的なユーザ端末によって5Gネットワークのインフラが攻撃される可能性を探り、該当するシナリオについて解説します。
5Gネットワークの形態
5G無線システムを用いた端末間での通信において、スマホやIoT端末などのユーザ機器(UE:User Equipment)は、電波を介して基地局に接続します。これらの基地局は、有線IP を介して5Gのコアネットワーク(5Gコア)に繋がっています。
機能上、5Gコアは「制御プレーン(Control Panel)」と「ユーザプレーン(User Plane)」の2つに分けられます。ネットワーク上で制御プレーンは、各種制御用の信号を送信する他、エンドポイント間で行われるデータのやり取りを、その通信形態に応じてサポートします。一方、ユーザプレーンでは、無線エリアネットワーク(RAN:Radio Area Network)を通じて届いたユーザデータの接続や転送などの処理を担います。
基地局は、機器の紐付けに関する制御信号を送信し、通信プロトコル「NGAP(Next-Generation Application Protocol:次世代アプリケーションプロトコル)」を使用して制御プレーンとの間に接続を確立します。端末から届くユーザデータについては、基地局が通信プロトコル「GTP-U(GPRS Tunneling Protocol-User Plane:GPRSトンネリングプロトコル・ユーザプレーン)」を使用してユーザプレーン側によって中継し、さらに、ユーザプレーンが外部ネットワークに向けて送信します。
UE用サブネットとインフラ用ネットワークは互いに分離されています。そのため、ユーザ機器からインフラ用ネットワーク内部のコンポーネントに直接アクセスすることはできません。これは、ユーザ機器によって無線通信技術(CT:Cellular Technology)のプロトコルが突かれ、5Gコアに被害が及ぼされる事態を回避するための措置です。
こうした分離構成を乗り越えて、ユーザ機器から5Gコアを攻撃することは可能でしょうか。以降、5G用インフラ内部に配備されたコンポーネント、特にGTP-Uがサイバー犯罪者に不正利用されるリスクについて解説します。
GTP-U
GTP-Uは、基地局と5Gユーザプレーン間のトンネリング用プロトコルであり、ポート番号として2152が使用されます。GTP-Uの仕様に基づいてカプセル化されたユーザデータのパケットは、下図の構成を持ちます。
GTP-Uトンネルのパケットは、元のデータパケットに対してUDP(User Datagram Protocol)の転送ヘッダとGTP-U特有のヘッダを付加する形で作られます。このうち、GTP-Uヘッダは下記フィールドから構成されます。
- Flags(フラグ):バージョン情報の他、オプションのヘッダが存在するかを示す識別子などが含まれる。
- Message Type(メッセージタイプ):ユーザデータを転送するGTP-Uパケットの場合、0xffが指定される。
- Length(長さ):フィールド「TEID」以降に続くデータの全バイト数を表す。
- TEID(Tunneling Endpoint Identifier:トンネリング識別子):ユーザ端末をトンネルに紐付ける一意な識別子が指定される。
GTP-Uヘッダをパケットに追加するのは「GTP-Uノード」であり、基地局やユーザプレーン機能(UPF:User Plane Function)がこれに該当します。しかし、ユーザ端末からGTP-Uヘッダを見ることはできず、そのフィールドを操作することもできません。
GTP-Uは標準的なトンネリング技術ですが、その利用の大半は、基地局とUPF、またはUPF同士の無線通信に限られます。ここでのセキュリティ対策について、最良のシナリオを想定するのであれば、基地局とUPF間のバックホールは暗号化され、ファイアウォールで保護され、外部からのアクセスは遮断されるでしょう。具体的な方式としては、基地局とUPF間の通信にIPセキュリティ(IPSec)を適用することが、モバイル業界団体「GSMA」から推奨されています。この場合、認証済みの機器のみが、GTP-Uノードにパケットを送信できることになります。当該の機器が、仕様に従い、それを正しく実装しているならば、異常なパケットがGTP-Uノードに到来することはないと考えられます。一方、堅牢で安全なシステムを確立する上では、異常なパケットが到来する可能性を踏まえて強力なサニティチェックを実行することが求められます。特にパケットのサイズやタイプ、拡張子の異常値をはじめ、明らかな異常については確実に検知できることが期待されます。
しかし、現場の実態は理想的なシナリオから乖離していることが多分にあるため、より広範な分析が必要となります。例えば、現場の運用者は、ユーザトラフィックのスループットやCPUの負荷に対する影響を懸念するあまり、N3インターフェース(RANとUPFの通信経路)にIPSecを適用することをためらう可能性があります。また、ユーザデータは元々TLS(Transport Layer Security)などのアプリケーション層で保護されているという発想に基づき、IPSecを上乗せすることが冗長と見られる場合もあります。他にも、基地局やコアネットワークが要求に従っている限り、異常は発生しないという見方もあります。その一方、堅牢なシステムとしてはサニティチェックを必ず行い、いかなる異常も見逃すことなく検知すべきという主張もあるでしょう。しかし、こうした期待とは裏腹に、世界各地に存在する数多くのN3ノード(UPFなど)が、インターネット上に露出しています。この様子は、下図からも読み取れます。
GTP-Uが攻撃される可能性について、脆弱性「CVE-2021-45462」をもとに解説します。この脆弱性は、5GコアやEPC(Evolved Packet Core:4Gのコアネットワークに相当)をC言語で実装したオープンソースプロジェクト「Open5GS」に潜んでいたものであり、ユーザ機器から「長さ=ゼロ、メッセージタイプ=255」のGTP-Uパケットを送ったところ、送り先のUPFがサービス拒否(DoS:Denial of Service)に陥りました。コアネットワーク内に本脆弱性のセキュリティギャップがある場合、攻撃者がUE側から異常なGTP-Uパケットを作成して送信することで、5Gの場合にはUPF、4G/LTEの場合はSGW-U(Serving Gateway User Plane Function)がクラッシュします。当該の脆弱性は、影響範囲が重要なインフラ要素にまで及び、かつ、容易に解決できないことより、中程度以上の重大性を持つものとして分類されました。
GTP-Uノード:基地局とUPF
GTP-Uノードは、GTP-Uパケットのカプセル化とその解除を行うエンドポイントに相当します。その一例である基地局は、ユーザ機器に接したGTP-Uノードと言えます。基地局がUEからユーザデータを受信すると、それをIPパケットに変換し、さらにGTP-Uトンネル向けにカプセル化します。
一方、UPFは5Gコア側のGTP-Uノードに相当します。UPFが基地局からGTP-Uパケットを受信すると、外側のGTPヘッダによるカプセル化を解除し、内側のパケットを取り出します。次に、その内容自体はチェックすることなく、宛先IPアドレスをルーティングテーブル(これもUPF自身で管理)から探し出した上で、当該パケットを送信します。
GTP-Uの二重化
ユーザ機器側で異常なGTP-Uパケットを意図的に作成し、これをコアネットワーク向けに送信すると、何が起こるでしょうか。
想定される通り、基地局が当該の異常なGTP-Uパケットを受信すると、これをGTP-Uトンネルの経路に乗せてUPF側に送信します。結果、UPF側が受信するGTP-Uパケットの内部には、さらに別のGTP-Uパケットが埋め込まれていることになります。これは、言わば「二重化されたGTP-Uパケット」と見なせるでしょう。外側のGTP-Uヘッダは、ユーザ機器が送信したデータパケットに対して、基地局がカプセル化する目的で付加したものです。当該ヘッダのメッセージタイプは0xFF、長さは44であり、正常なものです。一方、内側のGTP-Uヘッダは、ユーザ機器自身がデータパケットとして作成、送信したものです。そのメッセージタイプは外側同様に0xFFですが、長さは0であり、正常なパケットとは言えません。
内側パケットの送信元IPアドレスはユーザ機器を指し、外側パケットの送信元IPアドレスは基地局を指します。一方、宛先IPアドレスについては両パケットとも同一であり、UPFを指しています。
基地局からGTP-Uパケットを受信したUPFは、外側のカプセス化を解除します。次に機能チェックを行いますが、先述の通り外側のパケット自体は正常なため、このステップも問題なく通過します。一方、内側のパケットについては、宛先IPアドレスがUPF自身を指しています。ここで何が起こるかについては、コアネットワーク側の実装に依存します。
- 実装によっては、通過するパケットの制御にステートマシン(パケットの状態を記録して処理を制御する仕組み)を用いるものがある。ステートマシンの実装において二重化GTP-Uの扱いが十分に考慮されていない場合、外側のGTP-Uパケットをチェックした時点で、同一コンテキスト内で処理される内側のGTP-Uパケットも、チェックを終えたものと見なしてしまうケースが考えられる。この場合、異常なものと見なされるべきパケットが、システム上ではサニティチェックを通過した正常なものとして存在することになる。
- 内側のパケットについては、宛先IPアドレスとして指定されたUPF自身に送信される可能性がある。送信後の動きについては、当該パケットが機能チェックに引っかかる可能性が高く、上記のケースほど大きな問題にはならないと考えられる。
攻撃経路
5Gコアのベンダーによっては、先述したOpen5GSのコードを用いるものがあります。例えば、NextEPC(当初は4Gのシステムであり、2019年に5G機能を追加したことに伴って「Open5GS」としてリブランドした)は、Open5GSのコードに基づくLTE/5G用サービスを企業向けに提供しています。現状、攻撃や脅威の兆候は報告されていませんが、弊社の調査結果からは、先述のようなシナリオが利用されるリスクが示唆されます。
本攻撃シナリオで着目すべき点は、無線インフラ自体がUE側から狙われるという攻撃経路にあります。攻撃の実行に大掛かりな準備は不要であり、モバイル端末(または無線ドングルを装着したコンピュータ)と、当該の問題点を突く数行のPythonコードがあれば十分でしょう。GTP-Uの二重化自体はよく知られた手法ですが(参考:1件目、2件目)、バックホールのIPセキュリティや暗号化は、それを阻止するものではありません。むしろ、これらのセキュリティ対策により、ファイアウォール側でパケットの中身をチェックできなくなってしまうという側面もあります。
発見事項と改善策
プライベート5Gを先駆的に導入したのは医療や公共事業などの基幹産業ですが、現在、これは全体の一部に過ぎず、用途の広さや人気の高まりを踏まえると、その利用は今後さらに増加していくと考えられます。当該産業には、人命に関わるものや社会的影響の強いものが多く含まれ、オペレーションを止めることなく、確実に継続できることが強く求められます。Wi-Fiよりもプライベート5Gが選ばれる背景の一つに、こうした事由が挙げられます。インフラ部分への攻撃はネットワーク全体に影響を及ぼします。そのため、プライベート5Gシステムとして、接続を絶え間なく維持できることは、必須と言えるでしょう。
今回取り上げた脆弱性「CVE-2021-45462」の不正利用は、DoS攻撃に繋がるものです。本脆弱性(または二重化GTP-Uを利用した攻撃の大半)の根本的な要因は、コアネットワーク側でのエラー検査や対応処理の不備にあります。二重化GTP-U自体は有害なものではありませんが、脆弱性の解決策は、コアネットワークのベンダー側から提供される必要があります。また、インフラの管理担当者は、関連ソフトウェアを最新版にアップデートすることを推奨します。
二重化GTP-Uは、インフラ用ノードのIPアドレスをはじめとする機密情報の窃取に利用される可能性もあります。そのため、GTP-Uの各ノードでは、二重化GTP-Uパケットによる攻撃への対策を十分に行っておくことが求められます。無線環境においては、無線通信プロトコルに対応した侵入検知システム(IPS:Intrusion Prevention System)やファイアウォールの導入が推奨されます。特にプライベート5Gにおいて、通常のユーザトラフィク上にGTP-Uパケットが現れることは稀です。そのため、セキュリティチームでは安全性を優先し、二重化GTP-Uの通信を排除することも有効な手立てと言えるでしょう。
一般的な原則として、SIMカードの登録と利用は、厳正な規則のもとに実施されるべきです。SIMカードが盗まれた場合、攻撃者はそれを自身の端末に接続し、ネットワーク上で不正な活動を行う可能性があります。また、エンド端末やインフラ網のエッジ部分を企業側が所有する共有運用モデルにおいては、セキュリティ事象の発生に際して、責任の所在が曖昧になる場合があります。一方、無線インフラの所有者がインテグレータとなっている場合もあれば、通信キャリアとなっている場合もあります。こうした状況において、セキュリティオペレーションセンター(SOCs:Security Operation Centers)では、さまざまな領域やソリューションから関連する情報を取り揃える必要があるなど、複雑な対応に迫られることとなります。
重要インフラ用ソフトウェアのベンダーから提供される修正パッチを定期的に適用する際にも、システムの一時停止や動作確認テストが必要になるなど、一定の困難がつきまといます。そのため、IPSや多段ファイアウォールによる「仮想パッチ」が強く推奨されます。幸い、二重化GTP-Uのパケットを実際に利用するアプリケーションは稀なため、二重化GTP-Uの通信を完全に遮断することも、安全の確保に向けた一手と考えられます。トレンドマイクロでは、ITとCT(通信技術)双方のセキュリティや可視性を統合的に実現できる多層構成のセキュリティソリューションを推奨します。例えば、企業や基幹産業においては、CTOneによって強化された「Trend Micro™ Mobile Network Security」のようなゼロトラスト・ソリューションを導入することで、プライベートネットワークの不正利用を阻止し、セキュリティ上の階層を新たに追加することが可能です。さらに、SIMカードの利用を承認済みの機器に限定することで、継続的で安定した産業のエコシステムが確立されます。その他、「Mobile Network Security」も、統一的な可視性や管理用のコンソールを提供することで、CTやITのセキュリティ向上に貢献します。
参考記事:
Attacks on 5G Infrastructure From Users’ Devices
By: Salim S.I.
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)