CLI: サービスへの接続

Document created by RSA Information Design and Development on Apr 18, 2018
Version 1Show Document
  • View in full screen mode
 

Security Analyticsコア サービス(Decoder、Concentrator、Broker、Archiverなど)に接続してコマンドを実行するには、最初にloginコマンドを発行する必要があります。接続先のサービスのアカウントを持っている必要があります。type help loginと入力すると、いつでも詳細情報を確認できます。次に、loginコマンドの構文を示します。

 login <hostname>:<port>[:ssl] <username> [password]

例:login 10.10.1.15:56005:ssl someuser

パスワードを指定しない場合、プロンプトが表示され、適切なパスワードのマスキングが行われます。

NwConsoleとエンドポイント間で適切な信頼関係を設定している場合、tloginコマンドを使用して、パスワードの入力を回避することができます。信頼関係の設定はこのドキュメントの対象範囲外ですが、send /sys peerCert op=add --file-data=<pathname of cert>コマンドを使用してNwConsoleのSSL証明書をエンドポイントに追加する操作が必要になります。以降の信頼済みログインのためにピア証明書を追加する前に、まず適切な権限を使用して通常のログインを行う必要があります。

接続すると、仮想ファイル システムファイル システムを介してエンドポイント サービスを操作することができます。ファイルではなく、サービスのノードが表示されます。一部のノードは子ノードを持つフォルダであり、階層構造を形成しています。各ノードはそれぞれ役割を持ち、すべてのノードがinfohelpのようなコマンドのサブセットに対応しています。helpメッセージは、各ノードがサポートするコマンドに関する情報を表示します。最初のログイン時は、LinuxシステムやMacシステムと同様に、ルート ノード(パス/)上にいます。/の下のノードのリストを確認するには、lsコマンドを入力します。

すべてのサービスにsyslogsのようなノードがあります。たとえば、/logs APIとやり取りするために、最初にhelpコマンドを/logsノードに送ることができます。これを行うには、次のような構文で、sendメッセージを使用する必要があります。

 Usage: send {node pathname} {message name} [name=value [name=value]]

[--file-data=<pathname>] [--string-data=<text>] [--binary-data=<text>]
[--output-pathname=<pathname>] [--output-append-pathname=<pathname>]
[--output-format={text,json,xml,html}]
Sends a command to a remote pathname. For remote help, use "send <pathname>help" for details.

pathname - The node pathname to retrieve information on
message - The command (message) to send
parameters - Zero or more name=value parameters for the command
--file-data - Loads data from a file and send as either a BINARY
message or as a PARAMS_BINARY message if other
parameters exist
--string-data - Sends text as a STRING message type
--binary-data - Send text as either a BINARY message type or as a
PARAMS_BINARY message type if other parameters
exist
--output-pathname - Writes the response output to the given pathname,
overwriting any existing file
--output-append-pathname - Writes the response output to the given pathname,
will append output to an existing file
--output-format - Writes the response in one of the given formats,
the default is text

helpメッセージを送るには、次のように入力します。

send /logs help

応答は次のようになります。

  description: A container node for other node types
security.roles: everyone,logs.manage
message.list: The list of supported messages for this node
ls: [depth:<uint32>] [options:<string>] [exclude:<string>]
mon: [depth:<uint32>] [options:<uint32>]
pull: [id1:<uint64>] [id2:<uint64>] [count:<uint32>] [timeFormat:<string>]
info:
help: [msg:<string>] [op:<string>] [format:<string>]
count:
stopMon:
download: [id1:<uint64>] [id2:<uint64>] [time1:<date-time>] [time2:<date-time>] op:<string>
[logTypes:<string>] [match:<string>] [regex:<string>] [timeFormat:<string>] [batchSize:<uint32>]
timeRoll: [timeCalc:<string>] [minutes:<uint32>] [hours:<uint32>] [days:<uint32>] [date:<string>]

特定のメッセージやコマンドに関する詳細情報を取得するために、helpコマンドのパラメータとしてmsg=<message name>を指定できます。たとえば、pullメッセージのヘルプを見てみましょう。

send /logs help msg=pull

  pull: Downloads N log entries
