Questionを実行する

Tanium Interactを使用してQuestionを実行すると、エンドポイントの情報を取得できます。たとえば、エンドポイントで重要なセキュリティパッチが存在しないかどうかを判定するQuestionを実行できます。エンドポイントから返されるQuestion結果に基づいて、セキュリティパッチのインストールなどのアクションを展開することができます。

Question結果の操作と分析の詳細は、「Questionの結果を管理するを参照してください。

アクション展開の詳細は、「アクションのデプロイ」を参照してください。

Questionの実行に必要なユーザロールとアクセス権限については、「Tanium Interactのアクセス権限」を参照してください。

Questionとは?

TaniumのQuestionは、TaaSTanium Serverから管理対象エンドポイントに発行されるクエリです。ダイナミックQuestionは、Interactのデータ探索あるいはQuestionビルダ機能を使用して作成および発行するQuestionです。保存済みQuestionは、これらの機能を使用して再構成することなく、Questionを再発行することができる設定オブジェクトです。

データ探索機能は、専門的なクエリ言語ではなく、最初に自然なQuestionを使うことから始めることを可能にする自然言語パーサです。完全な文章やしっかりした構文でQuestionを入力する必要はありません。大文字と小文字は区別されず、スペルミスがあっても大丈夫です。 パーサは入力内容を解釈し、有効なクエリ数を提案するため、それらクエリを利用してTanium Clientに送信するQuestionを一定の形式にすることができます。 Interactは、データ探索機能をInteractの [Overview (概要)] ページとTaniumの [Home (ホーム)] ページ上部にテキスト入力フィールドの形式で提供しています。

次の図は、Interactが自然言語パーサを使用して、ユーザ入力に基づいて有効なクエリを提案するに変換される例を示しています。まず、ユーザはlast logged in userと語句を入力し、[Search (検索)]をクリックします。この入力に対し、Interactは有効な構文で形成されたクエリのリストを返します。

図1:自然言語パーサ

Questionには取得する情報を指定するget句と対象エンドポイントを指定するfrom句があります。基本的なQuestionには、以下が含まれます。

  • get句の1つ以上のセンサー名(例:最後にログインしたユーザ)
  • from句のFrom all machines(Tanium Clientをホストするすべてのエンドポイント)

高度なQuestionには、フィルタ句とパラメータ化センサーを含みます。

Question構文の詳細については、参照:Questionの例および関連情報:高度なQuestion構文 を参照してください。

センサーとは?

センサーは、エンドポイントで実行されてTaniumのQuestionに対する応答を計算するスクリプトです。Tanium as a Service (TaaS) Tanium Serverは、Tanium Clientの登録中にセンサーをエンドポイントに配布します。センサーでは、以下のような情報を収集するQuestionを実行ができます。

  • ハードウェア/ソフトウェアのインベントリと設定を取得する
  • 実行中のアプリケーションとプロセス
  • ファイルとディレクトリ
  • ネットワーク接続

TaaS Tanium Serverのインストールプロセスは、広範な一般的なQuestion用のセンサーを含むTanium™ Default ContentおよびTanium™ Interactコンテンツパックを自動的にインポートします。その他のTaniumソリューションをインポートすると、インポートされたTaniumコンテンツパックまたはTaniumソリューションモジュールに応じて、追加のセンサーが提供されることがあります。Taniumが提供するコンテンツ内に必要なセンサーが見つからない場合は、カスタムセンサーを作成できます。

詳しくはセンサーの管理を参照してください。

計数Questionと非計数Question

計数型Questionで返される結果は、特定の応答文字列が複数のエンドポイントに対して同じになる可能性があります。[Question Results (Questionの結果)] グリッドには、共通する応答を返すエンドポイント数を示す [Count (カウント)] 列が含まれます。計数Questionには、センサーを1つだけ含めることができます。 管理対象のエンドポイントのオペレーティングシステムを返すセンサーを含む計数型Questionとしては、たとえばGet Operating System from all machinesがあります。エンドポイントによって応答メッセージに応答が追加されると、その値に一致する応答の集計値がインクリメントされます。 TaaSTanium Serverは応答文字列からなる表を管理します。オペレーティングシステムなど、こうしたケースは数多くあり、多くのエンドポイントはいくつかる共通する応答を返すだけなので、TaaSTanium Server上のこうしたQuestionのフットプリントは比較的小さくなります。

