Як виявити та видалити троянин Linux?


16

Я нещодавно (пере) натрапив на це:

Так, я знаю, що додавання якихось випадкових ППА / програмного забезпечення з ненадійного джерела задає проблеми (або ще гірше). Я ніколи цього не роблю, але багато хто робить (багато блогів та таблоїдів Linux рекламують додавання PPA для модних додатків, не попереджаючи, що це може зламати вашу систему чи ще гірше, пошкодити вашу безпеку.)

Як можна виявити та видалити троянську коня чи негідну програму / скрипт?


Я задав те саме питання (через 3 хвилини після того, як я запитав тут) за адресою: askubuntu.com/questions/13265/… Повідомте мене, якщо це порушення, я видалю одне з них.
iamsid

Відповіді:


20

Загального рецепту немає. Якщо ваша система була заражена невідомим трояном, все, що ви можете зробити, це перевстановити.

Якщо ви знаєте, що троянин діє певним чином - наприклад, ви знаєте, що троян не заражає ядро ​​- може бути менш суворий спосіб відновлення. Але це повністю залежить від того, як знати, як поводить себе троян. Якщо у вас є лише симптоми (наприклад, ваш комп’ютер, який надсилає спам без вашої згоди), немає загальної техніки: троянський детектор повинен бути розумнішим, ніж конструктор троянів (і пощастить). Що стосується троянів, то виявлення та приховування схожі на гармати та броні: є технологічний ескалація, і жодна із сторін не має внутрішньої переваги (хоча хованки не мають початку).

У багатьох системах встановлений захищений канал розподілу. Наприклад, коли ви встановлюєте пакет із сховищ Ubuntu з інструментами на основі apt (apt-get, aptitude, синаптичний, програмний центр,…), інструмент перевіряє, чи пакет підписаний (перевірений) ким-небудь довіряє Ubuntu. (Більшість дистрибутивів мають подібний механізм.) Коли ви встановлюєте пакет із PPA, все, що ви можете знати, - це те, що власник PPA перевірив пакет, що не допоможе, якщо у вас немає підстав довіряти власнику PPA в першу чергу.

Про троянів і на задньому плані, я настійно рекомендую прочитати лекцію премії Кена Томпсона про Тьюрінга " Роздуми про довірену довіру" . Підводячи підсумок, він змінив компілятор так, що при складанні програми входу він додав би код, який дозволив йому увійти з секретним паролем; потім він змінив компілятор так, що коли він компілював себе, він би вставляв код, щоб додати backdoor; потім він перекомпілював всю систему (зокрема програму входу та компілятор); нарешті він відновив джерело компілятора до початкового, безперечного джерела. Знову прочитайте статтю Кена Томпсона ; тоді ви також можете прочитати контрапункт Девіда Уілера , можливо, найкраще сприйнятий у статті блогу Брюса Шнейера .


+1 за описову відповідь та за рекомендацію щодо цих статей: вони розширили мої знання. Дякую.
iamsid

7

Якщо я правильно розумію "троян", описаний у цій статті, не вдалося виявити "нормальним" способом як "нормальну" шкідливу програму. Цей IRCd поводився нормально до його використання, тому адміністратор міг знайти цей отвір у захисті лише тоді, коли: 1) він використовувався і дії, зроблені цим отвором, спричинили введення в журнали або було видно якимось іншим способом; 2) зчитування вихідного коду.

"Справжній" Linux зловмисне програмне забезпечення також повинно бути виявлене програмним забезпеченням AV для Linux або AV LiveCD Rescue Disks, щоб ви могли сканувати комп'ютер за допомогою цього програмного забезпечення. Як ви бачите в списку SecureList, є 1941 запис із ім'ям Linux, і це програмне забезпечення повинно бути виявлене програмним забезпеченням Касперського. Швидкий перегляд цього списку показує, що багато записів про деякі інструменти та подробиці DDoS або засоби, які не можуть автоматично поширюватися і можуть використовуватися лише як інструменти для атаки (тому не шкідливі).

Для перевірки наявності встановлених зломщиком backdoor / руткітів ви можете використовувати інструмент, який перевіряє контрольні суми файлів (слід створити список файлів і контрольних сум на чистій системі та оновити його після оновлення серверного програмного забезпечення). Кожен новий файл або файл із неправильною контрольною сумою є підозрілим. Список контрольної суми та інструмент, який її генерує, повинен містити лише носій для читання (зломник може також змінити, наприклад, md5sum для власної версії, яка показує неправильні контрольні суми). Цей спосіб пошуку зловмисного програмного забезпечення може використовуватися у "стабільних" системах, де програмне забезпечення не оновлюється щодня.

Деякі зловмисні програми можна виявити, запустивши netstatлокально, щоб перевірити мережевий трафік, але якщо система заражена, дані, які відображаються, netstatтакож можуть бути змінені. У цьому випадку деяким рішенням є моніторинг мережевого трафіку з іншого комп’ютера (наприклад, від маршрутизатора, щоб перевірити, який трафік направляється в Інтернет).


4

SELinux та AppArmor існують для профілактики троянських / руткітів та інших інфекцій. Я розповідаю про випадок SELinux, який я знаю краще. Якщо SELinux увімкнено, ви даєте контекст усім процесам (включений демон), які ви встановлюєте на машину. Ви також позначаєте файлову систему для роботи з контекстом, узгоджуючи їх. Коли процес намагається зробити щось не в його контексті, ви отримуєте повідомлення, і, якщо SELinux знаходиться в режимі примусового виконання, дія не може завершитися.
Таким чином, якщо ваш ircd троянин був готовий перезаписати команду ps чи щось інше (загальна стратегія для троянів / руткітів / черв'яків, щоб уникнути виявлення), мені це не дозволили б зробити. І вас повідомили б.
Я знаю, що це важко налаштувати, але мої машини зараз працюють із встановленим SELinux, і мої (два) ноутбуки Fedora можуть робити все, що потрібен робочому столі без зайвих клопотів.
Навіть мій домашній сервер зараз у режимі примусового виконання.
Іншою стратегією є регулярний запуск детекторів руткітів, які обчислюють контрольну суму для цитичних команд та інформують вас про зміни в основних командах.
Я працюю як із включеним SELinux, так і з rkhunter (плюс антивірус clamav).

З повагою


2

Інша відповідь стверджувала, що "хованки" (приховані зловмисні програми) мають внутрішню перевагу перед "детекторами". Я не погоджуюсь. Це справедливо, якщо ви обмежитеся підходами виявлення, які покладаються на підписи або евристику для виявлення шкідливих програм. Але є й інший спосіб виявлення зловмисного програмного забезпечення: перевірка відомих товарів. Tripwire, AIDE тощо можуть перевірити файли на диску. Другий погляд може перевірити працююче ядро ​​та процеси. Second Look використовує криміналістику пам'яті, щоб безпосередньо перевірити операційну систему, активні сервіси та програми. Він порівнює код у пам'яті з тим, що був випущений постачальником дистрибуції Linux. Таким чином, він може негайно визначити шкідливі модифікації, внесені руткітами та backdoor, та несанкціоновані програми, які виконуються (трояни тощо).

(Розкриття: Я є провідним розробником Second Look.)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.