Documentação Técnica — Zero Days of Intrusion

Manual de Integração
AGX Shield

Tudo o que o produto faz, em detalhe — e o passo a passo para você mesmo instalar, configurar e validar com as próprias mãos. Sem gato por lebre: o que está aqui é o que o agente executa.

● Agente 202605310 · 7 Pilares de Detecção
01 — Filosofia

O que o AGX Shield é (e o que NÃO é)

O AGX Shield é uma plataforma de vigilância de endpoints: um servidor central (painel web) e agentes leves instalados nas máquinas. O princípio é simples e está em tudo que ele faz:

PRINCÍPIO O agente mostra o que pode passar despercebido. Não bloqueia, não esconde, não remove. Quem decide é a TI.

Isso é uma escolha de projeto deliberada. Um produto que bloqueia sozinho pode parar a operação por engano. O AGX expõe o comportamento suspeito com contexto (qual processo, qual caminho, qual assinatura, qual pai) e deixa a decisão com quem entende o ambiente.

O que ele NÃO faz

02 — Pré-requisitos

Requisitos de Ambiente

Componente Requisito
Servidor Linux com Docker e Docker Compose (testado em Debian 13). 2 vCPU / 4 GB RAM mínimo.
Agente Windows 10/11. .NET Desktop Runtime 8.0. ~30 MB de disco.
Rede Agente acessa o servidor na porta 8080 (LAN ou via túnel Cloudflare).
Navegador (painel) Qualquer navegador moderno. O painel é responsivo.
ATENÇÃO A obrigação de guardar os logs é da TI. Por isso o painel tem Exportar antes de qualquer limpeza. Faça backup dos JSON antes de zerar bancos.
03 — Passo a passo

Instalação

3.1 — Subir o servidor

No host Linux, dentro da pasta do projeto:

bash — servidor
cd ~/agxshield
docker compose up -d

No primeiro acesso ao painel, um assistente de configuração (Setup Wizard) pede: nome da empresa, usuário/senha de admin, URL do painel e configura o 2FA (escaneie o QR Code no Google Authenticator). Ao final, ele gera a API Key usada pelos agentes.

GUARDE A CHAVE Anote a chave 2FA e a API Key em local seguro. Se perder o autenticador, será necessário redefinir o servidor.

3.2 — Instalar o agente (Windows)

Na máquina cliente, em PowerShell como administrador:

powershell — máquina cliente
powershell -ExecutionPolicy Bypass -File "C:\AGXShield\Instaladores\instalar_agx.ps1" -ServidorUrl "http://SEU_SERVIDOR:8080"

O instalador registra o agente, salva a configuração em config.json e inicia a vigilância. Se ele não encontrar o servidor, avisa e pergunta se você quer prosseguir em modo limitado — nunca instala "quebrado em silêncio".

DICA Apontar direto com -ServidorUrl pula a descoberta automática por UDP e é mais confiável em redes segmentadas.

3.3 — Desinstalar o agente

powershell — máquina cliente
powershell -ExecutionPolicy Bypass -File "C:\AGXShield\Instaladores\desinstalar_agx.ps1"

A desinstalação pede o código 2FA como proteção contra remoção acidental ou maliciosa. Se a instalação ficou sem o segredo 2FA (raro), entra em modo de emergência: digite REMOVER para confirmar.

CODIFICAÇÃO Scripts .ps1 devem ser sempre em ASCII puro. Acentos e travessões corrompem a codificação e quebram o PowerShell.
04 — Como funciona por dentro

Arquitetura

Três camadas conversam entre si. Entender isso ajuda a TI a saber onde cada dado vive — e por que a limpeza funciona do jeito que funciona.

Camada Função
Agente (Windows) Vigia a máquina em tempo real (7 pilares). Envia relatórios ao servidor a cada ~30s.
Servidor (FastAPI + Docker) Recebe relatórios, cruza dados, gera alertas, serve o painel web.
Painel (web) Alertas, Vigilância, Logs, Scanner de rede, Relatórios. Acesso por 2FA.

Onde cada dado é guardado

Os dados ficam em armazéns diferentes — saber disso é o que evita a confusão de "limpei mas continua aparecendo":

MARCA DE CORTE O agente reenvia o histórico das últimas 24h a cada relatório. Quando a TI limpa a vigilância, o servidor grava um instante de corte e passa a ignorar tudo anterior a ele — começa do zero sem mexer no navegador do funcionário. Justo para a empresa e para a pessoa.
05 — O coração do produto

Pilares de Detecção

Cada pilar observa um vetor de ataque diferente. A lógica comum: julgar pelo comportamento e contexto, não pelo nome do arquivo — porque malware se disfarça com nomes legítimos.

🛡️

Pilar 1 — Driver não assinado

MONITOR_DRIVER  ·  vigia drivers\ e inf\

Detecta .sys/.inf/.dll sem assinatura digital sendo instalados em áreas de driver. Não importa o nome — importa a assinatura.

📁

Pilar 2 — Integridade de arquivos

MONITOR_INTEGRIDADE  ·  criação / modificação / remoção / renomeação

