Category: Uncategorized

  • Amazon GuardDuty adiciona regras opcionais de detecção de ameaças para o Runtime Monitoring

    O que foi anunciado

    A AWS anunciou que o Amazon GuardDuty agora oferece suporte a regras opcionais de detecção para o Runtime Monitoring — o módulo responsável por monitorar comportamentos em tempo de execução nos ambientes da nuvem. Com essa novidade, equipes de segurança ganham mais controle e granularidade sobre o que deve ou não gerar alertas.

    Mais de 50 novas regras de detecção

    São mais de 50 regras de Runtime Monitoring que podem ser habilitadas conforme a necessidade de cada ambiente. Elas detectam atividades relacionadas a processos, arquivos e tráfego de rede que podem ser completamente normais em um contexto, mas indicar comprometimento em outro — como a modificação de arquivos sudoers ou a desativação de logs de auditoria.

    Esse nível de flexibilidade é especialmente valioso para times que operam ambientes heterogêneos, onde uma mesma ação pode ter significados diferentes dependendo da carga de trabalho.

    Cobertura e tipos de findings

    As novas regras oferecem detecções para os seguintes serviços:

    • Instâncias Amazon EC2
    • Amazon EKS (Elastic Kubernetes Service — Serviço Gerenciado de Kubernetes)
    • Amazon ECS (Elastic Container Service — Serviço de Contêineres) tanto em EC2 quanto em AWS Fargate

    No total, são 13 tipos de findings mapeados às táticas do framework MITRE ATT&CK®, incluindo:

    • Persistência (Persistence)
    • Escalada de privilégios (Privilege Escalation)
    • Execução (Execution)
    • Evasão de defesas (Defense Evasion)
    • Descoberta (Discovery)
    • Exfiltração (Exfiltration)
    • Comando e controle (Command and Control)

    Quatro novos tipos de findings

    Além das regras existentes, esta versão introduz quatro novos tipos de findings:

    • CommandAndControl:Runtime/SuspiciousCommand
    • CredentialAccess:Runtime/SensitiveFileRead
    • Discovery:Runtime/SensitiveFileRead
    • Exfiltration:Runtime/SuspiciousCommand

    Modo dry-run para avaliação antes de ativar

    Um ponto importante dessa release é a possibilidade de habilitar as regras em modo dry-run. Isso permite que as equipes avaliem a eficácia das detecções — verificando quantos e quais alertas seriam gerados — antes de ativá-las de fato no ambiente de produção. É uma forma segura de calibrar as regras sem gerar ruído desnecessário.

    Para começar, basta acessar o console do GuardDuty e explorar as opções de regras disponíveis.

    Disponibilidade

    As Regras de Detecção Personalizadas para Runtime Monitoring estão disponíveis em todas as regiões comerciais da AWS, incluindo as regiões AWS GovCloud (US). Para saber mais sobre o funcionamento do recurso, consulte a documentação oficial: Regras de Detecção Personalizadas do Amazon GuardDuty.

    Para receber atualizações programáticas sobre novos recursos e detecções de ameaças do GuardDuty, a AWS recomenda assinar o tópico SNS do Amazon GuardDuty.

    Fonte

    Amazon GuardDuty adds optional threat detection rules for Runtime Monitoring (https://aws.amazon.com/about-aws/whats-new/2026/10/guardduty-runtime-optional-detection-rules/)

  • Teste de Penetração em Cada Deploy com o AWS Continuum

    O problema com as ferramentas tradicionais de segurança no pipeline

    A maioria das ferramentas de segurança que se encaixam em um pipeline de Integração Contínua/Entrega Contínua (CI/CD) — como análise estática (SAST), análise de composição de software (SCA) e scanners dinâmicos (DAST) — identificam problemas potenciais com base em padrões e assinaturas conhecidas. Elas mostram onde olhar, mas não confirmam se algo é de fato explorável.

    Essa confirmação sempre veio de testes de penetração periódicos, realizados fora do ciclo de entregas — tipicamente uma vez por trimestre. O resultado prático: deploys feitos entre esses engagements chegam à produção sem que ninguém tenha validado se as mudanças introduziram uma brecha real.

    É exatamente esse gap que o AWS Continuum para testes de penetração (anteriormente chamado de AWS Security Agent) propõe resolver. O serviço usa agentes de IA para encontrar e confirmar vulnerabilidades exploráveis em aplicações em execução, e pode ser configurado como um gate automático no pipeline de CI/CD.

    Como funciona o gate de pentest no pipeline

    A ideia central é simples: após cada deploy em ambiente de staging, o pipeline chama o Continuum para executar um teste de penetração automaticamente limitado à mudança recém-implantada. Se o resultado estiver acima de um limiar de severidade configurado, a promoção para produção é bloqueada.

    O fluxo completo funciona assim: o pipeline faz o deploy em staging, o gate se autentica na conta AWS via OpenID Connect (OIDC) e aciona o Continuum, que executa o teste no ambiente de staging. O gate aguarda o resultado e decide se a promoção segue ou é bloqueada. Toda a lógica de teste roda no lado do servidor, dentro da conta AWS — nenhum código de pentest é executado no runner do CI/CD.

    Imagem original — fonte: Aws

    O padrão descrito pela AWS é compatível com quatro plataformas principais de CI/CD: GitHub Actions, GitLab CI/CD, Bitbucket Pipelines e Azure DevOps Pipelines.

    Por que limitar o escopo à mudança importa

    O que torna o gate viável para rodar em cada deploy é justamente o escopo reduzido. O Continuum determina o intervalo de commits — o head é o commit sendo avaliado, e o base é o último commit que já passou pelo gate — e testa apenas o que mudou. Isso mantém o teste rápido e econômico o suficiente para ser parte do pipeline, e não de um calendário trimestral.

    Cada execução retorna uma de três decisões de escopo:

    • In scope (dentro do escopo): a mudança alterou a superfície de ataque — os findings são avaliados contra o limiar de severidade configurado.
    • Scoped out (fora do escopo): a mudança estava no escopo, mas nada relevante para segurança foi alterado — o pipeline passa.
    • Scope conflict (conflito de escopo): a mudança ficou fora do escopo configurado e não foi testada — você decide se isso bloqueia ou não.

    Para entender os detalhes de como o intervalo de commits é calculado e validado, a AWS disponibilizou a documentação Como a integração de pipeline determina o escopo do teste.

    Configurando o gate: três passos

    Passo 1: Configurar o teste de penetração

    O primeiro passo é uma configuração única: verificar o domínio alvo, criar um teste de penetração no Agent Space, habilitar o modo CI/CD e conectar o repositório. Conforme descrito em Antes de começar, é necessário anotar o Agent Space ID (prefixo as-…) e o ID do teste de penetração (prefixo pt-…), pois ambos serão usados na configuração do gate.

    Passo 2: Criar a role IAM

    A autenticação usa federação via OIDC em vez de chaves de acesso armazenadas. O provedor de CI/CD emite um token de curta duração identificando o pipeline, e o AWS Security Token Service (AWS STS) o troca por credenciais temporárias quando o pipeline assume uma role do Gerenciamento de Identidade e Acesso (IAM) criada pelo time.

    Sem chaves de acesso de longa duração armazenadas como variáveis no CI/CD, elimina-se o vetor de vazamento de credenciais mais comum em pipelines. A segurança do gate depende de duas políticas: a trust policy da role IAM (quais pipelines podem assumir a role) e a permissions policy (o que o pipeline pode fazer após assumir a role).

    Para os JSONs exatos das políticas, URLs de OIDC por provedor e o formato do sub claim, a AWS recomenda seguir as referências de Escopo da trust policy para seu pipeline e Conceder permissões de menor privilégio.

    Um detalhe importante: repositórios GitHub criados ou renomeados a partir de 15 de julho de 2026 emitem um sub claim imutável com IDs numéricos — é necessário confirmar o sub exato que o pipeline emite antes de escrever a política.

    Passo 3: Adicionar o gate step ao pipeline

    A etapa é conceitualmente a mesma em todos os provedores — apenas a sintaxe varia. A AWS recomenda fixar a integração a uma versão imutável (tag de release, SHA de commit ou versão de componente fixada) para que uma mudança upstream não altere o que roda no pipeline.

    Antes de confiar no gate em produção, o recomendado é executá-lo uma vez em modo dry-run. Esse modo verifica autenticação, região e resolução do repositório sem iniciar um teste de penetração de fato. Se a validação falhar, o step falha imediatamente — o que faz com que erros de configuração apareçam cedo. Os valores padrão da integração estão documentados em Padrões da integração.

    Exemplo prático: GitHub Actions

    O workflow abaixo ilustra a topologia de três jobs que faz o gate funcionar: deploy faz o deploy em staging, security-pentest executa o gate, e deploy-prod promove para produção. Como deploy-prod declara needs: [security-pentest], o GitHub pula a produção sempre que o gate falha.

    jobs:
      deploy:
        runs-on: ubuntu-latest
        environment: staging
        steps:
          - uses: actions/checkout@v4
            with:
              persist-credentials: false
          - run: ./deploy.sh staging
    
      security-pentest:
        needs: [deploy]
        runs-on: ubuntu-latest
        permissions:
          id-token: write
          contents: write
          actions: read
          deployments: read
        steps:
          - uses: aws-actions/configure-aws-credentials@v4
            with:
              role-to-assume: arn:aws:iam::111122223333:role/my-pentest-gate-role
              aws-region: us-west-2
              role-duration-seconds: 7200
          - uses: aws-actions/aws-continuum-run-pentest@v1
            with:
              agent-space-id: as-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
              pentest-id: pt-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
              severity-threshold: HIGH
              on-scope-conflict: block
              timeout-minutes: "45"
    
      deploy-prod:
        needs: [security-pentest]
        runs-on: ubuntu-latest
        environment: production
        steps:
          - uses: actions/checkout@v4
            with:
              persist-credentials: false
          - run: ./deploy.sh production

    Dois pontos merecem atenção especial nesse exemplo. Primeiro, a permissão contents: write permite que o gate avance o marcador de baseline que ele mantém como referência no repositório — sem acesso de escrita, cada execução testaria um intervalo mais amplo do que o necessário. Segundo, o role-duration-seconds: 7200 no step de credenciais precisa ser maior que a duração do teste de penetração; o AWS STS rejeita uma requisição que exceda o máximo permitido pela role em vez de reduzi-la automaticamente — portanto, a duração máxima de sessão da role deve ser configurada para pelo menos (timeout + 10) x 60 segundos.

    Rollout gradual: do modo relatório ao bloqueio real

    Três configurações independentes determinam se o step falha, cada uma cobrindo um cenário diferente: severity-threshold (o que acontece com os findings), on-scope-conflict (o que acontece quando a mudança não foi testada) e fail-on-infrastructure-error (o que acontece quando o job não conseguiu rodar). Relaxar uma não afeta as outras.

    A abordagem recomendada é introduzir o gate em modo relatório primeiro — definindo o threshold como NONE para que o teste rode e publique findings sem bloquear o pipeline. Após observar o que ele encontra por um ou dois ciclos de release, o threshold é ajustado para HIGH.

    Há uma ressalva crítica nessa estratégia: uma execução que passa — incluindo execuções em modo relatório — avança o baseline. Os commits daquele intervalo são registrados como aprovados e não serão re-testados quando o threshold for ajustado. Se o gate rodar em modo relatório por um mês e depois for configurado para HIGH, ele avaliará apenas os commits após a última execução em modo relatório — não revisará o que já foi aprovado. Para forçar uma reavaliação de um intervalo já aprovado, é possível sobrescrever os SHAs de head e base usando os parâmetros base-commit-sha e head-commit-sha.

    Outro padrão que merece atenção: fail-on-infrastructure-error vem configurado como false por padrão (falha aberta). Para pipelines onde a promoção exige aprovação de segurança, a recomendação é definir como true desde o início. Para entender como o baseline avança em cada provedor, a documentação O que avança o baseline e por que isso importa traz a matriz completa.

    Atenção especial ao GitLab

    No GitLab CI/CD, uma variável de pipeline substitui o valor definido no .gitlab-ci.yml. Isso significa que qualquer pessoa com permissão para rodar um pipeline poderia fornecer uma variável que reduz o threshold, ativa o dry-run ou relaxa o tratamento de erros — e o gate obedece à variável, não ao arquivo de configuração. A recomendação é restringir quem pode sobrescrever variáveis nas configurações de CI/CD do projeto antes de confiar no gate para segurar um release.

    Proteção de credenciais no runner

    As credenciais temporárias e o token OIDC são sensíveis durante toda a duração do step. Três práticas são essenciais:

    • Manter o rastreamento de debug e verbose desativado para steps que lidam com credenciais — modos de shell-trace (como o CI_DEBUG_TRACE do GitLab) ecoam argumentos de comandos no log do job em texto puro.
    • Não persistir credenciais de controle de versão no workspace — definir persist-credentials: false no step de checkout para que um token não seja gravado na configuração .git do runner.
    • Não expor o token a steps não confiáveis — conceder permissão de token OIDC apenas aos jobs que precisam, e não executar código não confiável (como builds de forks) em um job que pode ler o token.

    Expandindo para múltiplas contas AWS

    O exemplo usa uma única conta para simplificar. Na prática, os ambientes de staging e produção frequentemente ficam em contas AWS separadas. O padrão se expande de forma limpa: cria-se a role IAM de gate na conta onde o teste de penetração e o Agent Space residem — a conta de segurança. O pipeline assume essa role via OIDC independentemente de qual conta de workload ele está fazendo deploy, mantendo uma única role bem delimitada em vez de cópias ou chaves de longa duração em cada conta.

    Para orientações mais amplas sobre o AWS Security Agent — incluindo testes contra ambientes não produtivos, validação de findings gerados por IA e IAM — a AWS disponibilizou o documento Melhores práticas de segurança para o AWS Continuum.

    Limpeza após os testes

    Quem seguir os tutoriais de cada provedor para experimentar o gate deve concluir a seção de limpeza correspondente: remover o ambiente de staging da aplicação de exemplo, a role IAM e o provedor de identidade OIDC e, se criados especificamente para o walkthrough, o teste de penetração e os Agent Spaces dedicados. Isso evita cobranças contínuas e retira do ar a aplicação de exemplo intencionalmente vulnerável.

    Conclusão

    Limitar o escopo dos testes de penetração à mudança deployada é o que torna viável usá-los como gate por deploy, em vez de um exercício trimestral. As decisões-chave para quem for implementar são:

    • Quão rigoroso: começar em modo relatório (NONE), mas lembrar que o baseline avança — apagar o marcador ao apertar o threshold.
    • Como falhar: definir fail-on-infrastructure-error como true para qualquer coisa que exija aprovação de segurança.
    • Como limitar a trust: fixar o sub claim o mais estreitamente que a realidade de deploy permitir.
    • Onde colocar a role: uma role em uma conta de segurança, assumida pelo pipeline de workloads via OIDC.

    Para construir o gate do início ao fim em cada plataforma, a AWS disponibilizou tutoriais específicos:

    Para os conceitos e referência completa, consulte Executar testes de penetração a partir do pipeline de CI/CD.

    Fonte

    Penetration testing every deployment with AWS Continuum (https://aws.amazon.com/blogs/security/penetration-testing-every-deployment-with-aws-continuum/)

  • AWS License Manager passa a suportar conversão de licenças para Ubuntu Pro comprado pelo AWS Marketplace

    O que foi anunciado

    A AWS anunciou que o AWS License Manager agora suporta conversões de tipo de licença para o Ubuntu Pro adquirido pelo AWS Marketplace. Na prática, isso significa que equipes com instâncias EC2 rodando Ubuntu LTS (Suporte de Longo Prazo) podem fazer o upgrade direto para o Ubuntu Pro — sem precisar reconstruir a frota, migrar cargas de trabalho ou trocar de instância e AMI.

    Por que isso importa para segurança e conformidade

    Com uma assinatura do Ubuntu Pro, os clientes passam a ter acesso a patches de segurança por até 10 anos — prazo que pode ser estendido para 15 anos com o complemento Legacy. E a cobertura vai além do sistema operacional base: ela se estende a milhares de pacotes adicionais, incluindo aplicações open-source amplamente usadas como NGINX, PostgreSQL, MongoDB e Redis.

    Outro ponto relevante é o suporte ao Kernel Livepatch, recurso que aplica correções críticas de segurança no kernel sem necessidade de reinicialização — o que reduz o tempo de inatividade e mantém os ambientes mais estáveis durante as atualizações.

    Como funciona o fluxo de conversão

    Para quem já possui uma assinatura Canonical Ubuntu Pro ativa pelo AWS Marketplace, o upgrade pode ser feito diretamente durante o fluxo de conversão. Já quem ainda não tem uma assinatura pode assinar o Canonical Ubuntu Pro diretamente pelo console do AWS License Manager, sem precisar sair do ambiente AWS para concluir o processo.

    Disponibilidade

    O novo recurso está disponível em todas as regiões comerciais onde o AWS License Manager já está presente.

    Como começar

    Para explorar a funcionalidade, basta acessar o console do AWS License Manager e consultar o Guia do Usuário do AWS License Manager para mais detalhes sobre o processo de conversão.

    Fonte

    AWS License Manager now supports license type conversions for Ubuntu Pro purchased through AWS Marketplace (https://aws.amazon.com/about-aws/whats-new/2026/10/aws-license-manager-conversions-ubuntu-pro-marketplace/)

  • Parte 2 – Jornadas em Cibersegurança: Afinal, o Que é Essa Profissão?

    Além dos Papéis que Todo Mundo Conhece

    Se você já procurou vagas em cibersegurança e sentiu que nenhuma delas combinava com o seu perfil, talvez o problema seja a lista — e não você. A maioria dos guias de carreira da área cobre sempre os mesmos papéis: o analista monitorando alertas ou o pen tester (testador de penetração, profissional contratado para tentar invadir sistemas de forma legal e identificar vulnerabilidades). Essas funções existem e são importantes, mas representam uma fatia pequena de um campo muito mais amplo.

    O blog de segurança da AWS publicou a segunda parte de uma série sobre trajetórias reais na área. Na primeira parte, três pessoas contaram como chegaram à segurança partindo de lugares inusitados — um armazém logístico, uma mesa de marketing e o quarto de um adolescente. Agora, a série mostra onde essas jornadas podem chegar: medir o risco de um milhão de aplicações ao mesmo tempo, construir ferramentas de detecção a partir do setor de atendimento ao cliente, e pensar seriamente em como proteger infraestrutura lançada ao espaço.

    A Árvore de Habilidades: A Abordagem de Jason Lane

    Imagem original — fonte: Aws

    Jason Lane, Engenheiro de Segurança, planeja a carreira como quem monta um personagem em um RPG de turno. Ele usa literalmente o conceito de árvore de habilidades de videogame: você começa visualizando seu personagem no nível 20 — a versão de você mesmo com as competências e o papel que realmente quer — e então trabalha de trás para frente. O que precisa ser verdade no nível 19 para chegar ao 20? E no 18, para ter essas opções disponíveis? Você vai recuando até chegar ao nível 1, com um caminho construído de cima para baixo.

    Para Jason, o nível 20 era pesquisa de vulnerabilidades — encontrar falhas de segurança desconhecidas em softwares antes que atacantes o façam. Na época, ele era administrador de sistemas, o que lhe dava boa noção de como os sistemas se conectam, mas pouca exposição à análise das aplicações que rodam sobre eles. Essa lacuna — segurança de aplicações — era o próximo nó na sua árvore. Ele ligou para um recrutador de TI, explicou o plano e foi honesto sobre onde estava. O recrutador encontrou uma empresa de processamento de cartões que precisava de um engenheiro de segurança de aplicações e estava disposta a contratar alguém que ainda estava se tornando um.

    Para Jason, foi um aprendizado remunerado na habilidade exata que ele buscava. Para a empresa, um engenheiro motivado que cresceria no papel. Ele descreve como um acordo em que os dois lados saíram ganhando — e esse enquadramento importa: ele não estava aceitando menos, estava trocando uma curva de aprendizado mais íngreme por um caminho mais rápido até onde queria chegar.

    Após quatro anos desmontando aplicações para entender o que as tornava vulneráveis, ele aplicou o mesmo método novamente. Um amigo ofereceu indicá-lo para uma entrevista no Google. A reação honesta de Jason — de que não era inteligente o suficiente para trabalhar lá — é o tipo de dúvida que a maioria das pessoas reconhece (também conhecida como síndrome do impostor). O amigo não acreditou. Os entrevistadores também não, e ele foi contratado. A lição que ele tirou disso é valiosa: a voz que diz que você não pertence àquele ambiente frequentemente está errada, e a forma de silenciá-la é trabalhar até que as habilidades falem por si.

    Ele passou quase sete anos fazendo pesquisa de vulnerabilidades no Android — o tipo de trabalho técnico profundo que a maioria das empresas não tem orçamento para sustentar. Esse histórico abriu a porta para a Amazon. Hoje, Jason mede o risco de aproximadamente um milhão de aplicações na Amazon, avaliando quais causariam mais dano se comprometidas e quais têm maior probabilidade de ser alvo — para que a organização possa priorizar as mais críticas.

    Quando perguntado o que diria para alguém com uma grande visão e sem ideia de por onde começar, ele disse: fique obcecado com clareza sobre para onde está indo, porque as lacunas vão aparecer sozinhas. Ele comparou isso a planejar uma viagem de 160 quilômetros e perceber que você não está usando sapatos: uma vez que você vê, não consegue mais deixar de ver.

    “Se você pode esperar até o sábado, talvez deva só esperar o sábado. Não tem nada de errado com isso.” — Jason Lane

    Volta às Origens: A Trajetória de Jason Goodman

    Imagem original — fonte: Aws

    Se Jason Lane planejou a carreira a partir da linha de chegada, a trajetória de Jason Goodman se parece mais com uma máquina de pinball — saltando por três disciplinas de segurança em cerca de um ano e acumulando habilidades pelo caminho.

    A base foi construída muito antes de ele saber disso. Oito anos atrás, antes de a Amazon adquirir a Ring, ele trabalhava no atendimento ao cliente, ajudando usuários com seus dispositivos e contas. O que o direcionou para segurança foi, em parte, o incentivo do sogro — que trabalhava em TI — e, em parte, o que ele observava diariamente nas ligações: acessos a contas que não pareciam certos, sinais silenciosos de que algo estava errado. Esses padrões o fizeram querer entender os sistemas por trás deles. Então, ainda no atendimento ao cliente, ele voltou a estudar para se graduar em cibersegurança.

    Mas ele não esperou a formatura para começar a construir o caminho. Entrou em contato com o gerente do time interno de ameaças (os profissionais que investigam uso indevido de acessos dentro da organização) e fez uma pergunta que qualquer pessoa pode fazer: o que eu poderia fazer para continuar evoluindo enquanto ainda estou na faculdade? Isso se transformou em projetos extras. E aqui está o detalhe que vale notar: ele ganhou os projetos maiores entregando os menores primeiro.

    Seu projeto de destaque foi um painel de prevenção a fraudes que ajudava o time a identificar possíveis usos indevidos do acesso a contas de clientes — um ponto cego que ninguém tinha sinalizado antes. Ele tinha credibilidade para receber esse desafio porque já havia demonstrado comprometimento com o trabalho de menor visibilidade. Isso abriu a porta para seu primeiro cargo como engenheiro de segurança.

    De lá, ele migrou para um time de detecção de ameaças adversariais (os profissionais que monitoram atacantes externos tentando invadir sistemas), o que exigiu uma virada de mentalidade: em vez de perguntar o que alguém de dentro poderia fazer com seu acesso existente, ele passou a perguntar como alguém de fora tentaria entrar. Uma movimentação posterior o levou à segurança de aplicações, onde o foco mudou de responder a incidentes para incorporar segurança nos processos desde o início.

    “Estou na minha terceira disciplina em um ano desde que migrei do atendimento ao cliente para engenharia de segurança.” — Jason Goodman

    O que chama atenção é o quanto se transferiu de um papel para o outro. As consultas no Splunk (ferramenta para busca e análise de grandes volumes de dados de log) aprendidas no atendimento ao cliente serviram no trabalho com ameaças internas; a lógica de detecção das investigações internas serviu na detecção adversarial; e agora, em segurança de aplicações, ele voltou ao ponto de partida — trabalhando ao lado dos mesmos times de atendimento ao cliente de onde veio, mas desta vez ajudando a construir a segurança ao redor deles.

    Ao longo de tudo isso, ele contou com quatro mentores diferentes, cada um servindo a um propósito específico: um para navegar a graduação, um para projetos de expansão, um para aprender a pensar como um adversário, e um para se aprofundar em segurança de aplicações. A forma como ele os encontrou é replicável: ele não esperou ser designado a ninguém. Entrou em contato com pessoas cujo trabalho admirava, fez perguntas específicas e manteve o contato ao longo dos anos.

    Na Fronteira do Mapa: Harshvardhan Chunawala

    Imagem original — fonte: Aws

    Harshvardhan Chunawala ainda estava no ensino médio quando começou a encontrar falhas de segurança em produtos reais e a reportá-las às empresas responsáveis. Ele havia começado desenvolvendo sites e aplicações web e, depois de entender como o software era construído, não conseguia parar de pensar em como poderia ser desmontado. Em vez de esperar ter um diploma ou um emprego para explorar isso, ele começou a analisar produtos reais por conta própria — e quando encontrava uma falha, entrava em contato com a empresa e trabalhava com ela para corrigi-la.

    Hoje, como Arquiteto de Soluções para Startups na AWS, ele orienta fundadores sobre segurança e dedica parte do seu tempo a ensinar cursos de nuvem e segurança para estudantes. Uma das perguntas mais frequentes que recebe é: por onde começar, num momento em que parte do trabalho de nível básico está sendo automatizado?

    A resposta dele evoluiu ao longo do tempo. Agora que ferramentas de Inteligência Artificial Generativa (IA Generativa) conseguem responder às perguntas mais superficiais, ele acredita que a curiosidade importa mais do que as credenciais — porque quem se destaca são as pessoas que continuam fazendo perguntas depois que a ferramenta fica sem respostas.

    “As ferramentas de IA colocam todo mundo na mesma linha de partida. O interesse e a paixão se tornaram o diferencial.” — Harshvardhan Chunawala

    O que surpreende na trajetória dele é para onde sua curiosidade o levou. Enquanto estudava na Universidade Carnegie Mellon (CMU), ele acabou trabalhando em missões espaciais, incluindo como operador de missão do rover lunar Iris. Se a pergunta é se segurança pertence ao espaço, a resposta de Harshvardhan é imediata: qualquer coisa que pode ser comandada remotamente pode ser comandada pela pessoa errada.

    Quando o assunto é o futuro da segurança, ele vai além: fala sobre robôs entrando nas casas das pessoas, sobre data centers migrando de terra para o fundo do mar e depois para o espaço. Um satélite precisa ser protegido em órbita — onde ninguém pode alcançar fisicamente um sistema comprometido — e também no solo, onde as estações que o controlam também são alvos. Harshvardhan já escreveu um guia de duas partes sobre resposta a incidentes para operações de satélites na AWS, então para ele esse canto do mapa já faz parte do trabalho.

    O Fio que Une as Três Histórias

    As três trajetórias compartilham um ponto em comum: a função que você vai amar pode ser uma que você ainda não conhece. Jason Lane mapeou seus movimentos a partir do destino final. Jason Goodman carregou suas habilidades por três disciplinas em um único ano. Harshvardhan já está ajudando clientes da AWS a proteger satélites e os sistemas terrestres que os operam. Nenhum deles consegue explicar o que faz em uma única frase — e isso provavelmente vale para muita gente fazendo trabalho interessante nessa área.

    Para quem quer explorar os papéis que existem além dos mais conhecidos, algumas referências mencionadas no post original:

    A série continua: na Parte 3, o foco será no contraste entre o que as pessoas imaginam ser o dia a dia de segurança e o que ele realmente é.

    Fonte

    Part 2 – Cybersecurity journeys: What even is this job? (https://aws.amazon.com/blogs/security/part-2-cybersecurity-journeys-what-even-is-this-job/)

  • AWS Security Hub agora suporta criticidade de recursos para priorização

    Nova capacidade de priorização no Security Hub

    A AWS anunciou uma atualização relevante para o AWS Security Hub: o serviço agora inclui o conceito de criticidade de recursos (resource criticality) no processo de priorização de exposições. A novidade chega para ajudar equipes centrais de segurança a identificar, de forma mais eficiente, quais exposições representam risco real para os ativos mais importantes do negócio.

    O que é criticidade de recursos e por que importa

    Em ambientes de nuvem com dezenas ou centenas de recursos, nem tudo tem o mesmo peso. Um servidor de produção que processa dados sensíveis de clientes é muito mais crítico do que um ambiente de testes isolado. A criticidade de recursos permite que as equipes de segurança reflitam essa realidade diretamente dentro do Security Hub, priorizando a resposta a incidentes com base no impacto potencial ao negócio.

    Como funciona na prática

    A AWS implementou três formas de atribuir criticidade aos recursos dentro do Security Hub:

    • Regras de automação: é possível configurar uma regra para marcar automaticamente todos os recursos de computação de uma conta específica como, por exemplo, Muito Alta (Very High). Essa regra se aplica tanto aos recursos já presentes no inventário quanto aos novos recursos descobertos pelo Security Hub ao longo do tempo.
    • Inferência por tags e nomes: o Security Hub também consegue inferir a criticidade a partir de tags e nomes de recursos, sem nenhuma configuração adicional. O serviço registra qual foi a fonte que determinou o valor, garantindo rastreabilidade.
    • Visibilidade na interface: a criticidade aparece como uma coluna na página de Recursos, permitindo ordenação, filtragem e agrupamento. Ela também está disponível na aba de avaliação de impacto (Impact assessment) de uma descoberta de exposição.

    Disponibilidade e custos

    A criticidade de recursos está incluída no Security Hub Essentials sem custo adicional. Não é necessário nenhum processo de habilitação — o recurso já está ativo para todos os clientes. Para verificar em quais regiões da AWS o Security Hub está disponível, consulte a tabela de regiões da AWS.

    Saiba mais

    Para aprofundar o entendimento sobre essa e outras funcionalidades do serviço, a AWS disponibiliza o Guia do Usuário do AWS Security Hub e a página oficial do produto.

    Fonte

    AWS Security Hub now supports resource criticality for prioritization (https://aws.amazon.com/about-aws/whats-new/2026/10/security-hub-resource-criticality/)

  • AWS Security Hub agora exporta findings para o S3 em formato CSV ou JSON

    O que mudou no AWS Security Hub

    A AWS anunciou uma novidade relevante para equipes de segurança: o AWS Security Hub agora oferece suporte à exportação de findings diretamente para o Amazon S3, nos formatos CSV ou JSON com o padrão Estrutura Aberta de Esquema de Cibersegurança (OCSF — Open Cybersecurity Schema Framework).

    Por que isso importa

    Até então, equipes que precisavam trabalhar com os findings fora do console do Security Hub — seja para relatórios de conformidade, evidências de auditoria ou análises externas — precisavam construir e manter seus próprios pipelines de extração de dados. Esse processo exigia esforço de engenharia contínuo e adicionava complexidade operacional desnecessária.

    Com essa atualização, a AWS resolve esse gargalo de forma direta: a exportação pode ser iniciada sob demanda, direto da página de findings que o usuário estiver visualizando no console.

    Como funciona na prática

    A exportação está disponível em todas as páginas de findings do console do Security Hub, incluindo:

    • Threats (Ameaças)
    • Exposure (Exposição)
    • Vulnerabilities (Vulnerabilidades)
    • Posture Management (Gerenciamento de Postura)
    • Sensitive Data (Dados Sensíveis)
    • All Findings (Todos os Findings)

    Ao iniciar uma exportação, o Security Hub entrega os resultados diretamente em um bucket S3 na conta do usuário. A escolha do formato depende do caso de uso:

    • CSV: ideal para revisar ou compartilhar os findings em planilhas.
    • JSON (OCSF): recomendado quando os dados precisam estar no padrão OCSF, amplamente utilizado em integrações de segurança.

    Disponibilidade

    A exportação de findings está disponível em todas as regiões da AWS onde o Security Hub já está presente. Para explorar a documentação completa do recurso, a AWS disponibiliza o Guia do Usuário do AWS Security Hub.

    Fonte

    AWS Security Hub now exports findings to S3 in CSV or JSON format (https://aws.amazon.com/about-aws/whats-new/2026/10/security-hub-exports-s3-csv-json/)

  • AWS Network Firewall passa a suportar wildcards nos filtros de atributos de contêineres

    O que mudou no AWS Network Firewall

    A AWS anunciou uma melhoria relevante para quem gerencia ambientes containerizados: o AWS Network Firewall agora oferece suporte a wildcard (caractere curinga) nos filtros de inspeção baseados em atributos de contêineres. O recurso vale tanto para o Serviço Kubernetes Elástico da Amazon (Amazon EKS) quanto para o Serviço de Contêiner Elástico da Amazon (Amazon ECS).

    Por que isso importa na prática

    Antes dessa atualização, quem precisava aplicar regras de firewall a diferentes variantes de uma mesma aplicação tinha que criar uma associação de contêiner individual para cada uma delas — o que, em ambientes dinâmicos, pode se tornar um trabalho manual considerável e propenso a lacunas de cobertura.

    Com o suporte a wildcards, é possível definir um único padrão de filtro que cobre automaticamente múltiplos workloads ao mesmo tempo. O próprio anúncio da AWS traz um exemplo direto: usando o padrão app=payments-*, uma única regra passa a cobrir automaticamente variantes como payments-api, payments-worker e payments-cron — sem a necessidade de criar uma entrada separada para cada uma.

    Benefícios para ambientes de contêineres dinâmicos

    Em arquiteturas modernas, novos serviços e variantes de aplicações são implantados com frequência. Manter as regras de firewall sincronizadas com esse ritmo de mudança costuma ser um desafio operacional real. Com o suporte a wildcards, a cobertura de segurança passa a acompanhar automaticamente a criação de novas variantes, desde que elas sigam o padrão definido na regra.

    Os principais ganhos destacados pela AWS são:

    • Menos overhead operacional: uma única regra substitui diversas associações individuais de contêiner.
    • Cobertura consistente: novas variantes de aplicação são automaticamente contempladas pela regra existente.
    • Gestão simplificada: ambientes dinâmicos ficam mais fáceis de proteger sem a necessidade de atualizações manuais constantes nas regras.

    Disponibilidade

    O suporte a wildcards nos filtros de atributos de contêineres está disponível em todas as regiões da AWS onde a inspeção baseada em atributos de contêineres do AWS Network Firewall já é suportada. Para conferir a lista completa de regiões compatíveis, a AWS disponibiliza a tabela de regiões da AWS.

    Para começar a usar o recurso, é possível acessar a página do produto AWS Network Firewall ou consultar diretamente a documentação oficial do serviço.

    Fonte

    AWS Network Firewall adds wildcard support for container attribute filters (https://aws.amazon.com/about-aws/whats-new/2026/10/aws-network-firewall-container-attributes-wildcard)

  • Repensando o controle de acesso em RAG com Amazon Quick e Amazon Bedrock

    O problema de segurança que toda empresa enfrenta com IA

    Organizações ao redor do mundo estão adotando a Geração Aumentada por Recuperação (RAG) para extrair insights de bases de conhecimento corporativo — Microsoft SharePoint, Google Drive, Atlassian Confluence. O conceito é poderoso: permitir que assistentes de IA respondam perguntas com base em documentos internos da empresa.

    Mas existe um desafio crítico que muitas implementações ignoram: essas bases de conhecimento contêm informações sensíveis, governadas por estruturas complexas de permissões. Garantir que as respostas geradas pela IA respeitem essas permissões é um dos problemas mais difíceis da IA corporativa.

    A AWS publicou um artigo detalhando como o Amazon Quick e o Amazon Bedrock Knowledge Bases abordam esse desafio por meio de verificação de listas de controle de acesso (ACL) em tempo real — consultando as permissões diretamente na fonte autoritativa no momento da consulta.

    Por que as abordagens tradicionais falham

    A solução mais comum para controle de acesso em RAG é a chamada abordagem de “replicar e filtrar”. O funcionamento é o seguinte: um conector de dados (como um conector do SharePoint) extrai as ACLs durante um ciclo de sincronização periódica. Essas ACLs são replicadas e armazenadas como atributos no índice. Na hora da consulta, o sistema mapeia o usuário autenticado para os atributos de ACL armazenados e filtra os resultados.

    À primeira vista parece razoável. Mas a AWS identifica três fragilidades fundamentais nessa abordagem:

    O sistema de IA não é a fonte da verdade

    Nesse modelo, o sistema de IA assume sozinho a responsabilidade pela aplicação das permissões, sem ser a fonte autoritativa. Isso exige que os conectores de dados repliquem com precisão lógicas de ACL complexas e específicas de cada fonte — hierarquias de herança, membros de grupos, políticas de acesso condicional e regras de negação. Mapear isso corretamente em dezenas de conectores diferentes é uma tarefa extremamente suscetível a erros.

    Permissões desatualizadas criam brechas de segurança

    Em geral, os conectores de dados operam com sincronizações periódicas. Isso significa que as ACLs armazenadas no índice são apenas um retrato do momento em que a última sincronização ocorreu. Algumas soluções usam atualizações baseadas em eventos, mas isso não funciona de forma universal. O Confluence, por exemplo, não emite um evento quando a associação a um grupo muda. Entre um ciclo e outro de sincronização, um usuário que teve o acesso revogado pode continuar recebendo respostas da IA com base em documentos que não deveria mais ver.

    Fontes de dados evoluem constantemente

    Plataformas como SharePoint e Google Drive lançam regularmente novos mecanismos de controle de acesso. Uma nova funcionalidade de permissão pode criar lacunas na lógica de mapeamento do conector — expondo conteúdo indevidamente até que o conector seja atualizado.

    A solução da AWS: verificação de ACL em tempo real

    Para superar essas limitações, a AWS implementou verificações de ACL em tempo real como uma camada adicional de segurança no Amazon Quick e no Amazon Bedrock Knowledge Bases. O sistema garante que os controles de acesso mais atuais sejam sempre aplicados, consultando as permissões diretamente na fonte autoritativa no momento da consulta — sem depender de dados de ACL potencialmente desatualizados ou mapeados incorretamente.

    Como funciona: o exemplo com Google Drive

    Quando um usuário envia uma consulta a um agente do Amazon Quick que utiliza uma base de conhecimento do Google Drive, o sistema aplica o controle de acesso em dois estágios:

    Estágio 1: Filtragem pré-recuperação

    O Amazon Quick realiza uma busca semântica no índice vetorial para encontrar os trechos de documentos mais relevantes. O sistema aplica as listas de controle de acesso já armazenadas no índice, produzindo um conjunto preliminar de documentos candidatos. Esse estágio é necessário porque fazer chamadas de API em tempo real para cada documento do índice seria inviável em termos de custo e desempenho em escala.

    Estágio 2: Verificação em tempo real

    O Amazon Quick verifica os documentos candidatos em tempo real, chamando as APIs do Google Drive. Utiliza a credencial de conta de serviço fornecida pelo administrador para gerar tokens de acesso específicos para o usuário por meio de impersonação. O Google Drive mantém a fonte de verdade das ACLs associadas a cada documento. Documentos que o usuário não está autorizado a acessar são excluídos do conjunto de resultados. Apenas os trechos verificados e autorizados são enviados ao modelo de linguagem de grande escala (LLM) como contexto para a geração da resposta.

    Essa abordagem de dois estágios equilibra desempenho e segurança: usa as ACLs em cache para eficiência, mas garante a correção por meio de verificações em tempo real.

    Além da aplicação de ACLs, o Amazon Bedrock oferece controles de IA responsável — incluindo o Amazon Bedrock Guardrails para filtragem de conteúdo, verificações de fundamentação para reduzir alucinações e políticas de segurança configuráveis.

    Por que isso importa para as organizações

    A AWS destaca três benefícios principais dessa abordagem:

    • Permissões sempre atualizadas: sem mais brechas de segurança entre ciclos de sincronização. Se o acesso de um colaborador for revogado, a mudança é refletida nas respostas da IA em instantes — não horas ou dias depois.
    • Confiança para escalar: as organizações podem expandir a cobertura de suas bases de conhecimento sabendo que as verificações de ACL em tempo real validam as permissões na fonte autoritativa a cada consulta, independentemente da fonte de dados.
    • Menor carga operacional: não é necessário se preocupar com a frequência das sincronizações.

    O que os clientes dizem

    A Mondelēz International implantou o Amazon Quick para mais de 35.000 colaboradores em quatro regiões. Jamahl Wiggins, especialista sênior em Inovação M365 da empresa, destacou que o controle de acesso em tempo real foi o diferencial decisivo na avaliação da solução — respondendo de forma definitiva à exigência do time de segurança e conformidade de que cada colaborador acesse apenas as informações para as quais está autorizado.

    Conclusão

    A arquitetura de ACL em duas camadas implementada no Amazon Quick e no Amazon Bedrock Knowledge Bases representa uma evolução importante para o uso seguro de RAG em ambientes corporativos. Ao verificar as permissões diretamente nas fontes autoritativas no momento da consulta, a solução elimina as brechas criadas por dados desatualizados e reduz o risco de exposição indevida de informações sensíveis.

    Para começar a explorar, a AWS disponibiliza documentação do Amazon Quick e do Amazon Bedrock Knowledge Bases.

    Fonte

    Rethinking access control for RAG with Amazon Quick and Amazon Bedrock (https://aws.amazon.com/blogs/machine-learning/rethinking-access-control-for-rag-with-amazon-quick-and-amazon-bedrock/)

  • Configurando seu harness de vulnerabilidades com IA, Parte 2: o arquivo de steering

    O problema com modelos de IA sem configuração

    A AWS publicou a segunda parte de sua série sobre harness de vulnerabilidades com IA, e desta vez o foco é a peça que realmente determina a qualidade das análises: o arquivo de steering. Se a primeira parte da série cobriu a arquitetura do harness, esta parte cobre a configuração — e a distinção importa muito mais do que parece.

    A lição central do post é direta: o mesmo modelo de fronteira que produz uma avaliação de segurança rigorosa e baseada em evidências com um conjunto de instruções vai produzir cadeias de ataque alucinadas e classificações de severidade infladas com outro. A capacidade do modelo é fixa. O que você configura é o julgamento dele.

    As iterações iniciais da equipe da AWS produziram achados que soavam autoritativos mas desmoronavam sob escrutínio. O modelo reportava uma injeção SQL em uma função que não existia, afirmava confiança ALTA sem nenhuma base estrutural, ou ignorava um AWS WAF em modo de bloqueio diretamente no caminho da requisição. A correção não foi um modelo melhor — foi uma direção melhor.

    O que é um arquivo de steering

    Um arquivo de steering é um conjunto de instruções que um assistente de codificação com IA carrega no início de cada sessão. Ferramentas diferentes usam convenções diferentes: o Kiro lê arquivos markdown do diretório .kiro/steering/, o Claude Code usa CLAUDE.md, o Cursor usa .cursorrules, e o GitHub Copilot usa .github/copilot-instructions.md. A função é a mesma em todos os casos: instruções persistentes que moldam como o modelo aborda o trabalho no repositório.

    Aplicado à análise de segurança, um arquivo de steering codifica a metodologia de triagem da equipe como instruções executáveis pelo modelo. Em vez de depender de engenheiros individuais para aplicar essa metodologia de forma consistente, você a codifica uma vez e o modelo a aplica uniformemente em todas as análises.

    Por que configuração supera prompting pontual

    Um prompt de turno único — “encontre vulnerabilidades neste código” — produz o que o comportamento padrão do modelo gera. Esse padrão é otimizado para utilidade, não para rigor. O modelo vai encontrar coisas para reportar porque você pediu para encontrar coisas.

    Um arquivo de steering muda o padrão. Ele estabelece três pilares fundamentais:

    • O que conta como evidência: sem instruções explícitas, um modelo trata seu próprio raciocínio como evidência suficiente. O arquivo de steering exige verificação estrutural — fluxo de dados confirmado, existência de função confirmada e caminho de chamada confirmado — antes de um achado ser reportado.
    • O que confiança significa: por conta própria, um modelo atribui confiança com base em quão plausível sua narrativa soa para si mesmo. O arquivo de steering substitui essa confiança auto-reportada por uma fórmula calculada a partir de sinais estruturais binários.
    • Como a infraestrutura afeta a prioridade: deixado aos seus padrões, um modelo avalia vulnerabilidades isoladas do contexto de implantação. O arquivo de steering exige a análise de Infraestrutura como Código (IaC) e a aplicação de multiplicadores específicos por controle antes de atribuir prioridade.

    O objetivo é reprodutibilidade: a mesma base de código deve produzir os mesmos achados avaliados independentemente de quem executa a análise ou quando.

    As cinco seções que importam

    1. Verificação estrutural antes de confiar no modelo

    Esta é descrita como a instrução mais importante do arquivo. A regra é simples: nunca confie na confiança auto-reportada de um modelo sobre uma vulnerabilidade. Verifique as afirmações contra a estrutura do código: os arquivos referenciados existem? As funções referenciadas existem? O fluxo de dados confirma a afirmação? Existe um caminho de chamada?

    Se um achado falha em todas as verificações estruturais, ele é rejeitado independentemente de quão convincente a narrativa soa. Sem essa instrução, o modelo gera cadeias de ataque plausíveis que referenciam funções renomeadas três commits atrás, arquivos em pacotes diferentes, ou fluxos de dados que passam por sanitização que o modelo não percebeu. Nos testes da AWS, aproximadamente 30% dos achados de modelos sem steering referenciavam estruturas de código que não existiam no repositório alvo. Com o arquivo de steering, esse número caiu a zero.

    2. Pontuação de confiança baseada em evidências

    A fórmula abaixo substitui a confiança intuitiva do modelo por uma pontuação calculada a partir de sinais observáveis. Cada fator é binário: confirmado ou não confirmado.

    confidence = 0.30 * taint_confirms_flow
               + 0.25 * no_sanitization_found
               + 0.20 * entry_point_is_public
               + 0.15 * call_graph_confirms_path
               + 0.10 * sink_type_matches_category

    A confirmação de taint recebeu o maior peso (0,30) porque um caminho de fluxo de dados confirmado — evidência de que dados controlados pelo usuário chegam a uma operação sensível à segurança — é o preditor mais forte de que um achado é real. Na validação da AWS contra aplicações vulneráveis conhecidas, achados com taint confirmado e sem sanitização eram exploráveis em 89% das vezes. Achados onde o modelo reportou confiança ALTA sem confirmação estrutural eram exploráveis em apenas 34% das vezes.

    A fórmula é um ponto de partida, não um padrão fixo. Os pesos devem refletir os dados de validação de cada equipe.

    3. Avaliação com consciência de infraestrutura

    Esta seção endereça uma categoria comum de superpriorização: reportar uma vulnerabilidade com severidade total quando controles compensatórios já estão em vigor.

    score_after_controls = max(0.15, score * block_1 * block_2 * ... * block_n)

    Os controles são mapeados para classes específicas de vulnerabilidade. Um AWS WAF com regras de injeção SQL em modo de bloqueio é um controle FORTE (multiplicador de 0,25x) contra injeção SQL. É irrelevante para ataques de desserialização. O arquivo de steering especifica esse mapeamento explicitamente em vez de deixar o modelo adivinhar.

    O empilhamento multiplicativo de controles com um piso de 0,15 codifica o pensamento de defesa em profundidade. Múltiplos controles reduzem o risco mais do que qualquer controle único, mas nenhuma combinação reduz o risco a zero.

    Uma sutileza importante aprendida durante a validação: controles de acesso (autenticação e autorização) e controles de bloqueio de ataque (regras de WAF e validação de entrada) servem funções diferentes. Autenticação limita quem pode tentar um exploit — não limita o que acontece quando um usuário autenticado tenta um. Uma injeção de comando atrás de autenticação IAM ainda é uma injeção de comando; o pool de atacantes é menor, mas o impacto quando explorado é inalterado.

    4. Integração de inteligência de ameaças

    O arquivo de steering incorpora sinais do catálogo Catálogo de Vulnerabilidades Exploradas Conhecidas (KEV) da CISA e do Sistema de Pontuação de Previsão de Exploits (EPSS) para aumentar a prioridade quando a inteligência de ameaças indica risco ativo.

    Os sinais reconhecidos e seus boosts são:

    • Explorada ativamente (CISA KEV): +0,30
    • Associada a ransomware (CISA KEV): +0,15
    • EPSS >= 0,5: +0,20
    • Prova de conceito pública existente: +0,10

    Há um limite de +0,50 de boost total para evitar que a inteligência de ameaças domine a pontuação. A lógica é separar urgência de severidade: uma vulnerabilidade de dependência de severidade média sob exploração ativa por grupos de ransomware exige resposta mais rápida do que um achado crítico em nível de código que requer precondições complexas e não tem ferramental conhecido.

    5. Classificação de prioridade

    A pontuação produz um número, e a classificação de prioridade transforma esse número em uma decisão — que é o que um desenvolvedor precisa ao receber um achado. O arquivo de steering define quatro níveis de ação:

    • P0 — Pontuação >= 0,8, sem mitigação efetiva de bloqueio de ataque: corrigir imediatamente
    • P1 — Pontuação >= 0,6 OU inteligência de ameaça ativa: corrigir neste sprint
    • P2 — Pontuação >= 0,4, evidência parcial: investigar quando houver capacidade
    • P3 — Pontuação < 0,4 ou efetivamente mitigado: aceitar risco ou backlog

    A instrução mais controversa do arquivo: não registre achados P3 como issues de segurança. O raciocínio é sólido — registrar achados de baixa confiança ou totalmente mitigados como tickets treina equipes a ignorar as ferramentas de segurança. Um pipeline que produz dez achados confirmados recebe mais atenção de engenharia do que um que produz duzentos “talvez”.

    Resultados da validação

    A AWS testou o arquivo de steering contra uma aplicação vulnerável construída especificamente para o teste, contendo dez vulnerabilidades conhecidas: oito exploráveis e duas mitigadas por controles de infraestrutura. A aplicação incluía um AWS WAF com regras de injeção SQL em modo de bloqueio, funções AWS Lambda isoladas em Amazon VPC, e autenticação IAM em cada endpoint.

    Sem o arquivo de steering: o modelo encontrou todas as dez vulnerabilidades e identificou corretamente os dois achados mitigados como menor prioridade. No entanto, atribuiu severidade por intuição e não produziu verificação estrutural de suas afirmações.

    Com o arquivo de steering: o modelo encontrou nove das dez vulnerabilidades (não sinalizando uma credencial hardcoded intencionalmente embutida em código de teste unitário que estava definida mas nunca chamada), rebaixou corretamente os dois achados mitigados para P3 com justificativa documentada, mostrou o cálculo de confiança para cada achado, e verificou cada fluxo de dados afirmado contra o código real.

    A calibração de pontuação exigiu uma iteração: a versão inicial aplicava autenticação como multiplicador genérico que suprimia todos os achados atrás de IAM para P2, independentemente do impacto. A correção separou controles de limitação de acesso dos controles de bloqueio de ataque. A versão atual classifica corretamente uma injeção de comando atrás de autenticação IAM como P0.

    Como usar o arquivo de steering

    Opção 1: Como steering file do Kiro

    Coloque o arquivo no repositório em .kiro/steering/vuln-triage.md. Qualquer sessão usando o agente padrão do Kiro carrega as instruções automaticamente. Se sua equipe usa um agente customizado, você precisa adicionar o arquivo explicitamente aos recursos do agente:

    { "resources": ["file://.kiro/steering/**/*.md"] }

    A estrutura do repositório fica assim:

    your-repo/
    ├── .kiro/
    │   └── steering/
    │       └── vuln-triage.md  ← steering file
    ├── src/
    ├── cdk/
    └── ...

    Também é possível colocá-lo em ~/.kiro/steering/ para aplicar a metodologia em todos os workspaces da máquina.

    Opção 2: Como skill do Kiro

    Se você quer a metodologia disponível sob demanda em vez de consumir espaço de contexto em cada turno, use-a como skill. O Kiro carrega apenas o nome e a descrição da skill na inicialização e puxa as instruções completas quando a skill é ativada.

    Uma skill é uma pasta contendo um arquivo SKILL.md. O nome da pasta deve corresponder ao nome no cabeçalho YAML:

    name: vuln-triage
    description: Structured vulnerability triage methodology with evidence-based scoring and infrastructure-aware prioritization. Use when analyzing code for security vulnerabilities.

    A estrutura fica assim:

    your-repo/
    ├── .kiro/
    │   └── skills/
    │       └── vuln-triage/
    │           └── SKILL.md  ← skill file
    ├── src/
    └── ...

    Uma skill chamada vuln-triage se torna o comando /vuln-triage, permitindo que um engenheiro execute uma avaliação sob demanda: /vuln-triage focus on the authentication changes. Para disponibilizar em todos os projetos da máquina, coloque em ~/.kiro/skills/.

    Opção 3: Adaptado para outras ferramentas

    A metodologia não é específica do Kiro. O repositório também disponibiliza o mesmo conteúdo como arquivo CLAUDE.md para o Claude Code, e os princípios se aplicam a qualquer assistente que carregue instruções persistentes do repositório.

    O que o arquivo de steering não substitui

    Um arquivo de steering é metodologia, não maquinário. Ele diz ao modelo como pensar sobre achados, mas não fornece:

    • Rastreamento programático de taint: o modelo aproxima o fluxo de dados lendo o código. Um rastreador de taint dedicado confirma o fluxo contra a árvore de sintaxe abstrata (AST) de forma determinística.
    • Verificação de infraestrutura em tempo real: o arquivo de steering instrui o modelo a analisar arquivos de IaC, mas ele não pode fazer chamadas de API para verificar se uma regra do AWS WAF está realmente anexada ao Amazon API Gateway no ambiente implantado.
    • Feeds de inteligência de ameaças ao vivo: o modelo inclui entradas históricas do KEV da CISA em seus dados de treinamento, mas não pode consultar feeds em tempo real. Para status atual de exploração, é necessária uma integração via API.
    • Verificação baseada em execução: confirmar explorabilidade executando uma prova de conceito contra um ambiente real requer ferramental adicional.

    Cada uma dessas capacidades adiciona confiança ao pipeline. O arquivo de steering sem elas ainda produz resultados mensuravelmente melhores do que um modelo sem direção — achados estruturados, evidências citadas e priorização com consciência de infraestrutura. Mas representa a primeira camada de um harness maduro, não o sistema completo.

    Disponibilidade

    O arquivo de steering está disponível no repositório GitHub da AWS. A recomendação é usá-lo, adaptá-lo ao ambiente específico e compartilhar os resultados com a comunidade.

    Fonte

    Configuring your AI vulnerability harness, Part 2: The steering file (https://aws.amazon.com/blogs/security/configuring-your-ai-vulnerability-harness-part-2-the-steering-file/)

  • Construindo seu Harness de Vulnerabilidades com IA, Parte 1

    O problema: volume de achados maior do que a capacidade de triagem

    Scanners de vulnerabilidade produzem achados mais rápido do que times de segurança conseguem analisar manualmente. À medida que os times de desenvolvimento entregam mais código com mais dependências, o volume de candidatos a vulnerabilidade só cresce. O desafio não é encontrar potenciais problemas — é separar o sinal do ruído na velocidade que o pipeline de entrega exige.

    Para endereçar esse gap, a AWS publicou um guia técnico descrevendo um pipeline de três camadas que parte dos achados brutos de scanners e chega a um conjunto pequeno e priorizado, com evidências documentadas de exploitabilidade. Este é o primeiro post de uma série: o artigo complementar, Configurando seu harness de vulnerabilidades com IA, cobrirá o arquivo de direcionamento (steering file) que controla o comportamento do modelo dentro desse pipeline.

    O que é um harness de testes

    Um harness de testes é um framework automatizado que submete um sistema a entradas controladas e observa se as saídas correspondem ao comportamento esperado. Aplicado à detecção de vulnerabilidades, o harness recebe cada achado candidato, constrói um teste para avaliar a exploitabilidade, executa esse teste em ambiente controlado e registra as evidências.

    É importante deixar claro: o harness é a infraestrutura de testes, não os resultados que ela produz.

    Por que ferramentas tradicionais não são suficientes

    Ferramentas tradicionais de Teste Estático de Segurança de Aplicações (SAST — Static Application Security Testing) funcionam por correspondência de padrões, com análise de fluxo de dados variando conforme a ferramenta e a linguagem. Elas identificam bem os sinks de formato conhecido, mas têm dificuldade com cadeias de múltiplos saltos, falhas de lógica de negócio, sanitização dependente de contexto e com determinar se um sink é alcançável a partir de uma entrada controlada pelo atacante.

    A análise aumentada por IA preenche essa lacuna de raciocínio: rastreando entre arquivos, inferindo intenção e pesando o contexto de implantação. A distinção conceitual central é que o modelo não é executado contra a base de código — a base de código é contexto passado a um modelo com um prompt específico. O modelo recebe o código e aplica raciocínio sobre como os dados fluem, onde existem limites de confiança e se padrões relevantes de segurança estão presentes.

    O escopo do contexto é uma das partes mais difíceis dessa arquitetura. Contexto demais pode sobrecarregar a janela de raciocínio do modelo; contexto de menos pode gerar lacunas de análise e falsos negativos. Para uma função AWS Lambda simples, o contexto relevante pode ser um único arquivo mais sua função do Gerenciamento de Identidade e Acesso da AWS (IAM). Para um microsserviço complexo com bibliotecas compartilhadas e infraestrutura em camadas, decidir o que incluir exige entender o grafo de dependências da aplicação.

    O modelo pode raciocinar sobre a topologia de implantação se você fornecer esse contexto — por exemplo, passando constructs do Kit de Desenvolvimento em Nuvem da AWS (AWS CDK) ou templates do AWS CloudFormation como contexto adicional. Começar com escopo restrito e expandir apenas quando a avaliação inicial do modelo for inconclusiva tende a produzir resultados melhores do que passar tudo de uma vez.

    Construindo o pipeline de três camadas

    Scanners de segurança podem produzir grandes volumes de achados a cada execução. Muitos são falsos positivos — parecem vulnerabilidades, mas não são problemas reais. Para separar os problemas reais do ruído, o pipeline filtra os achados em três camadas. Cada camada aplica um tipo diferente de evidência. Ao final, resta um número menor de problemas priorizados e respaldados por evidências documentadas.

    Camada 1: Concordância entre múltiplos scanners

    A plausibilidade vem primeiro. A ideia é executar múltiplos scanners de forma independente contra a mesma base de código: quando dois ou mais convergem para o mesmo achado, a confiança aumenta. Quando apenas um scanner reporta um problema e nenhuma outra ferramenta concorda, o pipeline sinaliza esse achado para escrutínio extra.

    Essa abordagem — chamada de concordância entre múltiplos scanners (multi-scanner agreement) — é uma forma de baixo custo de aumentar a confiança. Funciona com as ferramentas que você já usa e não requer nenhuma infraestrutura nova.

    Camada 2: Verificação estrutural

    A segunda camada verifica a estrutura. Scanners com IA descrevem como acreditam que uma vulnerabilidade funciona: os dados entram por uma função, passam por outra e chegam a um ponto onde podem causar dano. Porém, essas descrições podem estar erradas. Antes de um achado avançar, o pipeline o verifica contra o código real. Ele checa se a função mencionada pelo scanner existe, se o arquivo existe e se os dados podem fluir pelo caminho descrito. Caso contrário, o pipeline rejeita o achado.

    Essa etapa de verificação usa a Árvore Sintática Abstrata (AST — Abstract Syntax Tree) do código: um mapa estruturado de como funções, arquivos e fluxos de dados se conectam na sua base de código.

    Essa etapa protege a credibilidade do output do pipeline. Se achados não verificados chegam a revisores humanos, os times rapidamente aprendem a desconfiar dos resultados — o que reduz o valor de segurança da ferramenta.

    Camada 3: Contexto de implantação

    A camada final adiciona contexto de implantação. Vulnerabilidades existem dentro do contexto de uma arquitetura, que pode incluir controles de proteção — como regras do AWS WAF, isolamento de rede, requisitos de autenticação e validação de entrada. Essa camada lê seus templates de Infraestrutura como Código (IaC — Infrastructure as Code), como arquivos CloudFormation ou Terraform que definem sua arquitetura em nuvem, junto com o código-fonte da aplicação. Em seguida, verifica se um atacante consegue explorar a vulnerabilidade contornando os controles existentes.

    Nem todos os controles oferecem o mesmo nível de proteção. Uma regra de firewall de aplicação web que bloqueia diretamente a técnica de ataque relevante oferece mitigação mais forte do que uma que trata um tipo diferente de vulnerabilidade. O pipeline trata a efetividade dos controles como um espectro, não como uma caixa de seleção de sim ou não.

    O resultado: uma lista curta com alta confiança

    O resultado é uma lista reduzida de achados. Cada um passou pelas três camadas: superou a verificação de plausibilidade, sua estrutura foi confirmada contra o código e seu contexto de implantação indica que pode ser explorado. O número de achados diminui a cada camada, e a confiança nos achados restantes aumenta.

    Quatro princípios que emergiram da construção do pipeline

    • Filtragem progressiva com evidências crescentes — Cada camada exige um tipo diferente de prova. A primeira verifica se o achado é plausível. A segunda determina se é estruturalmente real. A terceira analisa se é explorável no contexto. Usar três camadas focadas funciona melhor do que uma camada abrangente, porque cada uma captura um tipo diferente de erro.
    • O contexto de infraestrutura transforma a priorização — Sem contexto de implantação, você pode assumir que um achado de severidade crítica é mais urgente do que um de severidade média. Porém, um achado crítico protegido por controles robustos pode ser menos urgente do que um achado médio diretamente exposto à internet. Para fazer essa avaliação, o pipeline precisa acessar seus templates de IaC, não apenas o código-fonte da aplicação.
    • Concordância independente supera a confiança de uma única ferramenta — Nenhum scanner detecta de forma confiável toda a gama de vulnerabilidades. Nenhum modelo produz resultados corretos em todas as situações. Quando múltiplas ferramentas independentes concordam em um achado, essa concordância fornece um sinal mais forte do que o score de confiança auto-reportado de uma única ferramenta.
    • Afirmações geradas por IA exigem verificação antes da revisão humana — Modelos de linguagem podem produzir outputs que soam plausíveis, mas podem não estar corretos. Verificar achados gerados por IA contra a estrutura real do código — antes que um humano os revise — é o que separa um sistema útil de um que corrói a confiança por meio de erros com aparência de certeza.

    Como aplicar isso ao seu ambiente

    Não é necessário construir tudo de uma vez. A recomendação é adotar as camadas na ordem de retorno imediato:

    • Comece pela indexação — Construa (ou use) um índice baseado em AST da sua base de código que exponha pontos de entrada, sinks e configuração de autenticação. Isso não tem custo de execução e oferece um mapa da sua superfície de ataque antes de qualquer IA ser envolvida.
    • Adicione triagem com múltiplos scanners — Pegue o output que você já obtém de ferramentas como Semgrep, CodeQL ou equivalentes, e passe-o pelo gate de AST mais uma classificação de exploitabilidade por um Modelo de Linguagem de Grande Escala (LLM — Large Language Model). Isso entrega redução substancial de ruído com investimento modesto.
    • Adicione geração de hipóteses — Após a triagem estar estável, adicione descoberta orientada por IA de vulnerabilidades que os scanners perdem: cadeias de múltiplos saltos, falhas de lógica de negócio e fluxos de dados entre pacotes. Esta é a etapa onde a qualidade do direcionamento importa muito — veja o artigo Configurando seu harness de vulnerabilidades com IA.
    • Adicione contexto de infraestrutura — Faça o parse do seu CDK ou CloudFormation, mapeie controles para classes de vulnerabilidade e aplique os multiplicadores. É aqui que sua priorização se torna mais precisa.
    • Adicione verificação ao vivo — Execute provas de conceito (PoCs — Proofs of Concept) contra um alvo de pré-produção implantado com critérios estruturados de sucesso. Essa etapa exige mais overhead operacional, então execute-a por último e apenas para achados que já passaram pelo seu limiar de confiança.

    Trate o pipeline como algo que você ajusta ao longo do tempo. Valide-o contra verdadeiros e falsos positivos conhecidos, ajuste os pesos e reexecute.

    O que esse pipeline não resolve

    O harness é infraestrutura de detecção. Ele ajuda a identificar quais achados são provavelmente reais e quais merecem atenção primeiro. Ele não:

    • Corrige o código — Remediação é um problema separado. O harness produz achados com evidências suficientes para que um humano ou agente possa agir; o ato de remediar exige suas próprias ferramentas e processos.
    • Substitui a revisão humana para ação final — Mesmo após três camadas de filtragem, o output é uma lista priorizada de achados provavelmente exploráveis, não exploits comprovados. Achados de Prioridade 0 (P0) ainda justificam revisão por um engenheiro antes de impulsionar mudanças no código.
    • Captura classes de vulnerabilidade fora do perfil de detecção do conjunto de scanners — Se nenhum dos seus scanners procura por uma categoria específica de vulnerabilidade, o harness não a vai surfacear. A geração de hipóteses aumentada por IA fecha parte dessa lacuna, mas falhas novas ou de lógica de negócio ainda dependem do que o modelo consegue raciocinar a partir do código.
    • Verifica o estado da infraestrutura ao vivo por padrão — Fazer o parse de IaC informa o que foi definido. Não informa se uma regra do WAF foi desabilitada na semana passada ou se um grupo de segurança foi modificado após a implantação. Verificação ao vivo é uma integração adicional, não uma propriedade das camadas em si.

    Cada um desses limites aponta para onde a arquitetura se estende, não onde ela falha. O harness é o primeiro andar de um sistema de múltiplos andares, não o edifício inteiro.

    O que vem a seguir

    A arquitetura produz resultados consistentes quando o modelo recebe instruções consistentes. O artigo complementar, Configurando seu harness de vulnerabilidades com IA, cobre o arquivo de direcionamento que codifica essa metodologia como instruções executáveis por máquina — incluindo a fórmula de confiança, os multiplicadores de controle de infraestrutura e os gates de verificação que ajudam a evitar que achados alucinados cheguem aos seus engenheiros.

    O mesmo modelo que produz avaliações rigorosas e baseadas em evidências com instruções bem elaboradas pode produzir classificações de severidade infladas e cadeias de ataque fabricadas sem essas instruções. A configuração é o que transforma capacidade em julgamento.

    Para mais informações sobre os serviços mencionados neste post, consulte a documentação do AWS Lambda, do AWS WAF e do AWS CloudFormation.

    Fonte

    Building your AI vulnerability harness, Part 1 (https://aws.amazon.com/blogs/security/building-your-ai-vulnerability-harness-part-1/)