No dinâmico mundo da programação, a triagem de alertas de segurança é frequentemente uma tarefa repetitiva e desafiadora. Falsos positivos surgem de padrões que, embora óbvios para um auditor humano, são difíceis de codificar em um formato compreensível para ferramentas tradicionais. É aqui que os Large Language Models (LLMs) demonstram seu brilho, destacando-se na identificação desses padrões "difusos" com os quais as ferramentas convencionais lutam.
O GitHub Security Lab tem explorado ativamente o potencial dos LLMs para otimizar esse processo. Utilizando seu recém-lançado framework de IA, o GitHub Security Lab Taskflow Agent, a equipe está alcançando uma eficácia notável na triagem de alertas. Essa inovação não apenas acelera o fluxo de trabalho, mas também eleva a precisão na detecção de problemas de segurança. Para entender mais sobre como a IA está transformando o desenvolvimento, veja também nosso artigo sobre Comandos Slash no GitHub Copilot CLI: Agilidade no Terminal.
Taskflows em Ação: Descoberta de Vulnerabilidades Reais
Este artigo detalha como esses taskflows de triagem operam, apresenta os resultados alcançados e oferece dicas valiosas para quem deseja desenvolver seus próprios fluxos de trabalho, seja para triagem ou outras pesquisas em segurança. Ao empregar os taskflows descritos, o GitHub Security Lab conseguiu triar rapidamente um grande volume de alertas de varredura de código, culminando na descoberta de aproximadamente 30 vulnerabilidades reais desde agosto. Muitas dessas já foram corrigidas e publicadas, reforçando a importância da segurança em nosso ecossistema digital, como discutimos em Vazamento de 149 Milhões de Senhas: Alerta Urgente de Cibersegurança.
É importante destacar que, durante a triagem, os LLMs foram equipados apenas com ferramentas básicas para busca e recuperação de arquivos. Nenhuma ferramenta de análise de código estática ou dinâmica foi utilizada além daquelas empregadas para gerar os alertas iniciais do CodeQL. Isso sublinha a capacidade intrínseca dos LLMs em compreender e correlacionar informações complexas a partir de dados brutos.
Quando a Automação com LLMs é a Melhor Escolha?
Embora este artigo foque no uso de taskflows de LLMs para triagem de consultas CodeQL, o processo é aplicável para criar automação com LLMs e taskflows em diversos contextos. Seu projeto pode ser um excelente candidato para essa abordagem se:
Oportunidades de Automação com LLMs
- Você possui uma tarefa que envolve muitos passos repetitivos, cada um com um objetivo claro e bem definido.
- Alguns desses passos envolvem a busca por lógica ou semântica no código que não são facilmente identificáveis por programação convencional, mas são relativamente simples para um auditor humano. Tentar identificá-los com métodos tradicionais geralmente resulta em heurísticas complexas ou expressões regulares mal elaboradas (estes são os pontos ideais para a automação com LLMs!).
Se o seu projeto atende a esses critérios, você pode criar taskflows para automatizar esses "pontos ideais" usando LLMs, e empregar servidores MCP para tarefas mais adequadas à programação convencional. Essa sinergia entre IA e programação tradicional pavimenta o caminho para a eficiência.
Abertura e Colaboração na Segurança
Tanto o repositório seclab-taskflow-agent quanto o seclab-taskflows são de código aberto, o que permite que qualquer pessoa desenvolva taskflows de LLM para realizar tarefas similares. Essa abordagem de código aberto fomenta a inovação e a colaboração na comunidade de segurança, um tema que ressoa com a discussão mais ampla sobre o futuro da inteligência artificial, conforme abordado em IA em Destaque: Previsões de Musk, Robótica e Ética Global.
Entendendo os Taskflows
Os taskflows são arquivos YAML que descrevem uma série de tarefas a serem executadas por um LLM. Isso permite a escrita de prompts para completar diferentes atividades e a criação de dependências entre elas. O framework seclab-taskflow-agent se encarrega de executar as tarefas em sequência, passando os resultados de uma para a próxima. Por exemplo, ao auditar os resultados de alertas do CodeQL, o processo pode envolver primeiro buscar os resultados da varredura de código. Em seguida, para cada resultado, pode haver uma lista de verificações, como determinar se um alerta pode ser alcançado por um atacante não confiável ou se há verificações de autenticação em vigor. Essas verificações se tornam uma lista de tarefas especificadas no arquivo taskflow.

A utilização de múltiplas tarefas em vez de um único prompt extenso é crucial, dada a limitação da janela de contexto dos LLMs. Essa modularidade permite que tarefas complexas e multi-etapas sejam executadas eficientemente, otimizando o uso dos modelos e garantindo resultados mais precisos e gerenciáveis. Fique ligado no Vibe Coding Brasil para mais novidades sobre o impacto da IA no desenvolvimento!