の Security Lake クエリ AWS ソースバージョン 1 (OCSF 1.0.0-rc.2) - Amazon Security Lake

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

の Security Lake クエリ AWS ソースバージョン 1 (OCSF 1.0.0-rc.2)

次のセクションでは、Security Lake からのデータのクエリに関するガイダンスと、ネイティブにサポートされる のクエリ例を示します。 AWS ソース。これらのクエリは、特定の のデータを取得するように設計されています。 AWS リージョン。 これらの例では、us-east-1 (米国東部 (バージニア北部)) を使用しています。さらに、サンプルクエリでは最大 25件のレコードを返すLIMIT 25パラメータを使用しています。このパラメーターは省略することも、好みに応じて調整することもできます。その他の例については、「Amazon Security Lake OCSF クエリ GitHub ディレクトリ」を参照してください。

ログソーステーブル

Security Lake データをクエリするときは、データが存在する Lake Formation テーブルの名前を含める必要があります。

SELECT * FROM amazon_security_lake_glue_db_DB_Region.amazon_security_lake_table_DB_Region_SECURITY_LAKE_TABLE WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

ログソーステーブルの一般的な値には次のようなものがあります。

  • cloud_trail_mgmt_1_0 – AWS CloudTrail 管理イベント

  • lambda_execution_1_0 – Lambda CloudTrail のデータイベント

  • s3_data_1_0 - S3 CloudTrail のデータイベント

  • route53_1_0 - Amazon Route 53 Resolver クエリログ

  • sh_findings_1_0 – AWS Security Hub findings

  • vpc_flow_1_0 – Amazon Virtual Private Cloud (Amazon VPC) フローログ

例:us-east-1 リージョンのテーブルsh_findings_1_0内のすべてのSecurity Hub 結果

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

データベースリージョン

Security Lake データをクエリするときは、データのクエリ元のデータベースリージョンの名前を含める必要があります。Security Lakeが現在利用可能なデータベースリージョンの全リストについては、「Amazon Security Lake エンドポイント」を参照してください。

例: リスト AWS CloudTrail ソース IP からの アクティビティ

次の例では、ソース IP からのすべての CloudTrail アクティビティを一覧表示します。192.0.2.1 後に記録された 20230301 (2023 年 3 月 1 日)、 テーブル内 cloud_trail_mgmt_1_0 からの us-east-1 DB_Region.

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay > '20230301' AND src_endpoint.ip = '192.0.2.1' ORDER BY time desc LIMIT 25

パーティション日付

データをパーティションすることで、各クエリによってスキャンされるデータの量を制限できるようになるため、パフォーマンスが向上し、コストが削減されます。Security Lake はeventDayregionaccountidパラメータを通じて、パーティショニングを実装します。 eventDayパーティションではYYYYMMDD形式を使用します。

これはeventDayパーティションを使ったクエリの例です。

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay > '20230301' AND src_endpoint.ip = '192.0.2.1' ORDER BY time desc

eventDayの一般的な値は次の通りです。

過去 1 年間に発生したイベント

> cast(date_format(current_timestamp - INTERVAL '1' year, '%Y%m%d%H') as varchar)

過去 1 か月に発生したイベント

> cast(date_format(current_timestamp - INTERVAL '1' month, '%Y%m%d%H') as varchar)

過去 30 日間に発生したイベント

> cast(date_format(current_timestamp - INTERVAL '30' day, '%Y%m%d%H') as varchar)

過去 12 時間に発生したイベント

> cast(date_format(current_timestamp - INTERVAL '12' hour, '%Y%m%d%H') as varchar)

過去 5 分間に発生したイベント

> cast(date_format(current_timestamp - INTERVAL '5' minute, '%Y%m%d%H') as varchar)

7 ~ 14 日前に発生したイベント