図2:計数Question

非計数Questionには、各エンドポイントから一意の文字列を返すセンサーがあります。たとえば、Get Tanium Client IP Address from all machinesでは、一意のIPアドレスが返されます。非計数型Questionの場合、Tanium Clientは既存の文字列の集計値をインクリメントするのではなく、新しい文字列を応答メッセージに追加します。このため、TaaSTanium Server上の非計数型Questionのデータフットプリントは大きくなることがあります。

図3:非計数Question

Questionビルダを使用したQuestionの作成では、計数型Questionによって返される結果応答数があまりにも多い場合に計数型Questionを非計数型Questionに変換するオプションがあります。

複数センサーを使用するQuestion

Questionを作成すると、get句のAND演算子を使用して、複数のセンサーを指定することができます。[Question Results (Questionの結果)]ページは、次の例に示すように、最初のセンサー、次のセンサーというように結果をグループ化します。

図4:複数のセンサーを使用したQuestion

パラメータ化センサーを使用するQuestion

パラメータ化センサーは、[Explore Data (データ探索)]フィールドまたはQuestionビルダへのQuestionの入力で指定された値を使用します。以下は、Registry Value Dataセンサーの例です。Tanium Consoleは、レジストリのパスと値を指定するよう促します。

図5:パラメータ化センサー

もう1つの例として、High CPU Processesセンサーがあります。各マシンから返されるCPUプロセス数を表すパラメータを指定できます。たとえば、CPUの使用率が上位5つのプロセスを確認しようとしているとします。Questionの構文は以下のようになります。

Get High CPU Process[5] from all machines

複数のパラメータを持つセンサーの場合は、コンマで区切ったパラメータの順序付きリストを渡すことができます。たとえば、ID1を使用したアクションのアクションログから最初の10行を表示するには、次のようにパラメータリストを指定します。

Get Tanium Action Log[1,10] from all machines

詳細は、以下を参照してください。例: パラメータ化センサー

フィルタを使用するQuestion

フィルタを使用すると、デフォルトの「all machines」より少ないエンドポイントに絞り込んだQuestionを作成できます。たとえば、次の高度なQuestionは、特定のプロセス名または値を持つエンドポイントのみを対象としています。

図6:Questionのフィルタ

左側(get句)は完全で有効なクエリです。右側には「from all machines with 」条件を使用したフィルタがあります。from句のフィルタは、エンドポイントによって処理されるQuestionの最初の部分です。エンドポイントデータがこのフィルタに一致しない場合、エンドポイントはそれ以上Questionを処理しません。Questionに複数のフィルタがある場合、エンドポイントは各フィルタを評価します。フィルタ条件は、ブール値のtrueまたはfalseで評価されます。たとえば、式from all machines with Running Processes contains exploreは、指定文字列が結果文字列と一致した場合に真、一致しない場合に偽になります。フィルタがtrueに評価される場合、エンドポイントはQuestionの左側にセンサーを実行し、結果を返します。

File Existsのようなパラメータ化センサーは、結果としてFile Existsを返します。「Filename」または「File does not exist」というメッセージを返します。このため、フィルタ式にセンサーを入力する際は、注意が必要です。

図7:例:パラメータ化センサーを使用したQuestion

フィルタ式from all machines with File Exists["C:\Program Files\PuTTY\putty.exe"] containing "Exists"は、結果がFile Existsの場合に真になります。C:\Program Files\PuTTY\putty.exeの場合true、結果がFile does not existではfalseと評価され、回答セットをフィルタリングするために使用できます。

図8:例:パラメータ化センサーを使用したフィルタリング

フィルタ式は文字列または正規表現のどちらでも一致検索できます。下表に、[Question Builder (Questionビルダ)]を使用するときに表示される通りのサポートされているフィルタ演算子を示します。この表はまた、Questionビルダから演算子が読み込まれるか、または[Explore Data (データ探索)] フィールドに式が入力された後の演算子の正規化方法も示しています。

 表1:フィルタ演算子
