A primeira hora após um incidente
Um guia sobre que funções do RoamSwitch usar, e por que ordem, na primeira hora depois de ele detetar uma ameaça grave e a conter.
1. Sobre esta página
Quando o RoamSwitch deteta uma ameaça grave, contém-na automaticamente, por exemplo isolando a rede (Air-Gap) ou congelando um processo. Esta página expõe, para cada ambiente, o que verificar, o que guardar e quando remover a contenção. Para os detalhes de cada ecrã e operação, consulte os respetivos manuais.
Esta página explica como usar as funções do RoamSwitch. Não aborda as comunicações da sua organização, a resposta jurídica nem o planeamento da recuperação.
2. A mesma ordem em qualquer ambiente
Uma contenção é acionada por um motivo. Antes de a remover à pressa, siga estes passos por ordem.
- Verificar. Veja numa linha cronológica o que foi detetado, quando e por que ordem.
- Guardar. Exporte os registos e as provas antes de remover o que quer que seja ou de reiniciar. As informações sobre o estado em execução podem perder-se depois.
- Decidir. Decida se foi uma operação que reconhece ou uma atividade realmente suspeita.
- Remover. Remova a contenção apenas depois de confirmar que é seguro.
- Vigiar. Depois de remover, continue a vigiar durante algum tempo para ver se a mesma deteção volta a aparecer.
Para investigar a partir dos registos, também pode usar o PersonalSOC e o AccessScope (secção 6).
Se foi isolado por falsificação de ARP, leia também a secção 8.
Se a causa for ransomware na edição de ambiente de trabalho do Linux, leia também a secção 9.
Enquanto um computador está isolado, não consegue abrir esta página. No Mac, a janela «Porque está isolado & como o remover…» mostra um código QR desta página; na edição de ambiente de trabalho do Linux, mostra-o a janela de confirmação para levantar o isolamento. Leia-o com um telemóvel que use a sua própria ligação para ler esta página. O código QR contém apenas o endereço público desta página.
3. Mac
- Abra o ícone 🛡️ da barra de menus e verifique se é apresentado «🔒 Isolado (total)» ou «🔒 Isolado (degradado)».
- Abra «ℹ️ Porque está isolado & como o remover…» e leia o motivo pelo qual foi acionado.
- Abra 🛡️ → Diagnóstico de segurança abrangente do Mac → «📈 Registo de atividade de segurança…». Restrinja o período e filtre por gravidade e categoria para ver, numa linha cronológica, o que foi detetado imediatamente antes. Ao clicar numa barra do gráfico, a lista fica limitada a esse intervalo de tempo.
- Com o Pro, pode exportar os resultados filtrados para CSV e guardá-los.
- Se ativou previamente «🧾 Registo de execução de processos…» (Pro), o histórico dos processos iniciados fica disponível para a investigação. Está desativado por predefinição.
- Quando a deteção de ransomware ou do XProtect aciona um isolamento, as provas são guardadas automaticamente mesmo antes. Contêm a lista de processos em execução, as ligações de rede e a lista de ficheiros modificados recentemente, com um SHA-256 por ficheiro. São guardadas em
~/Library/Application Support/RoamSwitch/incident-evidence/. A captura de pacotes não está disponível no Mac. - Reflita se fez algo que o possa explicar, como iniciar uma aplicação suspeita.
- No mesmo menu, escolha «🔓 Remover isolamento Air-Gap» e, na caixa de diálogo de confirmação, «Libertar». A comunicação é restabelecida de imediato.
Se o incidente envolveu ransomware, abra 🛡️ → Proteção contra malware (XProtect & ClamAV) → «🗂 Recuperação de ransomware…» (Pro). A partir dos instantâneos locais APFS que o RoamSwitch cria periodicamente, pode extrair ficheiros para outro local (~/RoamSwitch-Recovered/<ID>/). Os seus ficheiros atuais não são substituídos. Para extrair é preciso o acesso total ao disco.
4. Versão de ambiente de trabalho para Linux
- Abra o ícone 🛡️ da bandeja do sistema. Se a rede foi isolada devido a uma ameaça grave, é apresentado «🚨 Remover Air-Gap & restaurar rede». Ainda não o prima.
- Na janela principal, abra «Notifications» para ver o histórico de notificações dos últimos 7 dias e confirmar o que foi comunicado.
- Em «Incident Timeline» (uma funcionalidade experimental), acompanhe numa linha cronológica o percurso desde a deteção, passando pela resposta, até à remoção.
- Em «Security Activity Log», combine período, categoria, gravidade e palavra-chave para filtrar e investigar o que aconteceu imediatamente antes. O conteúdo de Incident Timeline e de Notifications está reunido numa só vista.
- Reflita se fez algo que o possa explicar. Depois de confirmar que é seguro, prima «🚨 Remover Air-Gap & restaurar rede» na bandeja.
5. Linux Server Edition
O Server Edition é operado pela linha de comandos. Os comandos descritos aqui também funcionam na edição de ambiente de trabalho do Linux (só sudo roamswitch server ack é específico do Server Edition). Um isolamento de alta confiança (adulteração do canário, reescrita em massa semelhante a ransomware, eBPF Critical / Emergency / Alert, etc.) passa, por predefinição, para o modo degradado (DEGRADED) após 3600 segundos (uma hora) se não tiver havido nem uma confirmação (ack) nem a verificação de que a causa desapareceu. No modo degradado, as novas ligações, exceto as portas SSH de manutenção e os caminhos de gestão dos IP permitidos, continuam bloqueadas e não se abrem por si com o passar do tempo.
5.1 Verificar as notificações
Se configurou o Telegram, o LINE ou um webhook, a notificação já lá chegou. Mesmo sem configuração, as notificações da última semana ficam guardadas localmente.
roamswitch notifications
5.2 Ver o estado do isolamento
Mostra o estado de isolamento atual do guarda de execução eBPF e o histórico dos incidentes detetados.
roamswitch server ebpf
5.3 Verificar os processos congelados
Lista os processos que o guarda congelou com SIGSTOP. Não os retome até ter guardado as provas.
roamswitch frozen list
5.4 Guardar as provas
Quando o guarda de execução eBPF contém um processo, é criado automaticamente um pacote de provas. Inclui cerca de 30 segundos de captura de pacotes e, se o PID for conhecido, um instantâneo de /proc/<pid> (sem o tshark instalado, só a captura de pacotes é omitida). É guardado em /var/lib/roamswitch/incident-evidence/<carimbo de data/hora>-<ID>/.
Quando todo o anfitrião é isolado, de momento o pacote não é criado automaticamente. Nesse caso, ou se quiser guardar o estado anterior à contenção, crie-o manualmente.
sudo roamswitch-incident-capture snapshot --pid <PID> --reason "first-response"
5.5 Exportar a linha cronológica e o registo de execução
Exporte a linha cronológica integrada de incidentes (experimental) em JSON Lines. O gravador de execução pode ser pesquisado por período ou por processo.
roamswitch timeline --export incident.jsonl
sudo roamswitch events search --since 2h
5.6 Decidir e remover
Retome com o comando seguinte um processo congelado por um falso positivo (resume all retoma todos).
roamswitch frozen resume <PID>
Para permitir de forma permanente o mesmo falso positivo, adicione-o à lista de permissões. Com --exe, a entrada fica associada ao caminho do executável, pelo que mudar o nome de um processo não a contorna.
sudo roamswitch server allowlist add <rule> <process> --exe <path>
Confirme o isolamento. Durante um isolamento FULL, a confirmação mantém o isolamento rigoroso (considera-se que o operador assumiu o controlo, o que pára a passagem ao modo degradado e qualquer remoção automática). No modo degradado, a confirmação significa remoção.
sudo roamswitch server ack
5.7 Se ficou impedido de aceder
Inicie sessão pela consola web de gestão do fornecedor de nuvem (VNC ou consola série) e remova o isolamento de emergência. Por predefinição, as portas SSH de manutenção e as sessões de gestão do IP de administração mantêm-se durante o isolamento.
sudo roamswitch emergency-restore
5.8 Arrumar depois
Os pacotes de provas não são eliminados automaticamente. Elimine com o comando seguinte os que excedam o período de retenção (30 dias por predefinição).
sudo roamswitch-incident-capture prune --keep-days 30
6. Investigar a partir dos registos (PersonalSOC e AccessScope)
O RoamSwitch inclui duas ferramentas separadas para ler registos: PersonalSOC e AccessScope. Ambas são só de leitura: não alteram definições nem bloqueiam tráfego. A análise não usa a rede e decorre inteiramente neste computador, por isso funciona também durante o isolamento.
6.1 PersonalSOC: reunir os registos e as deteções deste computador num relatório
Lê os registos de autenticação deste computador (sudo e sshd no Mac; auth.log, auditd, nginx, apache e outros no Linux) e as deteções por resolver do RoamSwitch, e reúne uma estimativa do risco, uma cronologia e os IOC (IP, domínios, URL, hashes) num único relatório.
sudo personalsoc scan --report
6.2 AccessScope: encontrar ataques nos registos de acesso
A partir dos registos de acesso do servidor web, do SSH e de outros, mostra tentativas de força bruta, web shells, cadeias de passos de ataque e inícios de sessão bem-sucedidos a partir de uma origem invulgar, cada um com os números de linha como prova e um nível de confiança (confirmado, provável, hipótese). Nunca declara por si só que houve um comprometimento.
sudo accessscope scan --auto --since 24h --report report.md
sudo. Sem sudo, os registos ilegíveis são comunicados como tal e o relatório indica que nenhum registo foi lido. Um resultado de «sem deteções» não é então uma prova de segurança. Nenhuma das duas ferramentas eleva por si própria os seus privilégios.6.3 Em que passo usá-las
- Confirmar e decidir: com as duas ferramentas acima, veja, com provas, o que aconteceu antes e depois da deteção. Saber se o ataque continua e se pode ter tido êxito ajuda a decidir se se pode levantar o isolamento.
- Vigiar: depois de levantar o isolamento, execute o AccessScope repetidamente com o comando abaixo; mostra apenas os resultados que não estavam na execução anterior.
sudo accessscope scan --auto --since 24h --since-last --new-only
7. Depois
Depois de remover, continue a vigiar durante algum tempo a linha cronológica (no Mac, o registo de atividade de segurança) para ver se a mesma deteção volta a aparecer. Guarde os registos exportados e os pacotes de provas, sem os eliminar.
As medidas fora do RoamSwitch, como alterar palavras-passe ou chaves e contactar as partes envolvidas, ficam fora do âmbito desta página.
8. Quando é isolado por falsificação de ARP
Numa rede Wi-Fi pública ou semelhante, um atacante na mesma rede pode fazer-se passar pelo router e tentar ler o seu tráfego. É a falsificação de ARP. O RoamSwitch deteta-a, por exemplo, por uma alteração súbita do endereço MAC do gateway (o router). O Mac e a edição de ambiente de trabalho do Linux funcionam da mesma forma.
- Quando isola. Numa rede não registada (nível de proteção: bloqueio), isola automaticamente quando deteta uma anomalia relacionada com o gateway. Num local registado (casa, trabalho, etc.) não isola automaticamente. Mostra um aviso e só isola se escolher «Bloquear tudo agora».
- O que verificar antes de levantar. A janela de confirmação da aplicação dá conselhos semelhantes. Outro dispositivo da mesma rede está a falsificar o ARP? O endereço MAC do gateway coincide com o de confiança (a janela de confirmação no Linux mostra o valor atual e o de confiança)? Numa rede Wi-Fi pública, é mais seguro passar para outra ligação, como a partilha de internet, antes de levantar.
- Levantamento automático. Um temporizador sozinho não levanta o isolamento. Quando o endereço MAC do gateway coincide com o valor de confiança em 3 verificações seguidas, ao longo de pelo menos 60 segundos, o isolamento é levantado automaticamente e é notificado. Se não for possível confirmar durante 1 hora (por predefinição), passa a um estado muito restrito (degradado). Esse estado não se abre por tempo; levanta-o à mão.
- Levantar à mão. No Mac, use «Levantar o isolamento Air-Gap» no menu. Na edição de ambiente de trabalho do Linux, use «Levantar o Air-Gap e restaurar a rede» na bandeja, ou
sudo roamswitch emergency-restore. Se a causa ainda existir quando levanta, o tráfego retoma e fica novamente exposto, por isso verifique primeiro. - Depois de levantar. Observe durante algum tempo se a mesma deteção volta a aparecer. Se aparecer, deixe de usar essa rede e mude para outra ligação.
9. Quando é isolado por ransomware (edição de ambiente de trabalho do Linux)
Quando muitos ficheiros são reescritos em pouco tempo, o RoamSwitch considera que pode ser ransomware: congela o processo que está a reescrever (SIGSTOP) e corta a rede (Air-Gap). A janela de confirmação do Air-Gap abre-se e mostra o motivo, o processo e quantos ficheiros foram reescritos. Esta secção é para a edição de ambiente de trabalho do Linux. No Mac, leia a secção 3.
- Verifique. Na janela de confirmação e no histórico de notificações, veja que processo reescreveu que ficheiros. Também pode ver os processos congelados com
roamswitch frozen list(5.3). - Registe. Antes de levantar o isolamento ou reiniciar, guarde as provas e a cronologia como em 5.4 e 5.5.
- Decida. Se o processo congelado era uma operação que reconhece (uma cópia de segurança ou uma compressão, por exemplo), é um falso positivo. Retome-o com
sudo roamswitch frozen resume <PID>. Se for um ataque real, não o retome: registe as provas e depois termine o processo. - Recupere os ficheiros. Os ficheiros reescritos podem ser extraídos de um instantâneo. No ecrã, no separador «Recuperação de ransomware» da barra lateral (Linux 1.11.21 e posteriores), escolha o instantâneo anterior ao dano recomendado (★) e prima «Extrair ficheiros» ou «Extrair uma pasta». Por comando, execute
sudo roamswitch-ransomware-rollback liste depoissudo roamswitch-ransomware-rollback restore-files <ID> <PATH>. O alvo é um subvolume btrfs ou um volume lógico LVM (uma pasta pessoal em ext4 não o pode usar). Por predefinição, é criado automaticamente um instantâneo anterior ao dano a cada 6 horas. Também é criado automaticamente um instantâneo no momento da deteção, mas contém os ficheiros cifrados, por isso não serve para voltar ao estado anterior à cifragem. Os seus ficheiros atuais não são substituídos. Os ficheiros restaurados ficam, por predefinição, em<alvo>/RoamSwitch-Recovered/<ID>/. Orestore, que reverte tudo, substitui o estado atual, por isso é o último recurso (apenas por comando). - Levante o isolamento. Um temporizador sozinho não o levanta. Só é levantado quando se confirma que a causa desapareceu, ou quando o levanta com «Levantar o Air-Gap e restaurar a rede» na bandeja ou com
sudo roamswitch emergency-restore. - Vigie. Depois de levantar, verifique se a mesma deteção volta a aparecer. Verifique o conteúdo dos ficheiros restaurados antes de os devolver ao local original.