スキャンの分散
概要
Tenable Vulnerability Management のスキャン分散方法により、組織のスキャナーと Tenable が提供するクラウドスキャナーのスキャン効率が向上します。Tenable Vulnerability Management は個別のスキャナーに完全なスキャンジョブを割り当てるのではなく、スキャンに割り当てられたスキャナーグループ内の複数のスキャナーに対して、スキャンをタスクとして分散します。1 つのスキャナーにスキャンを割り当てると、Tenable Vulnerability Management は並行して実行できるスキャナータスクを割り当てます。これにより、スキャナーがジョブをより効率的に完了できるようになります。
スキャン分散により、複数のスキャンタスクを同時に実行できるため、個別のスキャナーでスキャンを順番に実行した場合に生じるボトルネックを軽減できます。組織のスキャンニーズが拡大する場合でも、この分散方法により全体的なスキャンパフォーマンスが低下しにくくなります。
Tenable Vulnerability Management のスキャン分散方法
スキャンジョブの作成とキューイング
スキャンを開始すると、Tenable Vulnerability Management はスキャンジョブを作成し、それをスキャン設定で定義されたスキャナーグループまたは個別のスキャナーのジョブキューに送信します。ジョブは常に Tenable Vulnerability Management から送信され、作成された順にスキャナーグループまたは個別のスキャナーでキューに入れられます。
Tenable Vulnerability Management は、ターゲットスキャナーまたはスキャナーグループの容量の、次の 3 つの側面に基づいて、どこにどのスキャンジョブを送信するかを決定します。
-
ターゲットの容量 - スキャナーが同時にスキャンできる資産数。この値のデフォルトは、プロセッサ数や利用可能なメモリ量などのスキャナーのハードウェアリソースに基づきます。
-
タスクの容量 - スキャナーが同時に実行できるタスク (スキャンの一部) の数。スキャナーのタスク容量は、ターゲット容量に基づいて決まります。
-
ジョブの容量 - スキャナーが一度にタスクを含めることができる異なるジョブの数。これによりスキャンを非同期的に行うことができ、空き容量のあるスキャナーが、同じスキャンから派生したタスクでなくても複数のタスクを処理できるようになります。スキャナーのジョブ容量が上限に達した場合でもすべてのジョブのタスクを完了できるよう、ジョブ容量は常にタスク容量を下回るように設定されます。
スキャナーグループの場合、ジョブは集中的にキューに入れられ、グループの空き容量ができるまで最初のジョブが保持されます。個別のスキャナーの場合、ジョブキューには直接割り当てられたジョブだけでなく、スキャナーが属するグループから分配されたジョブが含まれる場合があります。
スキャンタスクの割り当て
スキャナーまたはスキャナーグループに空き容量がある場合、Tenable Vulnerability Management はキューの最も早いジョブをスキャンタスクに分割し、それを割り当てて実行させます。
-
スキャナーグループの場合、Tenable Vulnerability Management は「ラウンドロビン」方式を使用して、グループ内のスキャナー全体にタスクを分散します。
-
個別のスキャナーの場合、タスクはジョブキューから取得され、スキャナーのタスク容量がいっぱいになるまでラウンドロビン方式で割り当てられます。
各スキャンタスクは、最大 120 個の IP アドレスを処理します。ジョブ内の最後のタスクでは、含まれるアドレスはこれより少なくなる場合があります。たとえば、Tenable Vulnerability Management は 300 個の IP アドレスのスキャンジョブを、120 個のアドレスタスク 2 個と、60 個のアドレスタスク 1 個に分割します。
Tenable Vulnerability Management がタスクを分散する方法は、スキャンのシナリオによって異なります。詳しくは、以下の例を参照してください。
シナリオの例: 1 つのジョブに 1 つのスキャナー
単一のスタンドアロンスキャナーは、ジョブがキューに入れられた順番に 1 つずつジョブを処理します。スキャナーのタスク容量が 6 の場合、Tenable Vulnerability Management はジョブから 6 つのタスクを割り当て、同時に実行します。各タスクが完了すると、新しいタスクが空き容量を埋めるように割り当てられ、ジョブが完了するまで続きます。
シナリオの例: 1 つのスキャナーで複数のジョブを処理する
スキャナーが 2 つのスキャナーグループに属していて、さらに 1 つのジョブが直接割り当てられている場合、そのジョブキューには 3 つのジョブが含まれることになります。スキャナーのジョブ容量は 3 のため、3 つのジョブすべてのタスクを同時に処理できます。
スキャナーのタスク容量が 5 の場合、タスクは、ジョブ 1、ジョブ 2、ジョブ 3、ジョブ 1、ジョブ 2 の順番に割り当てられます。この場合、スキャナーはジョブ 1 の 2 つのタスク、ジョブ 2 の 2 つのタスク、ジョブ 3 の 1 つのタスクを処理します。1 つのタスクが完了すると、ジョブ 3 から次のタスクが分配されます。
シナリオの例: 複数のスキャナーで複数のジョブを処理する
スキャナー 1 とスキャナー 2 が同じスキャナーグループ (SG1) に割り当てられていて、2 つのジョブが作成される (ジョブ 1 がスキャナー 1 に直接割り当てられ、ジョブ 2 が SG1 に割り当てられる) と、Tenable Vulnerability Management は両方のジョブをタスクに分割します。
-
ジョブ 1 はスキャナー 1 のみが処理します。
-
ジョブ 2 はスキャナー 1 とスキャナー 2 の両方が処理します。
両方のスキャナーのジョブ容量が 3 でタスク容量が 6 の場合、スキャナー 1 はジョブ 1 からの 3 つのタスクと、ジョブ 2 からの 3 つのタスクを処理し、スキャナー 2 はジョブ 2 から 6 つのタスクを処理します。ジョブ 2 からのタスクは、ジョブが完了するまで両方のスキャナーに分配され続けます。
Live Results の表示
スキャナーがタスクを完了すると、Tenable Vulnerability Management でライブスキャン結果を表示できます。タスクが完了するたびに、プラットフォームはスキャン結果を新規データで更新します。スキャンが失敗したり中断されたりした場合、Tenable Vulnerability Management ではスキャンのステータスは未完了として表示されますが、完了した結果はすべて保存されます。ジョブが複数のスキャナーに割り当てられ、それらのスキャナーの 1 つが失敗した場合には、タスクの処理が完了するまで残りのスキャナーが処理し続けます。