As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Consultas do Security Lake para AWS versão de origem 1 (OCSF1.0.0-rc.2)
A seção a seguir fornece orientação sobre como consultar dados do Security Lake e inclui alguns exemplos de consultas com suporte nativo AWS fontes. Essas consultas são projetadas para recuperar dados em um local específico Região da AWS. Esses exemplos usam us-east-1 (Leste dos EUA (Norte da Virgínia)). Além disso, as consultas de exemplo usam um parâmetro LIMIT 25
, que retorna até 25 registros. Você pode omitir esse parâmetro ou ajustá-lo com base nas suas preferências. Para obter mais exemplos, consulte o GitHub diretório Amazon Security Lake OCSF Queries.
Tabela de origem do log
Ao consultar dados do Security Lake, você deve incluir o nome da tabela do Lake Formation na qual os dados residem.
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) LIMIT25
Os valores comuns da tabela de origem do log incluem o seguinte:
cloud_trail_mgmt_1_0
– AWS CloudTrail eventos de gerenciamentolambda_execution_1_0
— eventos CloudTrail de dados para Lambdas3_data_1_0
— eventos CloudTrail de dados para S3route53_1_0
– Logs de consulta do Amazon Route 53 Resolversh_findings_1_0
– AWS Security Hub descobertasvpc_flow_1_0
— Registros de fluxo da Amazon Virtual Private Cloud (AmazonVPC)
Exemplo: todas as descobertas do Security Hub na tabela sh_findings_1_0
da região us-east-1
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) LIMIT25
Região do banco de dados
Ao consultar dados do Security Lake, você deve incluir o nome da região do banco de dados da qual você está consultando os dados. Para obter uma lista completa das regiões do banco de dados em que o Security Lake está disponível atualmente, consulte os endpoints do Amazon Security Lake.
Exemplo: Lista AWS CloudTrail atividade do IP de origem
O exemplo a seguir lista todas as CloudTrail atividades do IP de origem 192.0.2.1
que foram gravados após 20230301
(01 de março de 2023), na tabela cloud_trail_mgmt_1_0
do 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 LIMIT25
Data da partição
Ao particionar os dados, você pode restringir a quantidade que cada consulta verifica, melhorando a performance e reduzindo o custo. O Security Lake implementa o particionamento por meio dos parâmetros eventDay
, region
e accountid
. As partições eventDay
usam o formato YYYYMMDD
.
Este é um exemplo de consulta usando a partição 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
Os valores comuns de eventDay
incluem o seguinte:
- Eventos ocorridos no último 1 ano
-
> cast(date_format(current_timestamp - INTERVAL '1' year, '%Y%m%d%H') as varchar)
- Eventos ocorridos no último 1 mês
-
> cast(date_format(current_timestamp - INTERVAL '1' month, '%Y%m%d%H') as varchar)
- Eventos ocorridos nos últimos 30 dias
-
> cast(date_format(current_timestamp - INTERVAL '30' day, '%Y%m%d%H') as varchar)
- Eventos ocorridos nas últimas 12 horas
-
> cast(date_format(current_timestamp - INTERVAL '12' hour, '%Y%m%d%H') as varchar)
- Eventos ocorridos nos últimos 5 minutos
-
> cast(date_format(current_timestamp - INTERVAL '5' minute, '%Y%m%d%H') as varchar)
- Eventos ocorridos entre 7 e 14 dias atrás
-
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)
- Eventos ocorridos na data específica ou após
-
>= '20230301'
Exemplo: lista de todas as CloudTrail atividades do IP de origem 192.0.2.1
em ou após 1º de março de 2023 na tabela 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
Exemplo: lista de todas as CloudTrail atividades do IP de origem 192.0.2.1
nos últimos 30 dias na tabela 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
Exemplos de consultas para dados CloudTrail
AWS CloudTrail rastreia a atividade e o API uso do usuário em Serviços da AWS. Os assinantes podem consultar CloudTrail dados para aprender os seguintes tipos de informações:
Aqui estão alguns exemplos de consultas de CloudTrail dados:
Tentativas não autorizadas contra Serviços da AWS nos últimos 7 dias
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
Lista de todas as CloudTrail atividades do IP de origem 192.0.2.1
nos últimos 7 dias
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
Lista de todas as IAM atividades nos últimos 7 dias
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
Instâncias em que a credencial AIDACKCEVSQ6C2EXAMPLE
foi usada nos últimos 7 dias
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
Lista de CloudTrail registros com falha nos últimos 7 dias
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
Exemplos de consultas para logs de consulta do Route 53 Resolver
Os logs de consulta do resolvedor Amazon Route 53 rastreiam DNS consultas feitas por recursos dentro da sua AmazonVPC. Os assinantes podem consultar os registros de consulta do Route 53 Resolver para aprender os seguintes tipos de informações:
Aqui estão alguns exemplos de consultas dos logs do Route 53 Resolver:
Lista de DNS consultas dos CloudTrail últimos 7 dias
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
Lista de DNS consultas que s3.amazonaws.com
coincidem nos últimos 7 dias
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
Lista de DNS consultas que não foram resolvidas nos últimos 7 dias
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
Lista de DNS consultas que foram resolvidas 192.0.2.1
nos últimos 7 dias
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
Exemplos de consultas para descobertas do Security Hub
O Security Hub fornece uma visão abrangente do seu estado de segurança no AWS e ajuda você a verificar seu ambiente de acordo com os padrões e as melhores práticas do setor de segurança. O Security Hub produz descobertas para verificações de segurança e recebe descobertas de serviços de terceiros.
Aqui estão alguns exemplos de consultas das descobertas do Security Hub:
Novas descobertas com severidade maior ou igual à MEDIUM
nos últimos 7 dias
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
Descobertas duplicadas nos últimos 7 dias
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
Todas as descobertas não informativas nos últimos 7 dias
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
Descobertas em que o recurso é um bucket do Amazon S3 (sem restrição de tempo)
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
Descobertas com uma pontuação do Common Vulnerability Scoring System (CVSS) maior que 1
(sem restrição de tempo)
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
Descobertas que correspondem às vulnerabilidades e exposições comuns (CVE) CVE-0000-0000
(sem restrição de tempo)
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
Contagem de produtos que estão enviando descobertas do Security Hub nos últimos 7 dias
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
Contagem dos tipos de recursos nas descobertas nos últimos 7 dias
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
Pacotes vulneráveis nas descobertas nos últimos 7 dias
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
Descobertas que foram alteradas nos últimos 7 dias
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
Exemplos de consultas para Amazon VPC Flow Logs
A Amazon Virtual Private Cloud (AmazonVPC) fornece detalhes sobre o tráfego IP que entra e sai das interfaces de rede em seuVPC.
Aqui estão alguns exemplos de consultas do Amazon VPC Flow Logs:
Tráfego em específico Regiões da AWS nos últimos 7 dias
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
Lista de atividades do IP de origem 192.0.2.1
e da porta de origem 22
nos últimos 7 dias
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
Contagem de endereços IP de destino distintos nos últimos 7 dias
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
Tráfego originado de 198.51.100.0/24 nos últimos 7 dias
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
Todo HTTPS o tráfego nos últimos 7 dias
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
Ordenar por contagem de pacotes as conexões destinadas à porta 443
nos últimos 7 dias
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
Todo o tráfego entre IPs 192.0.2.1
e 192.0.2.2
nos últimos 7 dias
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
Todo o tráfego de entrada nos últimos 7 dias
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
Todo o tráfego de saída nos últimos 7 dias
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
Todo o tráfego rejeitado nos últimos 7 dias
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