Як перевірити, чи хакнули твій сервер Linux?
SSH-сервери на Linux — це програмне забезпечення, що надає можливість віддаленого доступу та управління Linux-системами через безпечне з’єднання і командний рядок.
Оскільки вони дають такий доступ, зловмисники зазвичай намагаються проникнути через них, щоб використовувати сервер для своїх цілей або навіть пошкодити важливі файли.
Навіть використання заходів безпеки, таких як запуск оновлень, встановлення патчів та використання нестандартних портів, щоб стримувати хакерів, не дає повної гарантії від вторгнень.
Один із найбільш відомих прикладів такої атаки — інцидент, який отримав назву «Shellshock». У вересні 2014 року була виявлена серйозна уразливість у програмному забезпеченні Bash, яка використовується в багатьох дистрибутивах Linux. Вона дозволяла зловмисникам виконувати віддалені команди на серверах, що використовують Bash, зокрема через SSH.
Цей інцидент підкреслив критичне значення постійного моніторингу та оновлення систем безпеки, а також важливість негайної реакції на нові загрози.
Шукаємо ознаки злому сервера
Більшість хакерських атак виконується автоматично за допомогою спеціальних програм, наприклад, бот-мережі або «скрипт-кідді», які шукають вразливості в системах. Такі атаки мають на меті DoS або використання серверів для незаконного розповсюдження спаму або майнінгу криптовалют.
Вони можуть:
- перешкоджати роботі сервера;
- сповільнювати передачу даних;
- викликати інші проблеми.
Якщо ти помітив, що сервер працює незвично повільно або має інші проблеми, це може бути ознакою того, що хтось незаконно намагається отримати доступ до системи.
Щоб захистити свій сервер, важливо вжити певні заходи безпеки, наприклад, оновлення програмного забезпечення і налаштування захисту від вторгнень.
Про те, як правильно організувати безпеку сервера, можна дізнатись на наших курсах «Адміністрування вебсерверів на Linux» та «Системи з високими навантаженнями на Linux»
Нижче наведено кроки, які допоможуть забезпечити цілісність твого сервера 👇
Крок 1. Перевір активні входи
Якщо зловмисник вже проник у сервер, він може залишитися в системі. Тож треба перевірити це.
Підключись до свого сервера Linux через SSH і введи команду «w».
Вона відобразить усіх підключених користувачів разом з часом їх входу. В ідеальному випадку ти побачиш тільки свій власний вхід.
При виконанні команди «w» зможеш переглянути також IP-адреси інших користувачів через поле «FROM».
Щоб визначити географічне місце IP-адреси, використовуй команду «whois». Наприклад:
whois 8.8.8.8
За допомогою команди «who -u» можна отримати інформацію про користувачів, які знаходяться в системі, разом зі списком активних процесів, якщо вони їх виконують.
Крок 2. Перевір попередні входи
Перший крок — запустити команду «last», щоб переглянути історію входів користувачів, включаючи їхні імена, IP-адреси та час входу.
Якщо помітиш невідомого користувача, використай цю ж команду «last ***», вказавши його ім’я, щоб переглянути лише його історію.
Можна скористатися командою «whois» для визначення географічного місця користувача за його IP-адресою. Якщо виявлено несанкціонований доступ, можна завершити його сеанс SSH та пов’язані процеси, використовуючи команду «pkill».
Наприклад,
«sudo pkill -U ****»
Важливо також звернути увагу на останній запис (дату та час), який зазвичай посилається на файл «wtmp», щоб переконатися, що дані не були змінені або видалені несанкціонованою особою.
Якщо файл /var/log/wtmp був видалений або змінений, це можна розцінювати як ознаку нещодавньої кібератаки, і треба вжити заходів для розслідування та запобігання подібним інцидентам у майбутньому.
Крок 3. Перевір попередні команди
Для перевірки нещодавніх команд в Linux варто перевірити файл .bash_history. Це можна зробити, використовуючи команду «cat ~/.bash_history» у терміналі.
Після виконання цієї команди відображається список нещодавніх введених користувачем команд. Серед них важливо відстежувати ті, які можуть вказувати на потенційно шкідливу діяльність, наприклад, install, curl або завантаження файлів через wget.
Такий аналіз допоможе виявити незвичайну або підозрілу активність. У випадку, якщо термінал повідомляє про відсутність файлу або каталогу, є ймовірність, що хакер видалив цей список, щоб приховати сліди своєї діяльності.
Крок 4. Перевір найінтенсивніші процеси
Для цього важливо проаналізувати активні програми та їх дії. Використання утиліти Linux «top», дозволяє отримати динамічний огляд продуктивності системи в реальному часі.
Початкова перевірка може обмежитися переглядом колонки «команда», де вказані назви активних процесів. Якщо зустрінеш незнайомий процес, слід звернути увагу на його PID (ідентифікатор процесу) та, в разі потреби, виконати подальший аналіз.
Для цього можна використати пошукові системи, щоб з’ясувати призначення конкретного процесу, а також використати інші утиліти, наприклад «lsof», для вивчення файлів, до яких звертався певний процес.
Крок 5. Перевір всі системні процеси
Якщо хакер досвідчений, він буде підтримувати низький рівень споживання системних ресурсів, щоб уникнути виявлення. Однак запущені ним процеси можуть не відображатися у звичайних списках, наприклад, у виведенні команди «top».
Для перевірки всіх запущених процесів можна використати команду «ps auxf».
Вона впорядковує процеси зрозумілим чином, де кожен стовпчик, включаючи ідентифікатор процесу (PID), відсоток використання процесора та пам’яті, має своє значення.
При уважному перегляді стовпця «Команда» можна виявити незвичайні процеси. Якщо які-небудь з них здаються підозрілими, треба скористатися пошуковою системою та командою «lsof» для їхньої ідентифікації, як це робилося на попередньому етапі. Після завершення перевірки можна вийти з команди, натиснувши Ctrl + C.
Крок 6. Перевір мережеві процеси
Досвідчені зловмисники часто встановлюють програми-бекдори, які споживають мінімум ресурсів процесора і системи, щоб уникнути виявлення.
Для перевірки всіх процесів, які прослуховують мережеві з’єднання під час запуску системи, можна скористатися командою «sudo lsof -i».
Після цього слід уважно розглянути кожен запис, спеціально звертаючи увагу на кінець кожного, щоб переконатися, чи перебуває процес у режимі «LISTEN».
Якщо виявлено невідомий процес, слід здійснити подальші дослідження, використовуючи метод, описаний в крок 4.
Крок 7. Зупини неавторизовані процеси
У випадку виявлення підозрілого процесу, ти можеш негайно припинити його функціонування за допомогою команди «kill», яка використовує ідентифікатор процесу (PID). Наприклад:
sudo kill -9 2046
Для випадків, коли програма запустила кілька процесів, можна використати команду «killall» для припинення всіх її інстансів:
sudo killall fish
Ці заходи дозволяють швидко та ефективно припинити несанкціоновані процеси, гарантуючи безпеку та стабільність системи.
Що робити, якщо сервер Linux все ж хакнули?
Кричати Alert і вводити команду «sudo shutdown -h now»
Коли незвані гості вже зайняли твій сервер Linux, першим кроком у відновленні контролю є негайне вимкнення системи.
Використай для цього команду «sudo shutdown -h now».
Якщо ти використовуєш серверний простір від третьої сторони, можливо, буде зручніше скористатися панеллю управління на вебпорталі провайдера, щоб вимкнути сервер дистанційно.
АЛЕ, просте вимкнення сервера це лише початок. Звернись до фахівців з кібербезпеки, щоб отримати допомогу в розслідуванні та відновленні безпеки. Вони знають як провести повний аудит, виявити уразливості та запропонувати заходи для зміцнення захисту.
Пам’ятай, що вчасна реакція на порушення безпеки допоможе запобігти серйозним наслідкам у майбутньому, тому співпраця з професіоналами в цій галузі є надзвичайно важливою.
А якщо ти й сам прагнеш приєднатись до крутих фахівців з кібербезпеки, проходь навчання на курсах ITEDU та отримуй знання і навички, щоб самостійно забезпечувати надійний захист серверам.