
Motor de grafo de conhecimento heurístico sem AST para inteligência profunda de repositórios e verificação de segurança zero-trust. Integra-se como um componente GitLab CI/CD, bloqueia código hostil e exporta telemetria SARIF para o GitLab Security Dashboard.
1 escaneamento · 97 sinais estruturais · 50+ linguagens · 0 necessidade de compilação
19 pontuações de exposição a risco · 6 relatórios finais · 0 dependências · pip install gitgalaxy
O GitGalaxy existe para um problema recorrente: entender uma base de código grande, real e multilíngue que não compila de forma limpa — o estado em que a maioria dos repositórios de produção realmente se encontra, não a entrada limpa e de linguagem única que a maioria das ferramentas de análise estática presume.
time(s) ≈ 3.36e-05 × LOC^0.969 acima disso (R²=0,88, quase linear, sem degradação em entradas grandes) — veja Prova, Não Apenas Alegações para o gráfico e a derivação, não apenas este título arredondado.Este não é um scanner de vulnerabilidades que compete com CodeQL, Semgrep ou SonarQube. Essas ferramentas fazem análise profunda e precisa depois que seu código compila, geralmente uma linguagem por vez. O GitGalaxy responde primeiro a uma pergunta diferente — como esse sistema inteiro realmente se parece e onde o risco está concentrado — em todas as linguagens do repositório simultaneamente, antes mesmo de essas ferramentas mais profundas terem um build com o qual trabalhar. Veja "Como Isso se Compara, Arquiteturalmente" abaixo para exatamente onde o trabalho de cada ferramenta começa e termina.
O Gitgalaxy pode avaliar repositórios completos, compostos por misturas de mais de 50 linguagens diferentes, mapear a arquitetura e trazer à tona exposições de risco junto com alvos de refatoração priorizados — hotspots, risco de bus-factor e arquivos estruturais críticos — para que você saiba por onde focar primeiro. O gráfico abaixo é um fluxo de trabalho de um único escaneamento do gitgalaxy em nosso repositório de teste golden, que contém arquivos de código de exemplo desde o software de voo Apollo-11 de 1969 até as pilhas tecnológicas modernas. Benchmark

A saída principal do Gitgalaxy é uma coisa só: um grafo estrutural determinístico de todo o repositório. Auditoria de segurança, priorização de refatoração e tradução de linguagem legada para moderna (veja Ferramentas & Casos de Uso para Bases de Código Empresariais abaixo) são todos consumidores desse mesmo grafo, não produtos separados com mecanismos separados — é por isso que isto se parece mais com uma plataforma de inteligência de arquitetura do que com um scanner de vulnerabilidades de propósito único.
A maioria dos mecanismos de inteligência de código usa uma AST, como o tree-sitter, que oferece uma visão excessivamente granular de um repositório (como pedir para entender uma casa e receber uma lista de cada tijolo e vidraça) e limita as linguagens e arquivos que podem ser escaneados. Repositórios modernos são poliglotas. Muitos repositórios têm código antigo sem uma boa AST. Para contornar isso, o Gitgalaxy usa um mecanismo personalizado de análise estrutural regex/lexical com uma camada de estatísticas por cima — ele constrói um vetor de características por arquivo (a partir de ~97 categorias de "sinais" regex — que marcam os limites de funções, fluxo de controle, E/S, mutação de estado e dezenas de outros comportamentos estruturais e relevantes para segurança) e por repositório (grafo de dependências via resolução de imports + PageRank/centralidade), depois transforma essas contagens brutas em pontuações de risco normalizadas de 0–100 via funções sigmoide, e exporta o resultado para seis formatos.
O Gitgalaxy troca a precisão em nível de AST por velocidade de ordens de magnitude e cobertura universal de linguagens, no mesmo espírito em que o BLAST trocou o alinhamento exaustivo de Smith-Waterman por velocidade heurística na genômica. A saída inclui SARIF, SBOM CycloneDX, um grafo de conhecimento SQLite consultável, um brief de arquitetura otimizado para LLM e dados de visualização 3D a partir de uma única passada de escaneamento — veja "Qual Dor Isto Resolve?" acima para números reais de tempo de escaneamento em vez de um adjetivo vazio.
O resultado é um grafo de conhecimento determinístico do repositório, construído sem nunca exigir que o código compile. Ele calcula a proporção entre código de teste e lógica central, mapeia o "raio de impacto" (blast radius) de cada arquivo através do grafo de dependências e traz à tona sinal de estrutura de projeto que linters linha a linha perdem completamente. A extração de sinal por arquivo roda em tempo linear em relação ao tamanho da base de código; as métricas de grafo em nível de repositório (centralidade, detecção de comunidades) usam algoritmos padrão de análise de redes com limites explícitos de amostragem em grafos muito grandes.

