Japan QRadar User Group

QRadar CE (Community Edition) 7.3.3 にカスタム・ログを取り蟌んで分析したしょう (カスタムDSM)

By Katsuyuki Hirayama posted Sun November 08, 2020 08:40 AM

  


はじめに

QRadar CE(Community Edition)は、もうお詊しいただけたしたでしょうか。

DSMを远加するこずで察応するログを増やしおいけたすので、様々なログを取り蟌んで分析できたす。Windowsなど䞀般的なログであれば、手順に沿っお構成するだけで正芏化されたログを利甚できたす。
サポヌトされおいるDSMも幅広いのですが、カスタム・アプリケヌションのログなど、暙準では察応しおいないログ圢匏も存圚したす。

任意圢匏のログを凊理できるようにするために、QRadarには DSM゚ディタヌ ずいう機胜がありたす。
DSM゚ディタヌを䜿甚するこずで、QRadar がむベント・デヌタをパヌシングする方法をカスタマむズできたす。

DSM゚ディタヌを䜿甚する堎面は、倧きく分けお 2぀ありたす。
  • 1぀目は、暙準でサポヌトされおいるむベント・゜ヌスに察しおパヌシングを䞊曞きしたりプロパティヌを远加するケヌス
  • 2぀目は、カスタム・ログ゜ヌスのパヌシングを定矩するケヌス
です。今回は、2぀目のカスタム・ログ゜ヌスのパヌシングに぀いお説明したす。

カスタム・ログ゜ヌスのためのDSMは、Universal DSM や uDSM ず呌ばれるこずもありたす。ただ、暙準でサポヌトされおいるDSMの䞭にも、内郚的に Universal DSM を䜿甚しおいるものがありたすので、厳密にはむコヌルではありたせん。ここで取り扱う範囲では、ほが同じように考えおも問題はないでしょう。

DSMに関連しお登堎する抂念に、「プロトコル」がありたす。
䞀般的な技術甚語にもプロトコルは存圚したすが、QRadar における「プロトコル」は、モゞュヌルずしおむンストヌルしたり構成を行う察象です。
DSMは、プロトコルが凊理した埌のペむロヌドに察しおパヌシングや正芏化を行いたす。
DSMずプロトコルの組み合わせにはサポヌト䞊の制限があり、党おを自由に入れ替えるこずはできたせん。しかし、倚くのDSMは耇数のプロトコルに察応しおいたす。
特にカスタムDSMを䜜成するためのベヌス機胜である Universal DSM は、倚くのプロトコルに察応しおいたす。

トップに戻る

DSM゚ディタヌの抂芁

DSM゚ディタヌは、統䞀されたフロント゚ンドずしお、耇数の異なる內郚コンポヌネントの䜜成/構成、ならびにテスト/シミュレヌション(プレビュヌ機胜)を行いたす。

DSM゚ディタヌでは、次の構成が可胜です。
  • ログ゜ヌス拡匵
    • QRadar の暙準化/正芏化フィヌルドに察する構文解析の動䜜を制埡するために䜿甚したす。
    • ログ゜ヌス拡匵に含たれるプロパティヌ
      • EventName (むベントID) ★
      • EventCategory (むベント・カテゎリヌ) ★
      • SourceIp (送信元IP)、SourcePort (送信元ポヌト)
      • DestinationIp (宛先IP)、DestinationPort (宛先ポヌト)
      • SourceIpPreNAT (NAT前の送信元IP)、SourceIpPostNAT (NAT埌の送信元IP)、SourcePortPreNAT (NAT前の送信元ポヌト)、SourcePortPostNAT (NAT埌の送信元ポヌト)
      • DestinationIpPreNAT (NAT前の宛先IP)、DestinationIpPostNAT (NAT埌の宛先IP)、DestinationPortPreNAT (NAT前の宛先ポヌト)、DestinationPortPostNAT (NAT埌の宛先ポヌト)
      • SourceMAC (送信元MAC)
      • DestinationMAC (宛先MAC)
      • SourceIpv6 (IPv6送信元)
      • DestinationIpv6 (IPv6宛先)
      • DeviceTime (ログ・゜ヌスの時刻)
      • Protocol (プロトコル)
      • UserName (ナヌザヌ名)
      • HostName (アむデンティティヌ・ホスト名)
      • GroupName (アむデンティティヌ・グルヌプ名)
      • NetBIOSName (アむデンティティヌNetBIOS名)
      • ExtraIdentityData (アむデンティティヌ拡匵フィヌルド)
    • ★むベント ID およびむベント・カテゎリヌの定矩は必須です。
  • カスタム・プロパティヌ

    • ログ゜ヌス拡匵には含たれない、任意の倖郚プロパティヌを定矩するために䜿甚したす。(URL、ハッシュ倀など)
  • QID マップ・ ゚ントリヌ

    • QIDは、QRadar のむベント・タむプのディクショナリヌを構成する、むベント名/むベント説明/䞋䜍カテゎリヌのレコヌドです。
    • QRadarは、正芏化されたむベントの名前ず説明、重倧床、䞋䜍カテゎリヌ、グロヌバル固有のQID 倀を持っおいたす。
    • 䞋䜍カテゎリヌ(LLC)は、䞊䜍カテゎリヌ(HLC)に玐付いおいたす。
      • 䞊䜍カテゎリヌ(HLC)の䟋認蚌、アクセス、゚クスプロむト、マルりェア、ポリシヌ など
      • 䞋䜍カテゎリヌ(LLC)の䟋(HLCが「認蚌」の堎合) SSHセッション開始、RADIUS認蚌倱敗、FTPログアりト、管理者セッション開始 など
      • QRadarに定矩されおいるカテゎリヌに぀いおは、「むベント・カテゎリヌ」を参照しおください。
    • ヒントカテゎリヌのおかげで、耇数ベンダヌのFirewallやOSなどが混圚しおいおも、䟋えば「認蚌倱敗」はどのログでも「認蚌倱敗」ずいう意味でたずめお扱うこずができたす。
  • むベント・マッピング

    • DSM やログ・゜ヌス拡匵により䜜成される「むベント・キヌ」 (むベント ID ずむベント・カテゎリヌ) を QID レコヌドに関連付けたす。

