AI Scan Planner
Revisão diária do portfólio que escolhe quais alvos analisar hoje e explica o motivo. Contestável pelo operador a cada etapa. Complementa os Scan Schedules e os scans manuais.
O AI Scan Planner é uma camada diária de decisão que observa todos os alvos do seu portfólio, pondera risco e orçamento e propõe um plano de scans para o dia, com uma justificativa por escrito para cada alvo. O operador pode aceitar o plano, forçar um scan, vetar um alvo para o próximo ciclo ou pausar o planner com o Vacation Mode.
Ele não substitui os scans manuais nem os Scan Schedules. Ele roda ao lado deles como uma terceira fonte de disparos de scan, orientada por sinais que o operador não tem tempo de monitorar todos os dias.
A página em Scans → AI Scan Planner abre com a justificativa diária:
Daily portfolio review picks which targets to scan today and explains why. Every decision is contestable: force a scan, veto next cycle, accept a proposal, or pause the planner with vacation mode. (A revisão diária do portfólio escolhe quais alvos analisar hoje e explica o motivo. Toda decisão é contestável: forçar um scan, vetar o próximo ciclo, aceitar uma proposta ou pausar o planner com o vacation mode.)
Como uma decisão é tomada
A cada ciclo (por padrão diário, às 02:00 no fuso horário da organização), o planner percorre todos os alvos do seu portfólio e calcula uma pontuação de prioridade entre 0.000 e 1.000.
A pontuação combina quatro entradas ponderadas por alvo:
| Entrada | O que mede |
|---|---|
| Risco | Severidade agregada e Risk Score dos achados abertos no alvo. |
| Decaimento | Há quanto tempo ocorreu o último scan bem-sucedido. Quanto mais longo o silêncio, maior a pressão por um novo scan. |
| Evidência | Sinais de que algo mudou: drift do Environment Profile, mudança de certificado, novo subdomínio, nova tecnologia detectada. |
| Custo | O custo estimado do scan no orçamento em relação à cota diária. Usado para pular execuções de baixo valor quando a cota está apertada. |
Os pesos são ajustados por organização. O feedback do operador (force, veto, apply, ignore) desloca os pesos na direção do que a equipe historicamente aceitou. O sinal da equipe passa a fazer parte do modelo.
Tipos de ação
Para cada alvo, o planner emite uma destas ações:
| Ação | O que significa |
|---|---|
| Full scan | Executa hoje um scan de cobertura completa. Usado quando a pontuação ultrapassa o limiar. |
| Pulse | Um scan de manutenção dentro da cota diária. Leve; mantém o inventário atualizado sem consumir todo o orçamento. |
| Skip | A pontuação está abaixo do limiar ou a cota se esgotou. O alvo não é tocado hoje; a justificativa explica o motivo. |
| Propose profile | O ambiente detectado sugere um perfil de scan diferente do que está em uso (por exemplo, trocar web_app por api_jwt porque a stack agora expõe GraphQL). O operador clica em Apply ou Ignore. |
| Propose add | Um elemento de superfície recém-descoberto (subdomínio, rota, porta) merece entrar no escopo de scan existente. O operador clica em Add to scope ou Ignore. |
A coluna Rationale (justificativa) é sempre escrita em inglês, em linguagem simples. Exemplos:
- Maintenance pulse within daily quota. (pulse de manutenção dentro da cota diária)
- Below threshold; skipped to preserve budget. (abaixo do limiar; pulado para preservar o orçamento)
- Environment profile changed; full scan recommended. (o Environment Profile mudou; scan completo recomendado)
- GraphQL detected; suggest
api_jwtprofile. (GraphQL detectado; sugere o perfil indicado)
Cota diária
O planner leva o orçamento em conta. Cada nível de plano traz uma cota diária que limita quantos disparos autônomos o planner executa em 24 horas:
| Plano | Cota diária |
|---|---|
| Starter | 1 |
| Pro | 3 |
| Enterprise | 10 |
| Platinum | Personalizada |
Acima da cota, o planner emite linhas Skip para que o operador veja o que não foi analisado e por quê. Forçar o scan de uma linha Skip leva um clique; a decisão do operador se sobrepõe à cota para aquele alvo.
A página no portal
Scans → AI Scan Planner.
Cabeçalho
| Elemento | O que faz |
|---|---|
| Controle Enabled / Disabled | Chave geral. Quando desativado, nenhum disparo autônomo acontece. Os agendamentos e os scans manuais continuam funcionando. |
| Run review now | Força um ciclo do planner sob demanda. Útil depois de uma mudança de configuração. |
| Vacation mode | Pausa o disparo autônomo por um número de dias (0 a 60). |
| Pills (indicadores) | Status rápido: Vacation: off | active until <date>, Daily quota: N, Last review: <timestamp>. |
Tabela de decisões
| Coluna | Significado |
|---|---|
| Target | O alvo ao qual a decisão se aplica. |
| Action | Um dos cinco tipos de ação acima. |
| Rationale | Explicação, em inglês simples, do motivo pelo qual esta ação foi escolhida. |
| Priority | Pontuação de 0.000 a 1.000. O limiar depende da organização. |
| Status | PENDING (decisão registrada, ainda não disparada), OK (disparada), VETOED, APPLIED. |
| Decided | Quando o planner tomou a decisão. |
| Actions | Botões do operador, contextuais à ação: veja abaixo. |
Botões contextuais
| Ação | Botões disponíveis |
|---|---|
| Full scan / Pulse / Skip | Force scan now (disparo imediato) / Veto next cycle (bloqueio de 30 dias deste alvo para esta ação). |
| Propose profile | Apply (define o Scan Template preferido do alvo) / Ignore (dispensa a proposta durante a janela de cooldown). |
| Propose add | Add to scope / Ignore. |
Todo clique em botão fica registrado na página Audit Log do portal, visível ao cliente, com a identidade do operador e a decisão original.
Sugestão de template por alvo
O planner lê o Environment Profile por host produzido a cada scan e propõe um template mais adequado quando a stack detectada diverge da configuração atual.
| Sinal observado | Template sugerido |
|---|---|
| Endpoint GraphQL detectado | api_jwt |
| Documento OpenAPI / Swagger | api_jwt |
| Emissão de JWT observada no login | api_jwt |
| Serviço SOAP detectado | soap |
| Upgrade para WebSocket observado | web_app |
| Stack web renderizada no servidor, com formulários | web_app |
| Inconclusivo | Sem proposta |
A sugestão fica silenciada por 30 dias por par (alvo, template). Depois de 30 dias, o planner propõe de novo se o sinal ainda se mantiver.
Rede de segurança de aplicação automática
Se o operador não clicar em Apply ou Ignore em uma proposta de
perfil até o momento em que o planner disparar o próximo scan daquele
alvo, o próprio planner aplica o template sugerido. O
preferred_scan_template do alvo é atualizado; uma linha de auditoria é
gravada com actor = ai_scan_planner e uma nota auto-applied.
Isso é intencional. O custo de deixar o planner se adaptar é menor do que o custo de executar o perfil errado contra uma stack que mudou.
Radar de drift
Fora da cota diária, o planner monitora o drift do Environment
Profile. Quando o fingerprint por host muda (nova tecnologia, mudança
na superfície de autenticação, mudança de protocolo) e a mudança é
observada fora do horário comercial, o planner emite um disparo de scan
completo marcado como drift_dispatch para capturar evidências antes que
a mudança se propague.
Os disparos por drift não contam na cota diária. Eles são auditados sob
ai_scan_planner_drift_dispatch.
Vacation mode
Pausa o planner por até 60 dias. Útil para:
- Janelas de manutenção em que a equipe não quer scans autônomos.
- Feriados ou períodos calmos em que os alertas devem ficar em silêncio.
- Investigações em que a equipe quer controlar manualmente a linha do tempo dos scans.
O Vacation mode não pausa os Scan Schedules nem os scans manuais; ele pausa apenas a camada autônoma de decisão. Os disparos por drift respeitam o Vacation mode.
Como ele se encaixa com os Scan Schedules e os scans manuais
As três fontes de disparo são independentes e complementares:
| Fonte | Gatilho | Quando usar |
|---|---|---|
| Scan manual | O operador clica em Scan. | Investigações, validação pontual, demonstrações. |
| Scan Schedules | Cron definido pelo operador. | Cadência previsível, janelas de conformidade. |
| AI Scan Planner | Revisão diária de prioridades. | Cobertura contínua de um portfólio grande sem triagem manual. |
Um alvo pode ser acionado pelas três fontes na mesma semana. O planner respeita um cooldown de 24 horas entre quaisquer dois disparos do mesmo alvo, então um alvo analisado manualmente pela manhã não é analisado de novo, de forma redundante, pelo planner às 02:00.
Disponibilidade por plano
| Plano | Observações |
|---|---|
| Starter | Cota diária 1. Cobertura autônoma de nível de entrada. |
| Pro | Cota diária 3. Radar de drift ativado. |
| Enterprise | Cota diária 10. Radar de drift ativado. Ajuste personalizado de pesos disponível. |
| Platinum | Cota e pesos personalizados. |
A cota atual é exibida como pill na página do planner e pode ser aumentada mediante solicitação.
Auditoria e contestabilidade
Toda ação do planner é auditável:
- Cada linha de decisão é append-only, com a justificativa completa.
- Toda intervenção do operador (Force, Veto, Apply, Ignore, alternância do
Vacation mode, alternância da chave geral) grava uma entrada na trilha
de auditoria visível ao cliente com
actor = human. - Toda ação autônoma (disparo, disparo por drift, aplicação automática)
grava uma entrada com
actor = ai_scan_planner. - Os vetos têm TTL de 30 dias e podem ser revogados a qualquer momento.
A trilha de auditoria pode ser consultada em Audit Log, na barra
lateral do portal, com filtro pelos códigos de ação ai_scan_planner_*.
O que ele NÃO faz
- Sem decisões de caixa-preta. Toda ação tem uma justificativa e pode ser contestada com um clique.
- Sem scans surpresa. O cooldown impede reexecuções em menos de 24 horas; a cota impede o estouro do orçamento; o Vacation mode pausa o planner por completo.
- Sem tomar o lugar dos scans manuais ou dos agendamentos. O planner é uma terceira fonte de disparo, não um substituto.
- Sem compartilhamento externo de dados. Todos os sinais são calculados a partir dos seus próprios alvos, achados e Environment Profiles. O planner não consulta inteligência de terceiros para pontuar um alvo.
Onde ele fica no portal
- Scans → AI Scan Planner: a página de decisões.
- Scans → Scan Schedules: scans acionados por cron (independentes).
- Audit Log: histórico filtrável de toda ação do planner.
- Settings → Usage → aba AI Scan Planner: uso da cota diária, contagem mensal de scans acionados por IA, estado do Vacation mode, propostas pendentes, vetos ativos.
