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

Um log de acesso é um arquivo de log que registra todos os eventos relacionados às aplicações de um cliente e ao acesso do usuário a um recurso em um computador. Logs de acesso, logs de comando de FTP e logs de consulta ao banco de dados são alguns exemplos.

O gerenciamento de logs de acesso é uma tarefa importante para os administradores do sistema. Os desenvolvedores de software, engenheiros de operações e analistas de segurança os utilizam para monitorar o desempenho da aplicação, quem está acessando e o que está acontecendo nos bastidores. Os logs de acesso podem ajudar as equipes de TI a descobrir problemas, detectar ameaças e identificar problemas de capacidade.

Geralmente, os logs de acesso contêm algumas informações comuns. Alguns exemplos:

  • A data e a hora do acesso do cliente
  • O endereço IP ou hostname do cliente
  • Username
  • O status ou criticidade do evento
  • Sucesso ou falha da operação
  • Qualquer mensagem relevante

Neste artigo, vamos considerar por que os logs de acesso são importantes, seus diferentes tipos e locais, seu conteúdo e os vários parâmetros de configuração envolvidos.

Tipos de log de acesso

Podemos classificar os logs de acesso de forma geral em três categorias principais:

  1. Logs de atividade
  2. Logs de acesso ao servidor
  3. Logs de erros

Logs de atividade

Um log de atividade registra todas as ações realizadas pelo usuário durante uma sessão. Elas incluem a execução de comandos, a visita a URLs e o acesso a arquivos. Alguns exemplos de log de atividade:

Logs de acesso ao servidor

Os logs de acesso ao servidor contêm informações sobre as conexões do usuário e suas solicitações de recurso. Diferentemente dos logs de atividade, esses não contém informações detalhadas sobre o que o usuário realmente fez. Alguns exemplos de log de acesso ao servidor:

Logs de erros

Os logs de erro contêm informações de diagnóstico sobre os erros encontrados durante as sessões do cliente. Esses logs são úteis para solução de problemas da aplicação e erros de sistema. Exemplos:

  • Log de erro do Nginx
  • Log de erro do sistema do IBM z/Transaction Processing Facility

Para simplificar, vamos nos concentrar nos logs de acesso do servidor Web neste artigo. Normalmente, esses logs contêm todos os três tipos de informações (acesso do usuário, atividade do usuário e erros de solicitação).

Por que é necessário capturar logs de acesso?

Capturar e analisar logs de acesso do servidor Web é benéfico para administradores de sistema.

Em primeiro lugar, eles mostram a disponibilidade e a integridade da aplicação Web para uma resolução de erros mais rápida. Por exemplo, se o log de acesso mostra um número alto de erro 404 de HTTP, significa que os usuários estão tentando acessar uma ou várias páginas não existentes, ou que o website está usando URLs errados.

Um log de acesso também ajuda a solucionar erros críticos. Por exemplo, um número alto de erros 5xx indica que o servidor Web está encontrando erros internos; parte do website está provavelmente falhando. Uma análise mais profunda do log de erro do servidor Web pode revelar mais informações.

O marketing digital é outra área valiosa para logs de acesso do servidor Web. Com o uso de entradas do log de acesso, os profissionais de marketing digital podem identificar áreas do website que os usuários visitam, onde solicitam dados, preenchem formulários, baixam arquivos ou clicam em links. Tudo isso pode aprimorar a criação de perfis de usuários e a otimização de mecanismos de pesquisa.

Os engenheiros de SecOps usam os logs de acesso do servidor Web para encontrar comportamentos incomuns e anomalias. Um pico inesperado de solicitações HTTP GET de uma faixa específica de endereços IP é um exemplo. Isso pode indicar um possível ataque de negação de serviço distribuído (DDoS) de um conjunto de computadores comprometidos. Se um servidor Web só deve aceitar tráfego HTTP/HTTPS de um firewall de aplicação Web, as solicitações HTTP diretas de outros endereços IP podem indicar um possível acesso não autorizado.

O que um log de acesso inclui?

Geralmente, o log de acesso do servidor Web contém os seguintes tipos de informação:

Data e horaA data e a hora do website/página acessado. Pode estar em UTC ou no horário local do servidor Web.
IP de origemO endereço IP do computador do cliente.
IP de destinoO endereço IP do servidor Web.
FQDN de destinoO nome de domínio totalmente qualificado do servidor Web.
Porta de destinoA porta solicitada no servidor Web. Normalmente é 80 (padrão para HTTP) ou 443 (padrão para HTTPS), mas pode ser qualquer valor, dependendo da porta em que o website está sendo executado.
ProtocoloO protocolo da rede de acesso do cliente. Um exemplo comum é HTTP 1.1.
UsernameO usuário acessando o website (se for anônimo, isso será indicado por um hífen).
RecursoA página ou elemento solicitado.
Método HTTPO método de solicitação deste HTTP (como GET, POST e assim por diante).
Código de status HTTPO código de status retornado pelo servidor Web (como 200 OK, 404 Página não encontrada, e assim por diante).
Consulta de URIA consulta da aplicação enviada ao website como parte da solicitação HTTP.
Referenciador HTTPO endereço IP ou URL que direcionou o cliente a este website.
Agente do usuário HTTPO tipo e versão do navegador do cliente.
Bytes recebidosO número de bytes recebidos do cliente pelo servidor Web.
Bytes enviadosO número de bytes enviados pelo servidor Web ao cliente.