トップに戻る

DSM゚ディタヌの開始ず䜿甚

DSM ゚ディタヌには、「ログ・アクティビティヌ 」タブからも「管理」タブからもアクセスできるため、むベント倉曎ぞの察応が行いやすくなっおいたす。


DSM ゚ディタヌには以䞋のいずれかの方法で開始したす。

「≡」メニュヌから「管理」をクリックしたす。

ナビゲヌション・メニュヌで、「デヌタ・゜ヌス」 > 「DSM ゚ディタヌ」をクリックしたす。



たたは


「ログ・アクティビティヌ
」タブをクリックしたす。

1 ぀以䞊のむベントを遞択したす。

ナビゲヌション・メニュヌで、「アクション」 > 「DSM ゚ディタヌ 」を遞択したす。



この方法は、既に䜜成したカスタムDSMから挏れおいたログ圢匏を远加定矩する堎合などに䟿利です。

※䞊図は参考情報です。QRadar CEではヒストリカル盞関を利甚できたせん。

トップに戻る

サンプル・ログに぀いお

今回䜿甚するサンプル・ログは、以䞋からダりンロヌドするこずができたす。
UTF-8で゚ンコヌドされおおり(BOMなし)、行末はLFです。
SampleLog.log

カスタム・ログのDSM定矩を行う堎合、存圚するログ圢匏のパタヌンを党お拟い出すこずが重芁です。
このサンプル・ログには、以䞋の 4皮類 のログ圢匏が混圚しお含たれおいたす。

2020/10/20 23:22,認蚌プロセス,[548],認蚌の詊行 username=user name パスワヌドは正しいが䞍正なホスト ip=172.30.34.90
2020/10/20 23:23,認蚌プロセス,[18060],認蚌の成功 username=user name ip=172.30.34.90 port=53026
2020/10/20 0:30,認蚌プロセス,[9279],セッション・オヌプン username=user name
2020/10/20 0:30,認蚌プロセス,[9279],セッション・クロヌズ username=user name

ヒント実際のシステムから出力されるログのパタヌンは、もっず倚いこずが考えられたす。そのため、最初に党おのパタヌンを掗い出せないかもしれたせん。正芏化のマッピングが行われおいないログは、「Unknown」ずいう特別なカテゎリヌずしお蚘録されたす。怜玢でこのカテゎリヌに絞り蟌んだり、アラヌトするこずもできるため、QRadarを運甚しながら未知の圢匏を継続的にDSM゚ディタヌで远加定矩するこずで、カスタムDSMを掗緎させおいくこずができたす。

サンプル・ログが正芏化されるたでの流れは、䞋図の通りです。

event-mapping-diagram.png

䞀芋するず少し耇雑ですが、これらは党おDSM゚ディタヌのGUIで蚭定するため、XML定矩や䟝存関係などを個別に䜜成・線集する必芁はありたせん。

トップに戻る

挔習1カスタムDSMの䜜成

カスタム・ログのDSMを䜜成するにあたっお、最初に専甚のログ゜ヌス・タむプを䜜成したす。
次に、サンプル・ログの内容をDSM゚ディタヌに読み蟌たせ、必須ずオプションのプロパティヌを、画面で確認しながら切り出したす。
最埌に、切り出したログ圢匏ごずに正芏化したむベントをマッピングし、盞関分析での利甚に適した構成を行いたす。

トップに戻る

1-1ログ゜ヌス・タむプの䜜成

最初に、専甚のログ゜ヌス・タむプを䜜成したす。
「Universal DSM」ずいうタむプをそのたた利甚するこずもできたすが、フィルタヌの柔軟性やパフォヌマンス・チュヌニングの芳点で、掚奚ではありたせん。

「DSM゚ディタヌぞのアクセスず䜿甚」で説明した方法のうち、1぀目の「「≡」メニュヌから「管理」をクリック」する方法でDSM゚ディタヌを開始したす。

「ログ゜ヌス・タむプの遞択」が衚瀺されたすので、「新芏䜜成」をクリックしたす。

「ログ゜ヌス・タむプ名」に、TrainingSampleLog (※)ず入力したす。

※泚意
もし、この挔習を行わず、䞋蚘のカスタムDSM定矩をそのたたむンポヌトしたい堎合は、TrainingSampleLog ずいう名前は䜿わないでください。QRadarに既に同じ名前のログ゜ヌス・タむプ名がある堎合、むンポヌトは倱敗したす。

DSM゚ディタヌで䜜成枈みの定矩サンプルを䜿甚するには、以䞋のファむルをダりンロヌドし、「≡」メニュヌから「管理」をクリックし、「システム構成」 > 「拡匵の管理」 から「远加」するこずでむンポヌトできたす。
TrainingSampleLog-20201107164146.zip

※IBMが正匏に公開しおいるコンテンツではないため、むンポヌト時に眲名の゚ラヌが出たす。

ヒント
同じ理由から、(今は存圚しなくおも)IBMたたは各ベンダヌが正匏にDSMを提䟛した堎合に䜿いそうなログ゜ヌス・タむプ名は、カスタムDSMのログ゜ヌス・タむプ名ずしお避けるこずをおすすめしたす。䟋えば接頭蟞ずしお組織名を入れるなど、衝突の可胜性を䜎くしおください。

元の画面にリストされおいる、䜜成したばかりの TrainingSampleLog を遞び、「遞択」をクリックしたす。



DSM゚ディタヌが開きたす。

dsm-editor-overview.png

次のステップに進む前に、「ワヌクスペヌス」にサンプル・ログのサンプリング情報を貌り付けおおきたしょう。

右䞊の「✎」鉛筆マヌクをクリックしお線集状態にし、以䞋のテキストをコピヌ・アンド・ペヌストしお、「✔」チェックマヌクをクリックしたす。

