- SpaceXのStarlinkユーザーターミナルは、低軌道衛星インターネット接続の中核ハードウェアである
- ユーザー端末を分解すると、無線周波数(RF)フロントエンドと独自設計SoCが主要部品である
- ファームウェア分析の結果、主要なコアソフトウェアの多くには、カーネルバイパスのユーザー空間ネットワーク処理および一部の暗号化機能が含まれる
- STSAFE-A110セキュリティチップが追加の認証ルートとして機能し、データ暗号化と固有識別を提供する
- このターミナルには多数のSSH公開鍵設定と不審なパケット記録ツールが含まれているが、ユーザープライバシー侵害の手がかりは見当たらない
概要
- StarlinkはSpaceXが提供する低軌道衛星インターネットサービスである
- ユーザーはターミナルを通じて近隣の衛星に接続し、これは地上ゲートウェイ経由でインターネットに接続される
- 新世代の衛星はレーザーリンクを活用して衛星間通信が可能になっており、この機能はグローバルカバレッジと効率向上に寄与する
- 現地ゲートウェイがなくても、たとえばウクライナのように、隣接国のゲートウェイを利用してStarlink端末がインターネットに接続できる
- 本記事では、DARKNAVYによるStarlinkユーザーターミナルの詳細調査内容を簡潔に扱う
ハードウェア分析
- 1つのStarlinkユーザーターミナルはルーターと**アンテナ(UTA)**の2部分で構成される
- DARKNAVYはシンガポールでStandard Actuated(Rev3, GenV2)ターミナルを購入し、アンテナを分解した
- 分解の結果、**RFフロントエンドチップ(主にSTMicroelectronics製)**が基板の大部分を占めていた
- 中核制御領域には**SpaceX専用のカスタムST SoC(クアッドコア Cortex-A53)**が搭載されているが、データシート情報は非公開である
- Black Hat USA 2022でKU Leuven所属のLennert Wouters博士は、第1世代ターミナル(GenV1)のハッキング成功事例を発表し、SpaceXはその後のファームウェア更新でUARTデバッグインターフェースを無効化した
- しかし、追加の方法により再びセキュリティ回避に成功した経緯がある
ファームウェア抽出と分析
- DARKNAVYはeMMCチップから直接ファームウェアをダンプした
- Rev3基板には専用のeMMCデバッグピンがないため、eMMCを取り外してプログラマーでデータを抽出する方式を用いた
- ファームウェアの大部分は暗号化されておらず、ブートチェーン(BootROMを除く)、カーネル、ファイルシステムの一部が明らかになった
- カーネル起動後は、ランタイム環境を**/sx/local/runtime**に展開して利用する
binにはStarlinkソフトウェアの実行ファイル群、datには設定ファイル、revision_infoにはバージョン情報が入っている
- 中核通信プログラム
user_terminal_frontendはGoで開発されており、それ以外の大半はシンボルなしの静的C++バイナリである
- ネットワークスタックアーキテクチャはDPDKに似ており、カーネルをバイパスしてユーザー空間プログラムがパケット処理を担当する
- Linuxカーネルは主にハードウェアドライバとプロセス管理に使われる
- 一部のソフトウェアには、もともと衛星またはゲートウェイ用途向けに設計された機能が含まれている
- デバイス起動時にハードウェア周辺機器からタイプを識別し、該当ロジックだけをロードして使用する
エミュレーション
- 継続的な分析のため、QEMUベースのRev3ファームウェアエミュレーション環境を構築した
- この環境で
httpd、WebSocket、gRPCなどの外部向けサービスの一部を実行し、デバッグすることに成功した
- 主要実行ファイルおよびサービスの動作原理を追跡できるようになった
セキュリティチップ
- メインSoCのほかにSTSAFE-A110セキュリティチップが存在し、**CC EAL5+**認証をうたっている
- このチップはNDAのもとで購入可能で、ファームウェア内のstsafe_cliプログラムがこのチップと相互作用する
- 分析の結果、STSAFEチップが提供する機能には、デバイス固有UUIDの付与、公開鍵証明書(stsafe_leaf.pem)の管理、対称鍵導出などがある
- このチップはSoCのセキュアブートとは別の追加の信頼のルートであり、現代の組み込みセキュリティ設計基準に合致する
イースターエッグ: Elonはあなたを見ているのか?
- 分析中にEthernet Data Recorderプログラムが確認され、バックドアの可能性について疑問を抱かせた
- このプログラムはパケット記録機能を持つように見え、内部的にはpcap_filter類似メカニズムで特定パケットをキャプチャする
- ルールを見ると、キャプチャ対象は主に衛星テレメトリー関連のUDPパケットであることがわかる
- 取得したトラフィックはSoCハードウェアキーで暗号化されて保存される
- 現時点ではユーザープライバシーデータを収集している証拠は確認されていない
- 初期化過程でデバイスがユーザー端末と認識されると、/root/.ssh/authorized_keysに41個のSSH公開鍵が記録され、ポート22は常にローカルネットワークに対して開かれている
- 市販製品に多数の正体不明の公開鍵が登録されている点は注目に値する
結論と展望
- 衛星技術が多様な産業分野に適用されるにつれ、Starlinkのような衛星インターネットシステムの構成要素は今後、セキュリティ攻撃と防御の主要な戦場になると予想される
- 宇宙セキュリティの特性上、一度のミスが対象との恒久的な通信断絶につながる可能性があるため、慎重なアプローチが求められる
1件のコメント
Hacker Newsのコメント
/root/.ssh/authorized_keysファイルに書き込み、ポート22も常にローカルネットワークに対して開いていることが判明した。41個もの鍵を使う意味が何なのか気になるし、結局のところ「自分が所有している」ユーザーターミナルに対してルートアクセス権を持つのが誰なのか疑問だauthorized_keysに25行ある。ラップトップの複数の YubiKey、iPad や iPhone の鍵、Mac の Secure Enclave の鍵などが混在している。Starlink には少なくとも1〜2人以上のシステム管理者がいるはずだし、100個の公開鍵でもそれほど不自然な数ではない