░░░                              ░░░             ▀▄
                       ▄ ▀▀▄              ░░░                                   ■  ▒          ░░░
                     ▄      ▒        ▄▄                ▒    ▄▀       ▒         ▄  ▀▄▄
                     ▄▄             ▄                ▄█    █       ▄▀           ▄█▀▀▀     ▀▀ ▄
                      ▀▄▀█▄▄▄▄▄▄██▀ ▀▄▀███▄▄▄      ▄▄█▄▄▄ █▄▄▄   ▄▀▄▄▀  ▄▄▄▄▄    ▀▄▀ ▒    ▄▄▄▄▀
                      ▀▀▄▄  █▄▀▀▄     ▄▀ ▄▄ ▀▄   ▄▀▄▀▀▀▀▄  ▀▄▀▀▄██▀█   █▀▌  ▐▄          ▄█▀▀▀▀▄▄
                            █▀ ▄▄ ▒   ░░   █ █▀ ▄▄▀ ■▀ ▀▄  ▒ ▀▄▀▄▀ █  ▀▄    ██▄  ▓     ▄█ ▄▀▀ ██▀▄
           ▄              ▒ ██   ▄    ▓▓   ▒ █▄ ██ █   ██  █▄  ▀  ▀▒  ██   ▐▌██  █ ▒   ▄█ ▓   ██            ▄
             ▀            ▒ ▀█     ▄  ██     █  ░░ ▒   ▓▓  █▄     ██  ▓▓   █ ░█  ▄ ▄   ██ ▒   ▀▄          ▀
            ▀▄            ▓ ▓█      ▀▀█▀▄▄▄▄▀   ▒▒     ░░▀ ▒▒ ░   ▒▒  ░░  ▐▌ ██  █ ▒   ▀▀ ▄▄▄▄▄ ▄         ▄▀
           ░█▀            █ █▓      ▒ ▓ ▀▀▄    ▄▄▄▄▄▓▓▀▄█  ░▓ ▒   ▓░▐ █▓  ▓  ▌▓  ░▒░ ▄▀██  ▄▄▄▀▀          ▀█░
           ▄╬▄            ▓ ▓▒      █ █▓   ▀▒▄  ▀░▀▀   █▓  ▓█ █   █▓  ▓█ ▐▌  ▓▓  ▓▓█ ▄▀█▓     ▄█ ▒        ▄╬▄
      ,    ▌█▌    ,       ▓ ░▀      ░ ▓█  ▀  ▀░░▄▄     ░▓  █▓ █   ▒█▐ ▌▓ █   ▌▒  █▓█   ░█ ▒   █▓ █   ,    ▐█▐    ,
      ▄ ▄ ═▌█▌═ ▄ ▄  ░░▀▀▀▀ ██      ░ █▒    ▀▄ ▀▓░░░▄▄ █░  ▓░ ▓   ▀█▐ █░▐▌   ▌█  ░░░   ▀░ ▓   ░█ ▀   ▄ ▄ ═▐█▐═ ▄ ▄ 
       ▀▀█▓▄▓█▓█▀▀    ▀▄ ▀░░░░   ▒  ▀▄▓▀▒     █  █▓▄▀▀▀░▄▀░░█ █   ░░█▀▀▓█    █   ░▓█ ▀▄▓█ ▓   ░  ▄▄   ▀▀█▓█▓▄▓█▀▀  
           ▀▓▄%         ▀  ▀▄     ▀░░▀ ▄    ▄▀  ▄▀     █▀  ▀█ ▓   ░▀▄▄  ▀ ▄▄▀   ▒▀ █▄  ▀█ █   ▓▄▀  ▀     %▄▓▀      
   ▒      •▀▒             ▀▄        ▄▄▀    ▒  ▄▀          ▀▄  ▓   ▄▀   ▀ ▄▄  ▀    ▄▀  ■▄  ░   ▀            ▒▀•      ▒   
 ▄▀▀▀▀▄▄▄█▄▄▒                ■                ░     ▒        ▀█         ■       ▄▀      ▀▄░                ▒▄▄█▄▄▄▀▀▀▀▄ 
 ░ ░  •▀                                       ▀ ▄▄▀                           ▒          ▀                     ▀•  ░ ░ 
 █ ▒▄▀                                                                               [ Arte por L.Ayres ]         ▀▄▒ █ 
 █ ▒                                                                                                                ▒ █
 █ █                                                                                                                █ █
 █ ▒                              _____              _____          _       ____  _                                 ▒ █
 █▒▒                             / ____|            / ____|        | |     / __ \| |                                ▒▒█
 █ ▒                            | (___  _   _ _ __ | |     ___   __| | ___| |  | | |                                ▒ █
 █ █                             \___ \| | | | '_ \| |    / _ \ / _` |/ _ \ |  | | |                                █ █
 █ ▒                             ____) | |_| | | | | |___| (_) | (_| |  __/ |__| | |____                            ▒ █
 █▒▒                            |_____/ \__,_|_| |_|\_____\___/ \__,_|\___|\___\_\______|                           ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                                                                                                                █ █
 █ ▒                                                                                                                ▒ █
 █▒▒                  Resolvendo a Complexidade do Frontend com Análise Estática de Código (SAST)                   ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                https://github.com/sunsecrn/SunCodeQL                                                           █ █
 █▒▒ ¡                                                                                                              ▒▒█
 █ ▒,█▄             Introdução by hackaponey                                                                        ▒ █
 █ █▀▀°             ==========                                                                                      █ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                A  jornada  da  Sunsec  no campo da segurança de aplicações começou com uma base                ▒ █
 █ █                sólida  e fundamental: o estudo de patches de vulnerabilidades conhecidas (CVEs)                █ █
 █ ▒                e  o  aprimoramento contínuo dos processos de code review. Este período inicial,                ▒ █
 █▒▒                marcado  por  revisões  manuais exaustivas, a frustração com bugs reincidentes e                ▒▒█
 █ ▒                incontáveis  noites  de  trabalho  nos  mostrou  uma  necessidade  urgente: a de                ▒ █
 █ █                melhorar  a  análise reativa e incorporar a automação com ferramentas que já nós                █ █
 █ ▒                ajudava  em  outros cenários. Foi nesse contexto que M4Z4R0P3, um dos membros da                ▒ █
 █▒▒                equipe,  mergulhou  no CodeQL. A motivação não era apenas acelerar a detecção de                ▒▒█
 █ ▒                falhas,  mas  sim  obter uma compreensão profunda e estruturada do gap existente                ▒ █
 █ █                entre  a  aplicação de um patch de segurança e a raiz de um código vulnerável. O                █ █
 █ ▒                objetivo  central  passou  a  ser  visualizar o ciclo de vida do bug, rastrear a                ▒ █
 █▒▒                causa  raiz  com  precisão  e,  fundamentalmente, transformar o processo de code              ¡ ▒▒█
 █ ▒                review em uma atividade visível, rápida, interativa e, acima de tudo, escalável.             ▄█,▒ █
 █ █                Desta  visão  e  da união entre a expertise em segurança e a automação, nasceu a             °▀▀█ █
 █▒▒                SunCodeQL:  uma  extensão de navegador para análises de javascript no front end.                ▒▒█
 █ ▒                Sua  função  é  ser uma ponte direta entre o frontend executado pelo usuário e o                ▒ █
 █ █                motor  de  análise do CodeQL, montando um repositório de código "on-the-fly" que                █ █
 █ ▒                contém apenas os recursos (JavaScript, CSS, Source Maps) que o navegador carrega                ▒ █
 █▒▒                no momento da navegação.                                                                        ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                Por que a Metodologia Padrão Falhou                                                             █ █
 █ ▒                ===================================                                                             ▒ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                A identificação de parâmetros ocultos e vetores de ataque em aplicações web é um                ▒ █
 █ █                componente  vital em atividades de Bug Bounty e Pentests, especialmente na busca                █ █
 █ ▒                por  vulnerabilidades  críticas  de  Cross-Site  Scripting  (XSS). No entanto, a                ▒ █
 █▒▒ ¡              aderência à metodologia padrão, historicamente centrada em fuzzing e scraping de                ▒▒█
 █ ▒,█▄             ativos,  revelou-se  insustentável  diante  da  complexidade  do desenvolvimento                ▒ █
 █ █▀▀°             frontend  atual. Os métodos iniciais focavam em extrair todo o código JavaScript                █ █
 █▒▒                de  uma  página  e  aplicar  Expressões  Regulares  (Regex) para tentar capturar                ▒▒█
 █ ▒                strings que pudessem representar parâmetros de entrada de dados.                                ▒ █
 █ █                                                                                                                █ █
 █ ▒                - O Problema do Ruído: Esta abordagem gerava um volume proibitivo de falsos                     ▒ █
 █▒▒                  positivos. O esforço de filtragem e validação consumia tempo valioso.                         ▒▒█
 █ ▒                - O Custo da Validação: A tentativa de validar esses achados utilizava                          ▒ █
 █ █                  ferramentas como o Chromedp (Go) para renderizar as páginas em um ambiente de                 █ █
 █ ▒                  browser real, injetando canary tokens (e.g., ?search=sun0sun#search=sun1sun)                  ▒ █
 █▒▒                  para rastrear o fluxo do dado.                                                                ▒▒█
 █ ▒                - O Gargalo de Performance: A renderização programática de browsers é custosa em                ▒ █
 █ █                  recursos e tempo. Adicionalmente, devido aos limites de tamanho de URL, era                   █ █
 █ ▒                  imperativo fragmentar os testes em múltiplos chunks, tipicamente de 8KB,                      ▒ █
 █▒▒                  diluindo significativamente o retorno sobre o investimento do nosso tempo                   ¡ ▒▒█
 █ ▒                  dedicado.                                                                                  ▄█,▒ █
 █ █                                                                                                             °▀▀█ █
 █▒▒                A Dificuldade da Análise de DOM Externa                                                         ▒▒█
 █ ▒                ---------------------------------------                                                         ▒ █
 █ █                                                                                                                █ █
 █ ▒                Outras tentativas focaram na análise de objetos do Modelo de Objeto do Documento                ▒ █
 █▒▒                (DOM), como URLSearchParams ou location.href, na esperança de identificar fontes                ▒▒█
 █ ▒                de entrada.                                                                                     ▒ █
 █ █                                                                                                                █ █
 █ ▒                - A Falta de Padronização: Desenvolvedores frequentemente implementam lógicas                   ▒ █
 █▒▒                  personalizadas de manipulação de string (como split('&')) ou acessam                          ▒▒█
 █ ▒                  propriedades de objetos de configuração internos (e.g., config.search) que                    ▒ █
 █ █                  escapam totalmente da detecção via regex simples e de denylists de parâmetros                 █ █
 █ ▒                  conhecidos.                                                                                   ▒ █
 █▒▒ ¡              - A Barreira do Rastreamento Externo: Ferramentas convencionais de scraping                     ▒▒█
 █ ▒,█▄               (como gau) falhavam em cenários cruciais, como páginas protegidas por                         ▒ █
 █ █▀▀°               autenticação, CAPTCHAs ou que demandam interação específica do usuário para                   █ █
 █▒▒                  carregar o código relevante.                                                                  ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                O Ecossistema Hostil: Bundles, Dependências e Minificação                                       █ █
 █ ▒                =========================================================                                       ▒ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                Aplicações JavaScript atuais são construídas como vastos labirintos. Ferramentas                ▒ █
 █ █                de  build  (como  Webpack,  Vite  e  Rollup)  têm a função de fundir centenas de                █ █
 █ ▒                arquivos  e  milhares  de  dependências  de  terceiros em artefatos monolíticos,                ▒ █
 █▒▒                conhecidos como bundles.                                                                        ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                - Ocultação de Lógica: Uma falha de segurança crucial pode estar aninhada na                    █ █
 █ ▒                  linha 4.000 de uma biblioteca de terceiros obscura que foi empacotada                         ▒ █
 █▒▒                  automaticamente. A origem do código se torna irrelevante no arquivo final.                  ¡ ▒▒█
 █ ▒                - Perda Crítica de Contexto: Ao analisar o bundle, o auditor perde a capacidade              ▄█,▒ █
 █ █                  de discernir onde termina o código proprietário da aplicação e onde começa o               °▀▀█ █
 █▒▒                  código de uma dependência externa.                                                            ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                O Pesadelo da Minificação: Destruição do Contexto Semântico                                     █ █
 █ ▒                -----------------------------------------------------------                                     ▒ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                O  desafio  com  a  minificação,  um  processo  de otimização que visa reduzir o                ▒ █
 █ █                tamanho   do   arquivo   final.  Variáveis  descritivas  como  userPassword  são                █ █
 █ ▒                substituídas  por  identificadores  curtos e sem sentido como a ou x, espaços em                ▒ █
 █▒▒                branco são eliminados e funções são compactadas em linhas de código únicas.                     ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                - Contraste Semântico: No código manual do desenvolvedor, a leitura é trivial:                  █ █
 █ ▒                  const url = new URL(window.location). No bundle minificado, a clareza é                       ▒ █
 █▒▒ ¡                removida: var u=new URL(w.location).                                                          ▒▒█
 █ ▒,█▄             - A Cegueira da Análisa: A análise puramente baseada em texto ou regex é                        ▒ █
 █ █▀▀°               ineficaz neste ambiente, pois o contexto semântico e visual, essencial para o                 █ █
 █▒▒                  entendimento humano, foi completamente removido. Tentar rastrear o fluxo de                   ▒▒█
 █ ▒                  execução em um arquivo de 5MB contido em uma única linha é uma tarefa                         ▒ █
 █ █                  humanamente inviável.                                                                         █ █
 █ ▒                                                                                                                ▒ █
 █▒▒                A Virada de Chave: CodeQL e Taint Analysis                                                      ▒▒█
 █ ▒                ==========================================                                                      ▒ █
 █ █                                                                                                                █ █
 █ ▒                A  introdução  ao  CodeQL representou uma revolução na perspectiva de auditoria.                ▒ █
 █▒▒                Embora  a curva de aprendizado seja íngreme e a documentação para execução local                ▒▒█
 █ ▒                no client-side não existente, o potencial da ferramenta se mostrou muito bom.                   ▒ █
 █ █                                                                                                                █ █
 █ ▒                                     Por que o CodeQL Ignora a Minificação?                                     ▒ █
 █▒▒                                                                                                              ¡ ▒▒█
 █ ▒                Ao  contrário  de  um  ser  humano  ou  de ferramentas baseadas em grep que leem             ▄█,▒ █
 █ █                strings literais, o CodeQL opera em um nível muito mais profundo:                            °▀▀█ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                - Árvore de Sintaxe Abstrata (AST): Ele interpreta a estrutura lógica do código,                ▒ █
 █ █                  não seus nomes de variáveis.                                                                  █ █
 █ ▒                - Fluxo de Dados (Data Flow): Ele rastreia o movimento de dados através da                      ▒ █
 █▒▒                  aplicação.                                                                                    ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                Essencialmente,  o  CodeQL não precisa dos nomes originais. Mesmo que a variável                █ █
 █ ▒                searchParam  tenha sido minificada para x, o CodeQL é capaz de identificar que x                ▒ █
 █▒▒                se  originou de uma fonte (source) confiável ou perigosa (e.g., location.search)                ▒▒█
 █ ▒                e foi utilizada em um recetor (sink) de alto risco (e.g., element.innerHTML).                   ▒ █
 █ █                                                                                                                █ █
 █ ▒                O  Poder  do Rastreamento Step-by-Step: O CodeQL permite guiar a análise através                ▒ █
 █▒▒ ¡              de steps interligados, mesmo que o código seja minificado. Embora a visualização                ▒▒█
 █ ▒,█▄             das funções minificadas permaneça complexa, o auxílio de IA e a expertise humana                ▒ █
 █ █▀▀°             para  inferir  a  intenção da função tornam possível auditar fluxos de dados que                █ █
 █▒▒                antes eram fechados.                                                                            ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                A Solução Definitiva: SunCodeQL                                                                 █ █
 █ ▒                ===============================                                                                 ▒ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                A  SunCodeQL foi projetada para resolver o problema de segurança frontend no seu                ▒ █
 █ █                ponto  de  maior  relevância:  o  contexto real da aplicação, muitas vezes com o                █ █
 █ ▒                usuário  devidamente  autenticado  e  logado.  O processo é robusto e totalmente                ▒ █
 █▒▒                autocontido, garantindo privacidade e velocidade:                                               ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                - Interceptação Inteligente: A extensão de navegador atua como um proxy local,                  █ █
 █ ▒                  capturando em tempo real todos os assets do frontend (JS, CSS, e os cruciais                  ▒ █
 █▒▒                  Source Maps) enquanto o analista navega pela aplicação.                                     ¡ ▒▒█
 █ ▒                - Containerização Segura: Os arquivos capturados são enviados de forma segura,               ▄█,▒ █
 █ █                  via uma API interna e WebSocket, para um container Docker local.                           °▀▀█ █
 █▒▒                - Reconstrução do Repositório (On-the-Fly): Dentro do container, é montada uma                  ▒▒█
 █ ▒                  estrutura de diretório que simula um repositório de código tradicional. Este                  ▒ █
 █ █                  ambiente é pré-configurado com o necessário Node.js e o ambiente CodeQL pronto                █ █
 █ ▒                  para a execução.                                                                              ▒ █
 █▒▒                - Análise Estratégica: O CodeQL executa queries otimizadas especificamente para                 ▒▒█
 █ ▒                  a linguagem JavaScript, focadas na detecção de falhas críticas como XSS,                      ▒ █
 █ █                  Injections (ex: Template Injection) e Deserialização Insegura.                                █ █
 █ ▒                                                                                                                ▒ █
 █▒▒                Visualização e SARIF: Transformando Dados Brutos em Insight Acionável                           ▒▒█
 █ ▒                ---------------------------------------------------------------------                           ▒ █
 █ █                                                                                                                █ █
 █ ▒                O CodeQL gera seus resultados em um formato de saída padronizado em metadados, o                ▒ █
 █▒▒ ¡              SARIF  (Static  Analysis  Results  Interchange  Format).  A SunCodeQL processa o                ▒▒█
 █ ▒,█▄             arquivo  SARIF e o integra diretamente em uma interface visual de fácil uso: ela                ▒ █
 █ █▀▀°             dispara  um  ambiente VSCode Web apontando para o diretório de código que acabou                █ █
 █▒▒                de ser gerado no container.                                                                     ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                - Mapeamento de Vulnerabilidade: Dentro do VSCode, as vulnerabilidades são                      █ █
 █ ▒                  destacadas diretamente nas linhas de código, oferecendo uma experiência de                    ▒ █
 █▒▒                  code review familiar e eficiente.                                                             ▒▒█
 █ ▒                - Rastreamento Source to Sink: O recurso mais poderoso é a capacidade de mostrar                ▒ █
 █ █                  o caminho exato do dado vulnerável: desde o ponto de entrada (o Source - e.g.,                █ █
 █ ▒                  um parâmetro de URL) até o ponto de execução (o Sink - e.g., uma chamada                      ▒ █
 █▒▒                  eval() ou document.write()), permitindo ao analista entender a lógica da                      ▒▒█
 █ ▒                  falha, mesmo em código minificado.                                                            ▒ █
 █ █                                                                                                                █ █
 █ ▒                Como Funciona:                                                                                  ▒ █
 █▒▒                                                                                                              ¡ ▒▒█
 █ ▒                +--------------------------------------+                                                     ▄█,▒ █
 █ █                |              Navegador               |                                                     °▀▀█ █
 █▒▒                |                                      |                                                        ▒▒█
 █ ▒                |                                      |                                                        ▒ █
 █ █                | +----------------------------------+ |                                                        █ █
 █ ▒                | |            Exntensao             | |                                                        ▒ █
 █▒▒                | |                                  | |                                                        ▒▒█
 █ ▒                | |                                  | |                                                        ▒ █
 █ █                | | +---------------+    +---------+ | |                                                        █ █
 █ ▒                | | |               |    |         | | |                                                        ▒ █
 █▒▒                | | | ContentScript |    |  Alarm  | | |                                                        ▒▒█
 █ ▒                | | |               |    |         | | |                                                        ▒ █
 █ █                | | +---------------+    +---------+ | |                                                        █ █
 █ ▒                | |         |                 |      | |                                                        ▒ █
 █▒▒ ¡              | +---------|-----------------|------+ |                                                        ▒▒█
 █ ▒,█▄             |           |                 |        |                                                        ▒ █
 █ █▀▀°             +-----------|-----------------|--------+                                                        █ █
 █▒▒                            |                 |                                                                 ▒▒█
 █ ▒                  +---------|-----------------|------------------------+                                        ▒ █
 █ █                  |         v           Container                      |                                        █ █
 █ ▒                  | +---------------+    +---------+                   |                                        ▒ █
 █▒▒                  | |               |    |         |                   |                                        ▒▒█
 █ ▒                  | |    Analyze    |--+ | Webhook |-----------+       |                                        ▒ █
 █ █                  | |               |  | |         |           |       |                                        █ █
 █ ▒                  | +---------------+  | +---------+           |       |                                        ▒ █
 █▒▒                  |         |          |                       |       |                                        ▒▒█
 █ ▒                  |         |          +------+                |       |                                        ▒ █
 █ █                  |         v                 v                v       |                                        █ █
 █ ▒                  | +---------------+    +---------+    +------------+ |                                        ▒ █
 █▒▒                  | |               |    |         |    |            | |                                      ¡ ▒▒█
 █ ▒                  | |    Storage    |<-+ |  Queue  |  +-| CodeServer | |                                     ▄█,▒ █
 █ █                  | |               |  | |         |  | |            | |                                     °▀▀█ █
 █▒▒                  | +---------------+  | +---------+  | +------------+ |                                        ▒▒█
 █ ▒                  |         ^          |      |       |                |                                        ▒ █
 █ █                  |         |          +--------------+                |                                        █ █
 █ ▒                  |         |                 |                        |                                        ▒ █
 █▒▒                  | +---------------+         |                        |                                        ▒▒█
 █ ▒                  | |               |         |                        |                                        ▒ █
 █ █                  | |     CodeQL    |<--------+                        |                                        █ █
 █ ▒                  | |               |                                  |                                        ▒ █
 █▒▒                  | +---------------+                                  |                                        ▒▒█
 █ ▒                  |                                                    |                                        ▒ █
 █ █                  +----------------------------------------------------+                                        █ █
 █ ▒                                                                                                                ▒ █
 █▒▒ ¡                                                                                                              ▒▒█
 █ ▒,█▄             - ContentScript coleta <script> inline/src da página e envia para o                             ▒ █
 █ █▀▀°               Background/Alarm.                                                                             █ █
 █▒▒                - Alarm roda a cada ciclo e consulta Webhook para ver novos resultados; também                  ▒▒█
 █ ▒                  aciona atualização do front da extensão.                                                      ▒ █
 █ █                - Background agrupa URLs de scripts interceptados, cookies e user agent e                       █ █
 █ ▒                  dispara para Analyze no servidor.                                                             ▒ █
 █▒▒                - Analyze recebe gzip, salva arquivos em Storage, enfileira o alvo em Queue e                   ▒▒█
 █ ▒                  responde imediato.                                                                            ▒ █
 █ █                - Queue coordena execuções; chama CodeQL sobre a pasta armazenada, gera SARIF e                 █ █
 █ ▒                  grava status/resultado em Redis.                                                              ▒ █
 █▒▒                - Webhook lê Redis e devolve estados/resultados; usado pelo Alarm para atualizar                ▒▒█
 █ ▒                  badge e popup.                                                                                ▒ █
 █ █                - CodeServer expõe a pasta analisada/SARIF via IDE web para abrir pelo link do                  █ █
 █ ▒                  popup.                                                                                        ▒ █
 █▒▒                                                                                                              ¡ ▒▒█
 █ ▒                --------------------------------------------------------------------------------             ▄█,▒ █
 █ █                                                                                                             °▀▀█ █
 █▒▒                                              --[ Print(ASCII) da Extensão ]--                                  ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                ################################################################################                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒                #  [O]  SunCodeQL                                                    ≡ ≡ ≡     #                ▒▒█
 █ ▒                #                                                                              #                ▒ █
 █ █                ################################################################################                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒                #  --------------------------------------------------------------------------  #                ▒▒█
 █ ▒                #                                                                              #                ▒ █
 █ █                #  [ Warning: 14 ]   [ Error: 4 ]                           [  Access  ->  ]   #                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒ ¡              # ▼ exemplo.com/chat?locale=                                                   #                ▒▒█
 █ ▒,█▄             #                                                                              #                ▒ █
 █ █▀▀°             #  ▼ js/xss  [  Error  ]                                                       #                █ █
 █▒▒                #                                                                              #                ▒▒█
 █ ▒                #    Message: Cross-site scripting vulnerability due to [user-                 #                ▒ █
 █ █                #    provided value](1).                                                       #                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒                #  > js/incomplete-sanitization [  Warning  ]                                  #                ▒▒█
 █ ▒                #                                                                              #                ▒ █
 █ █                #  > js/remote-property-injection [  Warning  ]                                #                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒                #  > js/client-side-unvalidated-url-redirection [  Error  ]                    #                ▒▒█
 █ ▒                #                                                                              #                ▒ █
 █ █                #  > js/client-side-request-forgery [  Error  ]                                #                █ █
 █ ▒                #                                                                              #                ▒ █
 █▒▒                ###########################################################@####################              ¡ ▒▒█
 █ ▒                                                                                                             ▄█,▒ █
 █ █                --------------------------------------------------------------------------------             °▀▀█ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                                              --[ Casos de uso ]--                                              ▒ █
 █ █                                                                                                                █ █
 █ ▒                   Bugbounty e Pentest, Abra um site vá navegando entre as páginas enquanto a                   ▒ █
 █▒▒                                       SunCodeQL válida se é vulnerável.                                        ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                Desafios Futuros                                                                                █ █
 █ ▒                ================                                                                                ▒ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                O  principal desafio atual com o CodeQL reside no seu consumo de recursos. Mesmo                ▒ █
 █ █                com  um  número  selecionado  de templates de vulnerabilidades em client side no                █ █
 █ ▒                javascript,  o  processo  pode se tornar demorado, especialmente quando a página                ▒ █
 █▒▒ ¡              web  analisada  contém um grande volume de código JavaScript. e até atrapalhar o                ▒▒█
 █ ▒,█▄             uso  do  seu computador. Recomendo utilizar uma máquina dedicada para a execução                ▒ █
 █ █▀▀°             do CodeQL, em vez de rodá-lo na máquina local do usuário.                                       █ █
 █▒▒                                                                                                                ▒▒█
 █ ▒                Análise de Código Minificado                                                                    ▒ █
 █ █                ----------------------------                                                                    █ █
 █ ▒                                                                                                                ▒ █
 █▒▒                A  presença  de  códigos excessivamente minificados aumenta significativamente a                ▒▒█
 █ ▒                complexidade  da  análise.  Em  certos casos, embora seja possível identificar a                ▒ █
 █ █                origem  (source)  e  o  destino  (sink),  a  execução do source pode depender de                █ █
 █ ▒                condições  específicas,  como  o  nível  de permissão do usuário. Para contornar                ▒ █
 █▒▒                isso, é essencial dedicar tempo à análise detalhada:                                            ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                - Utilizar o debugger das devtools.                                                             █ █
 █ ▒                - Configurar breakpoints.                                                                       ▒ █
 █▒▒                - Entender o fluxo de execução para identificar as condições necessárias para                 ¡ ▒▒█
 █ ▒                  que o source seja ativado.                                                                 ▄█,▒ █
 █ █                                                                                                             °▀▀█ █
 █▒▒                Conclusão                                                                                       ▒▒█
 █ ▒                =========                                                                                       ▒ █
 █ █                                                                                                                █ █
 █ ▒                A  SunCodeQL  simplifica  a  análise  de segurança no frontend ao permitir que o                ▒ █
 █▒▒                profissional  trabalhe  diretamente  no  contexto  real  da aplicação, superando                ▒▒█
 █ ▒                limitações  comuns  como autenticação, interações dinâmicas e páginas protegidas                ▒ █
 █ █                por  CAPTCHAs.  Ela  coleta apenas o código realmente executado pelo navegador e                █ █
 █ ▒                aplica consultas do CodeQL sobre esse material, o que facilita a investigação de                ▒ █
 █▒▒                fluxos  de  dados  sensíveis.  Mesmo  sem  reduzir  falsos positivos ou tornar o                ▒▒█
 █ ▒                processo  totalmente  previsível,  a  ferramenta  ajuda a contornar dificuldades                ▒ █
 █ █                típicas  da  análise  externa  do  DOM  — onde lógicas personalizadas de string,                █ █
 █ ▒                parâmetros ocultos e fluxos não padronizados geralmente passam despercebidos — e                ▒ █
 █▒▒ ¡              também  oferece  suporte  na  leitura  de  bundles  minificados, que normalmente                ▒▒█
 █ ▒,█▄             inviabilizam  a  compreensão  manual  do  código.  No  conjunto, a SunCodeQL não                ▒ █
 █ █▀▀°             resolve todos os desafios do frontend moderno, mas torna o trabalho mais direto,                █ █
 █▒▒                acessível e menos dependente de tentativas manuais pouco eficientes.                            ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                Links:                                                                                          █ █
 █ ▒                                                                                                                ▒ █
 █▒▒                - Vários artigos e tutoriais sobre o CodeQL:                                                    ▒▒█
 █ ▒                  https://github.com/sunsecrn/awesome-codeql                                                    ▒ █
 █ █                - SARIF: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html                       █ █
 █ ▒                - VSCodeWeb: https://github.com/coder/code-server                                               ▒ █
 █▒▒                - SunCodeQL: https://github.com/sunsecrn/SunCodeQL                                              ▒▒█
 █ ▒                                                                                                                ▒ █
 █ █                                                                                                                █ █
 █▒▒▒▒▒ ░░                                                                                                    ▒▒▒▒▒▒▒▒█
 █ ▒                                                                                                                ▓▄█
 █ █                                    T R A M O I A   ·   Z I N E   ·  2 0 2 6                                 gld ██
  ▀▄▄▄▄                                                                                                          ▒▒▄▄▀