AQL 検索ストリングの例

Ariel 照会言語 (AQL) を使用して、 Ariel データベース内のイベント、フロー、および simarc 表から特定のフィールドを取得します。

注: AQL 照会を作成するときに、任意の文書から単一引用符を含むテキストをコピーし、そのテキストを IBM QRadarに貼り付けると、照会は解析されません。 回避策として、テキストを QRadar に貼り付けて単一引用符を再入力するか、 IBM Knowledge Center からテキストをコピーして貼り付けることができます。

アカウント使用状況のレポート

ユーザー・コミュニティーごとに脅威や使用状況のインディケーターを変えることができます。

いくつかのユーザー・プロパティー (部門、 ロケーション、マネージャーなど) に関するレポートを作成するには、 リファレンス・データを使用します。 外部リファレンス・データを使用できます。

以下の照会は、 ログイン・イベントに含まれるユーザーに関するメタデータ情報を返します。

SELECT
REFERENCETABLE('user_data','FullName',username) as 'Full Name',
REFERENCETABLE('user_data','Location',username) as 'Location',
REFERENCETABLE('user_data','Manager',username) as 'Manager',
DISTINCTCOUNT(username) as 'Userid Count',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
COUNT(*) as 'Event Count'
FROM events
WHERE qidname(qid) ILIKE '%logon%'
GROUP BY 'Full Name', 'Location', 'Manager'
LAST 1 days

複数のアカウント ID での情報抽出

この例では、個々のユーザーがネットワーク全体にわたって複数のアカウントを持っています。 組織にはユーザー・アクティビティーの単一ビューが必要です。

リファレンス・データを使用して、ローカルのユーザー ID をグローバル ID にマップします。

以下の照会は、 疑わしい振る舞いというフラグが立てられたイベントで使用されているユーザー・アカウントをグローバル ID ごとに返します。

SELECT
REFERENCEMAP('GlobalID Mapping',username) as 'Global ID', 
REFERENCETABLE('user_data','FullName', 'Global ID') as 'Full Name',
DISTINCTCOUNT(username),
COUNT(*) as 'Event count'
FROM events
WHERE RULENAME(creEventlist) ILIKE '%suspicious%'
GROUP BY 'Global ID'
LAST 1 days

以下の照会は、 完了したアクティビティーをグローバル ID ごとに表示します。

SELECT
QIDNAME(qid) as 'Event name', 
starttime as 'Time',
sourceip as 'Source IP', destinationip as 'Destination IP',
username as 'Event Username',
REFERENCEMAP('GlobalID_Mapping', username)as 'Global User'
FROM events
WHERE 'Global User' = 'John Doe'
LAST 1 days

疑わしい長期的なビーコンの識別

多くの脅威は、コマンドとコントロールを使用して、数日、数週間、および数カ月にわたり定期的に通信します。

拡張検索により、 経時的な接続パターンを識別できます。 例えば、IP アドレス間または IP アドレスと地理的位置との間で日/週/月ごとの、整合している接続、短時間の接続、低ボリュームの接続、接続数を照会できます。

以下の照会は、1 時間ごとに作動するビーコンの可能性があるインスタンスを検出します。

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'HH')) as 'different hours',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection = 'L2R'
GROUP BY sourceip, destinationip
HAVING "different hours" > 20
AND "total flows" < 25
LAST 24 hours
ヒント: この照会は、プロキシー・ログおよびその他のイベント・タイプで機能するように変更できます。

以下の照会は、1 日ごとに作動するビーコンの可能性があるインスタンスを検出します。

SELECT sourceip, destinationip,
DISTINCTCOUNT(DATEFORMAT(starttime,'dd'))as 'different days',
COUNT(*) as 'total flows'
FROM flows
WHERE flowdirection='L2R'
GROUP BY sourceip, destinationip
HAVING "different days" > 4
AND "total flows" < 14
LAST 7 days

以下の照会は、送信元 IP と宛先 IP の間で毎日作動するビーコンを検出します。 ビーコンが作動する時刻は毎日一定しているわけではありません。 ビーコンは短い間隔で作動します。