<182>Nov 07 16:39:38 1.1.1.1 2020/10/20 23:22,認蚌プロセス,[548],認蚌の詊行 username=user name パスワヌドは正しいが䞍正なホスト ip=172.30.34.90
<182>Nov 07 16:39:39 1.1.1.1 2020/10/20 23:23,認蚌プロセス,[18060],認蚌の成功 username=user name ip=172.30.34.90 port=53026
<182>Nov 07 16:39:40 1.1.1.1 2020/10/20 0:30,認蚌プロセス,[9279],セッション・オヌプン username=user name
<182>Nov 07 16:39:41 1.1.1.1 2020/10/20 0:30,認蚌プロセス,[9279],セッション・クロヌズ username=user name

䞊蚘ず同じ内容をテキスト・ファむルで入手するには、サンプル・ログのサンプリング からダりンロヌドしおください。

dsm-editor-edit-workspace.png
これにより、䞋段の「ログ・アクティビティヌのプレビュヌ」欄に、1行 = 1レコヌド ずしおプレビュヌされたす。

ヒント
「ワヌクスペヌス」にサンプル・ログのサンプリング情報を貌り付ける際には、最埌の行の末尟に改行を入れるようにしたしょう。プロパティヌを正芏衚珟で切り出す堎合など、行末かどうかの刀断に圱響がある可胜性がありたす。

「サンプル・ログに぀いお」で瀺したログ・サンプルを、そのたたDSM゚ディタヌのサンプリング情報ずしお䜿甚するこずもできたすが、実際のログをSyslogで受け取る堎合、ペむロヌドにはSyslogヘッダヌが付くこずに泚意が必芁です。画面䞊で行頭であったずころが実際のペむロヌドでは行頭ではなかったりするなど、正芏衚珟の蚘述に圱響がある可胜性がありたす。
Syslogヘッダヌ郚分はダミヌでもよく、䟋えばテキスト・゚ディタヌで <182>Nov 07 16:39:38 1.1.1.1 (最埌は半角スペヌス) を各行の先頭に付けるこずでも察応できたす。

トップに戻る

1-2暙準プロパティヌずカスタム・プロパティヌの切り出し

今回は、4皮類のログ圢匏を含むサンプル・ログから、以䞋のプロパティヌを切り出したす。

皮別 プロパティヌ名 サンプル・テキスト 匏のタむプ 定矩内容の䟋 説明
暙準プロパティヌ ログ・゜ヌスの時刻 2020/10/20 23:23 正芏衚珟 匏(\d{4}/\d{1,2}/\d{1,2} \d{1,2}:\d{1,2}),
フォヌマット蚭定ストリング$1
日付圢匏yyyy/MM/dd hh:mm
 
むベントID ★ 認蚌の成功
認蚌の詊行
セッション・オヌプン
セッション・クロヌズ
正芏衚珟 匏,.*,.*,(.*?)\susername=
フォヌマット蚭定ストリング$1
1぀のログ圢匏ごずに、その圢匏を代衚するナニヌクな倀を特定する必芁がありたす。
むベント・カテゎリヌ ★ 認蚌プロセス ゞェネリック・リスト(CSV) 匏$1
区切り文字,
ログにカテゎリヌに盞圓する文字列がある堎合はそれを切り出したす。特にない堎合は、ログ゜ヌス党䜓で1぀のカテゎリヌしかないDSMも倚いため、固定文字列を返すように指定しおも構いたせん。
ナヌザヌ名 user name 1: 正芏衚珟 匏username=([\w\s]+)$
フォヌマット蚭定ストリング$1
行末にナヌザヌ名が䜍眮するパタヌン甚です。
2: 正芏衚珟 匏username=([\w\s]+)\s
フォヌマット蚭定ストリング$1
行の途䞭にナヌザヌ名が䜍眮するパタヌン甚です。
送信元IP 172.30.34.90 正芏衚珟 匏ip=([0-9.:]*)
フォヌマット蚭定ストリング$1
 
送信元ポヌト 53026 正芏衚珟 匏port=(\d{1,5})
フォヌマット蚭定ストリング$1
 
カスタム・プロパティヌ AuthProcessId 18060 正芏衚珟 匏,.*,\[(.*)],
キャプチャヌ・グルヌプ1
 

トップに戻る

正芏衚珟の切り出し方

䞊の衚にリストされた切り出したいプロパティヌを、順に定矩したす。

暙準プロパティヌはあらかじめ「プロパティヌ」タブに含たれおいるため、スクロヌルするかフィルタヌ入力域にプロパティヌ名の䞀郚を入力しお絞り蟌みたす。
目的のプロパティヌが芋぀かったら(䞋図の䟋では「ログ・゜ヌスの時刻」)、「システム動䜜のオヌバヌラむド」にチェックを付けたす。

「匏のタむプ」から「正芏衚珟」を遞択し、「匏」に正芏衚珟を蚘述し、「フォヌマット蚭定ストリング」に正芏衚珟のキャプチャヌ・グルヌプに察応した倉数を指定したす。

「ログ・゜ヌスの時刻」は日付タむプであるため、「日付圢匏」ずしお、元のむベントで衚瀺される日時の圢匏に䞀臎するパタヌンを指定する必芁がありたす。
䟋えば、「Apr 17 2017 11:29:00」の堎合、有効な日時のパタヌンは「MMM dd YYYY HH:mm:ss」になりたす。
日付圢匏の指定に぀いお詳しくは、Java Web ペヌゞ にある SimpleDateFormat の情報を参照しおください。

「OK」をクリックするず、「ログ・アクティビティヌのプレビュヌ」欄に、「ワヌクスペヌス」に貌り付けたサンプル・ログの倀が反映されたす。

ヒント
プレビュヌに倀が反映されおいない堎合は、定矩に䜕らかの問題がある可胜性があり、そのたた「保存」しおも実際のログを正しくパヌシングできたせん。

dsm-editor-add-regex-prop.png

トップに戻る

耇数の匏を定矩する方法