フィルタ演算子 使用法
contains (指定文字列を含む) センサー値が指定された文字列を含む。

例:running processes contains "explore"

does not contain (指定文字列を含まない) センサー値が指定された文字列を含まない。
starts with (指定文字列で始まる) センサー値が指定された文字列で始まる。

例: starts with "explore"

Questionが読み込まれると、matches演算子を使用して正規表現に変換されます。

does not start with (指定文字列で始まらない) センサー値が指定された文字列で始まらない。
ends with (指定文字列で終わる) センサー値が指定された文字列で終わる。

例: ends with "explore.exe"

Questionが読み込まれると、matches演算子を使用して正規表現に変換されます。

does not end with (指定文字列で終わらない) センサー値が指定された文字列で終わらない。
matches (指定文字列と一致する) センサー値が指定された正規表現と一致する(ブースト構文)。
does not match (指定文字列と一致しない) センサー値が指定された正規表現と一致しない。
in (リストの1つに一致) センサー値が指定された文字列の1つに一致する。文字列は空白なしでコンマ区切りします。Questionを読み込むと、Questionフィールドに表示される式には、inの代わりにequalsor演算子が使用されています。

例:Questionビルダのフィルタin "10.10.10.10,10.10.10.11"は、Questionを読み込むとIP Address equals 10.10.10.10 or IP Address equals 10.10.10.11となります。

is equal to (指定文字列と等しい) センサー値が指定された値または文字列と等しい。Questionを読み込むと、Questionフィールドに表示される式には、is equal toの代わりにequalsが使用されています。
指定文字列と等しくない センサー値が指定された値または文字列と等しくない。Questionを読み込むと、Questionフィールドに表示される式には、is not equal toの代わりにnot equalsが使用されています。
is less than (指定値より小さい) センサー値が指定された値より小さい。Questionを読み込むと、Questionバーに表示される式には、演算子の単語の代わりに記号(<)が使用されています。

例:installed application version [chrome] < 12

is less than or equal to (指定値以下である) センサー値が指定された値以下である。Questionを読み込むと、Questionバーに表示される式には、演算子の単語の代わりに記号(<=)が使用されています。

例:installed application version <= 12

is greater than (指定値より大きい) センサー値が指定された値より大きい。Questionを読み込むと、Questionバーに表示される式には、演算子の単語の代わりに記号(>)が使用されています。

例:installed application version [chrome] > 12

is greater than or equal to (指定値以上である) センサー値が、指定された値以上である。Questionを読み込むと、Questionバーに表示される式には、演算子の単語の代わりに記号(>=)が使用されています。

例:installed application version >= 12

数列センサーのQuestionを含む複雑なフィルタ式の例については、関連情報:高度なQuestion構文 を参照してください。

[Explore Data (データを探索)] フィールドからQuestionを発行する

Interactの [Explore Data (データを探索)] は、ダイナミックQuestionをすばやく作成できるテキスト入力フィールドです。このフィールドは、シンプルなQuestionを発行するとき、あるいはTanium Questionの構文を十分理解していてフィルタや正規表現、演算子を含む高度なQuestionを手動で入力するときに特に有用です。

Question作成中にガイダンスを作成したい場合は、Questionビルダを通してQuestionを送信するを参照してください。Question構文の詳細については、参照:Questionの例および関連情報:高度なQuestion構文 を参照してください。

  1. TaniumのホームページまたはInteractの [Overview (概要)] ページに移動します。
  2. ページ上部にある[Explore Data (データを探索)] フィールドにQuestionを入力します。

    Interactは自然言語パーサを使用して入力情報を解釈します。Questionテキストには自然な英語で、完全な文章、大文字と小文字の区別、厳密に正しいスペルは必要ありません。

    Questionでfrom句を指定しない限り、Interactはデフォルトのfrom all machinesを使用します。このデフォルト値は、コンピュータグループ管理権限があるすべての管理対象ポイントがQuestionに返事をするよう指示します。

  3. [Search (検索)]をクリックします。

    Interactは、一連の提案されたQuestionを有効な構文で、Questionテキストにどれだけ近いかという順序で上から下にリストします。たとえば、last logged in Userを指定した場合、最上位のQuestionはGet Last Logged In User from all machinesになります。



    Questionテキストにパラメータ化されたセンサーが含まれている場合、Interactは提案された各Questionのパラメータ数を示します。

  4. 提案されたQuestionをクリックして問題を解決します。Questionにパラメータ化されたセンサーがある場合は、[Expand (展開)] 展開をクリックし、パラメータ値を入力して、[Ask Question (Questionを実行)]をクリックして、Questionを発行します。

    [Question Results (Questionの結果)]ページが開き、エンドポイントから回答が表示されます。