Para ver como é a aparência desses campos, vamos considerar o trecho a seguir do log de acesso do servidor Web Apache:

116.35.41.41 - - [21/May/2022:11:22:41 +0000] "GET /aboutus.html HTTP/1.1" 200 6430 "http://34.227.9.153/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Safari/605.1.15"

Aqui, o log de acesso mostra uma solicitação de um cliente proveniente do endereço IP 116.35.41.41 em 21 de maio de 2022, às 11:22 no horário do servidor local. O cliente acessou a página aboutus.html no diretório raiz do website. O código de status HTTP foi 200 (ou seja, a solicitação do cliente foi feita com sucesso) e o endereço do website referente é http://34.227.9.153/. O navegador do usuário era o Safari da Apple, e o servidor Web enviou 6430 bytes ao cliente quando operou a página.

Ao agregar essas informações do log de acesso, você pode encontrar:

  • O número de visitantes únicos por página ou páginas únicas por visitante
  • A geolocalização dos visitantes do website
  • As partes mais comumente acessadas de um website
  • As consultas de clientes mais comumente usadas
  • O número total de códigos de status HTTP diferentes

Como encontrar os logs de acesso

O local do log de acesso de um servidor Web depende do sistema operacional e do próprio servidor Web.

Por exemplo, o local padrão do log de acesso do servidor Web Apache em sistemas baseados em RHEL é /var/log/httpd. Em sistemas baseados em Debian, como o Ubuntu, o local é /var/log/apache2.

Para Nginx, por padrão, o log de acesso está no diretório /var/log/nginx tanto em sistemas baseados em RHEL como em Debian.

O local padrão do log de acesso para o Internet Information Service (IIS) em execução em um Windows Server é %SystemDrive%inetpublogsLogFilesW3SVC. O %SystemDrive%é geralmente C: e o site_id é o ID do website hospedado no IIS.

Os administradores podem ler os logs de acesso de um servidor Web de diferentes maneiras. O administrador de um website pode usar SSH no console do servidor Web para sistemas baseados em Linux e usar comandos como cat, tail e grep para ler o arquivo. Às vezes, os webmasters podem ter que usar o painel de controle do provedor de hospedagem (por exemplo, cpanel) para abrir e ler o log de acesso.

Como configurar logs de acesso

Como a maioria das outras configurações, você pode definir as propriedades de um log de acesso do servidor Web em seu arquivo de configuração. Localizar esse arquivo vai depender do próprio servidor Web e do SO. Aqui está uma lista:

Servidor WebSOArquivo de configuração principal
ApacheBaseado em RHEL/etc/httpd/conf/httpd.conf
ApacheBaseado em Debian/etc/apache2/apache2.conf
NginxBaseado em RHEL/etc/nginx/nginx.conf
NginxBaseado em Debian /etc/nginx/nginx.conf
IISWindows Server%WinDir%System32InetsrvConfigApplicationHost.config

Algumas das configurações de log de acesso mais comuns em qualquer servidor Web são:

  • Local do log
  • Formato do log
  • Nível do log
  • Rotação do log

O local do log de acesso pode ser diferente para cada website hospedado no servidor Web. Por exemplo, no Apache, o comando a seguir define o local do log de acesso em todo o servidor:

CustomLog "/var/log/httpd2/access_log" common

Mas isso pode ser substituído por um VirtualHost:

ServerName www.mysite.com

ServerAlias test.com

DocumentRoot /var/www/html/test.com

ErrorLog /var/log/httpd/mysite.com/error_log

CustomLog /var/log/httpd/mysite.com/access_log combined

A configuração do formato de log de acesso especifica os campos que serão incluídos nas entradas do log. O formato pode ser common ou combined. O trecho abaixo exibe uma configuração de amostra:

LogFormat "%h %l %u %t "%r" %>s %b" common

Aqui:

  • %h é o nome do host remoto
  • %l é o nome do log remoto de identd (se fornecido)
  • %u é o ID do usuário do cliente (se disponível)
  • %t é o carimbo de data/hora da solicitação recebida
  • %r é a primeira linha da solicitação HTTP
  • %>s é o código de status HTTP retornado pelo servidor Web
  • %b é o tamanho do recurso retornado em bytes

Consulte a documentação do Apache para ver como usar o módulo de log personalizado para configurar seu próprio formato de log de acesso.

Outras definições de configuração do log de acesso do Apache podem incluir o nível do log e a rotação do log. O nível do log possibilita incluir apenas eventos específicos que atingem ou ultrapassam um determinado nível de gravidade. Esses níveis podem ser debug, info, notice, warn, error, crit, alert, emerg e qualquer valor entre trace1 e trace8. Quanto mais baixo o nível do log, mais entradas detalhadas serão as entradas do log. No trecho abaixo, vamos configurar o log de acesso para registrar somente mensagens no nível warn ou acima dele:

LogLevel warn

Isso pode ser substituído por Apache VirtualHosts.

Você pode definir a rotação de log do Apache usando o utilitário logrotate do Linux ou o programa rotatelog do Apache.

Descubra a plataforma nativa de IA de liderança mundial 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. Beneficie-se de uma visibilidade de 360 graus, consolidando os dados para eliminar 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.