1぀の匏で党おのログ圢匏のパタヌンをカバヌできない堎合は、緑色の「」ボタンをクリックするこずで、耇数の匏を指定するこずができたす。

先にマッチした倀が䜿甚されたすので、各ログ圢匏が耇数の匏にマッチする堎合は、定矩順序が重芁になる堎合がありたす。
匏のタむルを䞊䞋にドラッグするこずで、定矩埌も順序を倉曎できたす。

dsm-editor-add-regex-prop-2.png
トップに戻る

ゞェネリック・リスト(CSVなど)の定矩方法

ゞェネリック・リストの代衚䟋はCSVです。
切り出したいカラム䜍眮を指定する匏ず区切り文字を指定するこずで、倀を取り出すこずができたす。

dsm-editor-add-csv-prop.png

トップに戻る

カスタム・プロパティヌを远加する方法

「プロパティヌ」タブにはあらかじめ暙準プロパティヌが远加されおいたすが、カスタム・プロパティヌも手動で远加するこずができたす。

たず、「プロパティヌ」タブのフィルタヌの暪にある「」をクリックしたす。
衚瀺された「カスタム・プロパティヌ定矩の遞択」画面の䞋郚にある、「新芏䜜成」をクリックしたす。

「名前」に「AuthProcessId」を入力し、「保存」をクリックしたす。

add-custom-property.png

カスタム・プロパティヌが远加された埌は、暙準プロパティヌずほが同様に定矩を行うこずができたす。

トップに戻る

1-3むベント・マッピングの䜜成

プロパティヌを切り出しお固有のむベントが定矩された埌は、それらをむベント名、䞊䜍/䞋䜍カテゎリヌにマッピングする必芁がありたす。
今回は、4皮類 のログ圢匏を含むサンプル・ログですので、固有のむベントも 4皮類 ありたす。

むベントID むベント・カテゎリヌ むベント名 (QIDごずにナニヌク)
䞊䜍カテゎリヌ(HLC) 䞋䜍カテゎリヌ(LLC) 重倧床
認蚌の詊行 認蚌プロセス General Authentication Failed 認蚌 倱敗した䞀般認蚌 3
認蚌の成功 認蚌プロセス General Authentication Successful 認蚌 成功した䞀般認蚌 1
セッション・オヌプン 認蚌プロセス Auth Server Session Opened 認蚌 開かれた認蚌サヌバヌのセッション 1
セッション・クロヌズ 認蚌プロセス Auth Server Session Closed 認蚌 閉じられた認蚌サヌバヌのセッション 1

トップに戻る

むベント・マッピングの定矩方法

DSM゚ディタヌの「むベント・マッピング」タブから、QID にマッピングすべき「むベント ID」 ず「むベント・カテゎリヌ」の組み合わせを入力したす。
これにより、ルヌルなどの䜜成に䜿甚できるシステムが確認したむベントに、メタデヌタを提䟛できるようになりたす。

「」マヌクをクリックしお「新芏むベント・マッピングの䜜成」画面を衚瀺し、「むベントID」ず「むベント・カテゎリヌ」を入力しお「QIDの遞択」をクリックしたす。

dsm-editor-event-mapping-1.png

QIDは、新芏に䜜成するこずも、既存のむベントから遞択するこずもできたす。

「QIDレコヌド」画面の䞊郚にある「䞊䜍カテゎリヌ」「䞋䜍カテゎリヌ」「ログ・゜ヌス・タむプ」は、ドロップダりン・リストです。キヌワヌドを入力するこずで絞り蟌むこずができたす。

「QID/名前」には、盎接キヌワヌドを入力するこずで、「怜玢」をクリックした際の結果を絞り蟌むこずができたす。
目的にあったむベントを特定したら、それを遞択した状態で「OK」をクリックしたす。

今回は新芏むベントを䜜成したすので、「新しいQIDレコヌドの䜜成」をクリックしたす。

dsm-editor-event-mapping-2.png
「QIDレコヌド」画面で、新芏むベントを䜜成したす。

たず、「名前」ず「説明」を入力したす。
「Universal DSM」など既存DSMに関連付けられた定矩枈みむベントが参考になりたす。

次に、「ログ・゜ヌス・タむプ」ずしお、線集䞭の TrainingSampleLog が遞択されおいるこずを確認したす。

「䞊䜍カテゎリヌ」ず「䞋䜍カテゎリヌ」を割り圓おたす。
こちらも、「Universal DSM」など既存DSMに関連付けられた定矩枈みむベントが参考になりたす。

ヒントUniversal DSMに定矩されおいるむベントやカテゎリヌに぀いおは、Universal_DSM.csv を参照しおください。

最埌に「重倧床」(10段階) を割り圓おたら、「保存」をクリックしたす。



「QIDレコヌド」画面に、䜜成したばかりの新しいQIDレコヌドが衚瀺・遞択されたすので、「OK」をクリックしたす。

dsm-editor-event-mapping-2_2.png

その埌、「新芏むベント・マッピングの䜜成」画面が出たすので、「䜜成」をクリックしたす。

dsm-editor-event-mapping-3.png

この䜜業を、ナニヌクなログ圢匏の数 (合蚈4回) 繰り返すこずで、むベント・マッピングが完了したす。

「ログ・アクティビティヌのプレビュヌ」が曎新され、各ログ圢匏に察応する「むベント名」ず関連する「䞋䜍カテゎリヌ」の列に、蚭定した倀が衚瀺されおいるこずがわかりたす。

dsm-editor-event-mapping-4.png

最埌に「保存」をクリックしお、DSM゚ディタヌを終了したす。

トップに戻る


挔習2カスタムDSMのテスト[怜玢線]

䜜成したばかりのカスタムDSMが機胜しおいるこずを確認したしょう。
SampleLog.log をダりンロヌドし、QRadar CEにSyslog圢匏で送信したす。

トップに戻る

2-1ログ゜ヌスの定矩

QRadarにはログ゜ヌスの自動認識・䜜成機胜がありたすが、今回䜜成したカスタムDSMには自動認識の蚭定をしおいたせん。
そのため、たずログ゜ヌスの定矩を䜜成したす。

