Назад к обновлениям
New releaseJul 28, 2026

oversight v0.5.8

Лёгкий аудитор безопасности и песочница для shell-скриптов. Oversight сочетает движок статического анализа (Rust) с динамическим принуждением (Linux Landlock), чтобы защитить вашу систему от вредоносных скриптов.

Поделиться

Oversight (v0.5.8)

GitHub stars Discord License Rust

Oversight — это терминальный инструмент киберразведки, предназначенный для аудита shell-скриптов и команд до того, как они коснутся вашей системы. Он устраняет разрыв между «слепым доверием» и «ручным аудитом», обеспечивая высокоскоростной интерактивный анализ как локальных файлов, так и удалённых скриптов через Raw URL.

Oversight

Демонстрация Oversight

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

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

Скриншот 1

Интерфейс TUI Oversight в действии

Скриншот 2

Интерфейс TUI Oversight в действии

Миссия

Большинство взломов систем происходит из-за «прыжка веры» — например, выполнения непроверенного обновления пакетов или запуска необработанных установочных скриптов. 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.

Установка и настройка

  1. Через AUR (рекомендуется для Arch Linux) Стабильный релиз поддерживается в AUR. Установите его с помощью предпочитаемого помощника:

yay -S oversight-git

  1. Или соберите вручную:
git clone [https://aur.archlinux.org/oversight-git.git](https://aur.archlinux.org/oversight-git.git)
cd oversight-git
makepkg -si
  1. Из исходников:

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

  1. Запустите автоматический установщик: Установщик выполняет компиляцию, перемещает бинарный файл в ~/.local/bin и внедряет необходимые хуки в конфигурацию вашей оболочки (.zshrc, .bashrc или config.fish).
chmod +x install.sh
./install.sh
  1. Перезагрузите вашу оболочку:

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"

Вариант B: Глобальная среда системного пейджера (универсальная)

Эта настройка регистрирует Oversight как системный текстовый пейджер по умолчанию. Это означает, что пакеты, man-страницы и git-потоки будут автоматически открываться внутри интерфейса.

Добавьте эти строки в ваш ~/.zshrc или ~/.bashrc:

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

Вторая строка необходима, если ваша системная конфигурация уже устанавливает MANPAGER на less или другой инструмент.


Справочник побочных эффектов глобального пейджера

  • При глобальном развёртывании Oversight через экспорт в качестве основного системного текстового просмотрщика движок перехватывает все потоки данных, проходящие через механику терминального пейджинга.
  • Хотя система обрабатывает эти входные данные безопасно, вы заметите определённые особенности в повседневных операциях с терминалом.
  • При выполнении полного обновления системы сначала обрабатываются зеркала официальных репозиториев, прежде чем очередь дойдёт до AUR. Поскольку официальные бинарные файлы не содержат структурных git-путей или скриптов кэша, Oversight автоматически переключается на плоский текстовый буфер. Интерфейс отображает единственную строку результата Static Analysis Passed и назначает ваши клавиши со стрелками для вертикальной прокрутки списка транзакций построчно, как стандартный текстовый пейджер.
  • Просмотр справочных руководств, таких как man pacman, направляет страницы руководства напрямую через движок. Текст разбирается как чистый поток, позволяя использовать стандартные горячие клавиши области просмотра для изучения документации внутри единого TUI-окна.
  • Основные команды, такие как git log или git diff, в ваших локальных репозиториях проходят через статическую базу правил. Если коммит содержит соответствующий сигнатурный паттерн, срабатывают оповещения движка; в противном случае код отображается в главной панели как стандартный обзор.
  • Внутренняя логика разбора полагается на строгие хуки объединённых заголовков для выделения нескольких вкладок пакетов. Если входящий поток не содержит этих специфических токенов кэша, например обычные man-страницы или зеркала репозиториев, многостраничная раскладка полностью обходится, чтобы предотвратить фрагментацию рабочей области терминала.

Горячие клавиши:

  • Клавиши стрелок вверх/вниз: Постоянно перемещают по элементам находок на левой панели, гарантируя, что выбор в списке никогда не застрянет.
  • Клавиши PageUp / PageDown: Плавно прокручивают центральную область просмотра кода построчно независимо от выбора в списке.
  • Клавиша Tab: Перемещает фокус вперёд по сегментам активного кодового потока, перескакивая из комбинированного потока патчей непосредственно на отдельные вкладки исходников PKGBUILD.
  • Цифровые клавиши (0-9): Мгновенно переходят к конкретной раскладке индекса вкладки.
  • Клавиша стрелки влево: Мгновенно сбрасывает вертикальные смещения прокрутки области просмотра к началу.
  • Клавиша [S]: Переключает глобальное скрытие, мгновенно комментируя отмеченные блоки кода в активном блоке выделения и перебалансируя параметры риска за один проход.
  • [Q] или Esc: Безопасно закрывает интерфейс и возвращает управление выполнением конвейеру процессов терминала.

Примечание: Oversight — это рекомендательный инструмент. Хотя он использует надёжное сопоставление regex-паттернов, ни один инструмент безопасности не является пуленепробиваемым на 100%. Всегда используйте «Final Verdict» как ориентир и просматривайте выделенный код вручную, если сомневаетесь в источнике.

Примечание2: Oversight всё ещё находится в активной разработке; поэтому на данном этапе не предоставляется никаких гарантий относительно его функциональности или влияния на систему.

Поддержка и вклад в проект

Если вы хотите поддержать проект или внести вклад, вы более чем желанны.

Если вы хотите обсудить Oversight или задать вопросы, пожалуйста, присоединяйтесь к моему Discord-серверу Rakosn1cek <- Это необязательно, не требование.

Вы также можете открыть Issue или оставить сообщение в Discussions.

Лицензия

MIT © 2026 Rakosn1cek. Указание авторства требуется при любом распространении или создании производных работ.

Категории