Кіберзлочинці здійснили масштабну атаку на ланцюжок постачання (supply chain attack), націлену на користувачів та розробників, які використовують дистрибутив Arch Linux. Зловмисникам вдалося скомпрометувати та отримати контроль над більш ніж 400 пакетами в популярному репозиторії спільноти AUR (Arch User Repository). Модифікувавши інструкції збірки PKGBUILD у цих пакетах, атакуючі інтегрували завантажувач шкідливого програмного забезпечення, який встановлює крадій облікових даних (infostealer), написаний мовою Rust, а за наявності адміністративних прав розгортає в системі прихований руткіт на базі eBPF.

Репозиторій AUR є важливою частиною екосистеми Arch Linux, де користувачі можуть ділитися власними рецептами збірки програмного забезпечення. На відміну від офіційних репозиторіїв дистрибутиву, пакети в AUR не проходять суворого попереднього аудиту з боку супроводжуючих дистрибутиву. Збірка пакетів відбувається безпосередньо на машині користувача за допомогою сценаріїв PKGBUILD. Це означає, що під час виконання команд інсталяції через AUR-хелпери (такі як yay або paru), утиліта зчитує та виконує інструкції сценарію, що дає зловмисникам можливість запускати довільний код у системі жертви.
Під час збірки одного зі скомпрометованих пакетів модифікований PKGBUILD приховано завантажує попередньо скомпільований бінарний файл, написаний на Rust. Вибір цієї мови програмування обумовлений її високою швидкістю, кросплатформністю та низьким рівнем детектування стандартними антивірусними рішеннями. Після запуску цей файл починає сканування робочої станції розробника з метою пошуку конфіденційної інформації: приватних ключів SSH, токенів доступу до хмарних сервісів AWS та GCP, файлів конфігурацій популярних інтегрованих серевод розробки, таких як VS Code та JetBrains, а також збережених паролів у браузерах. Усі зібрані дані негайно надсилаються на командний сервер зловмисників.
Найбільшу небезпеку становить поведінка шкідливого ПЗ у разі отримання прав суперкористувача. Якщо користувач запускає процес встановлення пакета з привілеями root, Rust-компонент завантажує та інсталює руткіт, який використовує технологію eBPF (Extended Berkeley Packet Filter). eBPF є потужним інструментом ядра Linux для моніторингу та фільтрації трафіку, проте в руках хакерів він перетворюється на засіб маскування. Перехоплюючи системні виклики (наприклад, sys_enter_getdents64, який відповідає за читання вмісту каталогів), eBPF-руткіт приховує присутність шкідливих файлів, процесів та мережевих з’єднань від стандартних системних утиліт користувача, таких як ls, ps або netstat.
Скомпрометовані машини розробників є надзвичайно цінними цілями для зловмисників. Отримавши доступ до облікових даних інженера, хакери можуть розвинути атаку всередину корпоративної мережі, скомпрометувати виробничі сервери (production) або впровадити шкідливий код у власні продукти компанії. Цей інцидент вкотре доводить, що сліпа довіра до неофіційних репозиторіїв та автоматизованих скриптів збірки без попередньої перевірки є серйозною загрозою для корпоративної безпеки.
Що це означає на практиці
- Обов’язковий перегляд PKGBUILD. Перед встановленням або оновленням будь-го пакета з репозиторію AUR завжди детально аналізуйте вміст файлу
PKGBUILD. Налаштуйте свій хелпер (наприклад,yayчиparu) так, щоб він завжди показував різницю змін (diff) перед початком збірки. Звертайте особливу увагу на використання командcurl,wget, завантаження стороннів архівів або запуск бінарних файлів з невідомих джерел під час виконання функцій збірки чи підготовки. - Збірка без привілеїв адміністратора. Запуск утиліти
makepkgабо інструментів роботи з AUR під користувачем root категорично заборонений. Проте, зловмисники можуть спробувати запитати пароль черезsudoпід час виконання фази інсталяції пакета. Для збірки підозрілих або критично важливих пакетів використовуйте ізольовані контейнери Docker чи віртуальні машини, які не мають доступу до ваших основних робочих ключів SSH та токенів розробника. - Контроль eBPF-активності в ядрі. Оскільки руткіти на базі eBPF повністю обманюють звичайні утиліти користувацького простору, для аналізу ядра використовуйте спеціалізовані інструменти. Команда
bpftool prog showдопоможе виявити всі активні eBPF-програми в системі, аbpftool net showпокаже мережеві зачіпки. Регулярно перевіряйте систему на наявність підозрілих програм типуtracepointабоkprobe, які не належать легітимним рішенням моніторингу, таким як Cilium, Falco або Sysdig. - Логування системних викликів. Налаштуйте підсистему аудиту ядра Linux (Auditd) для моніторингу системного виклику
sys_enter_bpf. Це дозволить фіксувати будь-які спроби завантаження або модифікації BPF-програм у реальному часі. Оскільки eBPF вимагає високих привілеїв (зазвичайCAP_SYS_ADMINабоCAP_BPF), будь-яка аномальна активність навколо завантаження BPF-коду має миттєво викликати тривогу у команді безпеки.