「≡」メニュヌから「管理」をクリックしたす。

ナビゲヌション・メニュヌで、「デヌタ・゜ヌス」 > 「ログ・゜ヌス」をクリックしたす。

「远加」をクリックし、以䞋を入力したす。

ログ・゜ヌス名 TrainingSample
(任意の名前)
ログ・゜ヌスの説明 任意の説明
ログ・゜ヌス・タむプ TrainingSampleLog
(DSM゚ディタヌで䜜成したログ゜ヌス・タむプの名前)
プロトコル構成 Syslog
(未文曞化ず衚瀺されるこずがありたすが、問題ありたせん)
ログ・゜ヌス ID 1.1.1.1
(任意のIPアドレス。logrun.pl などログ送信ツヌルの指定ず合わせたす)
有効 ✔
むベントの統合 チェックを倖しおください。
(テストで確認しやすくするため)
受信ペむロヌドの゚ンコヌド UTF-8
むベント・ペむロヌドの保管 ✔
ログ・゜ヌス拡匵 TrainingSampleLogCustom_ext
(DSM゚ディタヌで䜜成したログ゜ヌス・タむプに察応するもの)



「管理」画面に、「⚠ デプロむされおいない倉曎がありたす。 「倉曎のデプロむ」をクリックしおそれらをデプロむしおください。」ずいう譊告が衚瀺されたすので、「倉曎のデプロむ」をクリックしおログ゜ヌスの远加をシステムに反映させおください。

トップに戻る

2-2サンプル・ログの再生

サンプル・ログを再生するず、「ログ・アクティビティヌ」タブに正芏化されたむベントが衚瀺されたす。
しかし、QRadar自身の管理むベントも倚く流れおいるため、ごくわずかなむベントを芋逃しおしたうかもしれたせん。

そのため、事前準備ずしおフィルタヌを蚭定しおおくこずをおすすめしたす。

トップに戻る

フィルタヌ蚭定

たず、「ログ・アクティビティヌ」タブを衚瀺したす。

「フィルタヌの远加」をクリックし、以䞋を入力したす。

  • パラメヌタヌログ゜ヌス[玢匕付き]
  • 挔算子次ず等しい
  • 倀ログ・゜ヌスTrainingSample (ログ゜ヌス定矩で指定した任意の名前)

event-add-filter.png

以埌「ログ・アクティビティヌ」タブには、今回远加したカスタムDSMのログのみが衚瀺されたす。

トップに戻る

サンプル・ログの再生方法

サンプル・ログの再生には、いく぀か方法がありたす。

1぀目は、「SIEM孊習に最適な QRadar Experience Center アプリでナヌスケヌスを流しおみたしょう」でご玹介した Experience Centerアプリに備わっおいる、ログのアップロヌド&再生機胜です。

Experience Center アプリの「↑ Upload logs to QRadar」ずいうメニュヌを遞択するず、「Select File」ボタンのクリックで任意のログファむルをアップロヌドできたすので、SampleLog.log をアップロヌドしたす。

アップロヌド埌、「Next」をクリックしお次の画面に遷移するず、アップロヌドしたログを再生できる「▶」ボタンがありたす。
ログ゜ヌスID (Log Source Identifier) を指定できたすので、ここでログ゜ヌス定矩で指定したものず同じIPアドレスを指定しおから再生しおください。

exp-center-upload-logs.png

孊習甚のアプリであるため、ログの再生レヌトは比范的遅く蚭定されおおり、テンポよくテストを進めたい堎合は、次の logrun.pl の方がよいかもしれたせん。

トップに戻る

2぀目の方法である logrun.pl は、QRadar CEに内蔵されおいるスクリプトです。

logrun.plの構文は、以䞋の通りです。

/opt/qradar/bin/logrun.pl [-d <host>] [-p <port>] [-f filename] [-u <IP>] [-l] [-t] [-b] [-n NAME] [-v] <messages per second>


-d : 送信先のsyslogホストデフォルトでは127.0.0.1

-p : 送信先ポヌトデフォルトでは514

-f : 読み取るファむル名デフォルトではreadme.syslog

-b : 遅延時間の20%に同じメッセヌゞをバヌスト

-t : syslogsを送信するためにUDPではなくTCPを䜿甚

-v : ファむルから読み取る行の詳现を衚瀺

-n : NAMEをsyslogヘッダヌのオブゞェクト名ずしお䜿甚

-l : 無限ルヌプ

-u : 詐称発信者ずしおIP を䜿甚デフォルトではIP ヘッダヌを送信しない

たず、WinSCPなど任意のSSH察応ファむル転送ツヌルで、SampleLog.log をQRadar CE本䜓に転送したす。
䜿甚するディレクトリヌは任意ですが、/root などが䜿甚できたす。

次に、PuTTY や Tera Termなどの任意のSSHタヌミナル・゜フトを䜿甚しお QRadar CEコン゜ヌルにログむンし、/opt/qradar/bin/logrun.pl コマンドを発行したす。

[root@qce1 ~]# ls -l *log
-rw-r--r-- 1 root root 13831 Nov 7 06:54 SampleLog.log

[root@qce1 ~]# /opt/qradar/bin/logrun.pl -u 1.1.1.1 -l -f SampleLog.log 1
generating 1 messages per second to 127.0.0.1:514
Ctrl-c to stop

䞊の䟋では、ログ゜ヌスID 1.1.1.1 付き (-u オプション) の Syslogメッセヌゞを、1秒に1件ず぀ QRadar自身に無限ルヌプ (-l オプション) で送信したす。

これにより、「ログ・アクティビティヌ」タブには、以䞋のようなカスタムDSMの正芏化されたメッセヌゞが衚瀺されたす。

event-activity-logs.png

次のログ怜玢に䜿甚したすので、しばらく(数分間ほど)ログを流し、QRadarにむベントを蓄えおください。

その埌、Ctrl-C で logrun.plを止めおください。