Rastreia o ciclo de vida de arquivos sensíveis. Pega, por exemplo, um binário sendo copiado e renomeado em etapas para se disfarçar.

Pilar 3 — PowerShell / CMD suspeito

MONITOR_POWERSHELL  ·  linha de comando

Analisa a linha de comando em busca de padrões maliciosos (comando codificado em Base64, IEX, download remoto, PowerShell nascido de Office). Ignora a extensão legítima de programação do VS Code.

🔌

Pilar 4 — USB / BadUSB

MONITOR_USB  ·  conexão / remoção / arquivos suspeitos

Detecta dispositivos USB conectados e lista executáveis/scripts no pendrive. Também identifica dispositivos que se passam por teclado (HID).

🗂️

Pilar 5 — Acesso SMB lateral

MONITOR_SMB  ·  sessões de compartilhamento

Mostra quando outra máquina da rede acessa compartilhamentos desta. Filtra loopback (a máquina conversando consigo mesma não é movimento lateral).

🖥️

Pilar 6 — Console oculto / LOLBin

MONITOR_CONSOLE  ·  conhost, cmd, powershell, pwsh

conhost.exe, cmd.exe e powershell.exe reais vivem sempre no System32. Se um deles roda de outra pasta (ex.: Downloads), ou está assinado por terceiro, é um binário renomeado servindo de shell oculto.

🤖

Pilar 7 — Shell controlada por editor/IA

MONITOR_EDITOR_SHELL  ·  defesa contra automação maliciosa

A ameaça emergente: um assistente de IA dentro de um editor (VS Code, Cursor) pode escrever e executar comandos no terminal integrado — sem pendrive, sem e-mail, o código nasce dentro da máquina. Este pilar observa a shell cujo processo pai é um editor com IA, ignorando a programação normal. É o único ponto onde uma IA infiltrada apareceria executando comandos.

👁️

Pilar 8 — Observador Fantasma (presença humana)

MONITOR_FANTASMA  ·  o "momento do assalto"

Detecta se há um humano operando a máquina no momento de um evento, observando mouse e teclado de forma passiva via hooks de baixo nível do Windows. Nunca registra qual tecla foi pressionada — apenas se houve atividade e quando. Por construção, é impossível virar keylogger. O sinal de presença é gravado localmente e cruzado com os demais: dados saindo da máquina sem ninguém operando é o indício clássico de exfiltração automatizada — o "momento do assalto", quando o atacante age achando que a calçada está vazia.

Correlação de sinais — onde mora a inteligência

Nenhum sinal isolado acusa um vazamento. O valor está no cruzamento. A regra central combina três perguntas: saiu dado? (volume), de qual processo e de onde ele roda? (caminho do executável) e havia humano? (Pilar 8).

Princípio unificador: em cada camada, o AGX confia no atributo que o atacante não consegue forjar — o local de carga (não o nome), o MAC (não o IP), a origem real da conexão (não o que o agente declara), o gesto humano (não a assinatura do binário).

Postura: testemunha, não justiceiro

O AGX observa e reporta — não contra-ataca nem bloqueia automaticamente. É uma decisão de segurança, não de cautela: um agente que reage sozinho vira uma arma que pode ser virada contra ele (um invasor descobre o gatilho e o usa para desligar a proteção). Permanecendo passivo, o AGX tem superfície de ataque mínima. A evidência é registrada no servidor em tempo real, de modo que sobrevive mesmo que o programa malicioso tente se autodestruir na máquina de origem. Quem investiga e age, com contexto e responsabilidade, é a equipe de TI. A tecnologia organiza; o profissional interpreta.

Pilares de apoio

06 — Valide com as próprias mãos

Roteiro de Testes

Aqui está o diferencial: você não precisa acreditar que funciona — você verifica. Faça cada teste e confira se o alerta esperado aparece no painel, na aba Alertas.

AMBIENTE DE TESTE Execute estes testes em uma máquina de teste ou com autorização da TI. São simulações de comportamento de invasor — inofensivas, mas geram alertas reais.
1
Console oculto (LOLBin renomeado)

Simula um binário de console disfarçado fora do System32:

powershell — máquina de teste
copy C:\Windows\System32\cmd.exe "$env:USERPROFILE\Downloads\conhost.exe"
& "$env:USERPROFILE\Downloads\conhost.exe"
Esperado: alerta crítico "CONSOLE EM LOCAL SUSPEITO"conhost.exe rodando de Downloads, sem assinatura embutida.
2
Shell controlada por editor/IA

Abra o terminal integrado do VS Code (Ctrl + crase) e digite qualquer comando. Ou peça ao assistente de IA do editor para executar um comando.

Esperado: alerta médio "SHELL SOB CONTROLE DE EDITOR", mostrando o editor pai e o comando. Usar só o IntelliSense (sem terminal) não deve alertar.
3
Driver não assinado
powershell — admin
New-Item -Path "C:\Windows\System32\drivers\teste_agx.sys" -ItemType File
Esperado: alerta crítico "DRIVER NÃO ASSINADO DETECTADO". Lembre de apagar o arquivo de teste depois.
4
USB suspeito