security.roles: logs.manage
parameters:
id1 - <uint64, optional> The first log id number to retrieve, this is mutually exclusive with id2
id2 - <uint64, optional> The last log id number that will be sent, defaults to most recent log
message when id1 or id2 is not sent
count - <uint32, optional, {range:1 to 10000}> The number of logs to pull
timeFormat - <string, optional, {enum-one:posix|simple}> The time format used in each log message,
default is posix time (seconds since 1970)

ヘルプでは、このコマンドは、id1とid2を指定しない場合、最新のN件のログ エントリーを取得することを示します。このサービスによって書き込まれた最新の10件のログ エントリーを参照するには、次のコマンドを使用します。

send /logs pull count=10 timeFormat=simple

サービスのほぼすべてのコマンドがこのシンプルな形式に従っています。この形式に従わないコマンドは、DecoderへのPCAPのインポートなど、より複雑なハンドシェークを必要とするコマンドだけです。PCAPをインポートするには、NwConsoleのimportコマンドを使用します。このコマンドは、通信チャネルの複雑なハンドシェークに対処します。

一部のパラメータはNwConsoleのsendコマンドに固有のものであり、実際にはサービスに送信されません。これらのパラメータを使用して、応答の出力形式の変更、ファイルへの応答の書き込み、ローカル マシンからのファイルの読み取り、サービスへのファイルの送信を行うことができます。NwConsoleのsendコマンドのローカル パラメータはすべて、ダッシュ2つ(--)で始まります。

  • --output-format:このパラメータは、コマンドの出力を通常のテキストから、JSON、XML、HTMLのいずれかのタイプに変更します。
  • --output-pathname:出力を、ターミナルではなく指定されたパスに書き込みます(既存のファイルは消去されます)。
  • --output-append-pathname:出力を既存のファイルに追加する(既存のファイルが存在しない場合は、ファイルを作成)という点を除いて、--output-pathnameと同じです。
  • --file-data:ファイルを読み取り、コマンド ペイロードとして使用します。/sys fileEditのようなコマンドに対して有用です。次の例は、更新されたindex-concentrator-custom.xmlファイルを、NwConsoleを使用して送信できる方法を示しています。
 send /sys fileEdit op=put filename=index-concentrator-custom.xml --file-data="/Users/user/Documents/index-concentrator-custom.xml"
  • --file-format:入力ファイルを--file-dataで読み取る場合、このパラメータを使用すると、NwConsoleでは強制的に特定のタイプの入力としてファイルが解釈されます。許可されている列挙は次のとおりです。binaryparamsparam-liststringparams-binary。たとえば、アプリケーション ルール(*.nwr)のファイルをDecoderに送信するには、このコマンドを使用することができます。
send /decoder/config/rules/application replace --file-data=/path/rules.nwr --file-format=param-list
  • --string-data:コマンド ペイロードを、パラメータ リストではなく文字列として送信します。
  • --binary-data:コマンド ペイロードを、パラメータ リストではなくバイナリとして送信します。

JSONファイルへのクエリのストリーミング例(結果セットのサイズが大きくなる可能性があります):

 send /sdk query size=0 query="select * where service=80 && time='2015-03-05 13:00:00'-'2015-03-05 13:59:59'" --output-format=json --output-pathname=/tmp/query.json 

sendコマンドの注意事項の1つは、デフォルトで、30秒応答を待機するタイムアウトがあることです。(前述のクエリのような)コマンドの中には、結果を受け取るまでに時間がかかるものがあります。クライアント側で途中のタイムアウトを避けるために、timeout [secs]コマンドを使用して待機時間を延すことができます。たとえば、timeout 600の場合、応答を10分待機してからタイムアウトします。一度実行すると、以降すべてのコマンドで有効になります。

サービスの仮想ノード階層を移動するには、コマンド シェルの場合と同様にcdコマンドを使用できます。このコマンドは、サービスへの接続と対話という基本的な機能に対応しています。接続すると、helpコマンドによって、エンドポイントとのやり取りに使用できるすべてのコマンドを一覧表示できます。エンドポイントに接続していない場合は、これらのコマンドは表示されません。

You are here
Table of Contents > CLI: サービスへの接続

Attachments

    Outcomes