O GitGalaxy produz dois tipos diferentes de saída, e eles devem ser lidos de formas diferentes.
Pontuações de Exposição a Risco são um sinal de 0–100, normalizado por densidade, em 19 categorias (segredos, superfície de injeção, corrupção de memória e mais), consolidado de função para arquivo, para pasta, para repositório. Uma pontuação alta significa isto merece atenção primeiro — é um sinal de priorização, não um veredito. Dois arquivos podem ter a mesma pontuação por motivos completamente diferentes: um problema real, ou um padrão legítimo que parece idêntico na superfície. Malware criptografado e uma rotina de criptografia bem testada ambos produzem alta entropia. O GitGalaxy não pode dizer qual deles encontrou — apenas que há algo ali que merece um segundo olhar.
Descobertas são sinalizações individuais em nível de linha: uma Assinatura Estrutural específica que ultrapassou um limite de risco. Estas são evidências para revisar, não vulnerabilidades confirmadas. O GitGalaxy nunca executa código, rastreia fluxo de dados em tempo de execução nem verifica explorabilidade — ele informa que um padrão existe no texto, naquela linha exata, e entrega o contexto para você julgar por conta própria.
Isto é intencional, não uma limitação que estamos escondendo. O GitGalaxy é construído para errar em direção ao recall em vez da precisão: sinalizar mais, e deixar que um humano ou uma ferramenta mais profunda reduza a lista, em vez de arriscar ficar em silêncio sobre algo real. Falsos positivos são o custo esperado dessa troca, da mesma forma que são para todo analisador estático que não executa o código que lê.
Isso também significa que o GitGalaxy é mais forte contra uma classe específica de problema — negligência, não evasão adversarial. Uma chave hardcoded que alguém esqueceu de remover, um registro inseguro, uma chamada obviamente perigosa a eval() — ninguém do outro lado disso está tentando se esconder de um scanner. Um atacante especificamente motivado, que sabe como funciona a detecção estática baseada em assinaturas, pode evadir sinais individuais como limiares de entropia sem muito esforço. Trate o GitGalaxy como a primeira passada rápida em uma base de código grande demais para ser lida manualmente — não a palavra final sobre se algo é seguro.
O grafo estrutural do mecanismo principal alimenta um conjunto de ferramentas independentes construídas sobre ele, cada
uma sendo um módulo separado em gitgalaxy/tools/ que consome a mesma saída de varredura determinística
em vez de reanalisar o próprio repositório.
Um pipeline de tradução determinístico e de alta fidelidade. Ele converte COBOL legado em arquiteturas Spring Boot modernas e totalmente compiláveis, mapeando a memória com exatidão e gerando scaffolding de entidades JPA, controllers REST e builds Maven antes de utilizar IA para traduzir a lógica de negócios isolada.
Um conjunto analítico para higienizar monólitos de mainframe. Ele neutraliza com segurança armadilhas lexicais legadas, extrai memória morta de execução, mapeia ordens de execução topológicas em DAG e gera configurações JCL Zero-Trust para implantações modernas em nuvem.
Firewalls de pré-commit que examinam os internos físicos dos arquivos em vez de confiar em arquivos de manifesto — criados para bloquear esteganografia, loops de descriptografia XOR em nível de byte, typosquatting de homóglifos e cofres criptográficos expostos antes que entrem no seu pipeline de CI/CD. Implante diretamente via nossa GitHub Action.
Um gerador de Software Bill of Materials (SBOM) que não confia cegamente em package.json ou requirements.txt — ele localiza as dependências físicas no disco, verifica sua entropia e identidade linguística em comparação com o que uma versão legítima deveria parecer, e gera relatórios JSON estritos em CycloneDX 1.4.
Uma ferramenta de mapeamento determinística para superfícies de API não documentadas e desatualizadas. Ela usa regex estrutural para encontrar lógica de roteamento físico ativa (Express, Spring Boot, FastAPI) e aplica teoria dos conjuntos contra a documentação oficial OpenAPI/Swagger para isolar Shadow APIs (rotas não documentadas) e Ghost APIs (rotas documentadas que não são mais implementadas).
Análise de logs operando a 0,07 GB/seg sem exigir índice. Ela processa em fluxo despejos massivos de bancos de dados para caçar e mascarar PII (cartões de crédito, SSNs, chaves AWS) e usa mapas estáticos de arquitetura para reportar frequências de execução em tempo de execução como histogramas ASCII de séries temporais.
O AppSec Sensor sinaliza agentes de IA conectados a capacidade bruta de mutação de estado: um framework de orquestração de LLM (LangChain, LlamaIndex) importado juntamente com E/S direta de rede/disco, combinado com densidade de programação defensiva abaixo do limite. Isso é um sinal de identidade de biblioteca, não uma alegação sobre comportamento em tempo de execução — um mecanismo somente regex, sem rastreamento de fluxo de dados, não pode provar que o código realmente executa esse caminho, então não alega que o faz (veja #1102 para as verificações que foram removidas por fazerem essa alegação impossível de provar). Separadamente, o Dev Agent Firewall avalia a massa de tokens e o raio de explosão para restringir agentes de codificação autônomos de modificar arquivos perigosos ou que drenam tokens de contexto.
Se você prefere análise visual, construímos um dashboard topológico onde cada arquivo representa um nó, dimensionado e colorido de acordo com métricas de risco específicas.
Basta arrastar e soltar o arquivo your_repo_GPU_galaxy.json gerado (ou um .zip do seu repositório bruto) diretamente em GitGalaxy.io. Toda a renderização e varredura acontecem inteiramente na memória local do seu navegador.
Mapeando 3,2 Milhões de Linhas de C++ em 11 Segundos | OpenCV 

Copyright (c) 2026 Joe Esquibel
GitGalaxy é distribuído sob a PolyForm Noncommercial License 1.0.0.
Estamos profundamente comprometidos com a comunidade de código aberto e com a comunidade acadêmica. Se você estiver usando o GitGalaxy para projetos pessoais, pesquisa acadêmica ou desenvolvimento não comercial, o mecanismo é 100% gratuito para uso.
Para suprimir os atrasos de licenciamento comercial no seu terminal ou pipelines pessoais de CI/CD, basta definir a seguinte variável de ambiente:```bash export GITGALAXY_LICENSE_KEY="COMMUNITY_FREE_TIER"
### Uso Comercial e Empresarial
Executar o GitGalaxy em ambientes corporativos, bases de código proprietárias ou pipelines de CI/CD comerciais exige uma licença empresarial. Pipelines corporativos sem licença sofrerão atrito intencional de execução, e tentar usar a chave da Camada Gratuita da Comunidade em um ambiente corporativo acionará avisos explícitos de não conformidade nos seus registros de auditoria.
Para adquirir uma chave comercial para sua organização e garantir registros de conformidade limpos, entre em contato: **[email protected]**
Cruzar esse grafo estrutural com o histórico do git também traz à tona dois sinais específicos e priorizados de refatoração: risco de bus-factor (arquivos estruturais críticos pertencentes quase inteiramente a um único colaborador) e hotspots de refatoração (arquivos que são simultaneamente de alto churn, alta complexidade e alto débito técnico — o sinal padrão de onde o esforço de refatoração realmente compensa). Ambos são alvos nomeados em nível de arquivo, não apenas uma pontuação.
A maioria dos scanners de dependências funciona a partir de uma tabela de consulta: eles sabem que uma vulnerabilidade existe porque alguém a encontrou, a registrou, e agora ela tem um número CVE em um feed. Isso é útil, mas é necessariamente reativo — um scanner construído assim é cego para tudo o que ainda não foi descoberto e divulgado, incluindo variantes diretas de padrões reconhecidamente ruins que apenas parecem um pouco diferentes da instância registrada.
O GitGalaxy adota uma abordagem diferente: em vez de corresponder a instâncias conhecidas, ele corresponde a classes de fraqueza. Suas descobertas são marcadas por CWE (Common Weakness Enumeration) — credenciais hardcoded, execução dinâmica de código, desserialização insegura — não por ID de CVE. Uma assinatura estrutural para "execução dinâmica de entrada contaminada" captura esse padrão onde quer que apareça, com quaisquer nomes de variáveis, em qualquer disposição específica — não apenas a instância sobre a qual alguém já registrou um relatório.
A mesma filosofia se estende à camada de SBOM. Em vez de perguntar "esta versão de pacote aparece em um banco de dados de vulnerabilidades?", o GitGalaxy pergunta "o conteúdo real deste pacote em disco corresponde estruturalmente ao que uma versão legítima deveria parecer" — entropia, impressão digital estrutural, sinalizadores de anomalia comportamental. É assim que uma dependência adulterada é pega no primeiro dia, antes que alguém tenha descoberto ou divulgado qualquer coisa, porque não há CVE pelo qual esperar.
Isto é um complemento às ferramentas de feed CVE (Snyk, Dependabot, OSV-Scanner), não uma substituição para elas — essas ferramentas são a resposta certa para "este bug conhecido exato está presente?". O GitGalaxy é a resposta certa para a rede mais ampla: classes de fraqueza e anomalias físicas que não exigem que alguém tenha encontrado e registrado primeiro a instância específica.
Esta é uma comparação auto-relatada do que cada ferramenta exige e detecta estruturalmente, não um benchmark independente — verifique contra a documentação de cada projeto. Ela existe para responder uma pergunta com clareza: qual lacuna o GitGalaxy foi realmente construído para cobrir, em comparação com ferramentas que fazem um trabalho relacionado, mas diferente.
| GitGalaxy | Semgrep | CodeQL | Snyk / Dependabot | |
|---|---|---|---|---|
| Exige AST ou build | Não — assinaturas estruturais regex/lexicais | Sim — correspondência de padrões AST por linguagem | Sim — compila/extrai um banco de dados de código | Não — lê manifests de pacotes |
| Base de detecção | Classe de fraqueza (CWE) + anomalia física/estrutural | Regras de correspondência de padrões (SAST) | Consultas de fluxo de dados/taint (SAST) | Consulta a banco de dados CVE/advisory (SCA) |
| Funciona em código quebrado/não compilado | Sim — este é o alvo do design | Parcial, depende da regra/parser | Não — precisa de um build funcional | Sim — apenas lê o manifest |
| Offline / isolado (air-gapped) | Sim, totalmente local | O mecanismo OSS roda localmente; a Cloud Platform é hospedada | Roda localmente; comumente usado via Actions hospedadas no GitHub | Dependente de nuvem (Snyk); hospedado no GitHub (Dependabot) |
Onde os pares de categoria SAST do GitGalaxy precisam de uma AST ou de um build de compilação, e onde as ferramentas de feed CVE precisam de um manifest de pacote, é exatamente a lacuna que o GitGalaxy foi construído para cobrir — não uma alegação de que ele substitui o que elas fazem bem.
Toda afirmação de "assinatura estrutural" e "sem AST" acima é respaldada por três coisas que você pode inspecionar e reexecutar por conta própria, não apenas aceitar por fé:
gitgalaxy/standards/language_standards.py define cada regra regex que o mecanismo usa para reconhecer um constructo — um início de função, um limite de API, um bypass de segurança — nas 45 linguagens que têm assinaturas estruturais reais (~1.970 padrões compilados no total). Cada uma dessas regras é testada para o que deve corresponder, o que deve excluir explicitamente (a verificação de falso positivo que a maioria das ferramentas baseadas em regex pula) e para não poder ser travada por uma entrada adversarial. Veja tests/README.md para o índice completo, e épico #518 para a auditoria que o encerrou — dezenas de bugs regex reais encontrados e corrigidos ao longo do caminho, não apenas cobertura teórica.language-crucible é um snapshot fixado e etiquetado de ~120 subdiretórios reais extraídos de grandes projetos open-source — o C++ do Godot, o compilador Roslyn C#, curl, Kubernetes, o software de voo AGC da Apollo 11 e mais — deliberadamente deixados desconectados e não compiláveis, o mesmo estado hostil em que repositórios reais se encontram. Todo pull request que toca o mecanismo de parsing reescaneia todo esse corpus e compara (diff) a saída, campo a campo, contra um snapshot versionado no repositório (tests/golden_master_audit.json); um diff significa que a saída mudou em código real, e ele precisa ser explicado antes de ser aceito — não é um teste de fumaça, é uma comparação golden-master de verdade. Veja tests/README.md para exatamente como isso está ligado ao CI, e o próprio README do language-crucible para saber por que esse corpus é construído do jeito que é._galaxy_audit.json, _galaxy_master.db e _galaxy_llm.md que o scanner produziu, mantidos versionados por versão do mecanismo. O manifest do corpus, que fixa exatamente quais repositórios e commits foram escaneados, atualmente cobre um subconjunto de 323 repositórios do lote maior arquivado lá — declarado explicitamente no próprio README desse repositório, em vez de ser subentendido como completo.Esse mesmo lote de saída bruta é o que ajusta a afirmação de velocidade acima — todos os repositórios plotados, não apenas o exemplo favorável do Kubernetes:
Sempre a versão mais recente do scanner — derivação completa e metodologia na seção Speed Telemetry do gitgalaxy-raw-output.
O GitGalaxy é feito para rodar no CI, não apenas para receber estrelas e ser esquecido — por isso monitoramos a integração com CI/produção como um sinal próprio de adoção, junto com a descoberta humana, em vez de filtrá-lo como ruído.
À esquerda: estrelas e forks do GitHub (cumulativos — reconstruídos a partir do timestamp de cada estrela/fork, não apenas um snapshot daqui para frente) junto com clonadores únicos diários e visualizações de perfil. À direita: uso do Catálogo CI/CD do GitLab (projetos únicos executando o GitGalaxy em um pipeline nos últimos 30 dias) e adoção da GitHub Action (repositórios únicos referenciando a action em um workflow, via busca de código — o GitGalaxy ainda não está listado no Marketplace, então este é o melhor sinal passivo disponível). Diferente do painel esquerdo, GitHub e GitLab não expõem nenhum histórico para esses dois — espere que o painel direito seja preenchido dia a dia, em vez de mostrar uma tendência retroativamente preenchida.
Volume de distribuição combinado entre PyPI, GitHub e GitLab em relação aos nossos repositórios de controle de base — não é uma contagem uniformemente deduplicada. A contagem de clonadores únicos do GitHub e a contagem de projetos únicos do GitLab são genuinamente deduplicadas; os dados públicos de download do PyPI não têm identidade contra a qual deduplicar (medidos sem mirrors, o que exclui bots conhecidos de sincronização de mirrors, mas não instalações dirigidas por CI), então esse componente é uma contagem bruta de eventos de download. As linhas de detalhamento GitHub/PyPI começam no meio da janela porque o rastreamento por fonte foi adicionado após o rastreamento do total de buscas; a linha total antes desse ponto é agregada em todas as fontes.
Metodologia completa, incluindo exatamente o que é e o que não é deduplicado por fonte: squid-protocol/squid-telemetry.
O GitGalaxy realiza 100% do seu escaneamento e vetorização localmente — o mecanismo roda da mesma forma totalmente isolado (air-gapped) como roda conectado.
Coloque o template da sua plataforma diretamente no seu pipeline — cada um executa uma varredura GitGalaxy e pode fazer o build falhar em caso de violações de limite de risco ou assinaturas de malware.
| Plataforma | Modelo |
|---|---|
| GitHub Actions | gitgalaxy-pipeline.yml — veja o guia de integração completo |
| GitLab CI | scan.yml |
| Bitbucket Pipelines | bitbucket-pipelines.yml + bitbucket_insights.py (publica descobertas como anotações do Bitbucket Code Insights) |
| Azure Pipelines | azure-pipelines.yml |
| Qualquer outra coisa (Jenkins, CircleCI, etc.) | scan.yml — modelo genérico, invocável via shell |