Questionの結果に関連する詳細とタスクについてはQuestionの結果を管理するを参照してください。

Questionビルダを通してQuestionを送信する

[Question Builder (Questionビルダ)]は、ダイナミックQuestionを作成するためのガイド付き方法を提供します。フィルタをはじめとして、get文とfrom句を完成するのに役立つフォームフィールドがあります。

図9:Questionビルダ

  1. [Question Builder (Questionビルダ)]ページを開きます。
    • 新規Questionを作成するには、Taniumホームページの [Explore Data (データを探索)]フィールド横の [Build Question (Questionの作成)] をクリックします。
    • 発行したQuestionに絞り込むには、[Questionの結果] ページのQuestionフィールド横の [Copy to Question Builder (Questionビルダにコピー)] をクリックします。
    • [Questionビルダ] ページには、Interactのメニューからアクセスすることもできます。
  2. Get the following dataの下にある [+Add (+ 追加)]をクリックして、get文を作成します。センサー名を入力するためのテキストフィールドを含む行が表示されます。
  3. センサー名のフィールドに入力を開始して、タイプヘッドを使用してセンサーを選択し、[Apply (適用)] をクリックします。


    もう1つの方法として、センサー名のフィールドの下にある[Browse all Sensors (すべてのセンサーを参照)] をクリックして、[Browse Sensors (センサーを参照)] ダイアログを開いてセンサーを選択することもできます。ダイアログの下部にセンサーの説明が表示されます。

  4. 複数の[Question Results (Questionの結果)]列にデータを配信するセンサーでは、列データの一致に基づいてフィルタを追加できます。Questionビルダで、センサーフィールドの下にある[Add Filter (フィルタを追加)]をクリックして、フィルタを設定します。フィルタの一致はデフォルトで単一列に適用され、その列はセンサー名の下にある最初のドロップダウンリストで選択します。単一列のフィルタは、センサー定義が単一の文字(例:「|」)で列区切り文字を指定する場合にのみ使用できます。複数の文字(例:「|:」)では使用できません。センサーのすべての列の一致検索をするには、[Row filter (行フィルタ)]を選択します。



    一致演算子を選択し、一致文字列の正規表現を指定します。部分文字列で一致検索するには、[Substring (部分文字列)] ボックスを選択して、開始位置(0は1文字目)と文字数(長さ)を指定します。

  5. (任意) 次のデータを入手するまたはコンピュータからセクションでフィルタを追加する場合、フィルタの下の高度なセンサーオプションをクリックして、次の設定を構成します。
     表2:高度なセンサー設定
    設定ガイドライン
    Case Sensitivity (大文字/小文字の区別)文字列をグループ化:
    • Ignore case (大文字/小文字を無視): 大文字と小文字を区別しないで結果の値をグループ化してカウントします。
    • Match case (大文字/小文字を区別): 大文字と小文字を区別して結果の値をグループ化してカウントします。
    Matching (一致条件)このオプションは [from computers with]でのみ使用できます。

    一部のセンサーでは、Tanium Clientが複数の結果を返すことがあります。 センサーがfrom句でフィルタとして使用される場合、結果の一部または全部がフィルタに一致するかを指定します:

    • Match Any Value (任意の値に一致): 回答内の任意の値が、Questionで指定された値と一致している必要があります。
    • Match All Values (すべての値に一致): 回答内のすべての値が、Questionで指定された値と一致している必要があります。

    たとえば、IPアドレスセンサーに対する回答では、Tanium ClientはIPv4アドレスとIPv6アドレスの両方を返すことができます。たとえば、192.168を含むIPアドレスセンサーに基づくQuestionで、IPv4アドレスには一致しても、IPv6アドレスには一致しない可能性があるとしましょう。 この場合は、[Match Any Value (任意の値に一致)]オプションを利用することもできます。

    Treat Data As (適用するデータ型)Interactは、ユーザが指定した種類のデータとしてセンサー値を処理します。
    タイプ
    日付/時刻(BES)2021年1月29日金曜日 13:14:39 -0500
    日付/時刻(WMI)20210129131439.999999-500
    ファイルサイズ8192 KB
    1~100 MB
    500 MB
    34 GB
    整数-100
    0
    64428
    100000000
    IPアドレス10.70.144.52
    fe80::8c22:fed6:7720:3c96
    数値-100.77
    0,25
    1
    3.1415926534
    10.20.30.40
    512:17472:192.168.2.187_512:0:98.30.236.25
    1.0e-10
    テキスト(任意の有効な文字列を指定可能)
    時間42分
    8時間
    1日未満
    2週間
    36日
    2年、3ヶ月、18日、4時間、22分、3.67秒
    バージョン7.4.4.1250
    Maximum Data Age (最大データ経過時間) Tanium Clientがキャッシュされた結果を使用してQuestionに回答できる最大時間。たとえば、ファイルサイズセンサーの最大データ経過時間はデフォルトで15分です。Tanium Clientはファイルサイズセンサーを実行するQuestionを送信されると、結果がキャッシュされます。次の15分の間にTanium Clientにファイルサイズセンサーを含むQuestionが入力された場合は、そのキャッシュ結果が回答として返されます。15分の経過後にファイルサイズセンサーを含むQuestionを受けた場合は、センサースクリプトを再度実行して新しい回答を計算します。

    ステータスや使用率センサーなど、頻繁に変更がある値を返すセンサーには、経過時間値を小さくします。 筐体の種類やActive Directoryドメインのメンバーシップなど、通常は頻繁には変更のない値には、経過時間値を大きくします。

  6. from句を作成するには、from computers withの下にあるオプションの1つを選択して、[Apply (適用)]をクリックします。
    • + 追加: エンドポイントが一致する必要がある1つ以上の条件を追加します。センサーあるいはコンピュータグループ(管理グループまたはフィルタグループ)で一致検索をすることができます(Select Attribute (属性を選択))。
    • + グループ化: このオプションを使用すると、ブール演算子を入れ子構造にして、[+ Add (+ 追加)]を使用して入れ子構造の式を作成することができます。

    入れ子のフィルタをはじめとして、複数のフィルタを構成できます。たとえば、コンピュータにインストールされているウェブブラウザを調べる場合は、from句で BooleanのANDまたはORを使用することで、最新のブラウザを対象にすることができます。

  7. (任意) Tanium Clientからの応答にコンピュータIDを強制的に含めさせることで、単一センサーの計数型Questionを非計数型Questionに変換する場合は、[Advanced Question Options (詳細Questionオプション)] をクリックして、[Force Computer ID (Computer IDを強制)] を有効にします。このオプションを選択すると、[Question Results (Questionの結果)] ページにコンピュータIDが含まれなくなることに注意してください。非計数Questionに変換することは、計数Questionがtoo many resultsという回答を返す場合の回避策として使用できます。詳細については、KB記事エラーのトラブルシューティング/情報メッセージ (結果が多すぎる)を参照してください。
  8. [Ask Question (Questionの実行)]をクリックして、Questionを発行します。

    [Question Results (Questionの結果)]ページが開き、エンドポイントから回答が表示されます。

