Usar o criador de expressões
Com o criador de expressões, é possível analisar e modificar resultados JSON para uso em ações subsequentes. O Construtor de expressões gera várias funções de transformação dinâmica que podem ser encadeadas, visualizadas e testadas, oferecendo uma experiência interativa para transformar e analisar resultados de ações brutas.
Depois de selecionar um marcador de posição para o parâmetro na ação do playbook, você pode usar os resultados JSON. Esses resultados fornecem informações abrangentes retornadas pela ação, que podem ser usadas em ações e fluxos subsequentes do playbook. Para mais detalhes, consulte Casos de uso do criador de expressões.
Acessar o Criador de expressões
Este exemplo demonstra dados potenciais e não reflete resultados em tempo real. Os dados reais podem ser diferentes e conter mais ou menos campos. Se um analista souber de outros campos que serão retornados no ambiente de execução, ele poderá inserir o caminho de chave correspondente no campo sintaxe.
Funções
Há suporte para as seguintes funções de pipe:
- Primeiro (x): retorna os primeiros X elementos de uma matriz.
Exemplo:alerts | First(2)
(sealerts
for[{"id": "A"}, {"id": "B"}, {"id": "C"}]
, retornará[{"id": "A"}, {"id": "B"}]
) - Últimos (x): retorna os últimos X elementos de uma matriz.
Exemplo:alerts | Last(1)
(sealerts
for[{"id": "A"}, {"id": "B"}, {"id": "C"}]
, retornará[{"id": "C"}]
) - Min (KeyPath): retorna o item com o valor mínimo de uma matriz. Se um parâmetro keyPath for fornecido, ele vai retornar o objeto com o valor mínimo no caminho especificado.
Exemplo:alerts | Min("score")
(sealerts
contiver uma lista de objetos com um camposcore
, retornará o objeto com a menor pontuação) - Máximo (KeyPath): retorna o item com o valor máximo de uma matriz. Se um parâmetro "keyPath" for fornecido, ele vai retornar o objeto com o valor máximo no caminho especificado.
Exemplo:alerts | Max("score")
(sealerts
contiver uma lista de objetos com um camposcore
, vai retornar o objeto com a pontuação mais alta) - Filter (ConditionKey, Operator, Value): filtra uma matriz de objetos, retornando apenas os objetos que correspondem a uma condição em um campo especificado.
- ConditionKey: o campo em cada objeto a ser avaliado em relação à condição.
- Operador: operador a ser usado na condição.
- Para entrada de string:
=
,!=
,in
,not in
. - Para entrada de número/data:
=
,!=
,>
,>=
,<
,<=
. - Valor: valor a ser verificado na condição.
Exemplo:alerts | Filter("severity", "=", "HIGH")
(retorna todos os alertas em que o camposeverity
é "ALTO") -
DateFormat ("pattern"): formata uma data em um determinado padrão (especificado como parâmetro) para o seguinte formato:
YYYY-MM-DDThh:mm:ssZ
.
Exemplo:timestamp_field | DateFormat("yyyy/MM/ddTHH:mm:ss")
(setimestamp_field
for "2024/07/20T10:00:00Z", vai retornar "2024-07-20 10:00:00") -
Count (): retorna o número de itens na matriz de entrada.
Exemplo:alerts | Count()
(sealerts
for uma matriz com quatro elementos, vai retornar 4) -
OrderBy ("keyPath", "direction"): ordena uma matriz de objetos com base nos valores de um caminho de chave especificado.
Exemplo:alerts | OrderBy("score", "DESC")
(ordena a matrizalerts
porscore
em ordem decrescente) -
toLower (): converte uma entrada em caracteres minúsculos.
Exemplo:status_field | toLower()
(sestatus_field
for "OPEN", vai retornar "open") -
toUpper (): converte uma entrada em caracteres maiúsculos.
Exemplo:severity_field | toUpper()
(seseverity_field
for "high", vai retornar "HIGH") -
Replace ("x", "y"): substitui uma substring em uma string por outra string.
Exemplo:message_field | Replace("World", "Universe")
(semessage_field
for "Hello World", vai retornar "Hello Universe") -
Distinct (): remove valores duplicados de uma matriz. Para matrizes de objetos, realiza uma comparação detalhada para identificar objetos duplicados.
Exemplo:[10, 20, 30, 20, 40] | Distinct()
(retorna[10, 20, 30, 40]
) -
getByIndex ("index"): recebe itens de uma matriz por um índice especificado ou uma lista de índices.
Exemplo:alerts | getByIndex("0")
(retorna o primeiro elemento da matrizalerts
)
Exemplo:alerts | getByIndex("0,2")
(retorna o primeiro e o terceiro elementos da matrizalerts
) -
split ("delimiter"): divide uma string em uma matriz de substrings usando um delimitador especificado.
Exemplo:"tag1,tag2,tag3" | split(",")
(retorna["tag1", "tag2", "tag3"]
) -
join ("delimiter"): concatena uma matriz de strings em uma única string usando um delimitador especificado.
Exemplo:["malware", "critical"] | join(" & ")
(retorna "malware e crítica") -
trim (): remove os espaços em branco à esquerda e à direita de uma string.
Exemplo:" hello world " | trim()
(retorna "hello world") -
trimChars ("characters"): remove os caracteres especificados do início e do fim de uma string. Os espaços em branco à esquerda e à direita são sempre removidos, mesmo que não sejam especificados explicitamente.
Exemplo:"--TEST--ABC--" | trimChars("-")
(retorna "TEST--ABC") -
substring (início, fim): extrai uma substring de uma string usando um índice inicial especificado e um índice final opcional.
Exemplo:"Hello World" | substring(0, 5)
(retorna "Hello")
Exemplo:"Hello World" | substring(6)
(retorna "World") -
incrementValue (value): aumenta um valor numérico em uma quantidade especificada. Se nenhum valor for especificado, o valor será incrementado em 1.
Exemplo:score_field | incrementValue(5)
(sescore_field
for 90, retorna 95)
Exemplo:counter_field | incrementValue()
(secounter_field
for 10, retorna 11) -
setIfEmpty ("defaultValue"): retorna o valor padrão fornecido se o valor de entrada estiver vazio.
Exemplo:optional_field | setIfEmpty("N/A")
. Seoptional_field
estiver vazio, vai retornar "N/A". Caso contrário, vai retornar o valor deoptional_field
. -
toUnixtime (): converte uma string de data e hora legível (por exemplo, "2014/03/12T13:37:27Z" ou "2014-03-12T13:37:27+01:00") em um carimbo de data/hora do Unix, expresso em UTC.
Exemplo:"2024-07-20T10:00:00Z" | toUnixtime()
(retorna 1721469600) -
ifThenElse ("operator", "comparedValue", "trueResult", "falseResult"): avalia uma condição e retorna a primeira expressão se for verdadeira. Caso contrário, retorna a segunda expressão.
Exemplo:severity_field | ifThenElse("=", "HIGH", "High Priority", "Normal Priority")
(seseverity_field
for "HIGH", vai retornar "High Priority"; caso contrário, vai retornar "Normal Priority")
Exemplo:score_field | ifThenElse(">", "70", "Above Threshold", "Below Threshold")
(sescore_field
for 90, vai retornar "Above Threshold"; sescore_field
for 60, vai retornar "Below Threshold")
Expressão:
No campo "Expressão", você insere os resultados JSON com as funções e os pipes para adicionar várias funções e criar a expressão.Executar / Resultados:
Depois de preencher o criador de expressões, clique em Executar para mostrar os resultados com base nos dados de amostra JSON exibidos no criador de expressões.Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.