Tenable ブログ
ブログ通知を受信するTenable.io: 制御するかしないか、それが問題だ
地理的またはビジネス的な境界を越えて Tenable.io を共有するような、大規模な Tenable のデプロイメントを行う際は、ロールベースアクセス制御 (RBAC) を活用することで、スキャンデータを論理的にセグメント化したり、必要に応じてスキャンデータへのアクセスを制限したりできます。このブログでは、RBAC を正常に実装するために必要な設定について説明します。
複数のユーザーが Tenable.io を使用して脆弱性管理プログラムを構築する場合、2 つのアプローチがあります。
1 つ目のアプローチでは、すべてのユーザーがすべての脆弱性を確認できるようにしますが、同時にカスタムダッシュボードと Tenable.io タグフィルターを組み合わせて、アセットのサブセットにフォーカスできるようにします。
2 つ目のアプローチでは、Tenable.io 内にある ロールベースアクセス制御 (RBAC) を活用して論理的にセグメント化し、可視性をアセットやリソースのサブセットに制限することで、ゼロトラストモデルに近づけます。
1 つ目の方法はとても簡単に実現できるため、この記事では取り上げません。ここでは、2 つ目の方法と RBAC のベストプラクティス設定に焦点を当てます。以下で説明するすべてのアクションは、Tenable.io 管理者アカウントを用いて設定する必要があります。
Tenable.io における完全な RBAC セグメンテーションは、Tenable.io インターフェースの複数の場所で制御されます。センサーネットワークに基づくセグメンテーション、ユーザーアクセス制御の権限、およびスキャンポリシーの権限です。本稿の各セクションで、これらの機能を実装する理由と方法について説明します。
下記のシナリオを使って、RBAC を使用して Tenable.io を設定する方法を説明します。このシナリオでは、4 つの地域 / ビジネス ユニットがあると想定しています。各地域はそれぞれ独自のスキャンを管理していて、他の地域の結果や関連するスキャナーにはアクセスできません。完全な権限を持つ管理者は、全体的なレポートの作成、可視性の取得、設定を行うため、すべての地域にアクセスできます。API ユーザーにも、サードパーティソリューションとの統合ができるように完全なアクセスが提供されています。
RBAC を設定する前に、RBAC が適用されることになる基盤を構築する必要があります。ネットワークのセグメンテーションとタグ付けです。
センサーネットワークのセグメンテーション
複数の地域 / 部門で単一の Tenable.io コンテナを利用する場合に直面する重要な問題として、IP アドレスの重複があります。環境全体で同じ IP アドレスを持つアセットを区別するには、Tenable.io のセンサーネットワークを使用します。
Tenable.io センサーネットワークを使用すると、環境ごとに地域 / 部門をセグメント化し、各ネットワークにスキャナーやスキャナーグループを割り当てることができます。アセットがスキャンされると、関連付けられたネットワークがアセットの詳細に追加されます。また、アセットをネットワークでフィルタリングしたり、定義されたネットワークに基づいて動的なタグを作成したりできます。スキャナーまたはスキャナーグループは、一度にネットワーク を 1 つだけ指定できます。
このシナリオでは、4 つのセンサーネットワーク (各地域に 1 つ) を作成し、次に Nessus スキャナーを各地域 / 組織に配備していきます。
次の手順に従って行います。
[Menu (メニュー)] > [Settings (設定)] > [Sensors (センサー)] > [Network (ネットワーク)] > [Add Network (ネットワークの追加)] に移動します。
そこから、各地域 / 組織あたり 1 つ以上の Nessus スキャナーまたは Nessus Agent を関連サイトに配備できます。スキャナーは常に、スキャンしたいターゲットのできるだけ近くに配備する必要があります。Nessus スキャナーがセンサーネットワークにバインドされると、そのスキャナーによって検出またはスキャンされたすべてのアセットもそのセンサーネットワークにバインドされます。
適切な地域のスタッフのみが、Nessus スキャナーでスキャンを表示したりスケジュール設定したりできるように制限するには、その要件を満たすようにスキャナーのアクセス許可を更新する必要があります。くわえて、ユーザーに対して正しいロールが割り当てられていることを確認する必要もあります。これについては後述します。
管理者として、[Linked Scanner (接続されたスキャナー)] ページから Nessus スキャナーを選択し、[Permissions (権限)] タブに移動して、[Default (デフォルト)] が [No Access (アクセスなし)] に設定されていることを確認します。その後、適切なアクセス権を割り当てます。
Region 1 に配備するスキャナーの場合、次の設定がお勧めです。
Default=No Access、R1Users=Can Use、Administrators=Can Manage
センサーネットワークに基づく自動タグ付け
RBAC の利用やダッシュボードのフィルタリングには、Tenable.io 内のタグを利用します。タグは、センサーネットワークに基づいて自動的に割り当てることができます。
このシナリオでは、「Region」というタグカテゴリを作成し、次に各地域の値を作成しています。すると、アセットが属するセンサーネットワークに基づいて、地域タグが自動的に適用されます。タグにより、さまざまなビジネスユニット、場所、修復チームなどに関連付けられたターゲットをグループ化することも可能です。
たとえば、
タグカテゴリを「Region」にして、値に「1、2、3、4」を割り当てることができます。
タグルールを設定すると、関連するタグを自動的に適用することもできます。たとえば、タグ「Region:One」は、センサーネットワークが「R1」に等しい任意のアセットに適用されます。
この設定は、各センサーネットワークリージョン (R1、R2、R3、R4) に適用されます。Nessus スキャナーまたは Nessus Agent で検出またはスキャンされたアセットには、関連するタグが自動的に割り当てられます (注: タグは、最初に Tenable.io にリンクされたときではなく、次にスケジュールされたスキャンが処理された後に Nessus Agent に適用されます)。
RBAC の設定
RBAC は、ロールと権限の組み合わせとして実装されます。
ロール:
Tenable RBAC の設定は複数の場所で行います。RBAC は、上記で定義されたタグ付けモデルに大きく依存します。
このセクションの推奨事項では、次の設定向けに説明します。
- Settings (設定) > Access Control (アクセス制御) > Roles (ロール)
- Settings (設定) > Access Control (アクセス制御) > Permissions (権限)
- Settings (設定) > Access Control (アクセス制御) > Groups (グループ)
- Settings (設定) > Sensors (センサー) > Cloud Scanners (クラウドスキャナー) > Permissions (権限)
- Settings (設定) > Sensors (センサー) > Linked Scanners (リンクされたスキャナー) > Permissions (権限)
- Scans (スキャン) > Manage Scan Templates (スキャンテンプレートを管理) > {テンプレート} > User Permissions (ユーザー権限)
Tenable.io では、ロールを使用して主要な機能の権限を管理し、ユーザーがアクセスできるリソースを制御できます。ユーザーを作成するときは、実行可能なアクションがおおよそ許可されるロールをそのユーザーに割り当てる必要があります。
この例では、地域 / ビジネスユニットに独自のスキャンを作成してもらいたいので、「Standard」ロールを活用します。さらに厳しい制限を加えて、定義されたスキャンテンプレートのみを使用できるようにする場合は、「Scan Operator」が適しています。
Tenable では、大規模な組織で用いられる次のペルソナマトリックスに基づいた設定を推奨しています。
管理者 | Tenable.io プラットフォームに対する完全な管理者権限を持ちます。 |
代表ユーザー | すべての地域 / ビジネスユニットのすべての結果を表示できますが、管理者権限はありません。 |
地域管理者 | 地域のスキャナーとスキャンポリシーの管理、関連するすべての結果の表示が可能です。 |
地域ユーザーegional Users | 地域 / ビジネスユニットのすべての結果を表示できますが、管理者権限はありません。 |
API ユーザー |
すべての地域 / ビジネス ユニットからのデータをクエリできます。 |
Tenable.io にビルトインされているロールは以下の通りです。
ロール | 説明/対策 |
---|---|
管理者 | 管理者は、スキャンマネージャーと同じ権限を持ちます。ユーザー、グループ、システム ターゲットグループ、およびアクセスグループを管理することも可能です。さらに、管理者はすべてのユーザーが作成したスキャンを表示できます。 |
スキャンマネージャー |
スキャンマネージャーは、スタンダードユーザーと同じ権限を持ちます。エージェント、除外、およびスキャナーを管理することも可能です。 なお、スキャンマネージャーの役割を持つユーザーは、権限を持つものだけでなくすべてのスキャナーを表示できます。 |
スタンダード | スタンダードユーザーは、スキャン、テンプレート、およびユーザー ターゲットグループを作成できます。 |
スキャンオペレーター |
スキャンオペレーターは、会社が承認したテンプレートに基づいてスキャンを作成および実行できます。 |
ベーシック | ベーシックユーザーは、スキャン結果の表示とユーザープロファイルの管理のみを行うことができます。 |
無効 | 無効になっているユーザーアカウントは、Tenable.io にログインできません。 |
Tenable RBAC は、ロールと権限の組み合わせとして実装されます。アセットと結果に何が表示されるのかを制限するには、4 つのユーザー グループ (R1Users、R2Users、R3Users、および R4Users) を作成します。ロールとグループを定義したら、ユーザーの権限のセットを作成できるようになります。
このシナリオでは、以前に設定したタグに基づいてアセットを制限しています。
以下はその例です。
「R1User」権限は「R1Users Group」に割り当てられています
追加された権限: Can View (表示可能)、Can Scan (スキャン可能)、Can Use (使用可能)
割り当てられたオブジェクト: Region:One
最後に、ユーザープロフィールを作成し、関連するユーザーグループに追加します。
たとえば、ユーザー「R1User」を作成し、「R1Users」グループに追加します。
(注: アクセス管理にアクセスグループを使用している既存のお客様の場合、Tenable.io では、アクセスグループがアクセス許可に置き換えられています。)
ここでは、「All Assets」権限セットを削除し、「All Users」への参照をすべての権限セットから削除するようにしてください。これにより、管理者のみがすべてのアセットを表示できるようになり、ユーザーは自分のタグと関連するアセットのみが表示可能となります。
Tenable では、ペルソナマトリックスに基づく次の設定を推奨しています。
ロール | RBAC カテゴリ | 推奨設定 |
---|---|---|
管理者 | ロール | 管理者 |
許可 |
すべてのタグ: Can View、Can Scan、Can Use、Can Edit |
|
注:管理者権限が事実上必要です (特定のポリシーは必要ありません) | ||
エンタープライズユーザー |
ロール |
ベーシック |
許可 | すべてのタグ: Can View、Can Use | |
代表管理者 | ロール | スキャンマネージャー |
許可 | Region{x} タグ:Can View、Can Scan、Can Use | |
注:これは、承認されたスキャンテンプレートのみを使用するようにアクセスを制限するスキャンオペレーターロールを使用して、さらに厳しく制限できます。 | ||
代表ユーザー | ロール | ベーシック |
許可 | 地域{x} タグ: Can View、Can Use | |
Enterprise API Account | ロール | 管理者 |
許可 | すべてのタグ: Can View、Can Use | |
注: アカウントが完全な管理者であっても、API を介してデータにアクセスする権限を明確に許可する必要があります。 API ユーザーは Tenable.io UI にアクセスできません。 このアカウントで API 認証のみが有効になっていることを確認してください。 |
追加の権限の変更
すべてのユーザーが許可されたデータにのみアクセスできるようにするには、「All Assets」オブジェクトに対して権限が許されているエントリのリストを見つけて、そこから「All Users」グループを削除する必要があります。権限のリストには、すべてのアセットを表示する権限があるユーザーまたはグループのみを含める必要があります。
追加のロールの設定オプション
Tenable.io のロールをさらにカスタマイズして、他の機能へのアクセスを制御できます。制御できる機能は以下の通りです。
- 脆弱性の変更 / 承認ルールの管理
- 変更 / 承認ルールの表示る
- Tenable.one を表示する
- Tenable.one でのエクスポージャーカードの作成
- Tenable.one でのタグの管理
なお、Tenable.io の RBAC ポリシーは、今後の更新で、ユーザーによる管理を拡大していきます。
スキャンポリシー権限
RBAC ポリシーの外部では、スキャンポリシーのアクセス権限内からスキャン結果を表示するためのアクセス権をユーザー / グループに付与できます。スキャン結果へのアクセスが許可されていないユーザーに公開されないようにするには、「Default:No Access」ポリシーを使用してスキャンポリシーを設定してください。これが設定されておらず、スキャンポリシーが共有されている場合、権限が制限のあるユーザーでもスキャンをクリックすると、すべてのスキャン結果を表示できます。これは、脆弱性スキャンとウェブアプリスキャンの両方で当てはまります。
RBAC コントロールがダッシュボードに与える影響
「R1User」などの制限付きユーザーでログインする場合、
- アセットは「Region:One」タグが付いたもののみに制限されます。
- 脆弱性は、「Region:One」タグが付いたアセットに限定されます。
- ダッシュボードを作成したり、タグに基づいてフィルターを適用したりする場合、「Can Use (使用可能)」権限を持つタグのみを選択できます。
- ウェブアプリケーションダッシュボードは、制限付きのユーザーに対してはデータを表示しません。スキャン結果を表示する必要がある場合、「Scan Permissions (スキャン権限)」を編集すると可視化できます。
- Luminでは、「Organizational CES」のスコアと指標が表示されます。次に、ユーザーがアクセスできるタグを使用して「Business Context」セクションを設定できます。「Business Context/Tag」を使用して、Lumin メトリックのいずれかを関連する地域 / タグアセットにフォーカスさせることもできます。
完全な管理者権限を持つユーザー | 制限付きユーザー「R1 User」の例 |
---|---|
利用可能なスキャナー |
利用可能なスキャナー |
Lumin (画面の一番上に組織の指標が表示されます)
タグを利用して、地域の指標の内訳を表示することができます
まとめ
Tenable.io には堅牢な RBAC 機能があります。それにより、ターゲットやそれらに関連する弱点の表示や、スキャンの作成 / スケジュール設定機能、利用できる Nessus スキャナー、などすべてをユーザーロールの制限として適用することができます。
Tenable.io の RBAC では、タグ付けを大いに活用することで、設定する制限の境界を論理的に定義できます。これを利用する際は、各ターゲットアセットに割り当てられたタグを簡単に維持できるように、可能な限り Tenable.io タグの自動化ロジックを使用するようにしてください。
詳細については、次を参照してください。
関連記事
- Tenable.io
- Vulnerability Management