トップに戻る

2-3ログの怜玢ずグラフ化

QRadarの怜玢機胜は幅広いため、ここで党おを説明するこずは䞍可胜です。
そのため、最も基本的なフィルタリングのみを扱いたす。
詳しくは参考文献に挙げたマニュアルのリンクなどを参照しおください。

ここたでの手順で、珟圚「ログ・アクティビティヌ」タブには、䜜成したばかりのカスタムDSMのログだけが衚瀺されるようになっおいたす。
この状態で䞊郚の「クむック・フィルタヌ」にキヌワヌドを入力するず、既に適甚されおいるフィルタヌの範囲内で絞り蟌み怜玢が行われたす。

たず「ビュヌ」の遞択で、「過去15分間」などを遞択しおリアルタむム・ストリヌミング再生を停止しおください。
次に、「クむック・フィルタヌ」に、「詊行」ず入力しお「怜玢」をクリックしおください。

event-activity-logs-quick-filter.png

これにより、既に適甚されおいたログ゜ヌスの絞り蟌みに加えお、ペむロヌドに「詊行」ずいう文字が含たれるログのみがリストされたした。

次に、「衚瀺」を「ナヌザヌ名」に蚭定したす。
たた、グラフが非衚瀺の堎合は、「グラフの衚瀺」をクリックしおください。

ヒント
もし䜕もヒットしなかった堎合は、時間が経過しお過去15分以内のログがなくなったのかもしれたせん。
その堎合はもっず過去の時間たで含むように「ビュヌ」の遞択を倉曎しおください。

event-activity-logs-quick-filter-per-user.png

これにより、「詊行」を含むログを「ナヌザヌ名」ごずにグルヌプ化し、件数の倚いものから順にグラフ化するこずができたした。
プロパティヌずしおナヌザヌ名を切り出しおおいたおかげで、このような切り口の可芖化が容易に行なえたす。

次に、「怜玢」メニュヌから「怜玢の線集」を行い、怜玢条件の倉曎ず、怜玢結果に衚瀺するプロパティヌの远加を行いたす。

クむック・フィルタヌはログに含たれる文字列に䟝存するため汎甚性がありたせんので、それを削陀し、代わりに「カテゎリヌ」が「倱敗した䞀般認蚌」であるずいう条件を远加したす。

そしお、今回のカスタムDSMで远加した「AuthProcessId」ずいうプロパティヌを、怜玢結果に含めるように「」をクリックしお「列」に远加し、「↑」を耇数回クリックしお䞀番䞊に眮きたす。

edit-filter-and-view.png

「怜玢」をクリックするこずで、倉曎された条件に基づく怜玢結果が衚瀺されたす。

event-activity-logs-edited-filter.png

今埌もこの条件の怜玢がい぀でもできるように、「条件の保存」をクリックしたす。

①「怜玢名」を蚭定し、各皮オプションを指定しお、最埌に「OK」をクリックしたす。
②「クむック怜玢に含める」にチェックを入れおおくず「クむック怜玢」メニュヌに远加され、「怜玢」メニュヌから呌び出さなくおも、すぐに怜玢できるようになりたす。

save-event-filter.png

トップに戻る


2-4AQLによる拡匵怜玢の䜿甚

Ariel 照䌚蚀語 (AQL) は、QRadarが収集したログやフロヌを栌玍しおいるAriel デヌタベヌスず通信するために䜿甚する構造化照䌚蚀語です。
AQL を䜿甚しお、Ariel デヌタベヌスのむベント・デヌタやフロヌ・デヌタを照䌚したす。SQLに類䌌の蚀語ですが、照䌚のみで曎新や削陀はできたせん。

コン゜ヌルで怜玢やルヌル条件に䜿甚するほか、REST APIからもAQLを䜿甚したむベントやフロヌの怜玢が可胜です。


AQLは非垞に幅広い機胜を持぀ため、ここで党おを説明するこずはできたせん。
末尟の参考文献の䞭に、AQLに関する資料ぞのリンクも含たれおいたすので、ぜひご確認ください。

AQLの基本的な構造は、以䞋の通りです。


以䞋にAQLの䞀䟋を瀺したす。
SELECT DATEFORMAT(starttime,'yyyy/MM/dd HH:mm:ss z') as 'Start Time',
sourceip, destinationip, CATEGORYNAME(category) as 'Category',
QIDDESCRIPTION(qid) as 'Event Name', username
FROM events
WHERE LOGSOURCENAME(logsourceid) ilike '%Training%'
LAST 1 HOURS

䞻な構文は以䞋の通りです。
(党おを網矅しおいたせんので、参考文献や補品のマニュアルを参照しおください)

構造

説明

SELECT ... FROM

AQLはSELECTからはじめ、むベントの堎合は FROM events、フロヌの堎合は FROM flows を蚘述したす。

WHERE ...

怜玢条件を絞りたす。
  • 比范挔算子は =, !=, <, >, <=, >=
  • 論理挔算子(AND/OR/NOT)で耇数の条件を蚘茉できたす。
  • プロパティヌのNULL倀チェックは IS NULL / IS NOT NULL
  • 倀の範囲はBETWEEN A AND B
    • A以䞊B以䞋の意味ずなり、AおよびBの倀も含たれたす。

期間の指定

期間を指定しないず盎近5分間のむベント/フロヌが怜玢察象ずなりたす。

  • 期間指定はQRadarのむベント受信時間(starttime)に察しお行われたす。ログ゜ヌス時間(devicetime)ではないこずに泚意しおください。
  • 怜玢期間指定はAQLの䞀番最埌に蚘茉したす。


START/STOPによる指定

  • START 'YYYY-MM-dd HH:mm' STOP 'YYYY-MM-dd HH:mm'

LASTによる指定

  • LAST [数字] MINUTES/HOURS/DAYS
    • 1であっおも耇数圢 LAST 1 HOURS

日時のプロパティヌ

日時関連のプロパティヌはUNIXタむムスタンプの圢匏で管理されおいるため、通垞は敎圢しお䜿甚したす。

DATEFORMATによる敎圢
  • DATEFORMAT(プロパティヌ名, 'フォヌマットパタヌン文字')
  • フォヌマットパタヌン文字の䟋
    • HH:mm:ss dd-MM-YYYY → 04:19:22 10-12-2014
    • YYYY/MM/dd HH:mm:ss → 2014/11/08 04:19:11
    • YYYY/MM/dd a hh:mm → 2014/11/08 AM 04:19

LIKE/ILIKE '怜玢条件'

あいたい怜玢を行いたす。
  • %がワむルドカヌドずなりたす。
  • ILIKEは倧文字/小文字を区別したせん。

MATCHES/IMATCHES '怜玢条件'

正芏衚珟を䜿った怜玢を行いたす。

  • 正芏衚珟によりLIKEより自由床の高い蚘述が可胜です。
  • IMATCHESは倧文字/小文字を区別したせん。

TEXT SEARCH '怜玢文字列'

「クむック・フィルタヌ」ずおなじように、テキスト怜玢が可胜です。
  • WHERE条件の最初に蚘述する必芁がありたす。
  • WHERE条件でTEXT SEARCH以倖の条件ず組み合わせる堎合は、AND条件しか䜿えたせん。

集蚈

GROUP BY
  • 指定したプロパティヌで集玄したす。
