Skip to content

Ferramenta para detecção e mitigação de componentes vulneráveis e desatualizados de software

Notifications You must be signed in to change notification settings

puuertA/BasiliskScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BasiliskScan 🔍

BasiliskScan Logo
                            ██████╗  █████╗ ███████╗██╗██╗     ██╗███████╗██╗  ██╗
                            ██╔══██╗██╔══██╗██╔════╝██║██║     ██║██╔════╝██║ ██╔╝
                            ██████╔╝███████║███████╗██║██║     ██║███████╗█████╔╝ 
                            ██╔══██╗██╔══██║╚════██║██║██║     ██║╚════██║██╔═██╗ 
                            ██████╔╝██║  ██║███████║██║███████╗██║███████║██║  ██╗
                            ╚═════╝ ╚═╝  ╚═╝╚══════╝╚═╝╚══════╝╚═╝╚══════╝╚═╝  ╚═╝

Uma ferramenta avançada de linha de comando para análise abrangente de dependências em projetos de software

Python Version License Version

📋 Sobre o Projeto

BasiliskScan é uma ferramenta poderosa e intuitiva desenvolvida para identificar, catalogar e reportar dependências vulneráveis e desatualizadas em projetos de software. Com suporte a múltiplos ecossistemas e uma interface rica em recursos, o BasiliskScan é essencial para manter a segurança e atualização de suas dependências.

🎯 Objetivos Principais

  • Análise Abrangente: Varredura recursiva de projetos identificando todas as dependências
  • Múltiplos Ecossistemas: Suporte para Node.js (npm) e Python (pip)
  • Relatórios Interativos: Saída em HTML com interface rica e navegação por abas
  • Interface Rica: Barras de progresso e feedback visual em tempo real
  • Filtragem Inteligente: Ignora automaticamente diretórios desnecessários

✨ Recursos Principais

🔍 Detecção Automática

  • Identifica automaticamente arquivos de dependências suportados
  • Percorre recursivamente toda a estrutura do projeto
  • Filtra inteligentemente diretórios irrelevantes (node_modules, .git, __pycache__, etc.)

📦 Ecossistemas Suportados

  • Node.js: package.json (dependencies, devDependencies, peerDependencies)
  • Python: requirements.txt (versões fixas e flexíveis)

📊 Relatórios Interativos

  • Saída em formato HTML com interface moderna e responsiva
  • Navegação por abas para diferentes categorias de componentes
  • Logo personalizado e visual profissional
  • Metadados completos e estatísticas detalhadas por ecossistema
  • Preparado para futuras funcionalidades de vulnerabilidades

🎨 Interface Rica

  • Barras de progresso em tempo real durante o scan
  • Código de cores para diferentes tipos de informação
  • Mensagens de status claras e informativas
  • Logo ASCII artístico no terminal
  • Relatórios HTML interativos com design moderno

🚀 Instalação

Pré-requisitos

  • Python 3.10 ou superior
  • pip (gerenciador de pacotes Python)

Instalação via PyPI (em breve)

pip install basiliskscan

Instalação para Desenvolvimento

# Clone o repositório
git clone https://github.com/PuertA/basiliskscan.git
cd basiliskscan

# Instale em modo desenvolvimento
pip install -e .

Verificação da Instalação

# Teste a instalação
bscan --version
bscan --help

📖 Guia de Uso

Comando Básico

# Varredura do diretório atual
bscan scan

# Varredura de um projeto específico
bscan scan --project /caminho/para/projeto

# Varredura com arquivo de saída personalizado
bscan scan --project ./meu-app --output relatorio-deps.html

Opções Disponíveis

Opção Alias Descrição Padrão
--project -p Diretório do projeto a ser analisado . (atual)
--url -u Modo alternativo de especificação do projeto -
--output -o Arquivo de saída para o relatório HTML dependencies_report.html
--help -h Exibe ajuda detalhada -

Exemplos Práticos

1. Análise Básica

bscan scan

2. Projeto Específico com Saída Customizada

bscan scan --project ../meu-backend --output backend-deps.html

3. Usando Modo URL (compatibilidade wapiti)

bscan scan --url /opt/aplicacoes/webapp --output webapp-analysis.html

4. Análise de Projeto Python

bscan scan --project ./api-python --output api-dependencies.html

5. Visualizando o Relatório

# Após a execução, abra o arquivo HTML gerado no seu navegador
# O relatório inclui logo, navegação por abas e interface interativa

# Exemplo: abrir no navegador padrão (Windows)
start dependencies_report.html

# Exemplo: abrir no navegador padrão (Linux/Mac)
open dependencies_report.html

📊 Formato de Saída

O BasiliskScan gera relatórios em formato HTML interativo com:

🎨 Interface Moderna

  • Design responsivo com tema escuro profissional
  • Logo personalizado do BasiliskScan no topo
  • Navegação por abas para diferentes categorias:
    • 📦 Todos os Componentes: Lista completa de dependências encontradas
    • 🚨 Componentes Vulneráveis: Preparado para futuras integrações de segurança
    • ⚠️ Componentes Desatualizados: Preparado para verificação de versões

📋 Informações Detalhadas

  • Metadados do Scan: Data, ferramenta, versão, diretório analisado
  • Estatísticas Resumidas: Contadores visuais de componentes por categoria
  • Detalhes dos Componentes: Nome, versão, ecossistema, arquivo de origem
  • Badges Coloridos: Identificação visual por ecossistema (npm, pypi, etc.)

🔍 Componentes Interativos

  • Hover Effects: Destaque visual ao passar mouse sobre componentes
  • Animações Suaves: Logo animado e transições elegantes
  • Estrutura Extensível: Preparada para futuras funcionalidades de vulnerabilidades

🏗️ Arquitetura do Projeto

O BasiliskScan foi desenvolvido com uma arquitetura modular e extensível:

src/basiliskscan/
├── cli.py                 # Ponto de entrada CLI principal
├── config.py              # Configurações e constantes globais
├── help_text.py          # Textos de ajuda e mensagens
├── parsers.py            # Parsers para arquivos de dependências
├── scanner.py            # Sistema de varredura e descoberta
├── reporter.py           # Geração de relatórios e saídas
├── ui.py                 # Interface de usuário e componentes visuais
└── commands/
    └── scan.py           # Implementação do comando scan

Componentes Principais

  • 🔍 Scanner: Descoberta e coleta de arquivos de dependências
  • 📝 Parsers: Análise específica por tipo de arquivo (package.json, requirements.txt)
  • 📊 Reporter: Geração de relatórios estruturados e apresentação de resultados
  • 🎨 UI: Interface rica com barras de progresso e feedback visual

🛠️ Desenvolvimento

Configuração do Ambiente

# Clone o projeto
git clone https://github.com/PuertA/basiliskscan.git
cd basiliskscan

# Crie um ambiente virtual
python -m venv venv
source venv/bin/activate  # Linux/Mac
# ou
venv\Scripts\activate     # Windows

# Instale dependências de desenvolvimento
pip install -e ".[dev]"

Estrutura de Dependências

  • click: Interface de linha de comando
  • requests: Requisições HTTP (funcionalidades futuras)
  • packaging: Manipulação de versões de pacotes
  • rich: Interface rica e colorida no terminal

Contribuindo

  1. Fork o projeto
  2. Crie uma branch para sua feature (git checkout -b feature/nova-funcionalidade)
  3. Commit suas mudanças (git commit -am 'Adiciona nova funcionalidade')
  4. Push para a branch (git push origin feature/nova-funcionalidade)
  5. Abra um Pull Request

🔮 Roadmap

Versão 0.1.0

  • Suporte a mais formatos de dependências (Pipfile, yarn.lock, composer.json)
  • Integração com APIs de vulnerabilidades (CVE, npm audit)
  • Relatórios em formatos adicionais (CSV, XML, JSON)
  • Cache de resultados para execuções subsequentes

Versão 0.2.0

  • Análise de dependências transitivas
  • Verificação de licenças de pacotes
  • Comando de atualização automática de dependências
  • Interface web para visualização de relatórios

Versão 1.0.0

  • Sistema de plugins extensível
  • Integração com CI/CD
  • API REST para integração com outras ferramentas
  • Dashboard de monitoramento contínuo

📝 Casos de Uso

🏢 Empresas e Organizações

  • Auditoria de segurança em projetos corporativos
  • Compliance e verificação de licenças
  • Monitoramento contínuo de dependências em CI/CD

👨‍💻 Desenvolvedores

  • Análise rápida de projetos herdados
  • Verificação de saúde de dependências antes de releases
  • Identificação de dependências obsoletas

🎓 Pesquisadores e Academia

  • Estudos sobre ecossistemas de software
  • Análise de vulnerabilidades em larga escala
  • Pesquisa sobre evolução de dependências

⚠️ Limitações Conhecidas

  • Atualmente suporta apenas package.json e requirements.txt
  • Não analisa dependências transitivas (ainda)
  • Não verifica vulnerabilidades em tempo real
  • Limitado a projetos no sistema de arquivos local

📄 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

👥 Autores

  • PuertA - Desenvolvimento inicial - GitHub

🤝 Agradecimentos

  • Comunidade Python e click pela excelente documentação
  • Projeto Rich pela biblioteca de interface rica
  • Comunidade open source por inspiração e feedback

📞 Contato


Feito com ❤️ para a comunidade de desenvolvedores

Se este projeto foi útil, considere dar uma estrela!

About

Ferramenta para detecção e mitigação de componentes vulneráveis e desatualizados de software

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages