Релиз Shelly 2.4 — новой версии бесплатного графического менеджера пакетов для Arch Linux. Программа задумана как альтернатива pacman, рассчитанная в первую очередь на новичков. В обновлении переработали консольную версию, расширили работу с AppImage и Flatpak, добавили поддержку doas и ручной выбор языка интерфейса. Отдельно появился набор механизмов, которые проверяют установочные скрипты пакетов на признаки вредоносного кода, в том числе спрятанного за обфускацией.

Переработанная консольная версия с автодополнением Zsh
Главное изменение в консольной версии — автодополнение для Zsh и сокращённый синтаксис команд в стиле pacman. Такой формат ближе тем, кто привык к pacman или yay, и облегчает переход на Shelly из командной строки.
Обновления AppImage отображаются в интерфейсе
Поддержку AppImage заметно улучшили. Доступные обновления теперь показываются прямо в интерфейсе, исправлена обработка файлов .desktop, доработан механизм обработки событий.
Поддержка doas, выбор языка и новые столбцы AUR
В обновление вошло ещё несколько изменений:
- поддержка doas как альтернативного механизма повышения привилегий;
- ручной выбор языка интерфейса в настройках;
- столбец с версией в разделе обновлений AUR;
- столбцы с сопровождающим и датой последнего обновления в результатах поиска по AUR;
- исправление ошибок обновления и прокрутки в Flatpak.
doas — утилита для повышения привилегий, минималистичная альтернатива sudo. В Linux используется её порт OpenDoas: как и sudo, doas запускает команды от имени другого пользователя, но устроена проще.
AUR (Arch User Repository) — пользовательский репозиторий Arch Linux. Пакеты в него добавляют сами пользователи, а сборка идёт по рецептам с минимальной проверкой, поэтому к содержимому AUR принято относиться с осторожностью.
Анализ установочных скриптов на вредоносный код
Начиная с Shelly 2.4, установочные скрипты пакетов постоянно проверяются на динамическое выполнение кода и риски в функции post_install. Под подозрение попадает построение команд, которое нельзя проверить статически: подстановка команд, eval, косвенное обращение к переменным и конвейеры, где данные декодируются и сразу передаются в оболочку.
Защита от обфускации и подмены символов Unicode
Облегчённая деобфускация вскрывает спрятанные имена инструментов, а такие находки повышаются до критического уровня как признак вредоносных намерений.
Обфускация — намеренное запутывание кода, при котором он остаётся рабочим, но его сложно прочитать и проанализировать. Авторы вредоносного ПО используют обфускацию, чтобы скрыть опасные действия от проверки.
Ещё одно нововведение — защита от гомографических атак и IDN-спуфинга в полях, которые контролирует злоумышленник. Для этого отслеживаются символы нулевой ширины, управляющие символы двунаправленного письма (bidi), токены со смешением алфавитов, полноширинные формы и формы совместимости Unicode, а также «скелеты» схожих символов, подменяющих латиницу.
Гомографическая атака — подмена символов латиницы похожими по виду знаками из других алфавитов Unicode. Имя доверенного пакета или домена при этом визуально не отличается от настоящего, хотя ведёт к другому объекту.
Заключение
Shelly остаётся графическим менеджером пакетов для Arch Linux с поддержкой сторонних каталогов AUR и Flathub, а также AppImage. Программа поставляется готовыми исполняемыми файлами в графической и консольной версиях, поэтому собирать или устанавливать что-либо дополнительно не нужно. Недавно в CachyOS Shelly сделали графическим менеджером по умолчанию. Полный список изменений доступен в релизных заметках на странице проекта в GitHub.