CLI: SDK Contentコマンドの例

Document created by RSA Information Design and Development on Feb 17, 2017
Version 1Show Document
  • View in full screen mode
  

次に示す最初のNwConsole sdk contentコマンドの例はシンプルであり、入力する必要のあるすべてのコマンドを示しています。これ以降のコマンドの例では、sdk contentコマンドのみを示します。最初の例では、ログ ファイルを作成し、Log Decoderからログを集計するConcentratorから最初の1,000個のログを取得します。

sdk open nw:://admin:netwitness@myconcentrator.local:50005

sdk output /tmp

sdk content sessions=1-1000 render=logs append=mylogs.log fileExt=.log

このスクリプトは、1,000個のログ(サービスにセッション1~1000が存在すると想定しています)をファイル/tmp/mylogs.logに出力します。ログは、平文の形式です。ログ ファイルを出力する必要があることをコマンドに示すには、パラメータfileExt=.logが必要です。

sdk content sessions=1-1000 render=logs append=mylogs.log fileExt=.log includeHeaders=true separator=","

このコマンドは、最初の例と同じように1,000個のログを取得しますが、ログ ヘッダーを解析して、ログのタイムスタンプ、フォワーダー、その他の情報を抽出し、CSV形式のファイルにします。

CSVの例:1422401778,10.250.142.64,10.25.50.66,hop04b-LC1,%MSISA-4: 81.136.243.248...

タイムスタンプはエポック時間です。パラメータincludeHeadersおよびseparatorは、Security Analytics 10.4.0.2以降でのみ使用できます。

sdk content sessions=l-now render=logs append=mylogs.log fileExt=.log includeHeaders=true separator="," where="risk.info='nw35120'"

このコマンドは、現在のセッション全体をログ ファイルを書き込みますが、risk.info='nw35120'に一致するログだけを書き込みます。Where句を追加すると、バックグラウンドでクエリーが実行され、エクスポートするセッションIDが収集されることに注意してください。適切なフィールドのインデックスを持つサービス(通常、BrokerまたはConcentrator)でクエリーを実行する必要があります。この例では、risk.infoフィールドに対してクエリーを実行しているため、コマンドを実行するサービスが、このフィールドの値レベル(IndexValues。例えば、index-concentrator.xmlを参照してください)のインデックスを作成していることを確認します。デフォルトでは、ほとんどのDecoderでは時間のみでインデックスが作成されます。Where句で時間以外のフィールドを使用する場合は、クエリーをDecoderから適切なインデックス レベのConcentrator、Broker、Archiverに移動する必要があります。インデックス作成とクエリーの記述に関する詳細については、「Security Analyticsコア データベース チューニング ガイド」を参照してください。

sdk content sessions=l-now render=logs append=mylogs.log fileExt=.log includeHeaders=true separator="," where="threat.category exists && time='2015-01-05 15:00:00'-'2015-01-05 16:00:00'"

このコマンドは、上記と同じですが、メタ キーthreat.categoryに値を持ち、2015年1月5日午後3時から午後4時(UTC)までの間で一致するログのみを検索します。繰り返しますが、このクエリーには、Where句に時間以外のフィールド(threat.category)があるため、少なくともIndexKeysレベルでthreat.categoryのインデックスを作成したサービスで実行する必要があります(演算子existsおよび!existsには、キー レベルのインデックスのみが必要ですが、値レベルのインデックスでも問題なく動作します)。

sdk content sessions=l-now render=logs append=mylogs fileExt=.log where="event.source begins 'microsoft'" maxFileSize=1gb

このコマンドは、各ログ ファイルのサイズが1 GB以下の複数のログ ファイルを作成します。また、ファイル名の先頭にmylogsを付加し、末尾にファイル内の最初のパケット/ログのタイムスタンプの日時を付加します。ファイル名の例は、mylogs-1-2015-Jan-28T11_08_14.logmylogs-2-2015-Jan-28T11_40_08.logmylogs-3-2015-Jan-28T12_05_47.logなどです。Security Analytics 10.5より古いバージョンでは、日付と時刻の間の「T」がスペースになっています。

sdk content sessions=l-now render=pcap append=mypackets where="service=80,21 && time='2015-01-28 10:00:00'-'2015-01-28 15:00:00'" splitMinutes=5 fileExt=.pcap

このコマンドは、サービス タイプ80および21の5時間の間のすべてのパケットを取得して、PCAPファイルに書き込みます。5分ごとに新しいPCAPファイルを開始します。

