Agentic SOC Summit: o novo padrão para defesa autônomaInscreva-se

O guia completo do SIEM de última geração

Saiba como modernizar seu Centro de Operações de Segurança (SOC, na sigla em inglês) com soluções de SIEM de última geração. Conheça as principais funcionalidades e benefícios do gerenciamento e correlação de eventos de segurança (SIEM) avançado.

Faça o download do guia agora

O guia completo do SIEM de última geração

Saiba como modernizar seu Centro de Operações de Segurança (SOC, na sigla em inglês) com soluções de SIEM de última geração. Conheça as principais funcionalidades e benefícios do gerenciamento e correlação de eventos de segurança (SIEM) avançado.

Faça o download do guia agora

Os registros em log estruturados, semiestruturados e não estruturados formam um grande espectro, e cada um deles tem seu próprio conjunto de benefícios e desafios. Os logs não estruturados e semiestruturados são facilmente legíveis por humanos, mas as máquinas podem ter dificuldade de extraí-los. Por sua vez, os logs estruturados podem ser facilmente submetidos a parsing em seu sistema de gerenciamento de log, mas é difícil usá-los sem uma ferramenta de gerenciamento de log.

O que é registro em log estruturado?

O registro em log estruturado formata os dados de log de forma que possam ser facilmente pesquisados, filtrados e processados para uma análise mais avançada. O formato padrão do registro em log estruturado é JSON, embora outros formatos possam ser usados no lugar. A prática recomendada é usar um framework de registro em log para implementar o registro em log estruturado e que possa ser integrado a uma solução de gerenciamento de log que aceite campos personalizados.

Diferenças entre log estruturados, semiestruturados e não estruturados

Logs não estruturados são grandes arquivos de texto formados por strings, que são sequências ordenadas de caracteres que serão lidas por humanos. Nos logs, essas strings contêm variáveis, isto é, espaços reservados para qualidades que são definidas em outros lugares. Às vezes a variável é um curinga, que é um espaço reservado que representa uma qualidade desconhecida, assim como no pôquer.

unstructured_data = ["Unstructured message","Hello Python World",str(datetime.now(timezone("EST")).isoformat())]

As pessoas conseguem compreender variáveis facilmente, mas isso nem sempre vale para as máquinas. As máquinas nem sempre sabem a diferença entre uma variável em uma string e uma sequência semelhante de caracteres em outro lugar do arquivo de log. Quando isso acontece, os resultados podem ser confusos, o que desacelera a produtividade, aumenta a probabilidade de falhas e desperdiça horas de trabalho e ciclos de processamento.

Os logs estruturados consistem em objetos, não em strings. Um objeto pode incluir variáveis, estrutura de dados, métodos e funções. Por exemplo, um objeto que faz parte de uma mensagem de log pode incluir informações sobre uma aplicação ou uma plataforma. A organização pode definir os critérios que deseja incluir no objeto, para que os logs sejam mais úteis no atendimento das necessidades organizacionais. Esta é a "estrutura" de um log estruturado.

Aqui está um exemplo de um log estruturado:

structured_data = [
 {
          "tags": {
               "host": "str(ip)",
               "host_name": "str(host)",
               "filename": "str(caller.filename)",
               "line": "str(caller.lineno)",
               "error_level": "INFO"
          },
          "events": [
               {
                    "timestamp": str(datetime.now(timezone("EST")).isoformat()), #.strftime("%Y-%m-%d %H:%M:%S %Z"),
                    "attributes": {
                         "message": "Structured message",
                    }
               }
          ]
     }
 ]

Como os logs estruturados são destinados à leitura por máquinas, as máquinas que os leem são capazes de executar pesquisas mais rapidamente, produzir uma saída mais limpa e gerar consistência entre as plataformas. Os humanos ainda são capazes de ler logs estruturados, mas não são o público principal deles. Para os humanos, o que interessa é o resultado depois que a máquina termina de operar os dados.

Os logs semiestruturados podem ser lidos por máquinas e humanos e consistem em strings e objetos. Esses logs geralmente precisam ser submetidos a parsing na forma de tabelas, para que possam ser devidamente analisados. Esses logs semiestruturados ainda não foram padronizados, o que faz com que vários programas e sistemas tenham dificuldade de identificá-los e categorizá-los. Por exemplo, as regras de citação para o valor de um espaço em branco não são universalmente definidas. O CrowdStrike Falcon LogScale tem dado passos na direção certa e é capaz de se adaptar a logs semiestruturados em seu ambiente.

Por que usar o registro em log estruturado?