BETWEEN cast(date_format(current_timestamp - INTERVAL '14' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar)

特定の日付以降に発生するイベント

>= '20230301'

例: テーブルの 2023 年 3 月 1 192.0.2.1日以降のソース IP からのすべての CloudTrail アクティビティのリスト cloud_trail_mgmt_1_0

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay >= '20230301' AND src_endpoint.ip = '192.0.2.1' ORDER BY time desc LIMIT 25

例: テーブル内の192.0.2.1過去 30 日間のソース IP からのすべての CloudTrail アクティビティのリスト cloud_trail_mgmt_1_0

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay > cast(date_format(current_timestamp - INTERVAL '30' day, '%Y%m%d%H') as varchar) AND src_endpoint.ip = '192.0.2.1' ORDER BY time desc LIMIT 25

CloudTrail データに対するクエリの例

AWS CloudTrail は、 でユーザーのアクティビティとAPI使用状況を追跡します。 AWS のサービス。 サブスクライバーは CloudTrail データをクエリして、次のタイプの情報を学習できます。

データクエリの例を次に示します CloudTrail 。

に対する不正な試行 AWS のサービス 過去 7 日間の

SELECT time, api.service.name, api.operation, api.response.error, api.response.message, unmapped['responseElements'], cloud.region, actor.user.uuid, src_endpoint.ip, http_request.user_agent FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND api.response.error in ( 'Client.UnauthorizedOperation', 'Client.InvalidPermission.NotFound', 'Client.OperationNotPermitted', 'AccessDenied') ORDER BY time desc LIMIT 25

192.0.2.1 過去 7 日間のソース IP からのすべての CloudTrail アクティビティのリスト

SELECT api.request.uid, time, api.service.name, api.operation, cloud.region, actor.user.uuid, src_endpoint.ip, http_request.user_agent FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND src_endpoint.ip = '127.0.0.1.' ORDER BY time desc LIMIT 25

過去 7 日間のすべてのIAMアクティビティのリスト

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND api.service.name = 'iam.amazonaws.com' ORDER BY time desc LIMIT 25

過去 7 AIDACKCEVSQ6C2EXAMPLE 日間に認証情報が使用されたインスタンス

SELECT actor.user.uid, actor.user.uuid, actor.user.account_uid, cloud.region FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND actor.user.credential_uid = 'AIDACKCEVSQ6C2EXAMPLE' LIMIT 25

過去 7 日間の失敗した CloudTrail レコードのリスト

SELECT actor.user.uid, actor.user.uuid, actor.user.account_uid, cloud.region FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_cloud_trail_mgmt_1_0 WHERE status='failed' and eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) ORDER BY time DESC LIMIT 25

Route 53 Resolver クエリログのクエリ例

Amazon Route 53 リゾルバークエリログは、Amazon 内のリソースによって行われたDNSクエリを追跡しますVPC。利用者は Route 53 リゾルバーのクエリログをクエリして、次の種類の情報を確認できます。

Route 53 Resolver クエリログの例をいくつか挙げます。

CloudTrail 過去 7 日間の からのDNSクエリのリスト

SELECT time, src_endpoint.instance_uid, src_endpoint.ip, src_endpoint.port, query.hostname, rcode FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_route53_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) ORDER BY time DESC LIMIT 25

過去 7 日間s3.amazonaws.comに一致するDNSクエリのリスト

SELECT time, src_endpoint.instance_uid, src_endpoint.ip, src_endpoint.port, query.hostname, rcode, answers FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_route53_1_0 WHERE query.hostname LIKE 's3.amazonaws.com.' and eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) ORDER BY time DESC LIMIT 25

過去 7 日間に解決されなかったDNSクエリのリスト

SELECT time, src_endpoint.instance_uid, src_endpoint.ip, src_endpoint.port, query.hostname, rcode, answers FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_route53_1_0 WHERE cardinality(answers) = 0 and eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

過去 7 日間に に解決されたDNSクエリのリスト 192.0.2.1

SELECT time, src_endpoint.instance_uid, src_endpoint.ip, src_endpoint.port, query.hostname, rcode, answer.rdata FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_route53_1_0 CROSS JOIN UNNEST(answers) as st(answer) WHERE answer.rdata='192.0.2.1' and eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

Security Hub の検出結果に関するクエリ

Security Hub では、 のセキュリティ状態を包括的に確認できます。 AWS と は、セキュリティ業界標準とベストプラクティスに照らして環境をチェックするのに役立ちます。Security Hub はセキュリティチェック用の結果を生成し、サードパーティのサービスから結果を受け取ります。

Security Hub 調査結果のクエリの例は次のとおりです。

過去 7 日間のMEDIUMと同等かそれ以上の新しい検出結果

SELECT time, finding, severity FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0_findings WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND severity_id >= 3 AND state_id = 1 ORDER BY time DESC LIMIT 25

過去 7 日間の重複する検出結果

SELECT finding.uid, MAX(time) AS time, ARBITRARY(region) AS region, ARBITRARY(accountid) AS accountid, ARBITRARY(finding) AS finding, ARBITRARY(vulnerabilities) AS vulnerabilities FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) GROUP BY finding.uid LIMIT 25

過去 7 日間の情報提供以外のすべての調査結果

