侵害の元凶「レガシーインフラ」を一掃 Redditの“ゼロトラスト”移行術:インシデントを契機に脱・境界防御
Redditは過去の侵害事件を機に、25件のシステムに分散したレガシーインフラを、全アクセスを検証するゼロトラストシステムに集約した。独自の自動化プログラムを開発し、移行を成功させた舞台裏に迫る。
企業規模の拡大に伴い、部門ごとにアクセス経路や認証システムが乱立することは珍しくない。米国の大手ソーシャルニュースサイトを運営するRedditは、通信を中継する古いプロキシや、保守されていない安全なリモート接続用の踏み台サーバ、暗号化経路を構成するVPN(仮想プライベートネットワーク)などが混在する課題を抱えていた。これらのレガシーインフラが25件のシステムに分散し、管理もばらばらな状態だった。
こうした複雑な構成は、運用にかかる人手の増大やセキュリティリスクを招く。現にRedditは2023年、従業員を標的とした巧妙なフィッシング攻撃によって、内部のシステムやソースコードに不正アクセスされる侵害事件を経験した。これを契機に、インフラの抜本的な改革の決断に至った。目指したのは、複数の侵入経路を1つにまとめ、デバイスの状態とアイデンティティーに基づくアクセス制御を可能にすることだ。
結果として、Redditは踏み台サーバを撤去して認証を一元化し、全てのアクセスを信頼せず常に検証する「ゼロトラストセキュリティ」の仕組みを構築することに成功した。大規模なシステム移行において、Redditはどのように開発者の生産性を落とさずゼロトラストセキュリティを実現したのか。独自の自動化アプローチに迫る。
便利な「ワイルドカード証明書」に頼らない運用
併せて読みたいお薦め記事
ゼロトラストセキュリティの導入
本稿は、SRE(サイト信頼性エンジニアリング)のカンファレンス「SREcon26 Americas」において、Redditのセキュリティエンジニアであるプラティック・ロティア氏とネイサン・ハンドラー氏が登壇したセッション「The Zero Trust Odyssey: Our Journey to Modernize Internal Access」の内容に基づく。
新たな認証と通信のシステムとして、RedditはWebの安全性を高めるセキュリティサービス「Cloudflare」の仕組みを採用した。しかし、全通信を監視下に置く「フルトンネル」を一気に導入することは避けている。開発者の自宅LANにおいて他の機器との競合を避けるために、社内ドメイン宛ての通信のみを振り分ける「スプリットトンネル」を意図的に選んだのだ。これによって従業員の働き方やエンドポイントの設定への急激な変化を抑えつつ、インフラの刷新に集中できるようにした。
開発者が接続先を意識せずに済むよう、DNS(ドメインネームシステム)のルーティングにも工夫を凝らしている。社内のプライマリDNSである「Amazon Web Services」(AWS)のDNSサービス「Amazon Route 53」を維持したまま、外部DNSとの連携によって特定のサブドメイン宛ての通信だけを新しいシステムにルーティングするように構成した。これと並行して、古いシステム構成で多用されていた1つの証明書で複数のドメインを一括して暗号化できる「ワイルドカード証明書」の運用を見直した。ドメイン全体へのアクセスを一括して許容していた設定を廃止し、アプリケーション単位でアクセス権限を厳密に限定する形に移行している。正規の手順を踏んでいない不適切な通信を遮断する安全網として、ワイルドカードによるアクセス許可設定を再定義した。
IaCの限界を突破する独自のKubernetes自動化ツール
インフラの移行と拡張を進める中で、Redditは運用プロセスの壁に直面する。セキュリティを確保するためにトンネルやアプリケーションへのアクセス設定を追加するには、ソースコードでインフラの構成を管理する「IaC」(Infrastructure as Code)や、それを実現するツール「Terraform」を用いた承認プロセスが必須だった。このプロセスは開発者にとって煩雑であり、作業の停滞を招く原因になっていた。コンテナのオーケストレーションツール「Kubernetes」を用いた現代的なシステム構成では、日々新しい実行環境(クラスタ)が動的に作成・破棄されるため、手動による設定ファイルの更新は追い付かないという課題もあった。
これらの課題を解決するため、Redditは独自のKubernetes運用自動化プログラム「Achilles Controller」を開発した。この仕組みは、クラスタの生成を自動的に検出して必要なトンネル設定を構築する「CFTunnelOperator」と、開発者が記述した短いソースコードからアクセス経路を自動生成する「CFApplicationOperator」で構成されている。
Terraformのような静的な構成管理ツールとは異なり、Achilles Controllerはシステムのあるべき姿を常に監視し、自動で修復や設定を実行する。このアプローチによって、開発者は社内インフラの複雑な仕様を学ぶことなく、迅速に安全な通信経路を確保できるようになった。自動化の徹底は、ゼロトラストセキュリティの導入における大きな成功要因になっている。
残された課題と次のステージ
インフラの刷新はRedditにさまざまな恩恵をもたらしたが、完全なゴールに到達したわけではない。例えば、今回導入したCloudflareによるアクセス制御の仕組みが、データ通信プロトコル「gRPC」(Google Remote Procedure Calls)を用いたコマンドライン通信に適合していない点や、複数地域にまたがる高度な負荷分散機能が不足している点は、今後の拡張における課題だ。
Redditは次のステップとして、スプリットトンネルからフルトンネルへの完全移行に向けたプロトタイプ検証を進めている。デバイスのセキュリティ対策状況を確認する機能(デバイスポスチャー)の導入や、インターネット経由で利用するクラウドサービスへのアクセス制御の高度化など、手動での作業が残っている領域の改善にも取り組む計画だ。
Copyright © ITmedia, Inc. All Rights Reserved.
本記事は制作段階でChatGPT等の生成系AIサービスを利用していますが、文責は編集部に帰属します。