Encontrar uma informação em um log não estruturado pode ser difícil, pois uma simples consulta pode retornar muito mais informações do que o desejado e não trazer as informações de fato desejadas. Por exemplo, um desenvolvedor que está procurando um evento de log criado quando uma aplicação específica excedeu em determinado volume da cota de disco pode encontrar todos os eventos de cota de disco criados por todas as aplicações. Em um ambiente corporativo, esse arquivo seria grande.

Para encontrar o evento certo, o desenvolvedor teria de escrever uma complexa expressão regular para definir a pesquisa. Quando mais específico o evento, mais complexa será a expressão. Em termos de computação, essa abordagem é cara em escala, pois as condições definidas na expressão de correspondência precisam ser comparadas a cada valor de linha no registro de log. Se forem usados curingas, o custo computacional será ainda maior. Além disso, se os dados do log mudarem, a expressão de correspondência não funcionará conforme pretendido.

Em algumas organizações, os desenvolvedores escrevem código na forma de strings, enquanto as equipes operacionais escrevem códigos que executam parsing dessas strings na forma de dados estruturados. Isso exige mais tempo e aumenta o custo computacional. Se um desenvolvedor ou um membro da equipe operacional cometer um erro, o processo de registro em log falhará, e mais tempo será perdido enquanto se procura a origem do erro.

O registro em log estruturado elimina esses problemas estruturando os dados à medida que são gerados. A organização pode escolher o formato que funciona melhor para ela, como coluna fixa, pares de chave-valor, JSON etc. Atualmente, a maioria das empresas escolhe o formato JSON porque ele se integra bem a sistemas de automação, incluindo sistemas de alertas.

Os logs de texto ainda têm seu lugar na empresa, pois o registro em log estruturado tem algumas desvantagens. Os logs estruturados definem os dados à medida que eles são criados, de forma que os dados só possam ser usados para os fins estabelecidos nessa definição. Se os dados estruturados forem armazenados no local ou em qualquer data warehouse com um esquema de dados rígido, e se esse esquema for alterado, será necessário atualizar os dados estruturados, o que demanda um esforço imenso e dispendioso. Ao escolher uma estratégia de registro em log, as organizações devem considerar quem usará os dados, que tipo de dados são coletados, onde e como os dados serão armazenados e se os dados precisam ser preparados antes de serem armazenados ou se podem se preparados quando forem utilizados.

O Falcon LogScale oferece suporte a logs estruturados, semiestruturados e não estruturados

Os benefícios do registro em log estruturado dependem de um sistema de gerenciamento de registro em log flexível e escalável que atenda às necessidades de desenvolvimento, conformidade e segurança.

O CrowdStrike Falcon LogScale lida com todas as mensagens não estruturadas, semiestruturadas e estruturadas, funciona com qualquer formato de dados e é compatível com os principais transportadores de dados de código aberto. Parsers personalizados facilitam o suporte a qualquer formato de texto, por isso a integração do Falcon LogScale é simples e rápida.

A maioria dos usuários envia dados estruturados para o Falcon LogScale como objetos JSON. Esses dados não precisam ter nenhuma formatação especial, só precisam ser válidos. Carimbos de data/hora podem ser enviados como parte da entrada do log, e o Falcon LogScale usará o seu carimbo, em vez de substitui-lo por um carimbo próprio. No envio de dados não estruturados, os carimbos de data/hora são gerados no momento da ingestão como uma longa string delimitada por vírgulas e não afetam o carimbo de data/hora da ingestão.

Descubra a plataforma nativa de IA líder global para SIEM e gerenciamento de log de última geração

Eleve sua cibersegurança com o CrowdStrike Falcon®, a principal plataforma nativa de IA para SIEM e gerenciamento de log. Experimente registro de log de segurança em uma escala de petabytes, optando por nativo em nuvem ou implementação auto-hospedada. Registre seus dados com uma arquitetura avançada e livre de índices, sem gargalos e que permite investigação de ameaças com mais de 1 PB de ingestão de dados por dia. Assegure capacidades de pesquisa em tempo real para superar os adversários, atingindo latência de menos de um segundo para consultas complexas. Aproveite uma visibilidade completa, consolidando os dados para quebrar silos e possibilitar que as equipes de segurança, TI e DevOps investiguem ameaças, monitorem o desempenho e garantam a conformidade perfeitamente em 3 bilhões de eventos e em menos de um segundo.

Arfan Sharif é líder de marketing de produtos para o portfólio de observabilidade na CrowdStrike. Ele tem mais de 15 anos de experiência em gerenciamento de log, ITOps, observabilidade, segurança e soluções de CX para empresas como Splunk, Genesys e Quest Software. Arfan formou-se em Ciência da Computação na Universidade Bucks and Chilterns e sua carreira abrange as áreas de Marketing de Produtos e Engenharia de Vendas.