Мій сервер Linux був зламаний. Як дізнатися, як і коли це було зроблено?


11

У мене домашній сервер, на якому працює настільний дистрибутив ubuntu. Я знайшов це у своєму кронтабі

* * * * * /home/username/ /.access.log/y2kupdate >/dev/null 2>&1

і, переглядаючи цей каталог (пробіл після імені користувача / це ім'я каталогу), я знайшов багато сценаріїв, які, очевидно, роблять те, чого вони не повинні.

Перш ніж стерти цей комп’ютер і перевстановити речі, я хотів би з’ясувати, що спричинило порушення безпеки та коли це було зроблено. Тож я більше не відкриваю ту саму дірку.

У які файли журналів слід заглянути? Єдині сервери, про які мені відомо, що працюють на комп’ютері - це sshd та lighttpd.

Що мені робити, щоб виявити, якщо подібне повториться?


@ Персон, який проголосував за перехід до SU: Як ви вважаєте, що криміналістика вірусів / хакерів стосується Супер Користувача більше, ніж помилка сервера ??
Кріс S

3
Я радий почути, що план полягає в тому, щоб витерти комп’ютер і перевстановити речі. Це абсолютно правильна річ, незалежно від того, що ви знайдете, тому що завжди є хороший шанс, що є щось гірше, чого ви не знайшли.
mattdm

Так, дійсно слід голосувати за перехід на ІТ-безпеку ( security.stackexchange.com ), а не на SU або Serverfault!
Rory Alsop

Відповіді:


4

Спочатку переконайтесь, що комп'ютер відключений від будь-яких мереж.
По-друге, переконайтеся, що ви отримуєте будь-які важливі дані з накопичувачів, перш ніж знову завантажувати злому ОС.

Почніть з перевірки позначок часу на відповідних файлах. Часто вони точні.
Перехресні посилання на тих, хто має журнал httpd та журнал auth, якщо вони не були стерти. Якщо один з іншого був витертий, ви можете зробити ставку, що це був засіб в'їзду. Якщо вони все ще в такті, ви можете отримати більше інформації про те, як вони потрапили з журналу.

Якщо їх все витерли, ти сильно накрутився. Ймовірно, знадобиться більше часу, щоб з'ясувати, що сталося, ніж це варте.

Ви згадали, що ці дві служби працювали, чи був хороший брандмауер, щоб запобігти доступ до всього іншого? Ви дозволили SSH на порт 22; чи ваш логін досить легко здогадатися; ви дозволили ввійти до пароля; чи були у вас якісь обмеження реального тарифу для входу в пароль? Чи було встановлено додаткове програмне забезпечення з lighttpd; перл; php; cgi; CMS чи подібне? Чи працювали ви оновлені версії всього програмного забезпечення; ви підписуєтесь на сповіщення про безпеку для всього програмного забезпечення, яке ви запускаєте, і ретельно оцінюєте всі сповіщення, щоб побачити, чи застосовуються вони до програмного забезпечення, яке ви запускаєте / піддаєте громадськості?


Установка була стандартною Ubuntu Desktop Edition 10.x, зокрема нічого не робилося для безпеки. Я припускав, що за замовчуванням був достатньо хороший брандмауер. Це не правильно? Я дозволив увійти через пароль на порт 22, але пароль був випадковим рядком 8 символів. Чи повинен бути досить хорошим?
Джонатан Каллус

Я вважаю, що брандмауер за замовчуванням є "Широко відкритий - немає брандмауера". Якщо ви ретельно не налаштували його, він нічого не робить.
Chris S

Питання в тому, які служби ви працювали більше, ніж який брандмауер. Якщо брандмауер не встановлений для налаштування конкретних IP-адрес для доступу, найкращий брандмауер - це не запускати зайві служби в першу чергу. А які були ваші налаштування мережі? Відкритий для Інтернету? Всередині приватної мережі? У вас не було брандмауера в точці, коли ваша внутрішня мережа перейшла в Інтернет, або ваш сервер знаходився в DMZ?
Барт Сільверстрім

Сервер був підключений безпосередньо до Інтернету. Я також використовував його як маршрутизатор. Якщо брандмауер за замовчуванням широко відкритий, то, я думаю, у мене є достатньо пояснень, як це могло статися ..
Jonatan Kallus

4

Це така собі тема; ви можете google для криміналістики Linux для отримання додаткової інформації. В основному вам слід спершу сфотографувати свої диски для аналізу в режимі офлайн, після чого протріть комп'ютер та встановіть із чистого сланця.

І пам’ятайте всі випадкові випадки. Кожен, хто користується комп’ютером, міг порушити свої паролі. Змінюйте паролі, зберігайте їх у режимі офлайн тощо, поки ви не отримаєте їх у "чистій кімнаті" (ізольована VM).

Інакше багато перевіряти журнали (які можна підробити) та перевіряти ваші програми (php-скрипти? Бази даних? Оновлені для останніх виправлень? Інші користувачі видають паролі?)

Тут буквально немає простого способу відповісти на ваше запитання, оскільки вам потрібно буде виконати криміналістичну роботу на сервері та перевірити наявність отворів. Ви можете використовувати деякі автоматизовані інструменти, але майте на увазі, якщо зловмисник мав кореневі приватні файли, ви більше не можете довіряти системним бінарним файлам і не можете довіряти журналам.

Що стосується майбутніх атак, залежно від того, наскільки безпечно ви хочете зробити це, ви можете почати, перенаправляючи ваші журнали до системи, що використовується тільки для збереження системних журналів. Немає іншого доступу, щоб зменшити слід атаки.

Ви також запустили б у вашій системі програмне забезпечення контрольної суми, наприклад Tripwire, щоб перевірити цілісність своїх файлів.

І звичайно бути в курсі оновлень та запускати програмне забезпечення для сканування, яке перевіряє наявність руткітів.

Знову ж таки, безпека не є справою. Це може бути і спеціальністю само по собі. Багаторівнева безпека може бути такою ж жорсткою, як перевірка хостів / IP-адрес, які не належать до вашої мережі, шифруючи весь доступ до системи, щоденні журнали змін, що знаходяться у вашій системі, надіслані вам, а також налаштування сотника в вашій мережі для шукайте дивну активність (чому мій сервер намагається підключитися до порту 25 на комп'ютері медоносів?)

Перш за все, якщо ви хочете перевірити активність, отримайте образ диска та перевстановіть серверне програмне забезпечення. З нуля. Бінарним файлам сервера більше не можна довіряти.

EDIT - деякі інші речі, які трапляються мені, оскільки ви працюєте з SSH - встановіть denyhosts. Він може бути налаштований так, що автоматичні атаки на вашу систему на SSHD будуть заблоковані після кількості X спроб. Він також може бути налаштований на оновлення з інших серверів denyhost у "хмарі" для обміну заблокованими IP-адресами, щоб мінімізувати автоматизовані атаки. Ви також можете перемістити порт, який слухає; багато хто зазначає, що це просто безпека через невідомість, але враховуючи кількість сканування ботів, це значно скорочує випадкові спроби вторгнення.


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