Conecte um pendrive contendo um arquivo .exe ou .ps1.

Esperado: alerta "DISPOSITIVO USB CONECTADO" listando os arquivos suspeitos. Ao remover, alerta "USB REMOVIDO".
5
Acesso SMB lateral

De OUTRA máquina da rede, acesse um compartilhamento desta:

windows + R — outra máquina
\\IP_DA_MAQUINA_VIGIADA\C$
Esperado: alerta "ACESSO SMB DETECTADO". Verifique seus compartilhamentos com Get-SmbShare (só ADMIN$, C$, IPC$ = padrão do Windows, normal).
6
Heartbeat (agente offline)

Desligue ou reinicie uma máquina com agente.

Esperado: após ~60s, alerta crítico "AGENTE OFFLINE". Ao voltar, o alerta para de repetir (sem duplicata).
07 — Operação do dia a dia

Manutenção & Logs

Exportar antes de limpar

Em qualquer tela (Alertas, Vigilância, Relatório) use Exportar para baixar o JSON. Esse é o registro que a TI deve guardar. Os exports também podem ser reabertos offline na tela Importar Log.

Backup do banco

bash — servidor
docker cp agxshield-server:/agxshield/vigilancia.db ./backup_vigilancia_$(date +%Y%m%d_%H%M).db

Zerar a vigilância (começar do zero)

bash — servidor
docker exec agxshield-server python3 -c "import sys; sys.path.insert(0,'/agxshield'); from modules.vigilancia_db import limpar_tudo, definir_corte; limpar_tudo(); definir_corte('*')"
docker restart agxshield-server
POR QUE A MARCA DE CORTE As URLs podem reaparecer por alguns segundos até o corte pegar — é o histórico vivo do navegador (esperado). Os alertas, que são eventos pontuais, não voltam.

Verificar que a limpeza funcionou

bash — servidor
docker exec agxshield-server python3 -c "
import sqlite3
c = sqlite3.connect('/agxshield/vigilancia.db')
for t in ['urls','conexoes','alertas','processos']:
    print(t, c.execute(f'SELECT COUNT(*) FROM {t}').fetchone()[0])
"
08 — Quando algo parece estranho

Troubleshooting

Sintoma Causa provável / solução
CPU alta na máquina (MsMpEng) É o Microsoft Defender em varredura/atualização agendada — comportamento normal, amplificado em VMs. Não é ameaça; mantenha o Defender ativo.
Vários brave.exe / chrome.exe Normal: cada aba/extensão é um processo separado. Use o gerenciador interno do navegador (Shift + Esc) para ver o detalhe por aba.
"Limpei e continua aparecendo" Confira que está usando o botão certo (RAM × SQLite). Após a correção, a limpeza atinge os dois + marca de corte. Verifique pelo comando da seção 07.
Scanner falha: Unexpected token '<' Sessão do navegador expirou (servidor reiniciou). Faça login novamente.
Agente não acha o servidor Instale apontando direto com -ServidorUrl. Verifique firewall na porta 8080.
Alerta de console do VS Code O OpenConsole.exe assinado do VS Code é reconhecido como emulador legítimo. Se aparecer, são logs antigos — limpe e revalide.
Upload grande NÃO gera alerta de volume O alerta mede vazão por janela de 15s (limiar de 50 MB), não o tamanho do arquivo. Com VPN/WARP segurando a banda, o envio sai devagar e cada janela fica abaixo do limiar — não dispara, mesmo o arquivo sendo grande. Teste com a banda livre. Vazamento "lento e fino" (low-and-slow) é tratado por volume acumulado no tempo (evolução planejada).
Alerta mostra IP de outra interface (ex: VPN) O AGX usa o IP real da conexão. Numa máquina com VPN ativa, a conexão sai pela perna do túnel — e o alerta mostra esse IP, corretamente. Sem VPN, mostra o IP da LAN. Sempre a verdade da conexão, não o que a máquina declara.
Máquina com agente aparece como "Sem agente" Geralmente um endereço antigo que sobrou na tabela ARP após a máquina trocar de IP (DHCP/VPN). Some sozinho quando o ARP expira; a identidade por MAC reconhece que é a mesma placa.
Alerta de volume não dispara "sem humano" As regras de correlação só elevam o nível quando NÃO há humano operando. Se você estava mexendo no mouse/teclado, o Pilar 8 registrou presença e o evento foi tratado como provável ação legítima. Para testar exfiltração, inicie o envio e afaste-se do teclado ~20-30s.
DIAGNÓSTICO Falhas de limpeza não são silenciosas. Veja o log do container: docker logs agxshield-server --tail 100 | grep -i AGX
09 — Transparência

Privacidade & Conformidade

O AGX Shield é uma ferramenta corporativa de segurança. Transparência aqui é parte do produto — tanto com a empresa quanto com o funcionário.

O que é monitorado

Princípios de privacidade

RESPONSABILIDADE DA EMPRESA Cabe à organização adotar uma política de uso aceitável, comunicar o monitoramento à equipe e cumprir a legislação aplicável (no Brasil, a LGPD). O AGX Shield fornece a ferramenta; a política é da empresa.