Questionの結果に関連する詳細とタスクについてはQuestionの結果を管理するを参照してください。

Questionの有効期限

ダイナミックまたは保存済みQuestionを発行すると、TaaSTanium ServerはそのQuestionにQuestionIDを割り当てます。ウェブブラウザのURLフィールドにQuestionIDが表示されます。たとえば、URL https://10.20.30.40/#/interact/q/376では、QuestionIDは376です。

QuestionIDは10分後に「期限切れ」となり、そのURLは無効になります。つまり、ページを更新したり、リンクを共有したりできるのは、その10分間だけです。

10分後にこのURLに移動すると、InteractはQuestion Expiredメッセージを表示して、このQuestionを再発行できるようそのテキストをQuestionフィールドにコピーするオプションを提供します。

Question履歴

[Question History (Question履歴)] ページでは、手動でQuestionを再発行したり、Questionの発行履歴、構文、その他の詳細(実行者や有効期限のタイムスタンプなど)を表示したりできます。デフォルトでは、[Question History (Question履歴)] ページには、過去24時間以内に発行されたQuestionが表示されます。日付範囲を変更してより多くのエントリを表示したり、フィルタを適用して表示されるエントリを制限したりできます。デフォルトでは、Tanium Serverは、履歴のQuestionのエントリを7日間保持します。

