Escolar Documentos
Profissional Documentos
Cultura Documentos
MT
CE-Conselho
D FE
Digital Princípios Forenses
Machine Translated by Google
Objetivos do Módulo
Objetivos do Módulo
Os aplicativos da Web permitem que os usuários acessem seus recursos por meio de programas do lado do cliente, como
navegadores da Web. Alguns aplicativos da Web podem conter vulnerabilidades que permitem que criminosos cibernéticos
lancem ataques específicos de aplicativos, como SQL Injection, script entre sites, inclusão de arquivo local (LFI), injeção de
comando, etc., que causam danos parciais ou completos do subjacente
servidores.
Além disso, esses ataques contra aplicativos da Web podem levar a grandes danos financeiros e de reputação para as
organizações. Na maioria dos casos, as organizações não conseguem rastrear a causa raiz de um ataque, o que deixa brechas
de segurança para os invasores explorarem. É aqui que a análise forense de aplicativos da Web assume importância.
Este módulo discute o procedimento forense de aplicativos da web, vários tipos de ataques a servidores e aplicativos da web e
onde procurar evidências durante uma investigação.
Além disso, explica como detectar e investigar vários tipos de ataques baseados na web.
Fluxo do módulo
Detectar e Investigar
Entender Web
Análise forense de aplicativos
01 04 Vários ataques na Web
Formulários
Um ramo da análise forense digital, a análise forense de aplicativos da Web envolve a investigação de um incidente
de segurança baseado na Web para localizar sua origem, como ocorreu e quais sistemas/dispositivos de computação
estavam envolvidos.
Esta seção define a análise forense de aplicativos da web e descreve a metodologia padrão que os investigadores
devem seguir ao investigar ataques de aplicativos da web. Ele também discute vários tipos de ameaças de
aplicativos da web e os sinais que indicam ataques a aplicativos da web.
ÿ A análise forense de aplicativos da Web envolve o rastreamento de um ataque de segurança que ocorreu em qualquer aplicativo da Web
identificar sua origem, e como foi penetrado
Aplicativos da Web são programas existentes em um servidor central que permitem que um usuário, que
visita um site pela Internet, envie e recupere dados de e para um banco de dados. Um cliente faz uma
solicitação a um servidor da Web por meio de um aplicativo da Web. Quando o servidor responde à requisição,
a aplicação web gera documentos da resposta para melhor atendimento ao cliente/usuário.
Os documentos da web gerados por aplicativos da web estão em um formato padrão, como Hypertext Markup
Language (HTML) e Extensible Markup Language (XML), que é suportado por todos os tipos de navegadores.
Os aplicativos da Web realizam a tarefa solicitada, independentemente do sistema operacional e do navegador
implantados pelo usuário. Apesar das vantagens dos aplicativos da Web, eles tendem a ser vulneráveis a
ataques devido a práticas inadequadas de codificação ou monitoramento de segurança. Os invasores tentam
explorar vulnerabilidades no código e obter acesso ao conteúdo do banco de dados, obtendo acesso a
informações confidenciais, como credenciais de usuário e detalhes de contas bancárias. Alguns tipos de
ataques executados em aplicativos da Web incluem injeção de SQL, XSS, sequestro de sessão, inclusões de
arquivos locais e remotos e execução remota de código.
A análise forense de aplicativos da Web assume proeminência quando esses tipos de ataques ocorrem em
aplicativos da Web. Envolve o exame forense de aplicativos da web e seu conteúdo (como logs, diretório www
e arquivos de configuração) para rastrear e identificar a origem do ataque, determinar como o ataque foi
propagado, juntamente com os dispositivos usados (dispositivos móveis e computadores ) e pessoas
envolvidas no ataque. Os investigadores examinam os logs e os arquivos de configuração associados ao
servidor, à rede e à máquina host para obter informações sobre o ataque.
Devido à natureza distribuída dos aplicativos da Web, os rastros de atividades são registrados em vários
componentes de hardware e software. Os aplicativos da Web atendem a uma ampla variedade de serviços e
podem oferecer suporte a vários tipos de servidores, como IIS e Apache. Portanto, os investigadores forenses
devem ter um bom conhecimento de vários servidores para examinar os logs e entendê-los quando ocorrer um
incidente.
Os aplicativos da Web geralmente são críticos para os negócios. Portanto, é difícil para os investigadores criar
sua imagem forense, o que exige que o site fique fora do ar por algum tempo. Isso torna um desafio para os
investigadores capturar dados voláteis, incluindo processos, conexões de porta/rede, logs de dumps de memória
e logs de usuário no momento da análise do incidente. Por outro lado, à medida que o tráfego de sites aumenta,
os arquivos de log registrados no banco de dados continuam aumentando. Portanto, torna-se difícil para os
investigadores coletar e analisar esses logs.
Os investigadores devem ter uma boa compreensão de todos os tipos de servidores da Web e de aplicativos
para entender, analisar e correlacionar vários formatos de logs coletados de suas respectivas fontes. Quando
ocorre um ataque a um site, os investigadores devem coletar as impressões digitais deixadas pelo invasor. No
entanto, rastrear de volta se torna uma tarefa difícil, pois os invasores costumam usar proxies reversos e
anonimizadores. Os investigadores também precisam coletar os seguintes campos de dados associados a cada
solicitação HTTP feita ao site para entender como o ataque foi realizado:
ÿ Cabeçalhos HTTP
ÿ
Listagens de arquivos e carimbos de data/hora (dados não voláteis)
A maioria dos aplicativos da Web restringe o acesso às informações HTTP. Sem isso, as informações registradas nos logs seriam bastante
semelhantes, o que poderia impossibilitar os investigadores de diferenciar as solicitações HTTP válidas das maliciosas.
Existem diferentes componentes que indicam um ataque na web. Por exemplo, em um ataque DoS, é negado aos clientes
o acesso às informações ou serviços disponíveis no servidor web de destino. Nesses casos, os clientes relatam a
indisponibilidade de serviços online porque o invasor impede que usuários legítimos acessem sites e outros serviços que
dependem do servidor da Web visado.
Redirecionar um usuário em uma página da Web para um site desconhecido que hospeda um kit de exploração é outra
indicação de um ataque na Web. Quando um usuário insere a URL do site na barra de endereço, o servidor o redireciona
para um site desconhecido (muitas vezes malicioso), que instala spyware/malware na máquina do usuário.
O desempenho de rede excepcionalmente lento e a reinicialização frequente do servidor também podem indicar um
ataque na web. Anomalias encontradas nos arquivos de log também são uma indicação de ataques na web. A alteração
de uma senha e a criação de uma nova conta de usuário podem revelar as tentativas de ataque em sites.
Outros indicadores de ataques na web incluem vazamento de dados confidenciais e desfigurações de páginas da web.
Pode haver outros indicadores, como o retorno de mensagens de erro. Por exemplo, uma página de mensagem de erro
HTTP 500 pode indicar a ocorrência de um ataque de injeção SQL. Além disso, existem outras mensagens de erro, como
“um erro interno do servidor” e “problema ao processar sua solicitação”, que indicam um ataque na web.
Parâmetro/Forma
03 Falhas de Injeção 09 15 estouro de buffer
adulteração
Segurança
06 Entrada não validada 12 18 Registro de adulteração
Configuração incorreta
A maioria das violações de segurança ocorre em aplicativos da Web, e não em servidores da Web, pois os aplicativos
da Web podem conter bugs devido a problemas de codificação na fase de desenvolvimento. Consequentemente, os
aplicativos da Web estão sujeitos a vários tipos de ameaças, algumas das quais são descritas abaixo:
ÿ Injeção de SQL
Nesse tipo de ataque, o invasor injeta comandos SQL maliciosos ou consultas como dados de entrada. Isso
os ajuda a ignorar as medidas de segurança do aplicativo da web e recuperar conteúdo confidencial do
servidor de banco de dados.
ÿ Falhas de Injeção
As falhas de injeção são as vulnerabilidades de aplicativos mais comuns que permitem que dados não
confiáveis fornecidos pelo usuário sejam interpretados e executados como um comando ou consulta. Os
invasores injetam códigos, comandos ou scripts maliciosos nos portões de entrada de aplicativos da Web
defeituosos de forma que os aplicativos interpretem e executem com a entrada maliciosa recém-fornecida, o
que, por sua vez, permite que os invasores extraiam informações confidenciais.
Essas falhas de injeção são comumente encontradas em consultas SQL, NoSQL e LDAP, bem como em comandos
do sistema operacional. Falhas de injeção foram consideradas como a principal vulnerabilidade de segurança em
aplicativos da Web em 2017 pelo Open Web Application Security Project (OWASP).
Nesse método de ataque, um usuário autenticado é obrigado a executar determinadas tarefas no aplicativo da Web
escolhido por um invasor. Por exemplo, um invasor pode fazer um usuário clicar em um determinado link enviado por
e-mail ou chat.
ÿ Passagem de caminho/diretório
Quando os invasores exploram o HTTP usando passagem de diretório, eles obtêm acesso não autorizado aos
diretórios, após o que podem executar comandos fora do diretório raiz do servidor da web.
Nesse tipo de ataque, os invasores adulteram a URL, solicitações HTTP, cabeçalhos, campos ocultos, campos de
formulário, strings de consulta etc. para contornar as medidas de segurança em um sistema. IDs de login do usuário
e outros dados relacionados são armazenados em cookies, que se tornam uma fonte de ataques.
Exemplos de ataques que causam entrada não validada incluem injeção de SQL, script entre sites (XSS) e estouros
de buffer.
Nesse tipo de ataque, os invasores contornam os mecanismos de segurança do ID do cliente e obtêm privilégios de
acesso. Posteriormente, eles injetam os scripts maliciosos em campos específicos nas páginas da web. Esses scripts
XSS maliciosos podem reescrever o conteúdo HTML de um site, sequestrar sessões de usuários ou redirecionar
usuários para sites maliciosos e desfigurar sites. O XSS é uma das 10 principais vulnerabilidades de segurança de
aplicativos da web do OWASP para 2017.
Informações confidenciais, como registros de contas, números de cartão de crédito, senhas ou outras informações
autenticadas geralmente são armazenadas por aplicativos da Web em um banco de dados ou em um sistema de
arquivos.
Os dados confidenciais podem ser explorados e mal utilizados por pessoas de dentro e de fora para realizar roubo
de identidade, fraude de cartão de crédito e outros crimes cibernéticos. Essa ameaça está incluída nas 10 principais
vulnerabilidades de segurança do OWASP para 2017.
ÿ Tamperação de Parâmetros/Formas
Esse tipo de ataque de adulteração visa manipular os parâmetros de comunicação trocados entre um cliente e um
servidor para fazer alterações nos dados do aplicativo, como IDs de usuários e senhas com logs de eventos ou custo
e quantidade de produtos.
Para melhorar a funcionalidade e o controle do aplicativo, o sistema coleta essas informações e as armazena em
campos de formulário ocultos, cookies ou strings de consulta de URL.
Os hackers usam ferramentas como o proxy WebScarab e Paros para lançar esse tipo de ataque.
A exploração bem-sucedida pode levar a outros ataques, como inclusão de arquivo e XSS.
Um ataque de negação de serviço (DoS) visa encerrar as operações de um site ou servidor, tornando seus recursos
indisponíveis para os clientes.
Por exemplo, um ataque DoS pode interromper o funcionamento de um site relacionado a serviços bancários ou de
e-mail por algumas horas ou mesmo dias, resultando na perda de tempo e
dinheiro.
Este é um método no qual um invasor identifica uma falha nas políticas de controle de acesso e a explora para
contornar o mecanismo de autenticação. Isso permite que o invasor obtenha acesso a dados confidenciais, modifique
direitos de acesso ou opere contas de outros usuários. Esta é uma parte das 10 principais vulnerabilidades de
segurança do OWASP de 2017.
ÿ Má configuração de segurança
A falta de um processo de proteção de segurança repetível em qualquer camada da pilha de aplicativos, que inclui
servidores Web, bancos de dados, estruturas, sistemas operacionais host, servidores de aplicativos e dispositivos
de armazenamento, pode levar a uma vulnerabilidade de configuração incorreta de segurança.
O uso de configurações padrão, senhas ou software desatualizado pode aumentar o risco de um ataque. Isso está
incluído nas 10 principais vulnerabilidades de segurança do OWASP 2017.
ÿ Vazamento de Informações
O vazamento de informações refere-se a uma desvantagem em um aplicativo da Web em que o aplicativo revela
involuntariamente informações confidenciais a um usuário não autorizado. Tal vazamento de informações pode
trazer grandes prejuízos para uma empresa.
Portanto, a empresa precisa empregar mecanismos adequados de filtragem de conteúdo para proteger todas as
suas informações ou fontes de dados, como sistemas ou outros recursos de rede, contra vazamento de informações.
Essa ameaça surge quando um aplicativo da Web não consegue lidar com erros internos adequadamente. Nesses
casos, o site retorna informações, como despejos de banco de dados, rastreamentos de pilha e códigos de erro, na
forma de erros.
ÿ Estouro de Buffer
O estouro de buffer de um aplicativo da Web ocorre quando ele falha em proteger seu buffer adequadamente e
permite a gravação além de seu tamanho máximo. Assim, ele sobrescreve os locais de memória adjacentes. Existem
várias formas de estouro de buffer, incluindo estouros de buffer de heap
e formatar ataques de string. O objetivo desses ataques é corromper a pilha de execução do aplicativo da web.
Os arquivos de log mantêm registros das ações e eventos que ocorrem durante a execução de um aplicativo/
serviço. Essa vulnerabilidade ocorre quando os logs não registram eventos críticos de segurança ou fornecem
avisos ou mensagens de erro pouco claros.
A falta de monitoramento de log ou a manutenção de logs em locais inseguros aumenta muito a chance de um
grande incidente de segurança.
Além disso, práticas insuficientes de registro e monitoramento não deixam rastros de auditoria para análise
forense, tornando a detecção de qualquer comportamento malicioso extremamente difícil para os investigadores
forenses. É uma das 10 principais vulnerabilidades de segurança de aplicativos da Web do OWASP de 2017.
ÿ Autenticação quebrada
ÿ Adulteração de Registros
Os aplicativos da Web mantêm logs para rastrear os padrões de uso, como credenciais de login do
administrador e credenciais de login do usuário. Os invasores geralmente injetam, excluem ou adulteram os
logs de aplicativos da web para se envolver em atividades maliciosas ou ocultar suas identidades.
Uma referência de objeto direta insegura ocorre quando os desenvolvedores expõem vários objetos de
implementação interna, como arquivos, diretórios, registros de banco de dados e referências de chave. Por
exemplo, se o número de uma conta bancária for uma chave primária, existe a possibilidade de invasores
comprometerem o aplicativo e se aproveitarem dessas referências.
Os desenvolvedores precisam aplicar a tecnologia Secure Sockets Layer (SSL)/Transport Layer Security (TLS)
para autenticação de sites. Deixar de implementar essa tecnologia permite que invasores acessem cookies de
sessão monitorando o fluxo da rede. Vários ataques, como ataques de phishing, roubo de conta e
escalonamento de privilégios, podem ocorrer depois que os invasores obtêm acesso aos cookies.
Aqui, um invasor tenta contornar a segurança do site usando técnicas como navegação forçada e obtém acesso não
autorizado a páginas da Web específicas ou outros arquivos de dados que contêm informações confidenciais.
Os dados confidenciais armazenados em um banco de dados devem ser criptografados adequadamente usando criptografia.
No entanto, alguns métodos de criptografia criptográfica contêm vulnerabilidades inerentes.
Portanto, os desenvolvedores devem usar métodos de criptografia fortes para desenvolver aplicativos seguros.
Além disso, eles devem armazenar com segurança as chaves criptográficas para que os invasores não possam obtê-las
facilmente e descriptografar os dados confidenciais.
ÿ Desserialização Insegura
A serialização e a desserialização são processos eficazes que permitem que as estruturas de dados sejam armazenadas ou
transmitidas para outros locais, como redes ou sistemas, preservando o estado do objeto.
A vulnerabilidade de desserialização insegura surge quando aplicativos e interfaces de programação de aplicativos (APIs)
permitem a desserialização de entrada de usuário não confiável.
Os invasores injetam código malicioso em uma forma serializada de dados e, após a desserialização, os dados manipulados,
bem como o código malicioso, são executados, permitindo que os invasores obtenham acesso remoto a qualquer sistema e
executem outras atividades maliciosas. Este ataque é uma das 10 principais vulnerabilidades de segurança de aplicativos da
Web de 2017 da OWASP.
ÿ Bisbilhotice de Cookies
Ao usar um proxy local, um invasor pode decodificar ou quebrar as credenciais do usuário. Depois que o invasor obtém
essas credenciais de texto sem formatação, ele faz login no sistema como um usuário legítimo e obtém acesso a informações
não autorizadas.
Nesse ataque, o invasor fornece uma entrada XML maliciosa, incluindo uma referência de entidade externa ao aplicativo da
Web de destino. Quando essa entrada maliciosa é processada por um analisador XML mal configurado, os invasores podem
acessar arquivos de dados confidenciais e recursos de rede de servidores Web de destino e redes conectadas. Este ataque
é uma das 10 principais vulnerabilidades de segurança de aplicativos da web do OWASP para 2017.
Alguns invasores têm como alvo os sistemas de gerenciamento de segurança, seja em redes ou na camada de aplicativos,
para modificar ou desabilitar a aplicação da segurança. Um invasor que explora o gerenciamento de segurança pode
modificar diretamente as políticas de proteção, excluir políticas existentes, adicionar novas políticas e modificar aplicativos,
dados do sistema e recursos.
ÿ Sequestro de Autenticação
Todos os aplicativos da web dependem de informações como senhas e IDs de usuário para identificação do usuário. Nesse
tipo de ataque, os invasores tentam sequestrar essas credenciais usando
várias técnicas de ataque, como sniffing e engenharia social. Ao obter essas credenciais, eles executam vários atos
maliciosos, incluindo sequestro de sessão, roubo de serviço e representação de usuário.
Nesse tipo de ataque, os invasores atraem a vítima e a fazem clicar em links não validados que parecem legítimos. Esses
redirecionamentos podem levar à instalação de malware ou induzir as vítimas a compartilhar suas senhas ou outras
informações confidenciais.
Esses links inseguros podem levar ao desvio do controle de acesso, o que resulta ainda no seguinte:
Esse tipo de ataque auxilia o invasor a sequestrar uma sessão válida do usuário. O invasor sequestra a sessão validada
pelo usuário, com conhecimento prévio do ID do usuário para a sessão, autenticando com um ID de sessão conhecido.
Nesse tipo de ataque, o invasor engana o usuário para que ele acesse um servidor Web genuíno usando um valor de ID de
sessão explícito. Posteriormente, o invasor assume a identidade da vítima e explora essas credenciais no servidor.
3. O invasor envia um e-mail para a vítima contendo um link com um ID de sessão fixo
6. O invasor faz login no servidor usando as credenciais da vítima com a mesma sessão
EU IA
ÿ Ataques CAPTCHA
A implementação de CAPTCHAs evita que softwares automatizados executem ações que degradem a qualidade do serviço
de um determinado sistema por meio de abuso ou gasto excessivo de recursos. Os CAPTCHAs visam garantir que os
usuários dos aplicativos sejam humanos e, em última análise, ajudam a prevenir o acesso não autorizado e o abuso.
Cada implementação CAPTCHA obtém sua força aumentando a complexidade do sistema para realizar segmentação, pré-
processamento de imagem e classificação.
Realizar entrevistas individuais para obter Use criptografia e soma de verificação para
1 informações
5
verificar e proteger a integridade dos arquivos de log
Localize os servidores ou outros dispositivos envolvidos Analise as cópias de trabalho dos logs coletados
no ataque de segurança, coloque-os offline e execute para procurar entradas suspeitas e correlacionar
2 6 os dados para criar uma cadeia de eventos que
a apreensão de maneira forense
revela todo o cenário de ataque
adesão a uma metodologia de investigação completa e padrão desempenha um papel crucial na análise forense de
aplicativos da Web. Quando houver suspeita da ocorrência de um incidente de segurança em qualquer aplicativo da
web, os investigadores devem tentar coletar todos os arquivos de log disponíveis, como logs do servidor da web, logs
coletados pelo SIEM, logs do firewall de aplicativo da web (WAF) e logs de eventos, e analisá-los para rastrear as
assinaturas de ataque. Isso pode ajudar os investigadores a reconstruir a cadeia de eventos que levou ao ataque.
ÿ Realizar entrevistas individuais para obter informações sobre um ataque de segurança visando qualquer
aplicação web
ÿ Localize os servidores ou outros dispositivos que estão envolvidos no ataque de segurança, leve-os
offline e realizar a apreensão de maneira forense
logs do servidor web, servidor de aplicativos, servidor de banco de dados, firewall de aplicativos web, eventos do
sistema local, ferramenta SIEM e IDS, juntamente com arquivos de configuração de aplicativos e servidores
ÿ Use criptografia e soma de verificação para verificar e proteger a integridade dos arquivos de log
ÿ Analisar as cópias de trabalho dos logs coletados para procurar entradas suspeitas e correlacionar
os dados para construir uma cadeia de eventos desdobrando todo o cenário de ataque
ÿ Rastreie o IP do ataque para identificar o perpetrador do ataque. Essa tarefa geralmente é muito difícil, pois os
invasores costumam usar proxies e anonimizadores para ocultar sua identidade.
Fluxo do módulo
Detectar e Investigar
Entender Web
Análise forense de aplicativos
01 04 Vários ataques na Web
Formulários
Os logs do servidor web Apache, quando ativados, registram informações sobre cada solicitação HTTP (GET/
POST), bem como quaisquer erros/problemas encontrados pelo servidor web Apache.
Esta seção discute a arquitetura do servidor web IIS, o formato de log IIS e como analisar esses logs durante a
investigação. Esta seção também discute a arquitetura do servidor web Apache, tipos de logs Apache e como
os investigadores podem analisá-los no momento da investigação.
Informações da Internet
Cliente Pilha
Serviços (IIS) para Windows
Server é um servidor web flexível,
Pilha de
seguro e fácil de gerenciar para
Internet protocolo HTTP (HTTP.SYS)hospedar qualquer coisa na web
O Internet Information Services (IIS), um aplicativo desenvolvido pela Microsoft baseado no Visual Basic, é executado
em um servidor Web e responde a solicitações de um navegador. Ele suporta HTTP, HTTP Secure (HTTPS), File
Transfer Protocol (FTP), FTP Secure (FTPS), Simple Mail Transfer Protocol (SMTP) e Network News Transfer
Protocol (NNTP). Um aplicativo IIS usa HTML para apresentar sua interface de usuário e usa código Visual Basic
compilado para processar solicitações e responder a eventos no navegador. O servidor IIS para Windows é um
servidor da Web flexível e fácil de gerenciar para hospedagem na Web.
ÿ Gerenciamento de processos
ÿ Quando uma solicitação HTTP para um recurso é enviada do navegador do cliente para o servidor web, ela é interceptada
por HTTP.sys
ÿ O WAS gera uma solicitação de informações de configuração, como as do site e do pool de aplicativos, para
ApplicationHost.config, que é então passado para o Serviço WWW.
ÿ Um processo de trabalho é iniciado pelo WAS para o pool de aplicativos no qual a solicitação é
destinado a
O IIS depende principalmente de um grupo de bibliotecas de vínculo dinâmico (DLLs) que trabalham coletivamente com o
processo principal do servidor (inetinfo.exe) capturando diferentes funções, como indexação de conteúdo, scripts do lado do
servidor e impressão baseada na web.
A arquitetura aberta do IIS permite que um invasor explore a Web com conteúdo malicioso.
Sem service packs ou hot fixes no servidor da Web IIS, há várias maneiras pelas quais um invasor pode fazer com que o
inetinfo.exe, o processo do IIS, chame o shell de comando. Isso deve levantar suspeitas, pois não há necessidade inerente de
inetinfo.exe invocar o prompt de comando.
Registros do IIS
texto ASCII
Registros do IIS
O IIS registra todas as visitas do servidor em arquivos de log. Os logs do IIS fornecem informações úteis sobre a
atividade de vários aplicativos da Web, como endereço IP do cliente, nome de usuário, data e hora, tipo de solicitação e
destino da operação. O servidor IIS gera arquivos de log baseados em texto ASCII. O servidor IIS pode se tornar
vulnerável se houver algum problema de codificação ou configuração, o que pode permitir que invasores explorem o
servidor se não forem resolvidos a tempo. Na ocorrência de tais ataques, os investigadores forenses examinam os logs
do IIS para rastrear as tentativas feitas pelo invasor de explorar o servidor. Em sistemas operacionais Windows Server,
os arquivos de log são armazenados por padrão em %SystemDrive%\inetpub\logs\LogFiles.
Nota: O local de armazenamento dos logs pode variar caso o administrador tenha feito uma configuração para gravar e
armazenar os logs em outro local.
9 Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.3 6+(KHTML,
cs(User-Agent) O tipo de navegador que o cliente usou, conforme representado pelo navegador
+like+Gecko)+Chrome/48.0.2564.103+Safari/537.36
Para localizar os arquivos de log do IIS em uma máquina Windows Server 2016, vá para Ferramentas Administrativas no
menu Iniciar do Windows e clique em Gerenciador de Serviços de Informações da Internet (IIS).
Expanda a pasta correspondente ao nome do servidor. Selecione Logging no painel Features View para carregar as
configurações de Logging.
Navegue até a pasta LogFiles seguindo o caminho mostrado no campo Diretório. Para cada site configurado, a pasta
LogFiles contém uma subpasta com um nome, como W3SVC1 ou W3SVC2.
O último número no nome da pasta corresponde ao ID do site. Encontre a pasta que corresponde ao ID do site. Cada
site hospedado no IIS possui seu próprio subdiretório para arquivos de log, denominado W3SVCn, onde “n” representa
o número do site.
Os subdiretórios W3SVCn armazenam arquivos de log denominados u_exyymmdd.log, onde “yy” refere-se ao ano, “mm”
refere-se ao mês e “dd” refere-se ao dia.
Quando o IIS registra os logs no W3C Extended Log Format, o IIS armazena todos os eventos registrados no formato
GMT, em vez do formato do fuso horário local do sistema. Este ponto deve ser considerado durante o exame dos logs
porque o IIS cria um novo arquivo de log para o dia seguinte à meia-noite no GMT.
O IIS registra logs usando o Tempo Universal Coordenado (UTC), que ajuda na sincronização de servidores em vários
fusos horários. Para calcular o UTC, o Windows compensa o valor do relógio do sistema com o fuso horário do sistema.
Uma configuração precisa do fuso horário local deve ser assegurada pelo administrador da rede para validar o UTC.
Além disso, o administrador deve verificar o processo definido para o IIS rolar logs usando a hora local.
A configuração de fuso horário do servidor pode ser verificada visualizando as primeiras entradas no arquivo de log. Se
o fuso horário do servidor estiver definido como UTC -06:00, as primeiras entradas de log devem aparecer por volta das
18:00 (00:00 - 06:00 = 18:00).
Como o UTC não segue o horário de verão, o administrador também deve considerar a data. Por exemplo, UTC -6:00
será -5:00 durante metade do ano em fusos horários que seguem o horário de verão.
12/12/2019 06:11:41 192.168.0.10 GET / images/ content/ bg_body_1.jpg - 80 - 192.168.0.27 Mozilla/ 5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/ 537.36+
(KHTML, +like+Gecko)+Chrome / 48.0.2564.103+Safari/ 537.36 http:// www.moviescope.com/ css/ style.css 200 0 0 365
Na entrada acima:
ÿ 2019-12-12 06:11:41: Isso mostra a data e a hora em que a entrada do arquivo de log foi gravada
ÿ GET: Este é o campo cs-method indicando que o usuário emitiu uma solicitação GET ou download
comando
ÿ Mozilla/5.0+(Windows+NT+6.3;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko )+Chrome/
48.0.2564.103+Safari/537.36: Este é o campo cs(User-Agent) mostrando os detalhes do navegador usado
pelo cliente
ÿ 200: Isso denota o campo sc-status. O código de status 200 indica que a solicitação foi
cumprido sem erro
ÿ 365: Isso indica o campo de tomada de tempo. Na entrada de log de exemplo, a ação foi
concluído em 365 milissegundos
Componente /
Subcomponente
Núcleo Apache
Módulo Dados
Chamadas/Usos
interage
HTTP_MAIN Controle de retorno/dados
(loop do servidor)
UM MÓDULO APACHE
Apache
Core
para
De/
Manipulador 2
HTTP_CORE
(funcionalidade principal)
Manipulador 3
ALOC
SERVIÇOS DE UTILIDADE PÚBLICA
encontro privado
(res. piscinas)
Os elementos do núcleo do Apache são http_protocol, http_main, http_request, http_core, alloc e http_config.
ÿ http_protocol: Este elemento é responsável por gerenciar as rotinas. Ele interage com o cliente e lida com toda a
troca de dados e conexões de soquete entre o cliente e
servidor.
ÿ http_main: Este elemento lida com inicializações e tempos limite do servidor. Também é composto pelos principais
loop do servidor que espera pelas conexões e as aceita.
ÿ http_request: Este elemento controla o procedimento passo a passo seguido entre os módulos para concluir uma
solicitação do cliente e é responsável pelo tratamento de erros
ÿ http_core: Este elemento inclui um arquivo de cabeçalho que não é exigido pelo aplicativo
módulo
ÿ http_config: Este elemento é responsável por ler e manipular arquivos de configuração. Uma das principais
tarefas do http_config é organizar todos os módulos, que o servidor chamará durante as várias fases do
tratamento da solicitação.
Conforme discutido, a arquitetura do servidor web Apache inclui vários módulos que se conectam ao núcleo Apache e
auxiliam no processamento de solicitações pelo núcleo. Para alterar ou estender a funcionalidade do servidor Apache e
atender ao propósito desejado, os desenvolvedores podem escrever novos módulos.
De acordo com o requisito de uma solicitação, determinados módulos serão chamados. Os módulos implementam a
funcionalidade desejada e encaminham a saída para o núcleo, que monta a saída usando o componente HTTP_REQUEST
para enviá-la a outro módulo para processamento ou devolvê-la ao cliente. Os módulos consistem em manipuladores,
que denotam funções específicas a serem executadas pelos módulos. Os módulos criam manipuladores específicos
sempre que uma solicitação é processada.
ÿ Apache HTTP Server é um ÿ O servidor Apache gera dois ÿ Os logs do Apache fornecem
servidor web que suporta muitos tipos de logs informações sobre atividades de
SOs, como Unix, GNU, aplicativos da web, como as seguintes:
FreeBSD, Linux, Solaris, ÿ Registro de acesso
ÿ Endereço IP do cliente
Novell NetWare, AmigaOS,
ÿ Log de erros
macOS, Microsoft ÿ Identificação da máquina cliente
Windows, OS/2 e TPF
ÿ ID do usuário do cliente
ÿ Tempo
ÿ Código de estado
Apache HTTP Server é um servidor web que suporta muitos sistemas operacionais, como Unix, GNU, FreeBSD, Linux,
Solaris, Novell NetWare, AmigaOS, macOS, Microsoft Windows, OS/2 e TPF. Atualmente, ele pode funcionar em diferentes
sistemas operacionais, como Mac e Windows. Como é uma web multi-threaded
servidor, ele pode executar várias funções solicitadas pelos navegadores da Web do cliente e implementar várias tarefas
simultaneamente. Apache HTTP Server utiliza módulos e extensões para suportar vários ambientes.
1. Log de acesso: geralmente registra todas as solicitações processadas pelo servidor web Apache
2. Log de erros: contém informações de diagnóstico e erros que o servidor enfrentou durante o processamento de
solicitações
A localização exata desses logs do Apache varia de acordo com o sistema operacional em uso. Os investigadores podem
verificar os seguintes locais para o arquivo de configuração do Apache para encontrar a localização exata dos arquivos de log:
ÿ FreeBSD: /etc/httpd/conf/httpd.conf
Durante auditorias e investigações forenses, os logs do Apache fornecem informações muito importantes sobre todas as operações
realizadas no servidor web. Essas informações incluem endereços IP do cliente, a identidade de uma máquina cliente, hora, ID do
usuário cliente, linha de solicitação de um cliente, código de status e o tamanho do objeto retornado ao cliente. Todas as informações
fornecidas pelos logs podem levar o investigador ao atacante.
Log de
Acesso ÿ Contém as requisições
processadas pelo servidor Apache
ÿ Os locais padrão dos logs de acesso
são os seguintes:
RHEL/Red Hat/CentOS/Fedora
Linux:
/var/log/httpd/access_log
Debian/Ubuntu Linux: /
var/log/apache2/access.log
FreeBSD Linux: /
var/log/httpd-access.log
Todas as requisições HTTP processadas pelo servidor Apache são registradas no log de acesso. Possui
um registro de cada requisição que passa pelo servidor. A diretiva LogFormat ajuda a selecionar o
conteúdo do log necessário.
A diretiva CustomLog define o local e o conteúdo do log de acesso. A diretiva CustomLog também
contém informações para configurar o servidor de forma que o servidor possa manter registros de log de
acesso. Os logs de acesso são armazenados no Common Log Format por padrão e são altamente
configuráveis.
Corda
Número aparecer como Descrição
Percentagem
1458
Tamanho do objeto devolvido ao cliente em bytes
7 (%b)
Exemplo de uma entrada de arquivo de log de acesso do Apache no formato de log combinado conforme visualizado em um editor de texto:
Parâmetros
ÿ %l representa o nome do log remoto. O último retorna um traço, a menos que mod_ident esteja presente
e o IdentityCheck está ativado.
ÿ %u é o ID do usuário cliente.
ÿ \"%r\" indica os métodos usados para uma solicitação-resposta entre um cliente e um servidor, o recurso solicitado por
um cliente (apache_pb.gif) e o protocolo usado (HTTP/1.0).
10.10.10.10 - Jason [17/ ago/ 2019:00:12:34 +0300] "GET/ images/ content/ bg_body_1.jpg HTTP/ 1.0" 500 1458
Uma diretiva percent representa cada campo no log. Essas diretivas percentuais permitem que o servidor entenda quais
informações ele precisa registrar. Vamos mapear as diretivas percentuais com o formato de log real:
ÿ "GET /images/content/bg_body_1.jpg HTTP/1.0" (\"%r\"): O cliente usou o método de solicitação GET e solicitou o
recurso /images/content/bg_body_1.jpg. O cliente usou o protocolo HTTP/1.0
ÿ 1458 (%b): O servidor retornou o objeto de tamanho 1458 bytes para o cliente
Existem muitos campos de log em um log de acesso do Apache, conforme indicado na tabela abaixo:
%D – RequestTimeUs
%T – RequestTimeSeconds %(UNIQUE_ID)e - UniqueId
(microssegundos)
%(X-Encaminhado-Para)i -
%h - RemoteIPOrHost %u – RemoteUser
XForwardedFor
RemoteLogname %v - VirtualHost
Outra string de formato é comumente usada nos logs de acesso do Apache. É chamado de Formato de Log Combinado
e sua sintaxe é a seguinte:
10.10.10.10 - Jason [17/ ago/ 2019:00:12:34 +0300] “GET / images/ content/ bg_body_1.jpg HTTP/ 1.0” 500 1458 http://
www.abc.com/ login.php " Mozilla/ 5.0 (x11; Ubuntu; Linux x86_64; rv:73.0) Gecko/ 20100101 Firefox/ 73.0”
Este formato se assemelha exatamente ao Common Log Format de acesso Apache, exceto por dois campos adicionais:
(\"%{Referer}i\") e (\"%{User-agent}i\")
Aqui, no exemplo, “Mozilla/5.0” indica que o navegador é compatível com Mozilla. "x11; Ubuntu; Linux x86_64" indica que
a plataforma utilizada é o Ubuntu Linux e "rv:73.0" indica a versão do Firefox. "Gecko/20100101" indica que o navegador
é baseado em Gecko e "Firefox/73.0" indica o navegador e a versão.
Apache
Registros de erros
Registro de erros
FreeBSD: /var/log/httpd-error.log
O log de erros do Apache é o local onde o servidor registra todos os erros ocorridos durante o processamento da solicitação do
cliente. O arquivo de log de erros é denominado error.log em sistemas operacionais Windows e error_log em sistemas
operacionais baseados em Unix.
A diretiva ErrorLog define a localização do log de erros. O arquivo de log contém dados pertencentes aos
problemas na inicialização e operação do servidor. Ele também armazena informações relacionadas ao
motivo do problema e as etapas envolvidas para resolvê-lo. Os investigadores devem usar comandos
Linux como grep, cat, gedit e vi para ler esses arquivos de log.
ÿ FreeBSD: /var/log/httpd-error.log
[Qua 28 de agosto 13:35:38.878945 2020] [core:error] [pid 12356:tid 8689896234] [client 10.0.0.8] Arquivo não
encontrado: / images/ folder/ pic.jpg
ÿ Qua, 28 de agosto 13:35:38.878945 2020: Este é o primeiro elemento na entrada do log. Contém
o timestamp (dia, mês, data, hora e ano) do log.
ÿ cliente 10.0.0.8: O quarto elemento no log é o endereço do cliente a partir do qual o pedido
foi feito
ÿ Arquivo não encontrado: O quinto elemento do log mostra o estado do arquivo solicitado pelo cliente. Nesse
caso, o arquivo não foi encontrado. Portanto, o servidor exibiu uma mensagem de erro informando que o
arquivo não existe no servidor.
ÿ /images/folder/pic.jpg: O elemento final mostra o nome do arquivo e o caminho para o arquivo que
o cliente solicitou
Também pode haver outras mensagens geradas nos logs de erro do Apache, dependendo da gravidade dos erros,
conforme listado na tabela abaixo:
emergir Emergências – o sistema está inutilizável “A criança não consegue abrir o arquivo de bloqueio. Saindo”
Tabela 9.2: Mensagens de gravidade diferente geradas nos logs de erro do Apache
Deve-se notar aqui que o formato do arquivo de log de erros mostrado acima destina-se a servir como exemplo. Os
administradores podem alterar o formato dos arquivos de log de erros do Apache na configuração e especificar
quaisquer informações/valores adicionais a serem registrados.
Além disso, no caso de logs de erro, alguns itens de string de formato podem não gerar nenhuma saída.
Nesses casos, o log de erros do Apache omitiria todo o campo por padrão. Portanto, os investigadores devem examinar
cuidadosamente o arquivo de log de erros do Apache enquanto tentam entender qual conexão ou solicitação levou à
gravação de uma entrada de log de erro específica, qual campo ou campos foram omitidos e determinar os possíveis
motivos para tal omissão.
Fluxo do módulo
Detectar e Investigar
Entender Web
Análise forense de aplicativos
01 04 Vários ataques na Web
Formulários
C:\> eventvwr.msc
C:\> schtasks.exe
Verifique o uso do espaço de arquivo para encontrar qualquer diminuição repentina no espaço livre:
C:\> você
Esta seção discute quais arquivos de log e outros componentes do sistema os investigadores podem verificar enquanto
procuram por ataques em servidores baseados no Windows.
Os sistemas operacionais Microsoft Windows têm 77,64% da participação no mercado global, de acordo com https:// www.statista.com.
Consequentemente, os desenvolvedores podem preferir usar servidores baseados no Windows para implantar aplicativos da web.
Devido ao seu amplo uso, esses sistemas operacionais e os aplicativos da Web hospedados em alguns desses sistemas operacionais
são o principal alvo dos invasores. Os invasores podem tentar explorar as vulnerabilidades em servidores baseados no Windows ou
aplicativos da Web e obter acesso não autorizado aos recursos.
Quando ocorre um ataque em um aplicativo da web, os investigadores examinam o ataque no servidor que hospeda o aplicativo da
web usando algumas das ferramentas e aplicativos embutidos de máquinas baseadas no Windows.
Os investigadores podem executar as seguintes etapas para procurar sinais de ataques da Web em sistemas baseados no Windows
servidores:
C:\> eventvwr.msc
C:\> nbtstat -S
C:\> schtasks.exe
ÿ Verifique o uso do espaço de arquivo para encontrar qualquer diminuição repentina no espaço livre
C:\> você
Fluxo do módulo
Detectar e Investigar
Entender Web
Análise forense de aplicativos
01 04 Vários ataques na Web
Formulários
Esta seção discute como os investigadores podem detectar e analisar vários ataques a aplicativos da web.
codificação hexadecimal
ÿ Os invasores usam várias técnicas de Alternância entre maiúsculas e minúsculas
ÿ Os investigadores podem usar a pesquisa regex para encontrar tags HTML, outras palavras de assinatura XSS e seus equivalentes hexadecimais
em logs do servidor web, logs IDS, alertas de ferramentas SIEM, etc. para verificar ataques XSS
Nos ataques XSS, o invasor explora a vulnerabilidade em aplicativos da Web injetando scripts maliciosos, que são principalmente
JavaScript, HTML ou marcação CSS, nas páginas da Web exibidas no navegador do usuário. Ataques XSS comuns usam tags
HTML, como <script></script>, <IMG>, <INPUT> e <BODY>.
A implementação de firewalls, IDSs, IPSs, software antivírus etc. adequados dificulta a execução de ataques XSS pelos invasores,
pois eles precisam contornar esses mecanismos de segurança. Os invasores usam várias técnicas de ofuscação, conforme
indicado abaixo, para contornar esses mecanismos de segurança e realizar atividades maliciosas:
Para detectar sinais de ataques XSS, os investigadores podem procurar tags HTML, outras palavras de assinatura XSS ou seus
equivalentes hexadecimais; como alternativa, eles podem usar a pesquisa regex para encontrá-los em logs do servidor da web,
alertas de IDS, informações de segurança e alertas de ferramentas de gerenciamento de eventos (SIEM), etc.
A expressão regular abaixo verifica se há ataques que possam conter tags HTML de abertura e
fechamento (<>) com qualquer texto dentro, junto com seus equivalentes hexadecimais e duplos
ÿ /(javascript|vbscript|script|embed|object|iframe|fra
meset)/i
Quando um invasor executa um ataque XSS em uma página da Web dinâmica, ele pode criar um script que inclua tags
de formatação HTML, como <b> para negrito, <i> para itálico ou <u> para sublinhado.
Eles também podem usar tags de script, como <script>alert("OK")</script>.
Alguns invasores também podem usar mecanismos avançados para realizar um ataque XSS. Eles podem ocultar toda a
string emitindo seus equivalentes hexadecimais. Por exemplo, o equivalente hexadecimal de <script> é
%3C%73%63%72%69%70%74%3E.
A expressão regular a seguir pode ser usada para detectar ataques XSS simples. Ele verifica os
colchetes angulares de abertura e fechamento de tags HTML contendo texto para que possa
capturar facilmente tags como <b>, <i> e <script>:
/((\%3C)|<)((\%2F)|\/)*[a-ZA-Z0-9\%]+((\%3E)|(\%253E)|>)/ix
Nesta assinatura:
o ((\%2F)|\/)*: Procura a barra para uma tag de fechamento ou seu equivalente hexadecimal
Essa assinatura procura por tentativa de XSS baseada em "<img src". Nesta assinatura:
o (\%69)|i|(\%49))((\%6D)|m|(\%4D))((\%67)|g|(\%47): Procura o
letras "img" por meio de vários caracteres ASCII ou seus equivalentes hexadecimais
o [^\n]+: Procura qualquer caractere que não seja uma nova linha após o <img
/(javascript|vbscript|script|embed|object|iframe|frameset)/i
A assinatura acima procura por tags HTML, ataque XSS. Nessa assinatura, cada palavra-chave dentro dos
colchetes é separada por uma barra vertical ("|") representada por um OU.
/((\%3C)|<)[^\n]+((\%3E)|>)/I
Essa assinatura procura os colchetes angulares de abertura, ou seu equivalente hexadecimal, seguidos por um
ou mais caracteres (exceto qualquer nova linha) e seguidos pelo colchete angular de fechamento ou seu
equivalente hexadecimal.
%3C <
%3E >
% 28 (
% 29 )
%2F /
ÿ O script XSS malicioso %3Cscript%3Ealert%28XSS%29%3C%2Fscript%3E (4), que converte para <script>alert(XSS)</script> após a decodificação, foi injetado na página /
wordpress/wp- admin/admin.php?page=newsletters-subscribers (3) pelo invasor
ÿ Um código de status HTTP 200 (5) pode ser observado, indicando que o servidor de aplicativos da web processou a solicitação
ÿ A partir do exame de log, pode-se inferir que ocorreu um ataque XSS no aplicativo da web. Se este for um ataque XSS armazenado, este script obterá
armazenado no banco de dados de back-end e acionaria um pop-up de alerta com a mensagem “XSS” sempre que um usuário visitasse essa página da web.
Ao examinar as entradas do Apache access.log em busca de ataques XSS, os investigadores devem procurar tags
HTML maliciosas ou seus equivalentes hexadecimais em solicitações HTTP. É provável que o log de acesso do
Apache contenha várias solicitações registradas. Os investigadores, portanto, podem usar o comando grep para
filtrar logs de interesse. Depois que o ataque for confirmado, o investigador pode examinar outras partes do log para
coletar informações valiosas, como como e quando o ataque foi tentado, o site que foi alvo e se o ataque foi bem-
sucedido.
A entrada de log realçada no arquivo Apache access.log na figura abaixo mostra uma solicitação GET seguida por
alguns valores codificados em hexadecimal na string de consulta. Decodifique a string de consulta para determinar
se ela contém tags HTML maliciosas.
Figura 9.13: Examinando as entradas do log de acesso do Apache em busca de indicadores de ataque XSS
%3C <
%3E >
% 28 (
% 29 )
%2F /
A partir de uma análise detalhada da entrada de log mostrada acima, os seguintes detalhes podem ser obtidos:
ÿ Um código de status HTTP 200 (5) pode ser observado, implicando que o servidor de aplicativos da web
processou o pedido
O exame da entrada de log sugere que esta foi uma tentativa de ataque XSS armazenada. Isso implica que o script XSS
malicioso é salvo no banco de dados de back-end e acionaria um pop-up informando “XSS” se algum usuário visitasse
essa página da web.
Histórico
Aqui, o Snort IDS gerou um alerta para uma tentativa de ataque XSS com os seguintes detalhes:
O modo IDS do Snort usa métodos de inspeção baseados em regras para a detecção de ataques baseados na web.
Essas regras podem ser personalizadas de acordo com o ambiente operacional de qualquer empresa.
Os investigadores podem obter os seguintes detalhes de um alerta gerado pelo ataque Snort IDS para XSS:
ÿ Endereço IP do atacante/cliente
ÿ Porta de origem
ÿ Endereço IP do servidor
ÿ Porto de destino
Figura 9.14: Detectando uma tentativa de ataque XSS através do Snort IDS
Na figura acima, o Snort IDS gerou um alerta para uma tentativa de ataque XSS com os seguintes detalhes:
ÿ IP de Origem/Atacante: 192.168.0.233
ÿ IP de Destino/Alvo: 192.168.0.115
ÿ Porta de Destino: 80
XSSName
Histórico
Ao investigar ataques baseados na Web, como XSS, uma ferramenta SIEM como Splunk geralmente oferece um
bom começo para os investigadores, pois pode extrair quaisquer dados de log gerados por aplicativos, firewalls e
host para um local central.
As ferramentas SIEM também geram alertas se houver um problema de segurança ou qualquer atividade detectada
que vá contra os conjuntos de regras definidos. Isso facilita a tarefa de análise e coleta de evidências para os
investigadores. Ao usar uma ferramenta SIEM, os investigadores podem coletar dados de várias fontes de log, como
IDS, IIS, Apache e WAF, e analisá-los para detectar sinais de qualquer invasão em aplicativos da web.
Figura 9.15: Examinando um alerta acionado pelo Splunk em busca de sinais de ataque XSS
Na figura acima, um alerta disparado pelo Splunk coletado do Snort IDS mostra uma tentativa de ataque XSS com
as seguintes informações:
Um investigador deve procurar incidentes de ataque de injeção de SQL nas seguintes fontes:
Os logs IDS permitem que os administradores do sistema identifiquem quaisquer invasões bem-sucedidas. Os
logs gerados podem ajudar a identificar tendências e padrões de ataque. A análise desses padrões pode
permitir que os investigadores encontrem vulnerabilidades de segurança e preparem um plano para mitigá-las.
Além disso, o exame dos logs de IDS fornece informações relacionadas a qualquer possível vulnerabilidade de
segurança, descuidos de política ou qualquer sistema host ou rede em que os controles de segurança
adequados não tenham sido implementados.
Os logs do servidor Web fornecem informações sobre como, por quem e quando as páginas e aplicativos de
um site estão sendo acessados. Cada servidor web gera arquivos de log que mantêm um registro de acesso a
uma página ou gráfico HTML específico.
Uma assinatura de ataque específica de injeção de SQL em um arquivo de log pode ter a seguinte aparência:
Os invasores usam vários métodos de ofuscação para contornar os mecanismos de segurança nos sites. Algumas das técnicas
são discutidas abaixo:
ÿ Comentário em linha: os invasores usam comentários em linha no meio das sequências de ataque para ignorar
mecanismos de segurança.
ÿ Alternância entre maiúsculas e minúsculas: alguns aplicativos bloqueiam palavras-chave SQL em minúsculas. Nesse caso, os atacantes
use o código escrito em maiúsculas e minúsculas alternadas para ignorar esse mecanismo de segurança.
Alguns firewalls contêm o filtro de expressão regular (regex) /union\select/g. Portanto, eles podem filtrar códigos
suspeitos escritos em letras minúsculas.
ÿ Palavras-chave substituídas: alguns aplicativos e WAFs usam preg_replace para remover todas as palavras-chave SQL.
Portanto, os invasores usam a seguinte técnica de codificação para ignorar os WAFs.
ÿ Manipulação de espaço em branco: Conforme explicado acima, quando os invasores substituem palavras-chave, alguns
WAFs podem substituir as palavras-chave por espaço em branco. Nesses casos, os invasores usam "%0b" para eliminar
o espaço e contornar os firewalls.
/(\%27)|(\')|(\-\-)|(\%23)|(#)/ix
/((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(;))/i
/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
/((\%27)|(\'))união/ix
/exec(\s|\+)+(s|x)p\w+/ix
Os investigadores podem usar expressões regulares específicas para detectar ataques de injeção de SQL. Para
examinar com êxito um ataque de injeção de SQL, eles devem identificar todos os tipos de metacaracteres usados
em uma consulta SQL, como ponto-e-vírgula, traço duplo, aspas simples e sinal de menos duplo, bem como seus
equivalentes hexadecimais. Portanto, é necessário avaliar esses metacaracteres específicos do SQL ao compor
expressões regulares. Essas expressões regulares devem ser usadas para enquadrar as regras de assinatura do
Snort e definir alertas SIEM para a detecção de ataques de injeção de SQL.
As seguintes expressões regulares podem ser usadas para pesquisar metacaracteres específicos do SQL e seus
equivalentes hexadecimais:
Essa assinatura procura por metacaracteres SQL. Ele primeiro procura as aspas simples ('), seu equivalente
hexadecimal ou o traço duplo (--). Ele não procurará o equivalente hexadecimal do traço duplo, pois não
pertence ao metacaractere HTML e não pode ser codificado pelo navegador. No caso de bancos de dados
MySQL, esta assinatura também procura pelo caractere “#” ou seu equivalente hexadecimal.
Essa assinatura procura tentativas de injeção de SQL baseadas em erro. Ele primeiro procura o caractere
“=” ou seu equivalente hexadecimal (%3D). Posteriormente, ele procura por zero ou mais caracteres que
não sejam de nova linha e, finalmente, procura por aspas simples, hífens duplos ou ponto-e-vírgula.
/\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
Essa assinatura procura uma string que comece com um valor alfanumérico constante, seguido por aspas simples e,
em seguida, a palavra “ou”. Por exemplo, ele detecta a string “1'or2>1--.”.
o (\%27)|\': Procura pelo caractere (') ou aspas simples ou seu valor hexadecimal.
o (\%6F)|o|(\%4F))((\%72)|r|(\%52): Busca a palavra “ou” com várias combinações de seus valores hexadecimais
(ambos maiúsculos e combinações de letras minúsculas).
/((\%27)|(\'))união/ix
Esta assinatura procura por uma tentativa de injeção de SQL baseada em união onde:
o união: Busca pela palavra-chave “união”. Outras palavras-chave SQL, como “selecionar”, “inserir”, “atualizar” e
“excluir”, também podem ser usadas além de “união”: /((\%27)|(\'))(selecionar | união|inserir|atualizar|excluir|
substituir|truncar/dr op)/ix
/exec(\s|\+)+(s|x)p\w+/ix
Esta assinatura procura uma tentativa de injeção de SQL em um servidor MS SQL. Seus componentes são explicados
a seguir:
A solicitação GET na entrada de log do IIS destacada na figura abaixo contém alguns metacaracteres
SQL, alguns dos quais são codificados.
Figura 9.16: Examinando uma entrada de log do IIS em busca de indicadores de ataque de injeção de SQL
ÿ O ataque foi realizado a partir de uma máquina Linux (5) usando o IP 10.10.10.55 (4) em 13 de dezembro
de 2019 (1)
ÿ O invasor fez login no site www.luxurytreats.com hospedado no servidor IP 10.10.10.12 (2) com o nome
' (3)
de usuário bob e inseriu a consulta SQL maliciosa ou 1=1;-- na página de detalhes do pedido
ÿ Um código de status HTTP 200 (6) significa que o servidor de aplicativos da web processou essa
solicitação, permitindo que o invasor ignore a autenticação e acesse dados confidenciais relacionados
a pedidos do banco de dados
Definir regras no Snort IDS específicas para a vulnerabilidade de injeção de SQL geraria um alerta sempre que um ataque
fosse detectado. Uma vez localizado o IP de origem/ataque, os investigadores podem verificar outros arquivos de log e
ferramentas de segurança para reunir mais evidências sobre o ataque.
Figura 9.17: Examinando os logs de alerta do Snort em busca de indicadores de ataque de injeção de SQL
As entradas de log do Snort IDS na figura acima mostram três tentativas de injeção SQL do IP 192.168.0.233. Também inclui
outras informações, como as seguintes:
ÿ Porta de Destino: 80
ÿ Aqui, um alerta acionado pelo Splunk proveniente do log do IIS mostra uma tentativa de ataque de injeção de SQL como
resultado da consulta de pesquisa (1) com os seguintes detalhes:
As ferramentas SIEM, como o Splunk, podem ajudar os investigadores a coletar e examinar dados que indicam
um ataque de injeção SQL de várias fontes de log, como logs IDS, IIS, WAF e Apache, e protegê-los como
evidência para usá-los posteriormente para análise posterior.
Figura 9.18: Examinando uma consulta de pesquisa SIEM e alerta para indicadores de ataque de injeção SQL
A figura acima mostra um evento acionado pelo Splunk que indica uma tentativa de injeção de SQL. A fonte de
log usada aqui é um log do IIS. Este resultado foi extraído em resposta a uma consulta de pesquisa que
especifica o tipo de origem, bem como a expressão regex para a detecção de ataques de injeção de SQL (1).
Resumo do módulo
Este módulo discutiu os fundamentos forenses de aplicativos da web
Finalmente, este módulo terminou com uma discussão detalhada sobre detecção e
investigação de vários ataques em aplicativos da web
Resumo do módulo
Este módulo discutiu os fundamentos da análise forense de aplicativos da web. Ele discutiu logs do Internet Information
Services (IIS) e logs do servidor web Apache. Além disso, discutiu em detalhes a investigação de ataques na web em
servidores baseados em Windows. Este módulo também detalhou a identificação de indicadores de comprometimento
(IoCs) de logs de rede. Finalmente, este módulo apresentou uma discussão detalhada sobre a detecção e investigação de
vários ataques em aplicativos da web.