SELECT time, finding.title, finding, severity FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE severity != 'Informational' and eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

リソースが Amazon S3 バケットである場合の結果 (時間制限なし)

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE any_match(resources, element -> element.type = 'amzn-s3-demo-bucket') LIMIT 25

Common Vulnerability Scoring System (CVSS) スコアが 1 (時間制限なし) より大きい結果

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE any_match(vulnerabilities, element -> element.cve.cvss.base_score > 1.0) LIMIT 25

一般的な脆弱性と露出に一致する検出結果 (CVE) CVE-0000-0000 (時間制限なし)

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE any_match(vulnerabilities, element -> element.cve.uid = 'CVE-0000-0000') LIMIT 25

過去 7 日間にSecurity Hub から結果を送信した製品の数

SELECT metadata.product.feature.name, count(*) FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) GROUP BY metadata.product.feature.name ORDER BY metadata.product.feature.name DESC LIMIT 25

過去 7 日間の結果に含まれるリソースタイプの数

SELECT count(*), resource.type FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 CROSS JOIN UNNEST(resources) as st(resource) WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) GROUP BY resource.type LIMIT 25

過去 7 日間の検出結果から得られた脆弱なパッケージ

SELECT vulnerability FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0, UNNEST(vulnerabilities) as t(vulnerability) WHERE vulnerabilities is not null LIMIT 25

過去 7 日間に変更された調査結果

SELECT finding.uid, finding.created_time, finding.first_seen_time, finding.last_seen_time, finding.modified_time, finding.title, state FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_sh_findings_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

Amazon VPC Flow Logs のクエリ例

Amazon Virtual Private Cloud (Amazon VPC) は、 のネットワークインターフェイスとの間で送受信される IP トラフィックに関する詳細を提供しますVPC。

Amazon VPC Flow Logs のクエリの例を次に示します。

特定の のトラフィック AWS リージョン 過去 7 日間の

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND region in ('us-east-1','us-east-2','us-west-2') LIMIT 25

過去 7 日間の送信元 IP 192.0.2.1 と送信元ポート22のアクティビティのリスト。

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND src_endpoint.ip = '192.0.2.1' AND src_endpoint.port = 22 LIMIT 25

過去 7 日間の個別の宛先 IP アドレスの数

SELECT COUNT(DISTINCT dst_endpoint.ip) FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) LIMIT 25

過去 7 日間に 198.51.100.0/24 から発生したトラフィック

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND split_part(src_endpoint.ip,'.', 1)='198'AND split_part(src_endpoint.ip,'.', 2)='51' LIMIT 25

過去 7 日間のすべてのHTTPSトラフィック

SELECT dst_endpoint.ip as dst, src_endpoint.ip as src, traffic.packets FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND dst_endpoint.port = 443 GROUP BY dst_endpoint.ip, traffic.packets, src_endpoint.ip ORDER BY traffic.packets DESC LIMIT 25

過去 7 日間のポート443宛ての接続のパケット数順

SELECT traffic.packets, dst_endpoint.ip FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND dst_endpoint.port = 443 GROUP BY traffic.packets, dst_endpoint.ip ORDER BY traffic.packets DESC LIMIT 25

過去 7 日間の IP 192.0.2.1192.0.2.2 間のすべてのトラフィック

SELECT start_time, end_time, src_endpoint.interface_uid, connection_info.direction, src_endpoint.ip, dst_endpoint.ip, src_endpoint.port, dst_endpoint.port, traffic.packets, traffic.bytes FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND( src_endpoint.ip = '192.0.2.1' AND dst_endpoint.ip = '192.0.2.2') OR ( src_endpoint.ip = '192.0.2.2' AND dst_endpoint.ip = '192.0.2.1') ORDER BY start_time ASC LIMIT 25

過去 7 日間のすべてのインバウンドトラフィック

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND connection_info.direction = 'ingress' LIMIT 25

過去 7 日間のすべてのアウトバウンドトラフィック

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND connection_info.direction = 'egress' LIMIT 25

過去 7 日間に拒否されたすべてのトラフィック

SELECT * FROM amazon_security_lake_glue_db_us_east_1.amazon_security_lake_table_us_east_1_vpc_flow_1_0 WHERE eventDay BETWEEN cast(date_format(current_timestamp - INTERVAL '7' day, '%Y%m%d%H') as varchar) and cast(date_format(current_timestamp - INTERVAL '0' day, '%Y%m%d%H') as varchar) AND type_uid = 400105 LIMIT 25