Volver a actualizaciones
Nuevo releaseJul 28, 2026

oversight v0.5.8

Un auditor de seguridad y sandbox ligero para scripts de shell. Oversight combina un motor de Análisis Estático (Rust) con Aplicación Dinámica (Linux Landlock) para mantener tu sistema a salvo de scripts maliciosos.

Compartir

Oversight (v0.5.8)

GitHub stars Discord License Rust

Oversight es una herramienta de inteligencia de seguridad basada en terminal diseñada para auditar scripts de shell y comandos antes de que toquen tu sistema. Cubre la brecha entre la "confianza ciega" y la "auditoría manual" al proporcionar un análisis interactivo de alta velocidad tanto de archivos locales como de scripts remotos a través de URLs raw.

Oversight

Oversight Demo

Actualización AUR en Vivo

Oversight Live Aur Update

Captura de pantalla 1

Oversight TUI Interface in Action

Captura de pantalla 2

Oversight TUI Interface in Action

La Misión

La mayoría de los compromisos del sistema ocurren por un acto de fe, como ejecutar una actualización de paquete sin verificar o correr scripts de configuración en bruto. Oversight te brinda una visión clara de estos búferes, señalando patrones maliciosos y explicando los riesgos de seguridad en lenguaje sencillo para que puedas tomar una decisión informada antes de confirmar instalaciones.

Características

  • Diseño de pestañas dinámico multi-flujo: Analiza automáticamente los encabezados unificados de flujos git sobre la marcha. Cuando llega una actualización por lotes, aísla el flujo de parches combinado y genera pestañas dedicadas y legibles para cada paquete, incorporando y auditando los scripts .install y archivos .patch adjuntos desde el directorio de compilación local.
  • Motor de entropía heurística: Implementación de cálculos de entropía de Shannon para identificar cargas útiles ofuscadas, datos empaquetados y cadenas ocultas que los escáneres regex tradicionales pasan por alto.
  • Seguimiento de ciclo de vida malicioso: Análisis de comportamiento avanzado que vincula eventos relacionados a lo largo de un script, como la cadena Descarga -> Cambio de permisos -> Ejecución típica de instaladores troyanos.
  • Barra lateral de mapa de calor de seguridad: Una pista vertical que proporciona una vista visual en tiempo real de la distribución de amenazas en el archivo activo, asegurando que los indicadores de coordenadas exactas se escalen con precisión para cada búfer de pestaña distinto.
  • Detección de persistencia y anti-forense: Monitoreo de comportamientos sigilosos, incluyendo autoeliminación (rm $0), tuberías silenciosas (> /dev/null), rutas de ejecución solo en RAM (/dev/shm) y ganchos de recarga (crontab, systemctl).
  • Puntuación de riesgo ponderada: Implementa un índice de seguridad de 0 a 100 que clasifica los flujos como Limpio, Precaución o Peligroso basándose en métricas macro planas que evitan la inflación de la puntuación de riesgo.
  • Conmutador global de mitigación: Permite a los usuarios suprimir al instante los hallazgos activos a través de la TUI con un solo interruptor. Esto sanea visualmente la vista al comentar los bloques marcados y recalcula el índice de puntuación de riesgo global en tiempo real.
  • Modo paginador de flujo limpio: Elimina los bloques vacíos del viewport. Cuando un flujo pasa el análisis sin ninguna marca, el diseño completo del terminal permanece abierto como un paginador funcional, permitiendo una revisión manual estándar línea por línea del código.
  • Motor dinámico de reglas: Los patrones se externalizan en un módulo de reglas independiente, lo que permite actualizaciones modulares en diferentes firmas de patrones sin romper el bucle de análisis de la TUI.
  • Motor de descarga remota: Audita scripts directamente desde GitHub, Gist o URLs raw de forma segura mediante análisis solo en memoria.
  • Auditoría educativa: Cada marca de seguridad incluye una explicación detallada y referencias externas para ayudar a los usuarios a aprender a identificar patrones de scripts maliciosos.
  • Inteligencia de vulnerabilidades: Escaneo integrado en tiempo real de CVEs conocidos mediante la API de OSV.dev, que se activa automáticamente cuando se detectan comandos de instalación de paquetes compatibles.

