QRadarでのサポートされているログ
QRadarが標準でサポートしているログ種別は、DSM(Device Support Module)が対応します。
Google検索等で[Qradar supported DSM]と検索すると、ログ取り込みする際に開発いらずでパーシングされるログタイプ(製品名、ソフトウェアバージョン、プロトコル、ログフォーマット等)が確認できます。
https://www.ibm.com/docs/ja/dsm?topic=configuration-qradar-supported-dsms
の一覧に含まれている場合には、QRadar側で何もせずともログ取り込み、ログ正規化、QRadarでのフィールドマッピング、ルールでの利用ができます。
しかし、リストに無いログに関してはuDSM開発が必要となります。
uDSMとは、universal Device Support Moduleの略であり、QRadarが標準でサポートしているログ種別以外を取り込みパーシングするために利用されます。
サンプルログをQRadarに取り込む
サンプルログ
QRadarにSSHログインして、以下の4行のログをPhysicalAccess.syslogという名前で保存する。
15/sep/2020:11:56:11 Location:HDQ ID:046 Name:Susan Cameron Entrance:Cafeteria Access:Granted Direction:In
15/sep/2020:12:02:31 Location:HDQ ID:112 Name:Anthony Pease Entrance:Main Entrance Access:Granted Direction:In
15/sep/2020:12:07:45 Location:HDQ ID:828 Name:Eric Williams Entrance:Back Door Access:Denied Direction:In
15/sep/2020:12:11:13 Location:HDQ ID:046 Name:Susan Cameron Entrance:Alley Garage Access:Granted Direction:Out
サンプルログをQRadarに取り込む
/opt/qradar/binディレクトリに存在しているlogrun.plを使ってログをQRadar自身に流す。
Note:
PhysicalAccess.syslogファイルの中身のログを上から下に対して読み込んでログを投げる。
元の時間を表すタイムスタンプの他にQRadarが現在の時間をヘッダーにつける
More information about the logrun.pl utility:
logrun.pl [-d <host>] [-p <port>] [-f filename] [-u <IP>] [-l] [-t] [-b] [-n NAME] [-v] <messages per second>
Options:
-d : destination syslog host (default 127.0.0.1)
-p : destination port (default 514)
-f : filename to read (default readme.syslog)
-b : burst the same message for 20% of the delay time
-t : use TCP instead of UDP for sending syslogs
-v : verbose, display lines read in from file
-n : use NAME for object name in syslog header
-l : loop indefinately
-u : use this IP as spoofed sender (default is NOT to send IP header)
ログの確認
QRadarのWebUIで[ログ・アクティビティ]をクリックする。
以下スクリーンショットのように[イベント名:Unknown log event]が発生するので右の赤枠のボタンを押してポーズする。対象のイベントをダブルクリックする。
以下のようにイベントの中身を確認することができる。
[Payload Information]は、送信した生ログ
DSM Editorを使ったログソースタイプの作成
WebUIから[管理]->[DSM Editor]とクリックする。
[Log Source Type Name]に"Physical Access"と入力して[Save]をクリックする。
[Cancel]ボタンをクリックしてDSM Editorを閉じる。
ログソースの追加
WebUIから[管理]->[Log Sources]とクリックする。
[Physical Access]を選び[Step2: Select Protocol Type]をクリックする。
[Syslog]を選び[Step 3: Configure Log Source Parameters]をクリックする。
[Name]に"Physical Access Headquarter"と入力、[Description]に"Physical Access Control System"と入力する。
一番下までスクロールして、[Coalescing Events]をOffにする。[Step4: Configure Protocol Parameters]をクリックする。
[Log Source Identifier*]に"10.0.120.12"と入力して、[Finish]ボタンをクリックする。
以下のようにログソースが作成されたことを確認する。IDは自動採番される。
[管理]に戻ると、黄色で[There are undeployed changes..]というメッセージが出るので、[Deploy Changes]をクリックする。
DSM Editorでのイベントプロパティ設定
QRadar CLIにて再度logrun.plで同じコマンドを実行する。
/opt/qradar/bin/logrun.pl -f PhysicalAccess.syslog -l -u 10.0.120.12 2
QRadarのWebUIの[ログ・アクティビティ]にて今度は、[Event Name]が"Physical Access Messages",[Log Source]が"Physical Access Headquater"に変わったことを確認する。この状態は、[Low Level Category]が"Stored"なのでログ正規化が行われていないと解釈できる。
右のボタンでログの流れを停止させ、該当ログを選択した後に[Action]->[DSM Editor]ボタンをクリックする。
右のレンチマークをクリックして、[Parsing Status],[Event ID],[Log Source Time],[Username]だけに☑がはいる状態にしてUpdateボタンをクリックする。
(ここに表示されるのはデフォルトでQRadarが定義しているイベントフィールドで、今回のサンプルログで利用するフィルードだけを表示するようにする)
以下の画面のようになることを確認する。
ログの正規化において最低でもEventIDがマッピングされている必要がある。
左のパネルから[Event ID]を見つけて▼をクリックし、[Override system behavior]に☑を入れる
サンプルログの種別として以下の3種類があるためそれらをEventIDとして定義する。
- Access:Out:Granted
- Access:In:Granted
- Access:In:Denied
Expressonは、正規表現で記述する。Format Stringは、正規表現でマッチしたグループ番号を$で定義する。
[Expression]に\tAccess:(Granted|Denied)\tDirection:(In|Out)
[Format String]に$2:$1
を入れて[OK]ボタンをクリックする。
[Parsing Status*]が[Parsing Failed]から[Parsed but Not Mapped]に変わったことを確認する。
同じ要領で[Username]を次の通り定義するし[OK]ボタンをクリックする。
[Expression]にName:(\w+\s\w+)\s
[Format String]に$1
以下のように[Username]に文字列が入ることが確認できる。
同じ要領で[Log Source Time]を次の通り定義するし[OK]ボタンをクリックする。
[Expression]に\s(\d{2}/\w{3}/\d{4}:\d{2}:\d{2}:\d{2})\tLocation:
[Format String]に$1
[Date Format]にdd/MMM/yyyy:HH:mm:ss
DSM Editorでのイベントマッピング
ここまでの手順で、ログのフィールドをQRadarが持っているイベントカラムにマッピングすることができた、しかしまだEventIDがQradar上のQIDとマッピングができていないためマッピングを行う。
QIDには、[High Level Category],[Log Level Category],[Severity],[Event Name],[Description]の定義が含まれる
QID Recordsで[Search]ボタンをクリックするとQRadarが持っているQID全部を表示できる。対象のログソースが既存のfirewallやwindowsと同じような意味合いのものであれば[Search]して出てきた近しい意味合いのものを選択することができる。今回は、既存のものと違うため新にQIDを作成する。
[Create New QID Record]をクリックする。
Name:Physical Exit Permitted
Log Source Type: Physical Access
High Level Category: Access
Low Level Category: Access Permitted
Severity:2
[Save]ボタンをクリックする。
[Parsing Status*]が[Parsed and Mapped]に変わることを確認する。
その他2つのEvent IDは以下の表のとおり同様の手順でイベントMappingする。
全ての[Parsing Status*]が[Parsed and Mapped]に変わることを確認する。
[Save]ボタンをクリック。[Close]ボタンでDSM Editorを閉じる
uDSM作成後のログ確認
これまで定義してきた項目(Event Name,Severity,Username,Log Source Time)が正しく表示されることを確認する。