Transcript
00:00:00A IA tornou a programação acessível a todos e as pessoas começaram a lançar códigos a um ritmo
00:00:04muito mais rápido.
00:00:05Mas, num ritmo ainda mais veloz, os problemas de segurança dentro dessas apps começaram a acumular-se.
00:00:09E, nos últimos meses, as coisas pioraram consideravelmente.
00:00:12Houve muitos casos em que um agente apagou o projeto inteiro de alguém.
00:00:16Outro agente apagou uma base de dados de produção inteira enquanto o desenvolvedor trabalhava em
00:00:20algo completamente não relacionado.
00:00:22E houve muitos problemas semelhantes, como o vazamento do Clod.md interno da Apple.
00:00:26Portanto, ferramentas que conseguem detetar estes problemas importam mais agora do que nunca.
00:00:30Vendo este aumento de problemas, a Vercel acaba de lançar um arnês de segurança para detetar brechas em
00:00:35aplicações geradas por IA chamado DeepSec.
00:00:37Agora, pode pensar que o Clod Code já consegue fazer revisões de segurança sozinho com os seus agentes.
00:00:42Então, por que precisaria do DeepSec, afinal?
00:00:44É porque o DeepSec é uma ferramenta estruturada que lida com revisões de forma muito mais sistemática.
00:00:49Por baixo do capô, utiliza agentes de codificação como Clod Code e Codex.
00:00:52A ferramenta foi concebida para varrer grandes repositórios porque suporta um design paralelo que
00:00:57acelera o fluxo de trabalho e agrupa o código em vários lotes, o que a torna perfeita para
00:01:01revisar grandes bases de código.
00:01:03Ora, isto não foi construído a pensar na relação custo-benefício.
00:01:06Estão a usar os modelos mais potentes do Clod Code e Codex, que são o Opus 4.7 em
00:01:10esforço máximo e o GPT 5.5 em raciocínio x-alto, ambos consumindo muitos tokens.
00:01:16E com eles a correr em paralelo, o uso de tokens acumula-se rapidamente, aumentando o custo.
00:01:20Várias apps conhecidas já correram este arnês nas suas bases de código e reportaram bons resultados.
00:01:25Nos testes que realizaram, a taxa de falsos positivos desta ferramenta é de cerca de 10-20%.
00:01:30Este número é significativo, considerando como costuma ser a precisão dos LLMs.
00:01:33Inversamente, isto significa que o agente está correto a maior parte do tempo e os seus positivos reais são
00:01:37elevados.
00:01:38A arquitetura por trás disto é o que o torna diferente.
00:01:40Se pedir ao Clod Code ou a qualquer agente uma revisão de segurança, ele começará por varrer diretamente
00:01:45a base de código e depois produzirá um relatório completo de revisão.
00:01:48Isso não só leva muito tempo, como também consome muitos tokens e a revisão
00:01:52ainda pode deixar passar coisas.
00:01:53Portanto, a primeira parte deste fluxo de trabalho é a varredura, realizando um varrimento apenas por RegEx
00:01:58de todos os ficheiros em busca de áreas sensíveis à segurança onde os passos seguintes se focarão.
00:02:01A deteção por RegEx é importante aqui porque a ferramenta foi desenhada para grandes bases de código
00:02:06onde pode haver facilmente milhares de ficheiros.
00:02:08A correspondência por RegEx é uma série de padrões de código que coincidem com áreas conhecidas
00:02:13por terem vulnerabilidades de segurança e depois filtram esses ficheiros do conjunto total.
00:02:16Assim que o grande conjunto de ficheiros é filtrado, o passo seguinte é a investigação usando o agente.
00:02:21O agente é a parte cara, consumindo muitos tokens e demorando normalmente muito tempo
00:02:25dependendo do tamanho real da sua base de código.
00:02:28Por isso, esta ferramenta divide todos os ficheiros em lotes e paraleliza-os para que possam ser processados
00:02:32ao mesmo tempo.
00:02:34Terminado esse processo, há outro passo de revalidação onde a investigação
00:02:37é verificada novamente para que os falsos positivos sejam cruzados.
00:02:40Caso algo tenha sido esquecido, ele deteta-o e garante que a classificação foi feita
00:02:45corretamente.
00:02:46Esta revalidação é, na verdade, opcional.
00:02:47Depois disso, o agente usa metadados do Git e outras fontes para identificar quais pessoas são
00:02:51responsáveis por quais problemas.
00:02:53Quando tudo estiver concluído, as descobertas são armazenadas em Markdown ou JSON para que possam
00:02:57ser transformadas em tickets tanto para humanos como para agentes de codificação.
00:03:01Como mencionado anteriormente, os ficheiros são agrupados em lotes com cerca de 5 ficheiros processados
00:03:05em conjunto por lote.
00:03:06Para cada lote, um novo prompt é montado com base na framework identificada juntamente com
00:03:11outras informações do projeto.
00:03:12Estes são então analisados pelo Clod Agent SDK ou Codex Agent SDK, conforme configurado,
00:03:17e são-lhes dadas ferramentas com acesso apenas de leitura para compreenderem o conteúdo da base de código.
00:03:22Assim que têm os resultados, tudo é fundido num único ficheiro que é desduplicado
00:03:26e normalizado.
00:03:27No final, há um passo de seguimento para garantir que a análise cobriu realmente tudo.
00:03:31Esta arquitetura torna-a eficaz pelo seu processo sistemático e método de análise estruturado,
00:03:36e ajuda a identificar problemas muito melhor do que seria possível sem o arnês.
00:03:41Para testar isto, utilizámos um projeto de código aberto que é uma aplicação web contendo
00:03:45riscos de segurança integrados apenas para prática.
00:03:47Queríamos ver se esta ferramenta era capaz de detetar todos os problemas neste repositório por si só.
00:03:52sozinha.
00:03:53Este projeto contém 10 problemas de segurança com todos os detalhes disponíveis diretamente no próprio código,
00:03:56incluindo como removê-los.
00:03:58Para correr o DeepSec, primeiro executa o comando “deepsec init”, que instala as dependências
00:04:03e cria uma pasta “.deepsec”, e depois instala as dependências dentro dessa pasta.
00:04:08Também lhe dá um prompt que precisa de colar em qualquer agente de codificação que utilize.
00:04:12Como estávamos a usar o Clod Code, corremos esse prompt no Clod, que contém as instruções
00:04:16para criar um pequeno ficheiro “info.md” que inclui toda a informação do projeto e é construído
00:04:21sobre um template específico.
00:04:23Não tem de correr este comando na pasta do projeto propriamente dita; corre-o na pasta “.deepsec”
00:04:27porque ele instrui o agente a olhar para o diretório anterior e ler toda a
00:04:31informação contida nele.
00:04:32O ficheiro “info.md” contém uma visão geral do que a base de código faz e como é o fluxo de
00:04:37autenticação, bem como os modelos de ameaça, padrões específicos do projeto e todos os
00:04:42falsos positivos conhecidos dentro do código.
00:04:44Assim que este ficheiro é criado, a tarefa seguinte é correr o comando “deepsec scan”.
00:04:48Este comando é o buscador por regex que mencionámos antes e encontra todos os endpoints
00:04:52correspondentes e lista todos os ficheiros filtrados que contêm potenciais problemas de segurança.
00:04:57Esta parte é rápida porque é apenas código em ação.
00:05:00O passo seguinte é correr o comando “deepsec process”.
00:05:02Pode especificar qualquer chave de API do modelo que queira usar, seja o Vercel API Gateway,
00:05:07Codex ou Clod dentro do ficheiro “.env.local”.
00:05:11Mas se não o fizer, como nós não fizemos, ele assume automaticamente a subscrição do Clod Code
00:05:16e usa a sua autenticação em vez de exigir qualquer chave de API.
00:05:19Ele divide o projeto em lotes e chama múltiplas ferramentas em cada um.
00:05:23Após cada lote, fornece um resumo de quantos tokens foram usados e qual foi o
00:05:27custo estimado.
00:05:28Agora, se estiver a usar uma subscrição, ele não cobrará nada além do valor da subscrição,
00:05:32mas ainda fornece uma estimativa dos custos de API.
00:05:35Como isto foi desenhado para revisões de grandes bases de código, mantém a fiabilidade em mente.
00:05:39Assim, caso ocorram erros durante a revisão, ele não recomeça tudo do
00:05:43zero e, em vez disso, continua a partir do ponto onde o erro ocorreu.
00:05:46Após a conclusão do varrimento, corre o comando “deepsec report” e ele gera um relatório
00:05:50tanto em formato JSON como Markdown, contendo uma visão geral de todos os resultados categorizados
00:05:55por nível de gravidade.
00:05:56Agora, uma vez gerado este relatório, pode executar o passo de revalidação.
00:06:00Este passo é inteiramente opcional.
00:06:02Pode executá-lo se quiser ou saltá-lo completamente.
00:06:04Ao executá-lo, ele valida as descobertas para verificar se os relatórios são falsos positivos
00:06:08ou não.
00:06:09Depois disso, pode exportar tudo usando o comando “export” e ele escreverá
00:06:13os resultados na pasta “findings”.
00:06:15Esta pasta “findings” contém os problemas ordenados por prioridade como nomes de pastas e cria um
00:06:20ficheiro por problema identificado.
00:06:22Primeiro lista a fonte do problema, ou seja, o ficheiro exato e as linhas que causam o problema,
00:06:26a gravidade do problema e o quão confiante o modelo estava ao identificá-lo.
00:06:30Menciona também qual commit introduziu o problema e atribui o utilizador que o cometeu.
00:06:34Em seguida, explica a correção recomendada, lista os resultados da revalidação e menciona todos
00:06:39os problemas que foram explicitamente abordados.
00:06:41Inclui também os passos para reproduzir os erros dentro das descobertas.
00:06:44Mas este relatório ainda não identificou todos os problemas, embora o tutorial estivesse
00:06:48dentro do próprio código e devesse ter sido capaz de os identificar.
00:06:52Por isso, iterámos com o Claude sobre o porquê de as lições de vulnerabilidade originais que foram incluídas
00:06:56na app por design não terem sido identificadas.
00:06:59Após a iteração com o Claude, descobrimos que a razão pela qual esta ferramenta apenas reportou 3 descobertas foi
00:07:03devido a uma menção explícita no ficheiro “info.md”.
00:07:07O DeepSec esperava uma app onde as 10 vulnerabilidades já fossem conhecidas e focou-se apenas em problemas
00:07:12além desses porque já eram conhecidos, ou seja, estava a tentar ir além
00:07:16do que já se sabia e focar-se apenas noutros padrões para que o varrimento se tornasse muito mais
00:07:21eficaz e não desperdiçasse tempo e tokens em problemas que já estão documentados.
00:07:25Testámos depois outra app para ver se se saía melhor desta vez.
00:07:28Executámos os mesmos passos, desde o varrimento até à fase de processamento.
00:07:32Não corremos a parte da revalidação, apenas criámos o relatório e exportámo-lo diretamente.
00:07:36E desta vez o ficheiro “info.md” do Claude continha apenas detalhes sobre a app e não incluía declarações
00:07:42como o anterior.
00:07:43Lado a lado, também pedimos ao Claude para rever o código e escrever um ficheiro “report.md” com uma
00:07:48revisão de segurança completa para podermos comparar qual deles teve realmente o melhor desempenho.
00:07:52O relatório criado pelo DeepSec encontrou vários bugs com diferentes níveis de gravidade.
00:07:56Encontrou 9 problemas e criou um relatório detalhado juntamente com passos recomendados sobre como corrigi-los.
00:08:01corrigi-los.
00:08:02E estes passos recomendados são o que a maioria dos outros relatórios omite, porque é isto que ajuda
00:08:05o agente a compreender como corrigir o problema, o que torna a depuração muito mais fácil.
00:08:09Mas reparámos que o relatório do Claude era muito mais detalhado e destacava 39 problemas.
00:08:13Por isso, pedimos-lhe primeiro para criar um “diff”.
00:08:15O “diff” mostrou que o número do Claude era maior.
00:08:18Mas já tínhamos visto isto durante os nossos testes com o Codex.
00:08:20O Claude tende a identificar outros problemas além do escopo ao longo do caminho.
00:08:24Não se foca apenas nos problemas delimitados para os quais o DeepSec foi especificamente desenhado.
00:08:29Assim, quando lhe pedimos para se focar apenas no escopo, ele reduziu as descobertas para 13 problemas.
00:08:34Mas ainda houve alguns problemas que o DeepSec falhou e que foram identificados no relatório do Claude.
00:08:38A razão pela qual o DeepSec falhou algumas descobertas é porque se foca apenas em problemas que o
00:08:43código contém diretamente e que podem ser resolvidos diretamente a partir das próprias funções.
00:08:47Não identifica problemas que possam surgir quando a app corre realmente, como problemas
00:08:52relacionados com CORS.
00:08:53Também não se foca propriamente em padrões lógicos e decisões arquiteturais.
00:08:57Como mencionámos anteriormente, utiliza RegEx para filtrar ficheiros primeiro.
00:09:01Portanto, foca-se principalmente no que está explicitamente presente no código e não em problemas que
00:09:05possam ocorrer dinamicamente quando a aplicação está a ser executada.
00:09:08Além disso, se estiver a gostar do nosso conteúdo, considere carregar no botão de “hype”, pois ajuda-nos
00:09:12a criar mais conteúdo como este e a chegar a mais pessoas.
00:09:15Agora, em vez de corrermos estes passos um por um sozinhos, criámos esta “skill” do DeepSec
00:09:20que contém todas as instruções sobre como usar o scanner de segurança da Vercel de ponta a ponta
00:09:24e como ele deve identificar a partir do prompt do utilizador o que está a ser pedido.
00:09:28Depois segue todo o processo passo a passo e gere o arnês inteiro por conta própria.
00:09:32Vem também acompanhado de múltiplos ativos, avaliações e referências para todos os problemas, juntamente com
00:09:37múltiplos scripts que podem realmente ajudar com a solução funcional e o funcionamento geral
00:09:42deste repositório.
00:09:43Com isto implementado, pode apenas correr este varrimento de segurança e especificar qual modelo deseja
00:09:47usar e ele tratará diretamente de tudo por si.
00:09:50Passará por todos os passos que vimos anteriormente, além de abordar os problemas que falhou
00:09:54anteriormente e será capaz de realizar uma revisão de segurança muito melhor combinando as habilidades
00:09:59do DeepSec enquanto cobre as lacunas nas suas descobertas.
00:10:02Esta skill, juntamente com todos os recursos, pode ser encontrada no AI Labs Pro para este vídeo e
00:10:07para todos os nossos vídeos anteriores, onde pode descarregar e usar nos seus próprios projetos.
00:10:11Se encontrou valor no que fazemos e quer apoiar o canal, esta é a melhor forma
00:10:15de o fazer.
00:10:16O link está na descrição.
00:10:17Isto traz-nos ao fim deste vídeo.
00:10:19Se quiser apoiar o canal e ajudar-nos a continuar a fazer vídeos como este, pode fazê-lo
00:10:23usando o botão de “super thanks” abaixo.
00:10:25Como sempre, obrigado por assistir e vemo-nos no próximo.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video