デフォルトでは、Questionの有効期限の日時は、Tanium Consoleへのアクセスに使用するシステムのローカル時間に基づいていますが、協定世界時(UTC)に切り替えることができます。

[Question History (Question履歴)] ページを表示するには、Question履歴読み取りアクセス権限を持つロールが必要です。ただし、このアクセス権限は、 [Question History (Questionの履歴ページ)]ページからQuestionを読み込むことはできません。Administrator予約ロールを持つユーザは、[Question History (Question履歴)] ページを表示したり、そのページからQuestionを読み込んだりできます。

Questionを再実行する

Questionを再発行するには、グリッドでそのQuestionを選択し、[Load (読み込み)] をクリックします。Tanium Consoleの [Question Results (Questionの結果)] ページに結果が表示されます。

Question履歴をエクスポートする

[Question History (Question履歴)] グリッドの内容をCSVファイルの形式でエクスポートすることで、その形式をサポートするアプリケーションで表示することができます。Administrator予約ロールを持っている場合は、JSONファイルの形式でエクスポートすることもできます。

  1. メインメニューから [Administration (運用管理)] > [Content (コンテンツ)] > [Question History (Question履歴)] [Administration (運用管理)] >[Management (管理)] > [Question History (Question履歴)] に移動します。
  2. 特定のQuestionの情報のみをエクスポートするには、グリッドで行を選択します。すべてのQuestionの情報をエクスポートする場合は、この手順を省略します。
  3. [Export (エクスポート)] エクスポートをクリックします。
  4. (任意) デフォルトのエクスポートファイル名を編集します。

    ファイルのサフィックス(.csv または .json)は、選択された [形式] に基づいて自動的に変更されます。

  5. [データのエクスポート] オプションを選択します。グリッド内のすべてのQuestion、または選択したQuestionのみの情報をエクスポートできます。
  6. ファイルの形式を選択します。CSV(デフォルト)またはJSON (Administrator予約ロールのみ)のいずれかです。
  7. [Export (エクスポート)]をクリックします。

    TaaSTanium Serverは、Tanium Consoleへのアクセスに使用されたシステムのDownloadsフォルダにファイルをエクスポートします。

Question履歴の詳細をコピーする

Question履歴の詳細をクリップボードにコピーして、メッセージやテキストファイル、スプレッドシートに貼り付けることができます。グリッドの各行は、コンマで区切られた値の文字列です。

  1. メインメニューから [Administration (運用管理)] > [Content (コンテンツ)] > [Question History (Question履歴)] [Administration (運用管理)] >[Management (管理)] > [Question History (Question履歴)] に移動します。
  2. 次のいずれかの手順を実行します。
    • 行情報をコピー: 行を選択して [Copy (コピー)] コピーをクリックします。
    • セル情報をコピー: セルの上にカーソルを重ねて、[Options (オプション)] オプション をクリックし、[Copy (コピー)] コピー をクリックします。

保存済みQuestion

ダイナミックQuestionを発行した後、Questionフィールドの上にある [Save (保存))] をクリックすると、関連する設定を含む構成オブジェクトとしてそのQuestion構文を保存することができます。これにより、[Explore Data (データを探索)] フィールドやQuestionビルダで同じQuestionを再作成することなく再発行することができます。Tanium as a Service (TaaS)インポートしたTaniumコンテンツパックは、事前定義の保存済みQuestionを提供します。設定可能なスケジュールに基づいて保存済みQuestionを手動で発行できます。Tanium XML APIを使用するTaniumモジュールやカスタムアプリケーションを使用して保存済みQuestionを発行することもできます。詳細については、保存済みQuestionの管理を参照してください。