sdk content time1="2015-01-28 14:00:00" time2="2015-01-28 14:15:00" render=pcap append=mydecoder fileExt=.pcap maxFileSize=512mb sessions=l-now

このコマンドに注目してください。なぜでしょうか。このコマンドは、パケットとログの両方を処理し、非常に高速です。欠点は、2つの時間の範囲のすべてのデータが取得され、Where句を使用できないことです。また、このコマンドでは、すべてのストリーミングがほぼ即座に開始され、最初にバックエンドでクエリーを実行する必要がありません。シーケンシャルI/Oを使用して、すべてが読み取られるため、サーバとクライアント間のネットワーク リンクが完全に飽和状態になります。このコマンドは、mydecoderで始まるファイル名のファイルを作成し、サイズが512 MBに達すると、新しいファイルを作成します。

sdk tailLogs

または(次の同等のコマンド)

sdk content render=pcap console=true sessions=now-u

このコマンドは、興味深い小さなコマンドです。実際には、バックグラウンドでsdk contentが使用されます。このコマンドの目的は、Log Decoderのすべての受信ログを表示することです。それだけです。そして、非常にシンプルです。ログがLog Decoderに到着すると(BrokerまたはConcentratorでも実行できます)、コンソール画面に出力されます。これは、Log Decoderがログを取得しているかどうかを確認し、Log Decoderにどのようなログが到着しているかを正確に把握するための優れた方法です。このコマンドは連続モードで動作します。Log Decoderがログを高い取得レートで収集している場合は、このコマンドを使用しないでください(コマンドが対応できません)。ただし、このコマンドは検証またはトラブルシューティングに役立ちます。

sdk tailLogs where="device.id='ciscoasa'" pathname=/mydir/anotherdir/mylogs

このコマンドは、Where句と一致するログだけを出力し、コンソールに出力する代わりに、/mydir/anotherdirの下の1 GBを超えない一連のログ ファイルにログを書き込む点を除いて、上記のコマンドと同じです。当然ですが、sdk contentコマンドを使用して、この処理を完了することもできますが、デフォルトの動作のままにする場合は、このコマンドのほうが入力が少なくて済みます。

sdk content sessions=now-u render=pcap where="service=80" append=web-traffic fileExt=.pcap maxFileSize=2gb maxDirSize=100gb

このコマンドは、service=80に一致する最新のセッションと後続のすべての新しいセッションから、すべてのWebトラフィックのPCAPを書き込みます。2 GB以下のPCAPを書き込み、ディレクトリ内のすべてのPCAPの合計が100 GBを超えると、ディレクトリが最大サイズよりも10%小さくなるまで、最も古いPCAPから順番に削除します。ディレクトリ サイズのチェックは厳密ではなく、デフォルトでは、ディレクトリ サイズは15分ごとにチェックされることに注意してください。cacheMinutesパラメータを指定することにより、チェック間隔を分単位で調整できますが、この調整は、Security Analytics 10.5以降のみで機能します。

sdk content sessions=79000-79999 render=nwd append=content-%1%.nwd metaFormatFilename=did

これは、困った場合のバックアップ コマンドです。このコマンドは、1,000個のセッションを取得し、コンテンツ全部(セッション、メタ、パケット、ログ)をNWD(NetWitnessデータ フォーマット)形式に出力します。NWDは、再解析なしに、Packet DecoderまたはLog Decoderに再インポートできる特別な形式です。したがって、基本的に、元の解析されたセッションは変更なしにインポートされます。タイムスタンプも変更されないため、セッションが6か月前に解析された場合は、インポート時のタイムスタンプは6か月前のままになります。 

注:このコマンドについては、特にパケットに関して、優れたパフォーマンスを期待しないでください。セッションのパケットを収集するときは、多くのランダムI/Oが発生し、エクスポートの速度が大幅に低下する可能性があります。ログの場合は、この問題の影響をそれほど受けませんが(セッションあたり1つのログのみ)、このコマンドはバックグラウンドで/sdk content APIを使用します。/sdk content APIは、/sdk packetsのようなパフォーマンス志向のストリーミングAPIではありません。繰り返しますが、優れたパフォーマンスを期待しないでください。

このコマンドでは、metaFormatFilenameパラメータが非常に便利です。複数のサービスを集計するConcentratorでこのコマンドを実行すると、各セッションのdidメタが付加されたNWDファイル名が作成されます(appendパラメータ内の%1%が、didの値に置き換えられます)。各ファイル名により、データ収集元のDecoderを正確に識別できます。

sdk content session=l-u where="service=80,139,25,110" render=files maxDirSize=200mb cacheMinutes=10