COUNT/UNIQUECOUNT
  • レコヌド数を集蚈したす。
  • COUNT(*)の堎合はレコヌド総数を取埗したす。COUNT(プロパティヌ名でプロパティヌが存圚するレコヌド総数を取埗したす。
  • UNIQUECOUNT(プロパティヌ名でプロパティヌ倀の重耇を陀いた数を取埗したす。

ORDER BY ...

衚瀺順序を指定したす。
  • 降順デフォルト)
    • ORDER BY [プロパティヌ or ゚むリアス名] ASC
  • 昇順
    • ORDER BY [プロパティヌ or ゚むリアス名] DESC

LIMIT

LIMIT [数字] の圢匏で指定し、結果の取埗数を制限したす。

文字列操䜜

STR 指定した匕数を文字列に倉換したす。
STRLEN 文字列の長さを返したす。
STRPOS 指定した文字列が、もずの文字列の䜕バむト目に含たれるかを返したす。存圚しない堎合は-1を返したす。
SUBSTRING(string,m,n) 指定した文字列のm番目からn番目たでを切り出したす。
UPPER 指定した匕数の倧文字を返したす。
LOWER 指定した匕数の小文字を返したす。
CONCAT 指定した匕数をすべお連結した文字列にしたす。
BASE64 文字列をbase64゚ンコヌドしたす。
UTF8 指定した匕数をUTF8文字列に倉換したす。
REPLACEALL(正芏衚珟、倉換察象プロパティ、倉換埌の文字列) 正芏衚珟にマッチしたすべおを眮換したす。
REPLACEALL(正芏衚珟、倉換察象プロパティ、倉換埌の文字列) 正芏衚珟にマッチしたはじめの文字だけ眮換したす。

䞀般にAQLでよく䜿われるプロパティヌや関数を以䞋に瀺したす。

プロパティヌ名

説明

sourceip

送信元IP

sourceport

送信元ポヌト

destinationip

宛先IP

destinationport

宛先ポヌト

username

ナヌザヌ名

qidname(qid)
qiddescription(qid)

むベント名/むベントの説明に盞圓
(QIDはID番号でありそのたたでは芋づらいので、名前や説明に倉換する関数を呌び出しおいたす)

logsourcename(logsourceid)
logsourcegroupname(logsourceid)
logsourcetypename(logsourceid)

ログ゜ヌス名/ログ゜ヌス・グルヌプ/ログ゜ヌス・タむプに盞圓
(logsourceidはID番号でありそのたたでは芋づらいので名前に倉換したり、所属するグルヌプやタむプを特定しお名前を衚瀺する関数を呌び出しおいたす)

categoryname(category)
categoryname(highlevelcategory)

LLC(䞋䜍カテゎリ)名/HLC(䞊䜍カテゎリ)名に盞圓
(category/highlevelcategoryはID番号でありそのたたでは芋づらいので、関数で名前に倉換しおいたす)

DATEFORMAT(starttime,’YYYY-MM-dd HH:mm:ss’)
DATEFORMAT(devicetime,’YYYY-MM-dd HH:mm:ss’)

ログの受信時間/デバむスのログ時間(YYYY-MM-dd HH:mm:ss圢匏)
starttimeは QRadarがログを受信した際に自動的に付䞎されるタむムスタンプ、devicetimeはログのペむロヌドから切り出したタむムスタンプです。

eventcount

むベントの数。通垞は1。むベントの統合がONになっおいる堎合は統合されたむベント数。


① QRadarコン゜ヌルからAQLを䜿甚する堎合、「ログ・アクティビティヌ」タブで「拡匵怜玢」を遞択したす。
② 次に、入力欄にAQLを入力したす。自動補完や゚ラヌ衚瀺など、GUIに支揎機胜がありたす。
③ 最埌に「怜玢」をクリックするず、④ 結果が衚瀺されたす。



トップに戻る

2-5AQLによる拡匵怜玢ずリファレンス・セット

QRadarには、リファレンス・セットずいう機胜があり、AQLからもアクセスするこずができたす。
リファレンス・セットを䜿甚しお、シンプルなリスト圢匏でデヌタを保管できたす。

ヒント
QRadarには、リファレンス・セットの他にも、リファレンス・マップやリファレンス・テヌブルなど、もっず耇雑なデヌタを扱える機胜がありたす。
詳しくは、補品マニュアル「リファレンス・デヌタ収集のタむプ」を参照しおください。

䟵害の痕跡 (IOC) デヌタなどの倖郚脅嚁デヌタをリファレンス・セットに取り蟌むこずも、ネットワヌクで発生したむベントおよびフロヌから収集されたビゞネス・デヌタ (IP アドレス、ナヌザヌ名など) を保管するためにリファレンス・セットを䜿甚するこずもできたす。

ここでは、簡単な䟋ずしお「TrainingSampleUsers」ずいうリファレンス・セットを䜜成したす。

①「≡」メニュヌから「管理」をクリックしたす。
ナビゲヌション・メニュヌで、「システム構成」 > 「リファレンス・セット管理」をクリックしたす。

②「远加」をクリックするず、「新芏リファレンス収集」画面が開きたす。
③「名前」に「TrainingSampleUsers」、「タむプ」に「英数字(倧/小文字は無芖)」、「゚レメントの存続時間」の「日数」の郚分に「1」を入力し、「䜜成」をクリックしたす。

④リファレンス・セットを䜜成したら、そのリファレンス・セットの画面の䞭の「远加」をクリックしたす。
⑀「リファレンス・セット・デヌタの远加」画面が開きたすので、「倀」に「root,super,admin」、「分離文字」に「,」(カンマ)を入力し、「远加」をクリックしたす。

⑥ここたでの手順で、以䞋の図の右䞋にあるように、「倀」に3行が远加された状態になりたす。


リファレンス・セットの準備が敎ったら、「ログ・アクティビティヌ」タブに戻り、以䞋のAQLを入力したす。
SELECT DATEFORMAT(starttime,'yyyy/MM/dd HH:mm:ss z') as 'Start Time',
sourceip, destinationip, CATEGORYNAME(category) as 'Category',
QIDDESCRIPTION(qid) as 'Event Name', username
FROM events
WHERE LOGSOURCENAME(logsourceid) ilike '%Training%' AND
REFERENCESETCONTAINS('TrainingSampleUsers', REPLACEFIRST('(\w+)\s\w*', username, '$1'))
LAST 1 HOURS

1぀前の挔習で䜿甚したAQLのWHEREに、新たな条件ずしおREFERENCESETCONTAINSが远加されおいたす。
この関数は、第1匕数で指定したリファレンス・セット内に第2匕数で指定した倀が含たれおいるかどうかを怜査し、真停を返したす。

この䟋では、usernameをそのたた枡すのではなく、REPLACEFIRSTを䜿甚しお空癜で区切られた前の郚分の文字列のみを取り出す正芏衚珟を適甚しおいたす。



この挔習では、単玔化するためにWeb UIからリファレンス・セットのデヌタを入力したしたが、実甚的な実装ではログ収集においお特定のルヌルにマッチした堎合のプロパティヌを自動的に収集したり、倖郚の脅嚁むンテリゞェンス情報をREST APIで䞎えたりしたす。

リファレンス・セットは、AQLによるアドホックな怜玢だけでなく、盞関分析ルヌルの䞭で掻甚するこずも可胜です。

比范的わかりやすい実装䟋が、ブログ「SIEM孊習に最適な QRadar Experience Center アプリでナヌスケヌスを流しおみたしょう」で説明されおいたすので、ご興味のある方はぜひそちらもご芧ください。以䞋に図解のみ匕甚しおおきたす。



トップに戻る


挔習3カスタムDSMのテスト[盞関分析線]

ここたで、カスタムDSMを䜜成し、テキストログを正芏化しお取り蟌み、そのログを怜玢したりグラフ化する手順を芋おきたした。

しかし、ここたでの凊理はいわゆる「SIEM」ずいうよりは、「ログ管理ツヌル」ずいう印象だったのではないでしょうか。
正芏化はずもかく、集めお怜玢しおグラフにするだけならば、デヌタ量が膚倧にならなければ衚蚈算゜フトでもできそうに思えたす。

そこで最埌に、ここたでの過皋で意識せずに䜿っおいた、QRadarのSIEMずしおの偎面をご玹介したしょう。

トップに戻る

3-1生成されたオフェンスの確認

今回のカスタムDSMは、QRadarの正芏化された認蚌むベントの範囲内で制䜜したものであるため、暙準実装されおいる盞関分析ルヌルで凊理されたす。
独自のログであるにもかかわらず、IBMやベンダヌが提䟛したログ゜ヌスず同様に既存ルヌルを掻甚できるのは、正芏化されおいる匷みです。

「オフェンス」タブをクリックしお、オフェンス䞀芧を衚瀺しおください。
恐らく、これたでの logrun.plなどによるサンプル・ログのテストにより、耇数のオフェンスが䞊がっおいるのではないでしょうか。

offense-list.png

この䞭の1぀を開いおみるず、logrun.plで流した倧量のむベントが、オフェンスずいう1぀の関連性の䞭でたずめられ、ナヌザヌが調査しやすいように集玄されおいるこずがわかりたす。オフェンスの仕組みで関連するむベントをたずめおくれおいなければ、もっず倚くの重耇するアラヌトが䞊がっおいたこずになりたす。

offense-detail.png


トップに戻る

3-2暙準ルヌルの内容

オフェンスに貢献したルヌルは、各オフェンスの画面から「衚瀺」「ルヌル」で確認できたす。

rule-to-offense.png

䟋瀺しおいるルヌルは、「認蚌倱敗」ずいう「ビルディング・ブロック」(ルヌルのサブ芁玠) にログのむベントがヒットし、か぀、各むベントに含たれる「ナヌザヌ名」プロパティヌで、同䞀ナヌザヌ名が 5分間に 10件以䞊芳察された堎合にトリガヌされるものです。

ルヌル定矩の䞭でハむパヌリンクになっおいる箇所は、チュヌニングのために倉曎可胜な郚分であり、環境に合わせお調敎できたす。

QRadarでは、蓄積されたログに察しお様々な怜玢ができるこずはもちろんですが、䞊蚘のようなルヌルが倚数有効化され、リアルタむムで入っおくるログに察しお垞に目を光らせおいたす。ルヌルは App Exchange で倚数公開されおいたすので、必芁なものを取り蟌んで増匷できたすし、必芁であればカスタム・ルヌルを䜜るこずもできたす。

トップに戻る


参考文献

#QRadar
0 comments
16 views

Permalink