Traffic Cardinal Traffic Cardinal написал 03.06.2024

Киберпаранойя 3.1: чек-лист по защите сервера (ч. 1)

Traffic Cardinal Traffic Cardinal написал 03.06.2024
8 мин
0
901
Содержание

«Милорд, нас взломали!» Было бы очень удобно, если бы при взломе чего-либо приходило такое оповещение. Однако в большинстве случаев пользователь даже не знает, что его сервер взломан.

banner banner

Между тем абсолютно любой интернет-проект, будь то полноценный сайт, лендос-однодневка или даже бот для Телеги, находится не в сферическом вакууме, а на обычном «железе» — на сервере.

И даже если сервер виртуальный — он все равно реальный, и его точно так же можно взломать. О том, как защитить свой сервер от взлома, и пойдет речь в этой статье. Сам материал разбит на две части для вашего удобства. Вторая часть здесь.

Спойлер: абсолютную защиту, в особенности если за вас взялись всерьез, вам не даст ничего — но использование приведенных ниже шагов хотя бы заставит кибергопников потрудиться.

Для тех, кто все еще не верит, что до них кому-то есть дело. В 2015 году Symantec проводили исследование, в ходе которого выяснилось, что сервера сайтов, использующих CMS Joomla, только через http-запросы пытаются взломать в среднем до 20 000 раз в день.

График исследования Symantec
График исследования Symantec

Шаг 1. Вы нужны нам! Ну или не нам

Одной из главных ошибок многих веб-мастеров является святая вера в то, что они никому не нужны — что хакеры взламывают какие-то крупные компании или сайт Пентагона, а не простых смертных.

Что ж. Во-первых, мы с вами не простые смертные — мы же крутимся в арбитраже! А значит, чем поживиться у нас есть. А во-вторых, большинство атак происходят рандомно. Ну или условно-рандомно — но точно не целенаправленно, конкретно на ваш проект. Если вы никому не перешли дорогу на очередной афтепати…

Злоумышленники просто сканируют на наличие уязвимостей все, до чего cмогут дотянуться — а дотянуться через интернет можно до всего, что плохо защищено. Причем делают они это не ручками, а софтом — нажимают кнопку Бабло «Старт», и им просто вываливается огромный список серверов. А рядом — список уязвимостей, с помощью которых каждый конкретный сервер можно хакнуть.

Пример интерфейса «обычного» сканера уязвимостей сети — в «хакерском» может быть что угодно. Зависит от фантазии его разработчика
Пример интерфейса «обычного» сканера уязвимостей сети — в «хакерском» может быть что угодно. Зависит от фантазии его разработчика

Но даже если у вас нечего красть, ваш сервер — это отличное железо для майнинга и вполне себе точка для дальнейшего распространения зловредного кода. В общем, не обманывайтесь — хацкерам вы точно будете нужны всегда. А потому, даже если ваш проект «просто шалость», — о безопасности сервера думать нужно. И уж тем более этим вопросом стоит озаботиться, если от этого зависит ваш профит.

Шаг 2. Дыры, но не озоновые

В материале «Киберпаранойя 3.0: что такое эксплойты и как от них защититься» мы уже писали, что любой код — это всегда потенциальные уязвимости. Они могут появляться из-за ошибок программиста, могут быть оставлены специально, а могут быть связаны вообще с воздействием космических частиц — это не важно. Важно то, что, когда о какой-то уязвимости становится известно общественности, — ее стараются поскорее залатать. И поскорее взломать, конечно, тоже.

Регулярное обновление ПО — наиболее простой и действенный способ защититься. Если этим пренебрегать — вы поставите себя в ситуацию, когда инструкция по взлому вашего сервера будет у каждого желающего, а мер противодействия у вас не будет. Проще говоря — взламывать вас будут уже не только хакеры, но и те, кто просто «сможет в инструкцию» из интернета :)

Количество НОВЫХ публичных эксплойтов за 2022 год поквартально — отчет «Лаборатории Касперского»
Количество НОВЫХ публичных эксплойтов за 2022 год поквартально — отчет «Лаборатории Касперского»