このコマンドは、もう1つの興味深い小さなコマンドです。アイコン モードで出力ディレクトリとWindowsエクスプローラーのようなディレクトリをペアにした場合、このコマンドは、古いVisualize製品と非常に類似した方法で動作します。このコマンドは、すべてのWeb、メール、SMBトラフィックからファイルを抽出します。これらのファイルには、画像、zipファイル、ビデオ、PDF、Officeドキュメント、テキスト ファイル、実行可能ファイル、オーディオ ファイルなど、すべての種類のファイルが含まれます。マルウェアを抽出した場合、ウイルス スキャナーがマルウェアにフラグを付けます。コマンドによって実行されるマルウェアはないため、心配は不要です。つまり、マシンに影響が及ぶことはありません(マルウェアの実行を試みない限り)。ただし、マルウェアを発見した場合、ファイル名には、マルウェアが抽出されたセッションIDが示されるため、有用な場合があります。そのセッションIDをクエリーし、マルウェアが感染した可能性のあるホストを確認して、措置を講じることができます。パラメータincludeFileTypesまたはexcludeFileTypesを使って、抽出対象をフィルタリングできます(コマンド ヘルプを参照してください)。たとえば、excludeFileTypes=".exe;.dmg;.msi"を追加すると、実行可能ファイルとインストーラーは抽出されなくなります。このコマンドは、すべての既存のセッションと新しいセッションから無停止でファイルの抽出を行います。ディレクトリに200 MBを超えるファイルが散乱するようになると、このコマンドは、ファイルのクリーンアップを10分ごとに自動的に開始します。 

注:このコマンドは、ログではなく、パケット セッションのみに対して有効です。

sdk content session=1-now where="time='2015-01-27 12:00:00'-'2015-01-27 13:00:00' && (service=25,110,80)" subdirFileTypes="audio=.wav;.mp3;.aac; video=.wmv;.flv;.mp4;.mpg;.swf; documents=.doc;.xls;.pdf;.txt;.htm;.html images=.png;.gif;.jpg;.jpeg;.bmp;.tif;.tiff archive=.zip;.rar; other=*" renameFileTypes=".download|.octet-stream|.program|.exe;.jpeg|.jpg" render=files maxDirSize=500mb

このコマンドは、1時間のHTTPセッションおよびメール セッションからファイルを抽出し、subdirFileTypesパラメータで指定したディレクトリに、抽出したファイルをグループ化します。たとえば、拡張子.wav、.mp3、.aacを持つ抽出されたオーディオ ファイルは、指定した出力ディレクトリの配下に作成されるサブディレクトリaudioに配置されます。このパラメータで指定されたその他のすべてのグループについても同様です。また、一部のファイルは、ファイル拡張子に基づいて、名前が自動的に変更されます。この変更は、renameFileTypesによって処理されます。拡張子.download、.octet-stream、.programを持つファイルは、その拡張子が.exeに変更されます。拡張子.jpegを持つファイルは、その拡張子が.jpgに変更されます。最上位のディレクトリが500 MBを超えると、最も古いファイルから順番に削除されます。このコマンドは、コマンド開始時の最後のセッションで停止します。

sdk search session=l-now where="service=80,25,110" search="keyword='party' sp ci"

このコマンドは、キーワードpartyを探してすべてのパケットとログ(spパラメータ)を検索します。パケットまたはログの任意の場所でpartyが見つかった場合、セッションIDに加えて、見つかったテキストとそのコンテキストを示した周囲のテキストを出力します。Where句は、Webおよびメール トラフィックのみが検索されることを示します。ciパラメータは、大文字と小文字を区別しないで検索が実行されることを示します。keywordの代わりにregexを使用すると、regex検索を行うことができます。

sdk search session=l-now search="keyword='checkpoint' sp ci" render=log append=checkpoint-logs.log fileExt=.log

これは、興味深いコマンドの例です。このコマンドは、キーワードcheckpointを探してすべてのログ(パケットの場合もあります)を検索し、このキーワードが見つかると、ログをファイルcheckpoint-logs.logに抽出します。このコマンドには、あらゆる種類の可能性があります。基本的には、検索がヒットすると、セッションはcontentコールに渡されます。したがって、sdk searchが認識しないパラメータをこのコマンドに指定すると、そのままcontentコールに渡されます。これにより、sdk contentコールのすべての機能を活用できますが、検索がヒットしたセッションでしかその機能は有効になりません。強力な機能には、大きな責任と役割があります。

You are here
Table of Contents > RSA Security Analytics Console > SDK Contentコマンドの例

Attachments

    Outcomes