
oversight v0.5.8
Um auditor de segurança leve e sandbox para scripts de shell. O Oversight combina um mecanismo de Análise Estática (Rust) com Execução Dinâmica (Linux Landlock) para manter seu sistema seguro contra scripts maliciosos.
Oversight (v0.5.8)
O Oversight é uma ferramenta de inteligência de segurança baseada em terminal, projetada para auditar scripts e comandos shell antes que eles entrem em contato com o seu sistema. Ela preenche a lacuna entre "confiança cega" e "auditoria manual", fornecendo uma análise interativa de alta velocidade tanto de arquivos locais quanto de scripts remotos via URLs Raw.
Oversight

Atualização AUR ao Vivo

Captura de Tela 1

Captura de Tela 2

A Missão
A maioria dos comprometimentos de sistemas acontece por um salto de fé, como executar uma atualização de pacote não verificada ou rodar scripts de configuração crus. O Oversight oferece uma visão clara desses buffers, sinalizando padrões maliciosos e explicando os riscos de segurança em linguagem simples, para que você possa tomar uma decisão informada antes de confirmar instalações.
Recursos
- Layout de Abas Multi-Stream Dinâmico: Analisa automaticamente os cabeçalhos unificados de streams git em tempo real. Quando uma atualização em lote chega, ele isola o stream de patch combinado e gera abas dedicadas e legíveis para cada pacote, importando e auditando os scripts
.installe arquivos.patchassociados do diretório de build local. - Mecanismo de Entropia Heurística: Implementação de cálculos de entropia de Shannon para identificar payloads ofuscados, dados compactados e strings ocultas que scanners regex tradicionais não detectam.
- Rastreamento de Ciclo de Vida Malicioso: Análise comportamental avançada que relaciona eventos associados em um script, como a cadeia Buscar (Fetch) -> Alteração de Permissões -> Execução, típica de instaladores trojan.
- Barra Lateral de Mapa de Calor de Segurança: Uma trilha vertical que fornece uma visão geral visual em tempo real da distribuição de ameaças no arquivo ativo, garantindo que os indicadores de coordenadas sejam dimensionados com precisão para cada buffer de aba distinto.
- Detecção Anti-Forense e de Persistência: Monitoramento de comportamentos furtivos, incluindo auto-exclusão (
rm $0), pipelines silenciosos (> /dev/null), caminhos de execução somente em RAM (/dev/shm) e hooks de recarga (crontab,systemctl). - Pontuação de Risco Ponderada: Implementa um índice de segurança de 0 a 100 que categoriza os streams como Limpo (Clean), Cautela (Caution) ou Perigoso (Dangerous), com base em métricas macro planas que evitam a inflação da pontuação de risco.
- Alternância de Mitigação Global: Permite que os usuários suprimam instantaneamente as descobertas ativas via TUI usando um único interruptor. Isso higieniza visualmente a exibição ao comentar os blocos sinalizados e recalcula o índice global de pontuação de risco em tempo real.
- Modo Pager de Stream Limpo: Remove blocos vazios do viewport. Quando um stream passa pela análise sem nenhuma flag, o layout completo do terminal permanece aberto como um pager funcional, permitindo uma revisão manual padrão de código, linha por linha.
- Mecanismo de Regras Dinâmico: Os padrões são externalizados em um módulo de regras independente, permitindo atualizações modulares em diferentes assinaturas de padrões sem quebrar o loop de análise do TUI.
- Mecanismo de Busca Remota: Audite scripts diretamente do GitHub, Gist ou URLs raw com segurança, por meio de análise somente em memória.
- Auditoria Educacional: Cada flag de segurança inclui uma explicação detalhada e referências externas para ajudar os usuários a aprender a identificar padrões de script maliciosos.
- Inteligência de Vulnerabilidades: Varredura integrada em tempo real para CVEs conhecidas usando a API OSV.dev, acionada automaticamente quando comandos suportados de instalação de pacotes são detectados.
Dependências
O Oversight é construído em Rust para desempenho e isolamento do binário. Os seguintes componentes nativos são necessários para a compilação:
- Toolchain Rust:
cargoerustc(Edição 2021) para compilar o mecanismo nativo. - OpenSSL: Biblioteca do sistema exigida pelo
reqwestpara estabelecer operações seguras de busca remota via TLS/SSL. - Crates Principais:
ratatui,crossterm,tokio,reqwest,claperegex.
Instalação e Configuração
- Via AUR (Recomendado para Arch Linux) A versão estável é mantida no AUR. Instale-a usando seu helper preferido:
yay -S oversight-git
- Ou compile manualmente:
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
- A partir do código-fonte:
git clone https://github.com/Rakosn1cek/oversight.git
cd oversight
- Execute o Instalador Automatizado:
O instalador cuida da compilação, move o binário para
~/.local/bine injeta os hooks necessários na configuração do seu shell (.zshrc, .bashrc ou config.fish).
chmod +x install.sh
./install.sh
- Recarregue seu shell:
source ~/.zshrc ou a configuração do seu respectivo shell
Arquivos e Locais
- Binário: ~/.local/bin/oversight
- Banco de Regras: ~/.local/share/oversight/rules.json (Respeita $XDG_DATA_HOME)
- Hooks do Shell: ~/.local/share/oversight/oversight.[zsh|bash|fish]
Uso
- Audite um script local:
oversight ./install.sh - Audite uma URL remota:
oversight https://raw.githubusercontent.com/... - Audite um arquivo de configuração local:
oversight ~/.local/share/oversight/rules.json - Proteção ao Vivo: Intercepta automaticamente comandos autônomos como
curl https://...ou padrões arriscados comorm -rf /para oferecer um menu de triagem com múltiplas opções, e inspeciona profundamente os perfis de cache do AUR antes da execução.
Integração com a Configuração do Shell
Para implantar permanentemente o Oversight como seu pager principal de texto e atualizações, acrescente uma das regras de configuração ao arquivo de perfil do seu shell (ex.: ~/.zshrc, ~/.bashrc ou ~/.config/fish/config.fish):
Opção A: Integração Dedicada com Helper do AUR (Direcionada)
Força seu helper a usar o Oversight especificamente para atualizações de pacotes, sem afetar outros comandos do sistema:
Para yay (~/.zshrc ou ~/.bashrc):
alias yay="yay --diffpager oversight"
Para paru (~/.config/paru/paru.conf): Adicione estas linhas ao seu ~/.config/paru/paru.conf. Você deve incluir a opção CombinedUpgrade, caso contrário o paru removerá os códigos de cor ANSI antes de passar o texto para o Oversight, deixando você com texto preto e branco:
[options]
Pager = oversight
CombinedUpgrade
Para outros helpers como Shelly Se você estiver usando um helper diferente, precisará informar ao Oversight onde encontrar os arquivos de cache usando a variável AUDIT_HELPER. Por exemplo, você pode executá-lo assim:
AUDIT_HELPER=shelly shelly -Sua | oversight
Alternativamente, você pode exportar a variável do helper globalmente no seu perfil de shell para que o Oversight sempre saiba qual caminho de cache verificar:
export AUDIT_HELPER="shelly"
Opção B: Ambiente de Pager Global do Sistema (Universal)
Esta configuração registra o Oversight como seu pager de texto padrão do sistema. Isso significa que pacotes, páginas man e streams git abrirão automaticamente dentro da interface.
Adicione estas linhas ao seu ~/.zshrc ou ~/.bashrc:
export PAGER="oversight"
export MANPAGER="oversight"
A segunda linha é necessária se a configuração do seu sistema já define MANPAGER como less ou outra ferramenta.
Referência de Efeitos Colaterais do Pager Global
- Ao implantar o Oversight globalmente, exportando-o como o visualizador de texto principal do sistema, o mecanismo intercepta todos os fluxos de dados que passam pelos mecanismos de paginação do terminal.
- Embora o sistema lide com essas entradas com segurança, você notará comportamentos específicos nas suas operações diárias de terminal.
- Executar uma atualização completa do sistema processa os espelhos dos repositórios oficiais antes de chegar à fila do AUR. Como os binários oficiais não possuem caminhos estruturais Git ou scripts de cache, o Oversight automaticamente recorre a um buffer de texto simples. A interface renderiza uma única linha de descoberta "Static Analysis Passed" e mapeia suas teclas de seta para rolar verticalmente a lista de transações de texto, linha por linha, como um pager de texto padrão.
- Revisar referências de comandos como
man pacmanredireciona os manuais de instrução diretamente pelo mecanismo. O texto é analisado como um stream limpo, permitindo que você use os atalhos padrão do viewport para revisar a documentação dentro do quadro unificado do TUI. - Comandos principais como
git logougit diffdentro dos seus repositórios locais passam pelo banco de regras estático. Se um commit contiver um padrão de assinatura correspondente, ele acionará os alertas do mecanismo; caso contrário, apresenta revisões de código padrão no painel principal de forma limpa. - A lógica interna de análise depende de hooks estritos de cabeçalho unificado para alocar múltiplas abas de pacotes. Se um stream recebido não contiver esses tokens de cache específicos, como páginas man normais ou espelhos de repositório, o layout de múltiplas abas é ignorado por completo para evitar a fragmentação do espaço de trabalho do terminal.
Atalhos de Teclado:
- Teclas de Seta para Cima / Baixo: Navegue pelos itens de descobertas no painel esquerdo a qualquer momento, garantindo que a seleção da lista nunca fique presa.
- Teclas PageUp / PageDown: Role suavemente o viewport central de código, linha por linha, independentemente da seleção da lista.
- Tecla Tab: Alterne o foco para frente pelos segmentos ativos do stream de código, saltando do stream de patch combinado diretamente para as abas individuais de fonte PKGBUILD.
- Teclas Numéricas (0-9): Salte diretamente para um layout de índice de aba específico instantaneamente.
- Tecla de Seta para a Esquerda: Redefina instantaneamente os deslocamentos de coordenadas de rolagem vertical do viewport para o topo.
- Tecla [S]: Alterne a supressão global para comentar instantaneamente os blocos de código sinalizados no bloco de seleção ativo e reequilibrar os parâmetros de risco em uma única passada.
- [Q] ou Esc: Feche a interface com segurança e devolva o controle de execução ao pipeline do processo do terminal.
Nota: O Oversight é uma ferramenta de aconselhamento. Embora use correspondência robusta de padrões regex, nenhuma ferramenta de segurança é 100% à prova de falhas. Sempre use o "Final Verdict" como guia e revise o código destacado manualmente se não tiver certeza sobre uma fonte.
Nota2: O Oversight ainda está em desenvolvimento ativo; portanto, nenhuma garantia é fornecida quanto à sua funcionalidade ou impacto no sistema neste estágio.
Suporte e Contribuições
Se você gostaria de apoiar ou contribuir com o projeto, você é mais que bem-vindo.
Se você quiser discutir ou tirar dúvidas sobre o Oversight, junte-se ao meu servidor Discord Rakosn1cek <- Isso é opcional, não um requisito.
Você também pode abrir uma Issue ou deixar uma mensagem nas Discussões.
Licença
MIT © 2026 Rakosn1cek. A atribuição é obrigatória para qualquer redistribuição ou trabalhos derivados.