Pular para o conteúdoHisnLabs
← Defesa de rede para um único computador

Aula 3 de 4 · 10 min

Registro e detecção

O que vale a pena registrar em um único Mac, e os sinais concretos — beaconing, anomalias de DNS, binários não assinados — de que algo precisa de uma olhada mais de perto.

Um firewall que não bloqueia nada e não registra nada é apenas metade de uma defesa. A detecção é a outra metade: perceber quando algo na máquina está se comportando de um jeito que não se encaixa. Em um único Mac, isso não exige um centro de operações de segurança, mas exige conhecer bem o suficiente como é uma conexão normal para perceber uma anormal.

O que vale a pena registrar

Em um único computador, as categorias úteis de registro espelham o que um centro de operações de rede maior acompanharia, só que em escala reduzida: quais aplicativos fizeram quais conexões, para quais destinos, e quando; quais aplicativos rodaram, e se foram assinados por um desenvolvedor conhecido; e mudanças em configurações relevantes para a segurança, como o firewall ou o Gatekeeper. O próprio macOS mantém um registro unificado cobrindo eventos do sistema e de aplicativos, visível no aplicativo Console ou com log show, e as próprias decisões do Firewall de Aplicativos também são registradas ali. O que a maioria das pessoas não tem não é exatamente registro, já que o macOS já registra bastante coisa, mas uma visão legível especificamente das conexões de saída, já que essa é a direção em que um comprometimento tem mais chances de aparecer primeiro.

Lendo registros de conexão: como o normal se parece

Um registro de conexão só é útil quando você já tem uma ideia aproximada do que é normal para um determinado aplicativo: um navegador fazendo conexões frequentes com muitos domínios diferentes é esperado; um aplicativo de anotações fazendo o mesmo não é. Os três detalhes que valem a pena observar em qualquer conexão são o destino (um domínio ou endereço IP, e idealmente quem o opera), a periodicidade (uma vez, ocasionalmente, ou em um intervalo fixo), e o aplicativo responsável por ela.

Indicador: beaconing

Beaconing é uma conexão de saída repetida, muitas vezes com um horário preciso, usada por um software para "reportar-se" a um servidor remoto, às vezes para receber mais instruções. O framework ATT&CK do MITRE descreve esse padrão de tráfego de comando e controle na camada de aplicação como algo que os defensores procuram especificamente por meio de "intervalos parecidos com sinais de beacon": um horário regular que um aplicativo normal, guiado pelo usuário, que se conecta quando você o usa e fica quieto o resto do tempo, não produziria. Um único aplicativo se conectando silenciosamente ao mesmo endereço a cada poucos minutos, o dia todo, esteja você usando-o ou não, é o tipo de padrão que vale a pena investigar, em vez de descartar.

Indicador: anomalias de DNS

Toda busca de nome de domínio passa pelo DNS antes mesmo de uma conexão ser feita, o que torna o tráfego de DNS um bom lugar para procurar coisas estranhas: um aplicativo resolvendo um nome de domínio incomumente longo ou com aparência gerada aleatoriamente, uma explosão de buscas para domínios que você não reconhece, ou consultas de DNS em um volume e formato que não correspondem à navegação normal. A explicação da Cloudflare sobre o tunelamento de DNS descreve um motivo para isso acontecer: codificar dados dentro de consultas e respostas de DNS pode ser usado para mover informações para dentro ou para fora de uma rede, passando por controles que só inspecionam o tráfego web comum. Você não precisa diagnosticar totalmente a técnica sozinho; perceber que a atividade de DNS de um aplicativo específico parece incomum já é motivo suficiente para olhar mais de perto ou pedir ajuda.

Indicador: binários não assinados

Espera-se que todo aplicativo legítimo para Mac tenha assinatura de código, e a maioria também é notarizada (abordado no curso de fortalecimento do macOS deste site). Você pode verificar se um aplicativo específico está assinado pelo Terminal:

Terminal
codesign -dv --verbose=4 /Applications/SomeApp.app
Executable=/Applications/SomeApp.app/Contents/MacOS/SomeApp
Identifier=com.example.someapp
...

Um aplicativo que não está assinado de forma alguma, ou cujo identificador não corresponde ao que você esperaria para esse aplicativo, vale a pena tratar com suspeita, particularmente se ele também aparece na lista de processos fazendo conexões de rede que você não consegue explicar. Essa é uma verificação somente leitura: ela inspeciona uma assinatura, não roda nem muda o aplicativo.

IDS/IPS, em escala pessoal

Um sistema de detecção de intrusão (IDS) observa o tráfego e emite um alerta sobre padrões suspeitos; um sistema de prevenção de intrusão (IPS) vai além e bloqueia o tráfego automaticamente. As versões empresariais desses sistemas comparam o tráfego com grandes conjuntos mantidos de assinaturas de ataque conhecidas e modelos comportamentais. Em um único Mac, um firewall por aplicativo que sinaliza um destino novo ou incomum e deixa você decidir funciona como uma versão pessoal e leve da mesma ideia: detecção, com a opção de agir, na escala de uma máquina, em vez de uma rede inteira.

Para lembrar

  • A coisa mais útil para registrar em um único Mac são as conexões de saída por aplicativo, já que o macOS já registra a maioria dos eventos do sistema e de segurança em outros lugares.
  • Beaconing é uma conexão de saída repetida, muitas vezes com horário regular, independentemente de você estar usando ativamente o aplicativo responsável.
  • Atividade de DNS incomum (nomes de domínio longos ou com aparência aleatória, explosões de buscas desconhecidas) pode indicar dados se movendo para dentro ou para fora, passando pelos controles normais de tráfego web.
  • `codesign -dv --verbose=4 <caminho>` é uma forma somente leitura de verificar se um aplicativo tem assinatura de código e por quem.
  • Um firewall pessoal por aplicativo que sinaliza destinos incomuns funciona como um IDS leve para uma máquina: detecção, com a opção de agir.

Teste seus conhecimentos

  1. 1. O que torna o "beaconing" suspeito, em vez de apenas uma conexão normal?

    • Ele usa HTTPS
    • Ele acontece só uma vez
    • É uma conexão repetida, muitas vezes com horário regular, independentemente de o aplicativo estar sendo usado ativamente — Certo.
    • Ele vem de um navegador

    Aplicativos comuns se conectam para fora quando você os usa; check-ins regulares e mecânicos, independentemente da atividade, são o padrão que o MITRE ATT&CK associa a tráfego de comando e controle.

  2. 2. Por que vale a pena prestar atenção em atividade de DNS incomum?

    • O DNS é sempre criptografado, então anomalias são raras
    • Dados podem ser codificados em consultas e respostas de DNS para mover informações passando por controles que só inspecionam o tráfego web — Certo.
    • Buscas de DNS nunca acontecem em um Mac normal
    • Isso só importa para servidores web, não para computadores pessoais

    O tunelamento de DNS esconde dados dentro do tráfego de DNS especificamente porque muitas defesas não inspecionam o DNS tão de perto quanto o tráfego HTTP.

  3. 3. O que `codesign -dv --verbose=4 <caminho do app>` faz?

    • Exclui um aplicativo não assinado
    • Exibe a assinatura de código e o identificador de um aplicativo, sem alterá-lo — Certo.
    • Bloqueia o aplicativo de rodar
    • Instala uma regra de firewall para o aplicativo

    É um comando de inspeção somente leitura que mostra informações de assinatura do aplicativo dado, útil para verificar se ele está assinado de forma legítima.

Praticar com o FireAI

Coloque esta lição em prática no seu próprio Mac.

Fontes

Coloque em prática no seu Mac

Teste todos os recursos grátis por 17 dias, sem cartão.

Baixar para Mac Docs