Específicos · Segurança da Informação
Ataques: SQLi, XSS, CSRF, phishing, DDoS, MITM, ransomware, SSRF; malwares
Todo ataque tem um endereço — onde acontece, o que explora e qual pilar derruba; a banca quase nunca inventa uma mentira nova, ela cola a descrição correta de um ataque no nome do vizinho.
Alta161 itens no tópico
A ideia que organiza o assunto
Os nomes são muitos e se parecem: injeção, XSS, CSRF, phishing, spear phishing, DoS, DDoS, spoofing, sniffing, MITM, worm, vírus, trojan, rootkit. Decorar definição por definição é perder, porque a prova não pergunta a definição — ela descreve um ataque corretamente e o batiza com o nome de outro.
O que resolve isso é dar a cada ataque um endereço de três campos:
- Onde acontece — no banco de dados do servidor, no navegador de outro usuário, no navegador da própria vítima já autenticada, no canal, na banda, ou na cabeça da pessoa.
- O que explora — o servidor confiar na entrada; o navegador confiar no que a página devolve; o navegador mandar o cookie sozinho; a vítima confiar no remetente; o recurso ser finito.
- Qual pilar derruba — confidencialidade, integridade ou disponibilidade.
Com esses três campos preenchidos, quase todo item se julga sem pensar duas vezes. “DDoS para coletar dados sensíveis”: DDoS mora na disponibilidade, o item está errado e você não precisou de mais nada. “Keylogger captura o teclado virtual”: teclado virtual é tela, tela é screenlogger, errado. “Spyware que envia cópias de si mesmo pela rede”: autopropagação é endereço de worm, errado.
Guarde ainda uma segunda régua, que decide sozinha uma fatia grande dos itens: quem é o alvo direto. SQL injection ataca o banco; XSS ataca os outros usuários da aplicação; CSRF ataca a aplicação em nome da vítima; DDoS ataca o serviço; phishing ataca a pessoa.
Como funciona
Injeção. A família inteira — SQL injection, LDAP injection, injeção de
comandos — nasce do mesmo defeito: um dado fornecido pelo usuário é concatenado
em algo que depois vai ser interpretado, e por isso deixa de ser dado e vira
código. O 1' or '1'='1 clássico não “adivinha” a senha: ele fecha a aspa e
acrescenta uma condição sempre verdadeira à consulta, e o resultado é bypass
de autenticação. As consequências vão de leitura e alteração de dados a execução
remota de comandos. A defesa é separar dado de código — consultas parametrizadas
(prepared statements) — reforçada por validação de entrada por lista de
permitidos (aceitar só o que se sabe válido, não tentar listar o proibido). O
que não defende: criptografar a coluna no banco, porque a aplicação recupera
o dado já decifrado e é ela quem está sendo enganada.
XSS. Também é injeção, mas o interpretador é outro: o navegador de outro
usuário. O atacante consegue que a aplicação devolva na página um script que
não deveria estar ali, e esse script roda com a origem do sítio confiável —
podendo ler cookies, sequestrar a sessão, desfigurar a página ou registrar o que
a vítima digita. São três variantes: refletido (a carga vai na requisição e
volta na resposta imediata; exige engenharia social para que a vítima clique no
link), armazenado ou persistente (a carga fica gravada no servidor — um
comentário, um perfil — e atinge todo mundo que abrir a página) e baseado em
DOM (a carga nunca chega ao servidor; o próprio JavaScript da página a lê da
URL e a escreve na página). A defesa é codificação de saída e sanitização,
apoiada por CSP e pelo cookie com HttpOnly, que impede o script de ler o
cookie de sessão.
CSRF. O ponto que decide todo item de CSRF: o atacante não injeta nada e
não lê a resposta. Ele apenas faz o navegador da vítima disparar uma requisição
legítima em aparência, e o navegador anexa sozinho o cookie de sessão porque foi
para isso que o cookie existe. Por isso o ataque só funciona enquanto a sessão
está ativa, e por isso o efeito é uma ação (transferir, trocar senha,
excluir), não um vazamento. Serve tanto GET quanto POST. Defesa: token
antifalsificação por sessão ou por requisição, cookie com SameSite, conferência
de Origin/Referer, reautenticação ou captcha em operação sensível e prazo
curto de sessão. Não defende: HTTPS, certificado, criptografia — o canal cifrado
transporta a requisição forjada com o mesmo zelo.
Engenharia social e phishing. Aqui a vulnerabilidade é a pessoa, e nenhuma
correção de código a fecha. Phishing é a isca ampla, em massa, por email,
mensagem, rede social ou página falsa de banco e de comércio eletrônico.
Spear phishing é dirigido a uma pessoa ou grupo determinado, previamente
pesquisado; whaling é o spear phishing cujo alvo é a alta direção — CEO, CFO.
Vishing é por voz, smishing por SMS. Pharming é outra coisa: em vez
de convencer a vítima a clicar, envenena a resolução de nomes (DNS ou arquivo
hosts) para que o endereço certo leve ao servidor falso. Defesa: conscientização,
autenticação multifator, filtros e a tríade SPF, DKIM e DMARC, que autentica
o domínio remetente e derruba a falsificação de cabeçalho (spoofing de email).
DoS e DDoS. DoS é a negação de serviço a partir de uma origem; DDoS parte de muitas, tipicamente uma botnet de máquinas comprometidas (zumbis) comandadas pelo botmaster por um canal de comando e controle. Há ainda o PDoS (permanent denial of service, também phlashing ou bricking), que é a exceção à regra de que negação de serviço não danifica equipamento: ele explora o mecanismo de atualização para gravar uma imagem corrompida de firmware, inutilizando o dispositivo até a regravação ou a troca física. O adjetivo permanente é o divisor — DoS e DDoS exaurem recurso e passam quando o ataque cessa; o PDoS destrói. O botmaster manda; quem satura é a vítima. Os vetores se dividem por camada: SYN flood esgota a fila de conexões semiabertas do servidor na camada de transporte — o atacante manda SYN com origem forjada e nunca completa o handshake de três vias; HTTP flood exaure a aplicação com requisições aparentemente válidas na camada 7; ICMP flood, UDP flood e DNS flood entopem a banda. A amplificação com reflexão é a variante mais eficiente: o atacante envia uma pergunta pequena a um serviço aberto de terceiro (DNS, NTP, SSDP, memcached) usando como origem o IP da vítima, e o refletor devolve à vítima uma resposta muitas vezes maior. Defesa: filtro antispoofing, desativação de serviços desnecessários, limitação de taxa, restrição de ICMP e UDP no perímetro e, para volume, depuração de tráfego a montante (scrubbing, CDN, serviço do provedor) — o firewall de borda sozinho não resolve, porque ele próprio e o enlace que o alimenta são saturados antes.
Interceptação e falsificação. Sniffing é observar o tráfego — ataque passivo, contra a confidencialidade. Spoofing é falsificar uma identidade: IP, MAC, cabeçalho de email, ponto de acesso. O MITM combina os dois: o atacante se coloca no meio da conversa, lê e pode alterar, o que o torna ataque ativo. Os caminhos usuais são ARP spoofing na camada de enlace, DNS spoofing (defesa: DNSSEC, que assina digitalmente as respostas), rogue AP / evil twin em redes sem fio e SSL stripping. Não confunda com wardriving, que é apenas circular pela região mapeando as redes existentes.
Reconhecimento. Port scanning, varredura de rede e fingerprinting vêm antes do ataque. A técnica é a mesma para o administrador e para o invasor — o que muda é a intenção e a autorização. O TCP é varrível justamente porque responde SYN-ACK a um pedido de conexão em porta aberta. Prevenir é possível: fechar e proteger portas, filtrar no firewall, bloquear no IPS, manter e reter os registros.
Códigos maliciosos. Malware é o guarda-chuva. O vírus precisa de hospedeiro — insere cópias de si mesmo em programas, arquivos ou setor de boot — e depende de execução. O worm se propaga sozinho pela rede, sem hospedeiro e sem intervenção humana, consumindo recursos. O cavalo de troia se disfarça de programa útil, executa outra coisa e não se replica; o RAT é o trojan que dá acesso remoto, somando trojan e backdoor. O spyware observa (keylogger no teclado físico, screenlogger na tela e nos teclados virtuais, adware nos hábitos e interesses). O ransomware extorque, seja bloqueando o equipamento (locker), seja cifrando os arquivos (crypto); o leakware ou doxware ameaça publicar os dados. O rootkit não é sobre entrar, é sobre ficar sem ser visto: manipula o sistema operacional, podendo operar em nível de kernel, esconde processos e mantém acesso privilegiado com persistência. O bot põe a máquina sob comando remoto. APT não é um malware, é um perfil de campanha: alvo específico, entrada discreta por engenharia social, permanência longa, tráfego de comando e controle disfarçado de tráfego legítimo.
Senhas e memória. Força bruta percorre o espaço de tentativas; ataque de
dicionário é a versão que aposta em senhas previsíveis, e por isso morre diante
de senha longa e aleatória e de chave criptográfica de tamanho adequado.
Buffer overflow ocorre quando a quantidade de dados excede o espaço
alocado, sobrescrevendo memória vizinha; funções sem verificação de limite, como
gets(), são o caso de manual, e a exploração depende da arquitetura do
processador.
O que decide os itens
O endereço de cada ataque — a tabela que decide mais itens que todas as outras distinções somadas:
| ataque | onde ocorre | o que explora | pilar | defesa |
|---|---|---|---|---|
| SQL / LDAP injection | interpretador do servidor (banco, diretório) | dado do usuário concatenado à consulta | C, I (e execução remota) | consulta parametrizada; validação por lista de permitidos |
| XSS | navegador de outro usuário | saída não codificada devolvida pela aplicação | C (sessão, cookie) | codificação de saída, sanitização, CSP, cookie HttpOnly |
| CSRF | navegador da própria vítima autenticada | o cookie que o navegador envia sozinho | I (ação indevida) | token antifalsificação, SameSite, conferir Origin, captcha |
| Phishing / engenharia social | a pessoa | confiança no remetente | C, I | conscientização, MFA, SPF/DKIM/DMARC |
| DoS / DDoS | recurso finito (banda, fila, CPU) | escassez do recurso | D | antispoofing, limitação de taxa, scrubbing a montante |
| Sniffing | canal | tráfego em claro | C | cifrar o tráfego (TLS, VPN) |
| Spoofing | identidade (IP, MAC, DNS, email, AP) | ausência de autenticação da origem | I, autenticidade | filtro antispoofing, DNSSEC, SPF/DKIM, 802.1X |
| MITM | canal, no meio da conversa | falta de autenticação mútua | C e I | TLS com validação de certificado, HSTS, DAI |
| Port scan | portas expostas | resposta do TCP a pedido de conexão | reconhecimento | fechar portas, firewall, IPS, registros |
| Buffer overflow | memória do processo | ausência de verificação de limite | C, I, D | funções com limite, canário, ASLR/DEP |
XSS refletido × armazenado × DOM — a carga volta na resposta imediata (exige que a vítima clique) × fica gravada no servidor e atinge todos os visitantes × nunca chega ao servidor, sendo escrita na página pelo próprio JavaScript.
CSRF × XSS — o CSRF faz a vítima executar uma ação; o XSS faz o navegador da vítima executar um script. O CSRF depende de sessão ativa e não lê a resposta; o XSS não depende de sessão e rouba o que estiver ao alcance do script. Cookie é defesa contra XSS (com HttpOnly) e é justamente o vetor do CSRF.
SQL injection × XSS — banco de dados × navegador; linguagem SQL × JavaScript. Todo item que diz que o XSS ataca consultas do banco, ou que o SQL injection usa JavaScript, está errado por esta linha.
DoS × DDoS × amplificação — uma origem × muitas origens (botnet) × terceiro inocente refletindo e multiplicando o volume contra a vítima. Em qualquer das três, quem satura é a vítima, nunca o botmaster.
SYN flood × HTTP flood × ICMP flood — camada de transporte, fila de conexões semiabertas × camada de aplicação, requisições HTTP × banda, pacotes de eco. Item que descreve SYN flood com pacotes ICMP, ou com requisições HTTP, trocou o vetor.
Phishing × spear phishing × whaling × pharming — massa e aleatório × dirigido a alvo pesquisado × dirigido à alta direção × redirecionamento por envenenamento de DNS, sem isca. Toda inversão entre os dois primeiros já caiu.
Sniffing × spoofing × MITM — observar × fingir ser × estar no meio lendo e alterando. Passivo, ativo, ativo.
Vírus × worm × cavalo de troia — precisa de hospedeiro e de execução × autopropaga pela rede sem intervenção × disfarce que não se replica.
Keylogger × screenlogger × adware — teclado físico × tela e teclado virtual × hábitos, interesses e publicidade.
Vírus polimórfico × stealth — muda o próprio código a cada infecção para escapar da assinatura × intercepta as chamadas de leitura e devolve resultado forjado para esconder o que alterou.
CWE × CVE — classe de fraqueza (buffer overflow, XSS) × vulnerabilidade concreta identificada em um produto específico.
Ataque passivo × ativo — o passivo obtém dados em trânsito e ameaça a confidencialidade (escuta, análise de tráfego); o ativo cria ou modifica dados e ameaça a integridade e a disponibilidade (falsificação, repetição, negação de serviço).
Análise estática × dinâmica de malware — examinar o binário sem executar (strings, cabeçalhos, desmontagem) × observar o comportamento em execução controlada. Só a segunda descreve o que o malware faz “em tempo real”.
Pilar afetado, item por item — o atalho mais barato do tópico:
| ataque | pilar que derruba |
|---|---|
| DoS, DDoS, flood, ransomware (cifragem) | disponibilidade |
| Sniffing, escuta, análise de tráfego, phishing, spyware | confidencialidade |
| Spoofing, MITM, CSRF, defacement | integridade e autenticidade |
Use a tabela para achar o pilar predominante, nunca o exclusivo: item que diz que o phishing compromete apenas a confidencialidade está errado, porque a credencial obtida altera cadastros (integridade) e permite apagar dados ou instalar ransomware (disponibilidade). O DDoS é a exceção que de fato se esgota em um pilar só.
Números que caem
| handshake TCP explorado pelo SYN flood | 3 vias (SYN, SYN-ACK, ACK) |
| DoS × DDoS | 1 origem × muitas (botnet) |
| variantes de XSS | 3: refletido, armazenado, baseado em DOM |
| chave simétrica de 128 e 256 bits | 2¹²⁸ e 2²⁵⁶ combinações — força bruta inviável |
| chave de 56 bits (DES) | quebrável por força bruta em tempo aceitável |
| portas dos refletores de amplificação | DNS 53 · NTP 123 · SSDP 1900 · memcached 11211 |
| portas varridas com mais frequência | HTTP 80 · HTTPS 443 · SMB 445 · RDP 3389 · SSH 22 |
| WannaCry | 2017, ransomware, resgate em bitcoins, exploração do SMB |
| OWASP Top 10 2021 | A01 Quebra de controle de acesso (onde entra o CSRF) · A03 Injeção (SQLi e XSS) |
Como a CEBRASPE derruba você aqui
Medido sobre os 160 itens do tópico, todos explicados: 80 Certos e 80 Errados — exatamente metade. Nos 80 Errados: troca de termo 34 (43%), generalização 13 (16%), inversão 12 (15%), atribuição errada 11 (14%), relação causal 5 (6%), escopo ampliado 3 (4%) e número errado 2 (3%).
O rótulo não é a frase útil. A frase útil é esta: em 34 dos 80 itens errados a descrição do ataque está impecável e só o nome está trocado — e o nome é o do vizinho da mesma família. Nunca um nome distante: sempre o irmão. “Keylogger é um tipo de spyware que copia o que está sendo digitado na tela do usuário” (tela é screenlogger); “Spyware é um código malicioso que se propaga automaticamente por várias redes” (autopropagação é worm); “Worms são programas maliciosos que se propagam por meio da inclusão silenciosa de cópias de si mesmos em outros programas” (hospedeiro é vírus); “Cavalo de Troia é um tipo de vírus”; “Ransomware é uma técnica utilizada para coletar dados de usuários por meio de mensagens”; “Adware é um tipo de ataque em que os alvos são contatados por e-mail, telefone ou mensagem” (isso é phishing); “Inundação SYN é um ataque em que um grande número de solicitações HTTP inunda o servidor”; “em um ataque do tipo SYN flood são enviados diversos pacotes ICMP (ping)”; “Cross-site scripting é um tipo clássico de CVE” (é CWE); “Vírus polimórficos escondem as modificações que realizaram” (isso é stealth); “Bug é o ataque de negação de serviço realizado de forma distribuída”. Leia a descrição primeiro e nomeie o ataque você mesmo; só depois olhe o nome escrito no item. Se os dois não baterem, acabou — e você não precisou saber mais nada.
A variante mais barata dessa troca é o pilar. Quatro itens tomam a descrição certa e trocam confidencialidade, integridade e disponibilidade de lugar: “O ataque de negação de serviço DOS afeta a integridade dos dados, tornando-os indisponíveis” — a frase se contradiz sozinha; “A principal consequência de um ataque DDoS é a perda de integralidade dos dados armazenados”; “Escuta, análise de tráfego e falsificação são exemplos de ataques que ameaçam a integridade” — escuta e análise são passivas, logo confidencialidade, e só a falsificação é ativa. Quando o item agrupa vários ataques sob um pilar só, teste cada um separadamente: basta um fora do lugar para derrubar o conjunto.
Suficiência: 16 itens, 20% dos errados (13 de generalização e 3 de escopo ampliado). Uma medida real, verdadeira no seu domínio, apresentada como bastante: “basta a utilização de certificados SSL para mitigá-lo”, dito do CSRF; “é suficiente desativar o suporte a XML no navegador do usuário”, dito do XSS; “o uso de cookies é suficiente para garantir que uma aplicação não seja vulnerável” a CSRF — o cookie é justamente o vetor; “A proteção contra SQL injection é suficiente para impedir a exploração de vulnerabilidades XSS e CSRF”; “restringir o número de portas abertas no firewall, sem a necessidade de outros controles adicionais ou de monitoramento contínuo”; “garante blindagem contra ataques embasados em engenharia social”, dito do MFA; “o pagamento do resgate representa a garantia da recuperação imediata de todos os dados”. Achou basta, suficiente, garante, blindagem, sem necessidade de — procure o que a medida deixa de fora, porque é ali que está o gabarito. O mesmo absoluto aparece restringindo o ataque, e vale o mesmo: “o phishing é realizado apenas por telefone”; “Phishing compromete apenas a confidencialidade”; “os ataques de DoS e DDoS utilizam apenas um único computador”; “o port scanning não pode ser prevenido, sendo possível apenas a sua detecção”.
Inversão dentro do par — 12 itens. Duas descrições corretas, nos lugares trocados: “o worm se diferencia do vírus pelo fato de se propagar por meio da inclusão de cópias de si mesmo em outros programas”; “os worms não se propagam automaticamente”; “ataques APT usam uma abordagem ampla e são projetados sem um alvo específico”; “os ataques de spear phishing são realizados mediante o envio aleatório e em massa de emails”; “um ataque de negação de serviço é dificilmente detectado” — DoS é fácil de detectar e difícil de mitigar, não o contrário; “XSS e entidades externas de XML são exemplos de controles e boas práticas” — são vulnerabilidades, não controles; “malwares… com o objetivo de trazer informações para os usuários infectados” — a exfiltração vai para o atacante; sistemas heurísticos com “imunidade à sinalização de falsos positivos” — heurística detecta o novo e por isso erra mais. Confira o par, não cada metade.
Atribuição errada — 11 itens, e a metade deles troca o objetivo, não o mecanismo. O mecanismo descrito está certo e a finalidade é de outro ataque: o DDoS “para causar superaquecimento e danos físicos ao hardware do processador”; o DDoS “para invadir bases de dados para coletar informações sensíveis”; o DoS que “tem como principal objetivo a coleta de informações sensíveis dos alvos”. Sobrecarregar é o meio; o fim é sempre indisponibilizar. A outra metade troca o ator ou a defesa: “a saturação dos pacotes ocorre no botmaster”; “um firewall de borda é considerado como o elemento capaz de fazer a mitigação de ataques DDoS de maneira eficiente”; “o uso de SSL/TLS ajuda a prevenir ataques de negação de serviço”; “a melhor contramedida contra o phishing seria usar algoritmos de criptografia mais robustos”; o ataque de dicionário empregado “contra criptografias que utilizam chaves longas e complexas” — dicionário ataca previsibilidade, não tamanho de chave.
Causa invertida — 5 itens. “O protocolo TCP não é suscetível a port scan porque, por padrão, ele deve responder a um pedido de conexão” — o motivo alegado é exatamente o que o torna varrível; “o modelo de conectividade padrão do docker é menos vulnerável uma vez que os contêineres são uma camada de isolamento entre os aplicativos e o kernel” — o contêiner compartilha o kernel, quem isola com hipervisor é a VM; “basta a utilização de certificados SSL para mitigá-lo”. Quando o item oferece um porque, teste se a causa sustenta a conclusão ou a destrói.
Número quase não decide item aqui: 2 dos 80 errados. A tabela de números acima é reforço de memória, não o eixo da prova — e os dois itens medidos giram em torno de uma coisa só, o tamanho de chave que torna a força bruta viável (“chaves de até 256 bits”, quando a fronteira é 56).
O tópico é mais largo que o título. Cerca de dez dos 160 itens não são de ataque: arquivo de log do Active Directory, modo túnel do IPSec, AES como cifra de bloco, rede padrão do Docker, SNMP sobre UDP, NAT, verificação de configuração do Nagios e gestão de riscos. Três outros são interpretação de texto em inglês sobre uma reportagem de ransomware, e neles o que se cobra é leitura — tese do autor contra opinião mencionada, valor alterado em relação ao texto —, não segurança. Não estranhe ao encontrá-los; eles não mudam o que estudar aqui.
Erros clássicos
Achar que CSRF e XSS são a mesma coisa. O XSS injeta script e roda no navegador da vítima com a origem do sítio; o CSRF não injeta nada, apenas faz o navegador enviar uma requisição que a aplicação vai considerar legítima. Um rouba o que o script alcançar; o outro executa uma ação.
Supor que HTTPS resolve o ataque da vez. TLS protege confidencialidade e integridade em trânsito. Não impede DoS, não impede CSRF, não impede SQL injection, não impede phishing — e o sítio falso do golpista também tem cadeado.
Confundir criptografia no banco com defesa contra SQL injection. A aplicação recupera o dado decifrado; quem está sendo enganado é ela.
Tratar port scan e varredura de rede como necessariamente maliciosos. A mesma técnica é ferramenta de administrador e de invasor; e ela pode ser prevenida, não só detectada.
Achar que pagar o resgate garante os dados de volta. Não garante nada, e a recuperação depende de backup íntegro, isolado e testado.
Dizer que rootkit é fácil de detectar ou que some com a reinicialização. Ele existe para não ser detectado e para persistir, inclusive no boot.
Achar que MFA e antivírus blindam contra engenharia social. Reduzem risco; blindagem não existe, e a prova castiga essa palavra.
Confundir o meio com o ataque. Phishing não é “por telefone” nem “por email”: é engenharia social, e usa o meio que estiver à mão.
LidoPraticado