QRadarのログ検索について
- QRadar はログをログソースという単位でまとめてシステム内に取り込みます
- ログソースを削除すると取り込んでいたログも一緒に削除されます
- QRadarはLinuxOSで動いていますが、基本的にLinux CLIからのログ検索はできません
- QRadarで収集したログはAriel Databaseの中に保存され、Linux CLIからクエリをかけられますが見にくい
最初の検索画面表示
ログ検索するためには、WebUIから[Log Activity]をクリックする
取り込んでいるログがリアルタイムで表示される
中身の詳細を見るためには右上のポーズボタンを教えて止める必要がある
ポーズしたら、見たいログをダブルクリックで開く
ログソースを指定した検索
[Add Filter]をクリックする
Parameterにて[Log Source[Indexed]]を選び対象のログソースを選び検索を実行する
Log Source Filterにて任意の文字列を入れて、閲覧したいログソースを検索して指定し[Add Filter]ボタンをクリックする
以下のような画面に遷移する。
もし何も表示されないようなViewの[Select An option]をクリックして時間帯を変更する
例:Last 5 Minutes = 現在時刻から過去5分間のログを表示
色々な条件をつけて検索を行う
[Search]をクリックする
[Edit Search]をクリックする
以下の画面に遷移する。この画面全体を使って検索条件を組み立てる
送信元IP、送信先IPを指定した検索
Search Parametersにて[Source IP[Indexed]]を選び[Value]に任意のIPアドレスを記入する
Add Filterを押す
Search Parametersにて[Destination IP[Indexed]]を選び[Value]に任意のIPアドレスを記入する
Add Filterを押す
Search Parametersは以下のようになる。複数条件を[Add Filter]で登録が可能で、And条件となる。
時間を指定した検索
上段のTime Rangeからログ検索対象範囲である時間設定を行う
フィールドの順序
Log Activityの画面で表示される列の名前(カラム)の順序を変更することができる
長いログによっては不要なカラムを後ろにもってきて重要なカラムを前にもってきて見えるようにするといった用途がある
Column DefinitionにてColumnsの順序変更(↑と↓を使って順序を変更)及び、非表示のカラムを追加・削除(Available Columnsが全カラム情報で>及び<を使って変更)が可能
検索の実行
ページ一番下の右[Search]ボタンを押して検索を実行する
特定の文字列があるログのみを検索
Search ParametersのParameterにて[Payload Contains]を選びValueを任意の文字列にして[Add Filter]をクリックする
イベントIDをキーにした検索(グラフ表示)
AQL
AQLについて https://www.ibm.com/docs/ja/qsip/7.4?topic=aql-query-structure
SQLの構文のような形でQueryを投げることができる
例:過去2日において、特定のログソースから通信元IPと通信先IPとユーザ名だけを10件抽出
SELECT sourceip, destinationip, username FROM events WHERE LOGSOURCENAME(logsourceid) = '{ログソース名}' GROUP by sourceip, destinationip ORDER BY sourceip DESC LIMIT 10 LAST 2 DAYS
例:ログソース毎のEPSを表示する(過去5分)
SELECT LOGSOURCENAME(logsourceid) AS "Log Source", SUM(eventcount) AS "Number of Events in Interval", SUM(eventcount) / 300 AS "EPS in Interval" FROM events GROUP BY "Log Source" ORDER BY "EPS in Interval" DESC LAST 5 MINUTES
例:ログソース毎のEPSを表示する(期間指定)
SELECT LOGSOURCENAME(logsourceid) AS "Log Source", SUM(eventcount) AS "Number of Events in Interval", SUM(eventcount) / 300 AS "EPS in Interval" FROM events GROUP BY "Log Source" ORDER BY "EPS in Interval" START '2023-10-01 00:00' STOP '2023-10-01 00:05'
APIにてイベント検索
準備
APIキーの取得 https://qiita.com/tak_morita39/items/e7d68014a2d422bfd61f を行って以下のSEC:xxxで利用する
以下は、過去2日間において特定のログソースから来たログを抽出する。
ただしログのフィールドは、sourceip,destinationip,Username
ログ検索
curl --location --request POST 'https://{QRadarのコンソールIPアドレス}/api/ariel/searches?query_expression=SELECT sourceip,destinationip,username FROM events WHERE LOGSOURCENAME(logsourceid)='{ログソース名}' GROUP BY sourceip,destinationip ORDER BY sourceip DESC LIMIT 10 LAST 2 DAYS
--header 'SEC: 1f640b85-690e-483b-9d2e-033b8eaef542'
--header 'Accept: application/json'
--header 'Cookie: JSESSIONID=6FD003B60D29D74B5BCD342BCD03A318'
{
"cursor_id": "7c5a00b5-5aab-41b3-b472-df98aa2852cf",
"status": "WAIT",
"compressed_data_file_count": 0,
"compressed_data_total_size": 0,
"data_file_count": 0,
"data_total_size": 0,
"index_file_count": 0,
"index_total_size": 0,
"processed_record_count": 0,
"desired_retention_time_msec": 86400000,
"progress": 0,
"progress_details": [],
"query_execution_time": 0,
"query_string": "SELECT sourceip, destinationip, username FROM events WHERE LOGSOURCENAME(logsourceid)='FortiGate @ 192.168.49.15a7a4bfb5-5c57-42b1-81af-801695091793' GROUP by sourceip, destinationip ORDER BY sourceip DESC LIMIT 10 LAST 2 DAYS",
"record_count": 0,
"size_on_disk": 0,
"save_results": false,
"completed": false,
"subsearch_ids": [],
"snapshot": null,
"search_id": "7c5a00b5-5aab-41b3-b472-df98aa2852cf"
}
結果の抽出
ログ検索で取得したsearch_idを使って結果を取得する
curl --location --request GET 'https://{QRadarのコンソールIPアドレス}/api/ariel/searches/7c5a00b5-5aab-41b3-b472-df98aa2852cf/results' \
--header 'SEC: 1f640b85-690e-483b-9d2e-033b8eaef542' \
--header 'Accept: application/json' \
--header 'Cookie: JSESSIONID=FB4BCA54D5B168F5BD83EAC2287AFA55'
{
"events": [
{
"sourceip": "127.0.0.1",
"destinationip": "127.0.0.1",
"FIRST_username": null
},
{
"sourceip": "127.0.0.1",
"destinationip": "192.168.49.15",
"FIRST_username": null
},
{
"sourceip": "127.0.0.1",
"destinationip": "63.137.229.3",
"FIRST_username": null
},
{
"sourceip": "127.0.0.1",
"destinationip": "12.34.97.18",
"FIRST_username": null
},
{
"sourceip": "192.168.211.60",
"destinationip": "192.168.49.15",
"FIRST_username": null
},
{
"sourceip": "192.168.68.191",
"destinationip": "192.168.49.15",
"FIRST_username": null
},
{
"sourceip": "192.168.49.115",
"destinationip": "192.168.49.15",
"FIRST_username": null
},
{
"sourceip": "192.168.49.115",
"destinationip": "192.168.97.18",
"FIRST_username": null
},
{
"sourceip": "192.168.49.115",
"destinationip": "192.168.49.255",
"FIRST_username": null
},
{
"sourceip": "192.168.49.114",
"destinationip": "192.168.49.255",
"FIRST_username": null
}
]
}
QRadar APIツール
https://{QRadarコンソールのIPアドレス}/api_doc
APIキーを発行せずとも結果確認が可能