Dependencias

Oversight está construido en Rust para rendimiento y aislamiento binario. Se requieren los siguientes componentes nativos para la compilación:

  • Cadena de herramientas de Rust: cargo y rustc (Edición 2021) para compilar el motor nativo.
  • OpenSSL: Biblioteca del sistema requerida por reqwest para establecer operaciones seguras de descarga remota TLS/SSL.
  • Crates principales: ratatui, crossterm, tokio, reqwest, clap y regex.

Instalación y Configuración

  1. Vía AUR (Recomendado para Arch Linux) La versión estable se mantiene en el AUR. Instálalo usando tu helper preferido:

yay -S oversight-git

  1. O compilar manualmente:
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
  1. Desde el código fuente:

git clone https://github.com/Rakosn1cek/oversight.git cd oversight

  1. Ejecuta el instalador automatizado: El instalador se encarga de la compilación, mueve el binario a ~/.local/bin e inyecta los ganchos necesarios en tu configuración de shell (.zshrc, .bashrc o config.fish).
chmod +x install.sh
./install.sh
  1. Recarga tu shell:

source ~/.zshrc o la configuración de tu shell respectiva


Archivos y Ubicaciones

  • Binario: ~/.local/bin/oversight
  • Base de datos de reglas: ~/.local/share/oversight/rules.json (Respeta $XDG_DATA_HOME)
  • Ganchos de shell: ~/.local/share/oversight/oversight.[zsh|bash|fish]

Uso

  • Auditar un script local: oversight ./install.sh
  • Auditar una URL remota: oversight https://raw.githubusercontent.com/...
  • Auditar un archivo de configuración local: oversight ~/.local/share/oversight/rules.json
  • Protección en vivo: Intercepta comandos independientes como curl https://... o patrones de riesgo como rm -rf / automáticamente para ofrecer un menú de triaje con múltiples opciones, e inspecciona en profundidad los perfiles de caché AUR posteriores antes de la ejecución.

Integración con la Configuración del Shell

Para implementar Oversight de forma permanente como tu paginador principal de texto y actualizaciones, añade cualquiera de las reglas de configuración a tu archivo de perfil de shell (por ejemplo, ~/.zshrc, ~/.bashrc o ~/.config/fish/config.fish):

Opción A: Integración dedicada con helper de AUR (Específica)

Fuerza a tu helper a usar Oversight específicamente para actualizaciones de paquetes sin afectar otros comandos del sistema:

Para yay (~/.zshrc o ~/.bashrc): alias yay="yay --diffpager oversight"

Para paru (~/.config/paru/paru.conf): Añade estas líneas a tu ~/.config/paru/paru.conf. Debes incluir la opción CombinedUpgrade, de lo contrario paru eliminará los códigos de color ANSI antes de pasar el texto a Oversight, dejándote con texto en blanco y negro:

[options]
Pager = oversight
CombinedUpgrade

Para otros helpers como Shelly Si estás usando un helper diferente, necesitas indicarle a Oversight dónde encontrar los archivos de caché usando la variable AUDIT_HELPER. Por ejemplo, puedes ejecutarlo así:

AUDIT_HELPER=shelly shelly -Sua | oversight

Alternativamente, puedes exportar la variable del helper globalmente en tu perfil de shell para que Oversight siempre sepa qué ruta de caché comprobar:

export AUDIT_HELPER="shelly"

Opción B: Entorno de paginador global del sistema (Universal)

Esta configuración registra a Oversight como tu paginador de texto del sistema por defecto. Esto significa que los paquetes, las páginas man y los flujos git se abrirán automáticamente dentro de la interfaz.

Añade estas líneas a tu ~/.zshrc o ~/.bashrc:

export PAGER="oversight"
export MANPAGER="oversight"

La segunda línea es necesaria si tu configuración del sistema ya establece MANPAGER a less u otra herramienta.


Referencia de Efectos Secundarios del Paginador Global

  • Cuando implementas Oversight globalmente exportándolo como visor de texto principal del sistema, el motor intercepta todos los flujos de datos que pasan a través de los mecanismos de paginación del terminal.
  • Aunque el sistema maneja estas entradas de forma segura, notarás comportamientos específicos en tus operaciones diarias de terminal.
  • Ejecutar una actualización completa del sistema procesa los espejos del repositorio oficial antes de llegar a la cola de AUR. Debido a que los binarios oficiales carecen de rutas estructurales Git o scripts de caché, Oversight recurre automáticamente a un búfer de texto plano. La interfaz muestra una única fila de hallazgo de Análisis Estático Superado y asigna tus teclas de flecha para desplazar verticalmente la lista de transacciones de texto línea por línea como un paginador de texto estándar.
  • Revisar referencias de comandos como man pacman redirige los manuales de instrucciones directamente a través del motor. El texto se analiza como un flujo limpio, lo que te permite usar los atajos de teclado estándar del viewport para revisar la documentación dentro del marco TUI unificado.
  • Los comandos principales como git log o git diff dentro de tus repositorios locales pasan a través de la base de datos de reglas estáticas. Si un commit contiene un patrón de firma coincidente, activa las alertas del motor; de lo contrario, presenta revisiones de código estándar en el panel principal de forma limpia.
  • La lógica de análisis interna se basa en estrictos ganchos de encabezado unificado para asignar múltiples pestañas de paquetes. Si un flujo entrante no contiene estos tokens de caché específicos, como páginas de manual normales o espejos de repositorio, el diseño de múltiples pestañas se omite por completo para evitar la fragmentación del espacio de trabajo del terminal.

Atajos de teclado:

  • Teclas de flecha Arriba / Abajo: Navega por los elementos de hallazgos en el panel izquierdo en todo momento, asegurando que la selección de la lista nunca quede atrapada.
  • Teclas PageUp / PageDown: Desplazan suavemente el viewport central de código línea por línea, independientemente de la selección de la lista.
  • Tecla Tab: Cicla el foco hacia adelante a través de los segmentos activos del flujo de código, saltando desde el flujo de parches combinado directamente a las pestañas individuales de fuentes PKGBUILD.
  • Teclas numéricas (0-9): Saltan directamente a un índice de pestaña específico al instante.
  • Tecla de flecha izquierda: Restablece al instante los desplazamientos de coordenadas de desplazamiento vertical del viewport de vuelta a la parte superior.
  • Tecla [S]: Alterna la supresión global para comentar al instante los bloques de código marcados en el bloque de selección activo y reequilibrar los parámetros de riesgo en una sola pasada.
  • [Q] o Esc: Cierra la interfaz de forma segura y devuelve el control de ejecución a la canalización de procesos del terminal.

Nota: Oversight es una herramienta de asesoramiento. Si bien utiliza un sólido emparejamiento de patrones regex, ninguna herramienta de seguridad es 100% infalible. Utiliza siempre el "Veredicto Final" como guía y revisa manualmente el código resaltado si no estás seguro acerca de una fuente.

Nota2: Oversight aún está en desarrollo activo; por lo tanto, no se ofrece ninguna garantía respecto a su funcionalidad o impacto en el sistema en esta etapa.

Soporte y Contribuciones

Si deseas apoyar o contribuir al proyecto, eres más que bienvenido.

Si deseas discutir o hacer preguntas sobre Oversight, únete a mi servidor de Discord Rakosn1cek <- Esto es opcional, no es un requisito.

También puedes abrir un Issue o dejar un mensaje en las Discussions.

Licencia

MIT © 2026 Rakosn1cek. Se requiere atribución para cualquier redistribución o trabajo derivado.

Categorías