
oversight v0.5.8
Лёгкий аудитор безопасности и песочница для shell-скриптов. Oversight сочетает движок статического анализа (Rust) с динамическим принуждением (Linux Landlock), чтобы защитить вашу систему от вредоносных скриптов.
Oversight (v0.5.8)
Oversight — это терминальный инструмент киберразведки, предназначенный для аудита shell-скриптов и команд до того, как они коснутся вашей системы. Он устраняет разрыв между «слепым доверием» и «ручным аудитом», обеспечивая высокоскоростной интерактивный анализ как локальных файлов, так и удалённых скриптов через Raw URL.
Oversight

Живое обновление AUR

Скриншот 1

Скриншот 2

Миссия
Большинство взломов систем происходит из-за «прыжка веры» — например, выполнения непроверенного обновления пакетов или запуска необработанных установочных скриптов. Oversight даёт вам чёткое представление об этих потоках, помечая вредоносные паттерны и объясняя риски безопасности простым языком, чтобы вы могли принять взвешенное решение перед подтверждением установок.
Возможности
- Динамическая многостраничная раскладка вкладок: Автоматически анализирует объединённые заголовки git-потоков на лету. Когда приходит пакетное обновление, инструмент изолирует комбинированный поток патчей и создаёт отдельные читаемые вкладки для каждого пакета, подтягивая и проверяя сопутствующие
.install-скрипты и.patch-файлы из локального каталога сборки. - Эвристический энтропийный движок: Реализация вычислений энтропии Шеннона для выявления обфусцированных полезных нагрузок, упакованных данных и скрытых строк, которые пропускают традиционные regex-сканеры.
- Отслеживание вредоносного жизненного цикла: Расширенный поведенческий анализ, связывающий связанные события внутри скрипта, например цепочку «Загрузка -> Изменение прав -> Выполнение», типичную для троянских установщиков.
- Боковая панель тепловой карты безопасности: Вертикальная дорожка, обеспечивающая наглядный обзор распределения угроз по активному файлу в реальном времени и гарантирующая точное масштабирование координатных индикаторов для каждого отдельного буфера вкладки.
- Обнаружение анти-форензики и методов закрепления: Мониторинг скрытных поведений, включая самоудаление (
rm $0), тихие конвейеры (> /dev/null), пути выполнения только из RAM (/dev/shm) и хуки перезагрузки (crontab,systemctl). - Взвешенная оценка рисков: Реализует индекс безопасности от 0 до 100, классифицирующий потоки как «Чисто», «Осторожно» или «Опасно» на основе плоских макрометрик, позволяющих избежать раздувания оценки риска.
- Глобальный переключатель смягчения: Позволяет пользователям мгновенно скрывать активные находки через TUI одним переключателем. Это визуально очищает представление, комментируя отмеченные блоки, и пересчитывает глобальный индекс оценки риска в реальном времени.
- Режим пейджера для чистых потоков: Удаляет пустые блоки области просмотра. Когда поток проходит анализ без единого флага, полная раскладка терминала остаётся открытой как функциональный пейджер, позволяя выполнять стандартный построчный ручной обзор кода.
- Динамический движок правил: Паттерны вынесены в независимый модуль правил, что позволяет модульно обновлять различные сигнатуры паттернов, не ломая цикл разбора TUI.
- Движок удалённой загрузки: Проверяйте скрипты напрямую из GitHub, Gist или raw URL безопасно, с анализом только в памяти.
- Обучающий аудит: Каждый флаг безопасности включает подробное объяснение и внешние ссылки, помогающие пользователям научиться выявлять вредоносные паттерны скриптов.
- Разведка уязвимостей: Встроенное сканирование известных CVE в реальном времени через API OSV.dev, срабатывающее автоматически при обнаружении поддерживаемых команд установки пакетов.
Зависимости
Oversight написан на Rust ради производительности и изоляции бинарного файла. Для компиляции требуются следующие нативные компоненты:
- Rust Toolchain:
cargoиrustc(Edition 2021) для компиляции нативного движка. - OpenSSL: Системная библиотека, требуемая
reqwestдля установления безопасных удалённых операций выборки по TLS/SSL. - Основные крейты:
ratatui,crossterm,tokio,reqwest,clapиregex.
Установка и настройка
- Через AUR (рекомендуется для Arch Linux) Стабильный релиз поддерживается в AUR. Установите его с помощью предпочитаемого помощника:
yay -S oversight-git
- Или соберите вручную:
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
- Из исходников:
git clone https://github.com/Rakosn1cek/oversight.git
cd oversight
- Запустите автоматический установщик:
Установщик выполняет компиляцию, перемещает бинарный файл в
~/.local/binи внедряет необходимые хуки в конфигурацию вашей оболочки (.zshrc, .bashrc или config.fish).
chmod +x install.sh
./install.sh
- Перезагрузите вашу оболочку:
source ~/.zshrc или ваш соответствующий конфиг оболочки
Файлы и расположение
- Бинарный файл: ~/.local/bin/oversight
- База правил: ~/.local/share/oversight/rules.json (учитывает $XDG_DATA_HOME)
- Хуки оболочки: ~/.local/share/oversight/oversight.[zsh|bash|fish]
Использование
- Аудит локального скрипта:
oversight ./install.sh - Аудит удалённого URL:
oversight https://raw.githubusercontent.com/... - Аудит локального конфигурационного файла:
oversight ~/.local/share/oversight/rules.json - Живая защита: Автоматически перехватывает одиночные команды, такие как
curl https://..., или опасные паттерны вродеrm -rf /, предлагая многоопционное меню триажа, и глубоко проверяет нижестоящие профили кэша AUR перед выполнением.
Интеграция с конфигурацией оболочки
Чтобы навсегда развернуть Oversight в качестве основного текстового пейджера и пейджера обновлений, добавьте одно из правил конфигурации в файл профиля вашей оболочки (например, ~/.zshrc, ~/.bashrc или ~/.config/fish/config.fish):
Вариант A: Интеграция с выделенным AUR-помощником (целевая)
Заставляет ваш хелпер использовать Oversight исключительно для обновления пакетов, не затрагивая другие системные команды:
Для yay (~/.zshrc или ~/.bashrc):
alias yay="yay --diffpager oversight"
Для paru (~/.config/paru/paru.conf): Добавьте эти строки в ваш ~/.config/paru/paru.conf. Вы должны включить опцию CombinedUpgrade, иначе paru удалит ANSI-цветовые коды перед передачей текста в Oversight, и вы получите чёрно-белый текст:
[options]
Pager = oversight
CombinedUpgrade
Для других помощников, например Shelly Если вы используете другой помощник, вам нужно сообщить Oversight, где найти файлы кэша, с помощью переменной AUDIT_HELPER. Например, вы можете запустить его так:
AUDIT_HELPER=shelly shelly -Sua | oversight
В качестве альтернативы вы можете экспортировать переменную помощника глобально в профиле вашей оболочки, чтобы Oversight всегда знал, какой путь кэша проверять:
export AUDIT_HELPER="shelly"