収集したログデータをリアルタイムで照会および分析することで、ネットワーク活動を監視し、トラフィック例外を特定できます。 これにより、セキュリティ監視機能とセキュリティイベントの応答効率が向上します。 このトピックでは、クエリ文を使用する方法と、クエリ結果を表示および分析する方法について説明します。
文の説明
検索と分析ステートメント
ログ分析のクエリステートメントは、縦棒 (|) で区切られた検索ステートメントと分析ステートメントで構成されます。
Search statement|Analytic statement
検索文は、Simple Log Serviceに固有の構文を使用します。 検索文は、特定の検索条件を満たすログを照会するために使用され、個別に使用できます。 検索文には、キーワード、数値、数値範囲、スペース、およびアスタリスク (*) を含めることができます。 検索文にスペースまたはアスタリスク (*) のみが含まれている場合、すべてのログが照会されます。
検索は、インデックス方式に基づいて全文検索とフィールド固有検索に分類されます。 詳細については、「検索構文」をご参照ください。
分析ステートメントは、検索結果のデータを分析し、Logstore内のすべてのデータを分析するために使用されます。 分析ステートメントは、検索ステートメントと一緒に実行する必要があります。 分析ステートメントを指定しない場合、クエリ結果のみが返され、データ分析は実行されません。 分析ステートメントの構文と機能の詳細については、「ログ分析の概要」をご参照ください。
一般的なクエリ文
このセクションでは、Cloud Firewallログの一般的なクエリ文について説明し、例を示します。
トラフィック統計のクエリ文
インバウンドトラフィックのログをインターネット経由で内部資産
1.2.*.*
に照会し、インバウンドトラフィックの合計量とインバウンドパケットの合計数を計算します。log_type:internet_log and direction:"in" and dst_ip:1.2.*.* | select sum(in_packet_bytes) as flow, sum(in_packet_count) as packet
NATファイアウォールのトラフィック統計を照会し、送信元IPアドレス、送信先IPアドレス、および送信先ポートに基づいて、アセットの上位10個のインバウンドトラフィック量とアウトバウンドトラフィック量を分析します。
log_type:nat_firewall_log | select src_ip, dst_ip, dst_port, sum(in_packet_bytes) as in_bytes, sum(out_packet_bytes) as out_bytes, sum(total_packet_bytes) as total_bytes group by src_ip, dst_ip, dst_port order by total_bytes desc limit 10
アクセス制御の共通文
インターネット経由で内部アセットに対して開始され、アクセス制御ポリシーにヒットするインバウンドトラフィックのログを照会します。
log_type:internet_log and direction:"in" and not acl_rule_id:00000000-0000-0000-0000-000000000000
not acl_rule_id
フィールドの値のすべての桁が0の場合、アクセス制御ポリシーがヒットします。 そうでない場合、アクセス制御ポリシーはヒットしません。インターネット経由の内部アセットから開始され、アクセス制御ポリシーによってブロックされたアウトバウンドトラフィックのログを照会し、上位10個の宛先IPアドレスと宛先ポートの分布を分析します。
log_type:internet_log and direction:out and not acl_rule_id:00000000-0000-0000-0000-000000000000 and rule_result:drop | select dst_ip, dst_port, count(*) as cnt group by dst_ip, dst_port order by cnt desc limit 10
インターネット経由の内部アセットから開始されたアウトバウンドトラフィックのログを照会し、宛先ポート443、3つ以上のパケット、および未確認のドメイン名を使用します。 パケット数が3より大きい場合、TCPの3ウェイハンドシェイクが完了する。 次に、宛先CIDRブロックとアプリケーション名に基づいて、上位10個の送信元IPアドレス、宛先IPアドレス、およびアプリケーションを分析します。
log_type:internet_log and direction:out and dst_port:443 and total_packet_count>3 and domain:""| select array_agg(distinct src_ip) as srcip, array_agg(distinct dst_ip) as dstip, slice(split(dst_ip,'.' ,4),1,3) as dstip_c, app_name, COUNT(1) as cnt GROUP by dstip_c,app_name order by cnt desc limit 10
攻撃防止のための一般的な声明
インターネット経由で内部アセットに対して開始され、保護ポリシーにヒットするインバウンドトラフィックのログを照会します。
log_type:internet_log and direction:"in" and not ips_rule_id:00000000-0000-0000-0000-000000000000
not ips_rule_id
フィールドの値のすべての桁が0の場合、保護ポリシーがヒットします。 そうでない場合、保護ポリシーはヒットしません。インターネット経由の内部アセットから開始され、保護ポリシーにヒットするアウトバウンドトラフィックのログを照会します。 次に、IPアドレス、ポート、アプリケーション、ドメイン名、侵入防止システム (IPS) ポリシー、およびポリシーヒット結果に関する情報を取得します。
log_type:internet_log and direction:out and not ips_rule_id:00000000-0000-0000-0000-000000000000 | select src_ip, dst_ip, dst_port,app_name, domain,ips_rule_id, ips_rule_name, rule_result
手順
Cloud Firewallコンソールにログインします。
左側のナビゲーションウィンドウで、
を選択します。 [ログ分析] ページで、ログクエリ タブをクリックします。ログ分析ページの右上隅にあるアイコンをクリックします。 [クエリ] タブで、機能を無効にするか、クエリの時間範囲を指定します。 オプションです。 デフォルトでは、ログクエリ タブを開くと、システムは自動的にログクエリを実行し、クエリ結果を表示します。
検索ボックスにクエリ文を入力します。
検索文は、ログの表示、検索、およびフィルタリングに使用されます。 検索文は単純なクエリのみをサポートします。 検索文を使用して、時間範囲、クエリの種類、キーワードなどの条件を使用して、特定のデータセットを検索できます。 検索文は別に使用できます。 詳細については、「検索構文」をご参照ください。
分析ステートメントは、ログのフィルタリング、変換、計算、および集計に使用されます。 たとえば、分析ステートメントを使用して、特定の期間内の平均値を計算したり、さまざまな期間のデータを比較したりできます。 分析ステートメントは、
search statement | analytic statement
形式の検索ステートメントと一緒に使用する必要があります。 構文の詳細については、「集計関数」をご参照ください。
クエリまたは分析するデータの時間範囲を指定します。 次のいずれかの方法を使用して、時間範囲を指定できます。 分析ステートメントで時間範囲を指定した場合、その時間範囲はクエリと分析に使用されます。
重要既定では、クエリ文を実行した後、100行のデータのみが返されます。 返されるデータの行数を増やすには、LIMIT句を使用できます。 詳細は、「LIMIT句」をご参照ください。
クエリと分析ページの上部で、ドロップダウンリストから時間範囲を選択します。 例: 過去15分。
分析ステートメントで、
__time__
フィールドを使用して、閉じた時間間隔である時間範囲を指定します。 例:* | SELECT * FROMログWHERE __time __> 1558013658 AND __time __< 1558013660
分析ステートメントで、from_unixtimeまたはto_unixtime関数を使用して、指定された時間の形式を変換します。 例:
* | SELECT * FROMログWHERE from_unixtime(__time__) > from_unixtime(1664186624) およびfrom_unixtime(__time__) < now()
* | SELECT * FROM log WHERE __time__ > to_unixtime(date_parse('2022-10-19 15:46:05 ', ' % Y-% m-% d % H:% i:% s')) および__time__ < to_unixtime(now())
[検索と分析] をクリックして、クエリと分析結果を表示します。 詳細については、「ログの照会と分析」をご参照ください。
クエリと分析結果の表示
ヒストグラムや [生ログ] タブなどのモジュールに表示されるデータに基づいて、クエリと分析の結果を表示できます。
分析ステートメントでLIMIT句を指定しない場合、100行のデータが返されます。 さらにデータを取得する場合は、LIMIT句を指定します。
次のセクションでは、[ヒストグラム] タブと [生ログ] タブに表示されるデータを表示する方法について説明します。 他のモジュールの詳細については、「ログの照会と分析」をご参照ください。
ヒストグラム
ヒストグラムは、照会されたログの分布を経時的に表示します。
緑色の長方形の上にポインターを移動すると、長方形によって表される期間と、その期間内に返されたログの数を表示できます。
緑色の四角形をダブルクリックすると、細かいレベルでログの分布を表示できます。 [Rawログ] タブで、指定された期間内に返されたログを表示することもできます。
Rawログタブ
[生ログ] タブには、ログのクエリと分析結果が表示されます。
セクション | 説明 |
1 | ログの表示形式と, ログの並び順を切り替えます。 |
2 | アイコンをクリックして、ログをコンピュータにダウンロードするか、ログのダウンロードレコードを表示します。 詳細については、「ログのエクスポート」をご参照ください。 |
3 |
|
4 | ログ表示フィールド、インデックスログ、およびシステムフィールドを表示します。
|
5 |
|
6 | ログの詳細を表示します。 ログフィールドの詳細については、「ログフィールド」をご参照ください。
|