Даже если вы «продвинутый пользователь» и считаете, что какое-то обновление вам не нужно (а часто такое мнение вполне обоснованно), то все равно следует уделить внимание вопросу безопасности — пропатчить хотя бы сами уязвимости, пусть и вручную. Но иногда это невозможно — в таком случае придется взвесить риски и либо обновить софт, либо смириться с тем, что «ключи» от вашего сервера будут у любого желающего.

Шаг 3. Может, тупо забрутфорсим? Не — это перебор


Сколько бы в интернете ни рассуждали о том, что брутфорс умер, на деле он был, есть и, скорее всего, будет единственным 100% способом взломать любой пароль. Даже в теории криптографии абсолютно стойкими шифрами считаются лишь те, которые невозможно взломать чем-либо, кроме брутфорса (в идеале — бесконечно долгого брутфорса).

Обратите внимание, за сколько в 2022 году ломался 8-значный пароль с разным регистром и символами — за 39 минут!
Обратите внимание, за сколько в 2022 году ломался 8-значный пароль с разным регистром и символами — за 39 минут!

Однако мы живем в 2024 году — вычислительные мощности растут ежедневно. А если у хакера еще и свой пул «ведомых» компов — то миллиард лет вычислений превращаются в пару часов. В общем, проще сделать так, чтобы брутфорс был невозможен. Благо сервер не шифр и позволяет это сделать.

Этого можно добиться, если подключить fail2ban-защиту. Ее суть сводится к банальному запрету авторизации после определенного количества неудачных попыток. Конечно, это не дает 100% защиты — ведь брутфорс может быть совмещен с другими инструментами, которые обходят уже fail2ban. Но даже необходимость менять IP каждые 3–5 попыток — уже сильно усложнит жизнь тем, кто будет пытаться подобрать пароль.

Принцип действия fail2ban
Принцип действия fail2ban

Шаг 4. Один — хорошо. А два — два

Здесь мы сэкономим наше и ваше время и не будем долго разглагольствовать — подключите двухфакторную авторизацию. Да, это немного снизит комфорт — ведь вам придется вводить больше паролей при каждом входе. Но это существенно повысит степень безопасности вашего сервера. Да и не только сервера — включайте двухфакторную авторизацию везде, где только можно. Это банально — но очень важно.

Шаг 5. Власть — это иллюзия

Типичный «продвинутый юзер», немного разобравшись в «этих ваших кибернетиках», стремится к получению полного контроля над своим ПК/смартфоном/сервером. В целом такой ход мысли понять можно — мой гаджет = моя крепость. Однако если мы говорим про безопасность, то рациональнее, наоборот, отказаться от root-прав.

Сами по себе права суперпользователя — это буквально полный доступ ко всему. Который может попасть в чужие руки, на минуточку. Более того, в случае с серверами имеет смысл вообще убрать возможность использования root, ведь root — это не только права суперпользователя, но и логин для получения этих прав.

Поэтому обязательно отключайте доступ к root, если хотите хоть немного обезопасить свой сервер. Для выполнения каких-либо команд, требующих привилегий, вы всегда сможете использовать su/sudo — это выдаст временные привилегии, которые будут отключены сразу после завершения инициированных команд.

Шаг 6. Шифруйте свои шифры

Мы включили двойную аутентификацию, запретили себе часто ошибаться, лишили себя прав — давайте усложним жизнь еще сильнее! Приучите себя использовать SSH (Secure Shell). Тем более что на самом деле усложним жить мы не себе — а гибер-копникам.

SSH — это способ взаимодействия с сервером (протокол), при котором трафик и любые передаваемые пароли шифруются. С его помощью можно относительно безопасно работать по любому другому протоколу.

При этом авторизация по SSH может производиться по паролю, по IP и по ключевой паре — нам нужен последний способ. При использовании вами SSH с доступом к ключевой паре злоумышленнику будет банально нечего брутфорсить.

Процесс брутфорса SSH-доступа, при root-авторизации через пароль
Процесс брутфорса SSH-доступа, при root-авторизации через пароль

*Примечание редакции: Формально даже при таком способе работы, хацкер все еще может «вклиниться» между вами и сервером, подменять пакеты и т. д. Но на практике это почти невозможно осуществить, так как SSH-ключи передают не только ключевую пару, но и фингерпринты устройств.

Продолжение следует

На сегодня все! Вторая часть тут.

Здравствуйте! У вас включен блокировщик рекламы, часть сайта не будет работать!