SELECT
sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG( hourofday*hourofday) - (AVG(hourofday)^2))as variance,
COUNT(*) as 'total flows'
FROM flows
GROUP BY sourceip, destinationip
HAVING variance < 01 and "total flows" < 10
LAST 7 days

以下の照会は、プロキシー・ログ・イベントを使用することで、 毎日ドメインに送信されるビーコンを検出します。 ビーコンが作動する時刻は毎日一定しているわけではありません。 ビーコンは短い間隔で作動します。

SELECT sourceip,
LONG(DATEFORMAT(starttime,'hh')) as hourofday,
(AVG(hourofday*hourofday) - (AVG(hourofday)^2)) as variance,
COUNT(*) as 'total events'
FROM events
WHERE LOGSOURCEGROUPNAME(devicegrouplist) ILIKE '%proxy%'
GROUP BY url_domain
HAVING variance < 0.1 and "total events" < 10
LAST 7 days

url_domain プロパティーはプロキシー・ログのカスタム・プロパティーです。

外部脅威情報

使用状況およびセキュリティーのデータを外部脅威情報データと相関させると、 重要な脅威のインディケーターを実現できます。

拡張検索では、 外部脅威情報インディケーターを他のセキュリティー・イベントおよび使用状況データと相互リファレンスできます。

数日、数週間、または数カ月にもわたる外部脅威データのプロファイルを作成して、アセットおよびアカウントのリスク・レベルを判定し、優先順位を付ける方法を以下の照会に示します。

Select
REFERENCETABLE('ip_threat_data','Category',destinationip) as 'Category',
REFERENCETABLE('ip_threat_data','Rating', destinationip) as 'Threat Rating',
DISTINCTCOUNT(sourceip) as 'Source IP Count',
DISTINCTCOUNT(destinationip) as 'Destination IP Count'
FROM events
GROUP BY 'Category', 'Threat Rating'
LAST 1 days

アセット情報および構成

脅威および使用状況のインディケーターは、 アセット・タイプ、オペレーティング・システム、脆弱性の状況、サーバー・タイプ、 分類などのパラメーターによって異なります。

この照会では、拡張検索およびアセット・モデルにより、 ロケーションに対する運用上の情報を得ることができます。

Assetproperty 関数はアセットからプロパティー値を取得します。 この値を使用してアセット・データを結果に含めることができます。

SELECT
ASSETPROPERTY('Location',sourceip) as location,
COUNT(*) as 'event count'
FROM events
GROUP BY location
LAST 1 days

アセット・モデルで拡張検索およびユーザー・アイデンティティー・トラッキングを 使用する方法を以下の照会に示します。

AssetUser 関数はアセット・データベースからユーザー名を取得します。

SELECT 
APPLICATIONNAME(applicationid) as App,
ASSETUSER(sourceip, now()) as srcAssetUser,
COUNT(*) as 'Total Flows'
FROM flows
WHERE srcAssetUser IS NOT NULL
GROUP BY App, srcAssetUser
ORDER BY "Total Flows" DESC
LAST 3 HOURS

ネットワーク・ルックアップ関数

Network LOOKUP 関数を使用すると、IP アドレスに関連付けられたネットワーク名を取得できます。

SELECT NETWORKNAME(sourceip) as srcnet,
NETWORKNAME(destinationip) as dstnet
FROM events

ルール・ルックアップ関数

Rule LOOKUP 関数を使用すると、ID によってルールの名前を取得できます。

SELECT RULENAME(123) FROM events

以下の照会は、特定のルール名をトリガーしたイベントを返します。

SELECT * FROM events
WHERE RULENAME(creEventList) ILIKE '%my rule name%'

カスタム・プロパティー

「拡張検索」オプションを使用すると、イベントおよびフローのカスタム・プロパティーにアクセスできます。

次の照会では、カスタム・プロパティー「MyWebsiteUrl」を使用して、特定 Web URL を基準にイベントをソートしています。
SELECT "MyWebsiteUrl", * FROM events ORDER BY "MyWebsiteUrl"