以前から気になっていた「ゼロトラストネットワーク」の翻訳版がオライリーから発売されました。https://www.oreilly.co.jp/books/9784873118888/早速読んでみたのでレビューしてみたいと思います。最近新しいセキュリティの考え方として注目されている「ゼロトラストネットワーク」について取りあげた書籍です。ゼロトラストネットワークの概念、どのように構成するか、認証をどうするべきかなどを解説し、またGoogleやPagerDutyでの実際のシステムの事例などを紹介しています。攻撃者の視点ゼロトラストネットワークとはまずこの本で解説している「ゼロトラストネットワーク」とはそもそも何か、ですが、「ゼロトラスト」という言葉通り、「どんなユーザ、デバイス、ネットワークからの通信も信頼できない」ことを前提としたシステムです。本書の概要では端的にこう解説しています。ゼロトラストネットワークとは、ファイアウォールやVPNに代表される従来型のセキュリティ(境界防御モデル)が通用しなくなった現状を踏まえ、すべてのトラフィックを信頼しないことを前提とし、検証することで脅威を防ぐというアプローチです。1章でこれまでのネットワークの歴史とともに詳しく述べられていますが、従来の、WAN/DMZ/LANなどといった境界で区切りその境界でセキュリティを守るようなネットワーク(境界モデル)では、基本的に「社内LANからの通信であれば信頼できる」という前提に立って、LANからの通信についてはセキュリティポリシーが緩く設定されています。結果として、社内LANの内部にいるホストを乗っ取り、そのホストから社内のさまざまなホストへ侵入していく・・・といった攻撃が蔓延する結果となっています。このため、社内LANであろうが盲目的に信頼することはせず、どんなネットワークも危険に晒されている可能性があることを前提として、ホストのセキュリティを高める・・・というのがゼロトラストネットワークの考え方です。通信をどう信用するのかでは「どのネットワークも信頼できない」という前提に立ったとして、相手をどうすれば信用できるのでしょうか。ユーザで認証する、というだけではユーザの乗っ取り、なりすましを防げないし、デバイスにしても盗まれて利用されてしまう可能性があります。そこで、ユーザやデバイス、またそのアクティビティを考慮した信用スコアを動的に計算し、そのスコアに応じて都度認可するポリシーを変更する、という「信用スコアモデル」をこの本では提唱します。これを実現するためのコンポーネントとして、「ネットワークエージェント」や「トラストエンジン」などが紹介されています。ネットワークエージェントネットワークエージェントは、ゼロトラストネットワークのために考えられた新しい概念で、「ネットワークリクエストをするエンティティについてわかっているデータの組み合わせ」と説明されています。ユーザ、アプリケーション、デバイスといった情報で、通信をリクエストする側が渡すものです。ユーザ単体やデバイス単体ではなく、複数のデータの組み合わせとすることで、信用スコアの検討において、より精密な判断が可能になります。この情報を利用して信用スコアを計算/更新しますが、逆にいうと、信用スコアを検討するのに必要な情報が含まれる必要があります。重要なこととして、ネットワークエージェントは認可には利用するものの認証には利用しない、という点が触れられています。デバイスの認証(X.509証明書を利用するなど)やユーザの認証を行なった上で、何かしらのリクエストのたびにこのネットワークエージェントを使ってそのリクエストに対する認可を行う、という仕組みです。残念ながらネットワークエージェントについては現在標準があるわけではなく、各自で実装する必要があるようです。標準化をするには、組織によって必要なデータやそのフォーマットは異なると思われ、それらに柔軟に対応する必要があります。本の中では、SNMPにおけるMIBを参考として標準化ができるのではないか、と提言されています。認可を判断するコンポーネント(トラストエンジンなど)認可を判断するためのコンポーネントとしては、以下の4つが挙げられています。これらは緊密に連携しあって、通信のリクエストを認可するべきかどうかを判断・適用します。エンフォーサ:データプレーンにあって、実際にポリシーに基づいた制御を行うコンポーネント。ロードバランサ、プロキシ、ファイアウォールなどとして実装される。ポリシーエンジン:認可の可否を判断するコンポーネント。エンフォーサに送られてくるリクエストについて、ポリシーとの比較を行う。ポリシーはトラストエンジンによって計算される信用スコアを用いて定義することが望ましい。トラストエンジン:ゼロトラストネットワークにおいて、リクエストやアクションのリスク分析を行うコンポーネント。ネットワークエージェントやデータストアに蓄積された履歴情報を元に、信用スコアを計算する。静的なルール以外に、機械学習モデルを導入することが望ましい。データストア:システムの過去と現在の状態を保管する情報源。フロー情報などを提供し、認可の判断に利用される。上記が本書で示されるゼロトラストネットワークの概要となります。これまでのネットワークのモデルとはかなり異なり、新しいコンポーネントが必要であることも分かると思います。実際の実装はどうなるんだ?と気になるところと思いますが、すでに述べたように、後半(9章)でGoogleやPagerDutyでの実際のシステムの事例が紹介されています。これらの概念をどう実装に落とし込んでいるのか、という点をぜひ実際の書籍でお確かめください。「ゼロトラストネットワーク」という新しい概念に対して、丁寧に解説された書籍だと思います。従来のネットワークのモデルと大きく異なり、また構成する要素の標準化が行われていないため、実装は大変そうだなあ・・・というのが読んだ率直な感想ではあります。Googleですでに「BeyondCorp」という名前で実際に実装され、運用されている実例があり、それを取り上げてくれている点が非常に参考になりますが、とはいえ書籍中でも「規模に見合ったリソース量はGoogleだからこそ用意できた」と書いているように、かなりパワーが必要な印象は受けました。当社もそうですがリモートワークが普及し、社外からの内部リソースへのアクセスが頻繁に必要とされる昨今、デバイスが内部ネットワークにあることを前提とした考え方は見直した方が良いように思いますし、巧妙化するサイバー攻撃の前に内部ネットワークからのアクセスといえど最早信頼はできない、ということは確かです。したわけで、この新しい考え方に今のうちから目を向けておくのは良いかなと思います。以上、「ゼロトラストネットワーク」書評でした。余談ところで、この書籍では「信頼」と「信用」という似た単語が出てきて、使い分けられています。使い分けられているんだろう?と読んでいて気になったのですが、じつは原書ではどちらも「Trust」という単語で記述されているところを、訳者の方が場合によって使い分けている、ということが「監訳者あとがき」で明かされていました。「信頼」は「ある人や物を高く評価して、すべて任せられる気持ちを抱くこと」(信用より感情的な行為に近い)として、過去や現在の事実・実績を評価するTrustや各種技術的なTrustなどは「信用」、認証局のトラストアンカーなどは「信頼」と訳しているそうです。そこまで気を使って翻訳しているのか、翻訳の世界は深いな・・・と感銘を受けました。116,565AWS事業本部オペレーション部所属。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治371re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹410こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。濱田孝治371re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。臼田佳祐296ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。