Lição 3 de 4 · 10 min
Registo e deteção
O que vale a pena registar num só Mac, e os sinais concretos — sinalização (beaconing), anomalias de DNS, binários não assinados — de que algo precisa de uma vista mais atenta.
Um firewall que não bloqueia nada e não regista nada é só metade de uma defesa. A deteção é a outra metade: notar quando algo na máquina se está a comportar de uma forma que não encaixa. Num só Mac, isto não exige um centro de operações de segurança, mas exige conhecer bem o suficiente o aspeto de uma ligação normal para notar uma anormal.
O que vale a pena registar
Num único computador, as categorias de registo úteis espelham o que um centro de operações de rede maior acompanharia, apenas reduzido de escala: que apps fizeram que ligações, para que destinos, e quando; que apps correram, e se estavam assinadas por um programador conhecido; e mudanças a definições relevantes para a segurança, como o firewall ou o Gatekeeper. O próprio macOS mantém um registo unificado que cobre eventos do sistema e das apps, visível na app Consola ou com log show, e as próprias decisões do Firewall de Aplicações também ficam lá registadas. O que falta à maioria das pessoas não é exatamente registo, já que o macOS já regista muita coisa, mas uma vista legível das ligações de saída especificamente, já que essa é a direção em que um comprometimento é mais provável de aparecer primeiro.
Ler registos de ligação: o que parece normal
Um registo de ligações só é útil depois de ter uma noção aproximada do que é normal para uma determinada app: um navegador a fazer ligações frequentes a muitos domínios diferentes é esperado; uma app de tomar notas a fazer o mesmo não é. Os três detalhes que vale a pena notar em qualquer ligação são o destino (um domínio ou endereço IP, e idealmente quem o opera), o momento (uma vez, ocasionalmente, ou num intervalo fixo), e a app responsável por ela.
Indicador: sinalização (beaconing)
A sinalização (beaconing) é uma ligação de saída repetida, muitas vezes com temporização precisa, usada por software para se anunciar a um servidor remoto, por vezes para receber mais instruções. O quadro ATT&CK do MITRE descreve este padrão de tráfego de comando e controlo ao nível da aplicação como algo que os defensores procuram especificamente através de "intervalos do tipo sinalização": uma temporização regular que uma app normal, orientada pelo utilizador, que se liga quando a usa e fica quieta caso contrário, não produziria. Uma única app a ligar-se silenciosamente ao mesmo endereço a cada poucos minutos, a toda a hora, quer a esteja a usar quer não, é o tipo de padrão que vale a pena investigar em vez de descartar.
Indicador: anomalias de DNS
Cada pesquisa de nome de domínio passa pelo DNS antes de uma ligação sequer ser feita, o que torna o tráfego DNS um lugar útil para procurar esquisitices: uma app a resolver um nome de domínio invulgarmente longo ou com aparência gerada ao acaso, uma rajada de pesquisas para domínios que não reconhece, ou consultas DNS num volume e formato que não corresponde à navegação normal. A explicação da Cloudflare sobre o tunelamento de DNS descreve um motivo para isto acontecer: codificar dados dentro de consultas e respostas DNS pode ser usado para mover informação para dentro ou para fora de uma rede, passando por controlos que só inspecionam o tráfego web comum. Não precisa de diagnosticar totalmente a técnica você mesmo; notar que a atividade de DNS de uma determinada app parece invulgar já é motivo suficiente para olhar mais de perto ou pedir ajuda.
Indicador: binários não assinados
Espera-se que todas as apps legítimas para Mac tenham assinatura de código, e a maioria também é notarizada (abordado no curso de reforço do macOS deste site). Pode verificar se uma app específica está assinada a partir do Terminal:
codesign -dv --verbose=4 /Applications/SomeApp.app
Executable=/Applications/SomeApp.app/Contents/MacOS/SomeApp
Identifier=com.example.someapp
...Uma app que não está assinada de todo, ou cujo identificador não corresponde ao que esperaria para essa app, vale a pena tratar com suspeita, particularmente se também aparecer na lista de processos a fazer ligações de rede que não consegue explicar. Esta é uma verificação só de leitura: inspeciona uma assinatura, não corre nem muda a app.
IDS/IPS, à escala pessoal
Um sistema de deteção de intrusões (IDS) observa o tráfego e emite um alerta perante padrões suspeitos; um sistema de prevenção de intrusões (IPS) vai mais longe e bloqueia o tráfego automaticamente. As versões empresariais destes comparam o tráfego com grandes conjuntos mantidos de assinaturas de ataques conhecidos e modelos comportamentais. Num só Mac, um firewall por app que sinaliza um destino novo ou invulgar e o deixa decidir funciona como uma versão leve e pessoal da mesma ideia: deteção, com a opção de agir, à escala de uma máquina em vez de toda uma rede.
A reter
- A coisa mais útil a registar num único Mac são as ligações de saída por app, já que o macOS já regista a maioria dos eventos de sistema e de segurança noutro lugar.
- A sinalização (beaconing) é uma ligação de saída repetida, muitas vezes com temporização regular, independentemente de estar a usar ativamente a app responsável.
- A atividade DNS invulgar (nomes de domínio longos ou com aparência aleatória, rajadas de pesquisas desconhecidas) pode indicar dados a mover-se para dentro ou para fora, passando pelos controlos normais de tráfego web.
- `codesign -dv --verbose=4 <caminho>` é uma forma só de leitura de verificar se uma app tem assinatura de código e por quem.
- Um firewall pessoal por app que sinaliza destinos invulgares funciona como um IDS leve para uma máquina: deteção, com a escolha de agir.
Teste-se
1. O que torna a "sinalização" (beaconing) suspeita em vez de apenas uma ligação normal?
- Usa HTTPS
- Acontece só uma vez
- É uma ligação repetida, muitas vezes com temporização regular, independentemente de a app estar a ser usada ativamente — Certo.
- Vem de um navegador
As apps comuns ligam-se para fora quando as usa; verificações regulares e mecânicas independentemente da atividade são o padrão que o MITRE ATT&CK associa a tráfego de comando e controlo.
2. Porque vale a pena prestar atenção a atividade de DNS invulgar?
- O DNS está sempre encriptado, por isso as anomalias são raras
- Os dados podem ser codificados em consultas e respostas DNS para mover informação passando por controlos que só inspecionam o tráfego web — Certo.
- As pesquisas DNS nunca acontecem num Mac normal
- Só importa para servidores web, não para computadores pessoais
O tunelamento de DNS esconde dados dentro do tráfego DNS precisamente porque muitas defesas não inspecionam o DNS tão de perto como o tráfego HTTP.
3. O que faz `codesign -dv --verbose=4 <caminho da app>`?
- Elimina uma app não assinada
- Mostra a assinatura de código e o identificador de uma app, sem a mudar — Certo.
- Impede que a app corra
- Instala uma regra de firewall para a app
É um comando de inspeção só de leitura que mostra informação de assinatura para a app dada, útil para verificar se está legitimamente assinada.
Praticar com o FireAI
Ponha esta lição em prática no seu próprio Mac.
- Regras: app, sítio, domínio, IP ou um intervalo, para sempre ou até reiniciar — Escreva uma regra tão precisa como um único endereço ou tão ampla como um domínio inteiro.
- O corte de emergência — Corte o seu Mac da internet com um clique quando algo parecer errado.
- Investigue uma ligação — Decida com os factos à sua frente, não com um aviso vago.
- Atividade: todas as apps que se ligaram, com uma pesquisa de histórico em linguagem simples — Veja todas as apps que se ligaram hoje, e aja sobre qualquer uma delas com um clique.
Fontes
- MITRE ATT&CK: Application Layer Protocol (T1071)
- Cloudflare Learning: What is DNS tunneling?
- Apple Platform Security: App code signing process
Ponha em prática no seu Mac
Experimente todas as funcionalidades grátis durante 17 dias, sem cartão.