Хакерам не обязательно изобретать сложные схемы взлома информационных систем. Пользователи часто сами помогают себя взламывать, когда игнорируют простые правила безопасности. В этой статье рассмотрим некоторые инструменты, используя которые вы сможете построить систему защиты для своей виртуальной инфраструктуры и, тем самым, выведете ее из зоны риска.
Что могут сделать взломщики с сервером?
Опасности, которые грозят серверу в интернете, можно разделить на две группы с условными названиями: «проникновение» и «грубая сила».
«Проникновение» связано с тем, что злоумышленник, подобрав или украв данные учетной записи, может попасть внутрь операционной системы в качестве зарегистрированного пользователя. Это особенно опасно, если взламывается аккаунт с правами администратора. Тогда злоумышленник может изменить данные, например, список оплаченных заказов в интернет-магазине, или украсть конфиденциальную информацию.
«Грубая сила» связана с внешним воздействием на сервер, при котором он может потерять работоспособность. Яркий пример такого воздействия — разного рода DoS-атаки (англ. Denial of Service — отказ в обслуживании). Во время такой атаки хакеры отправляют на сервер большое количество бесполезных обращений, чтобы создать паразитную нагрузку. Когда запросов становится больше, чем предполагалось при настройке сервера, вычислительные ресурсы быстро заканчиваются. Сервер перестает отвечать. Например, если на атакуемом сервере размещается сайт интернет-магазина, то его посетители увидят на экране скорбное сообщение, что сайт временно недоступен.
Бывают еще уязвимости операционных систем и прикладных программных продуктов, но здесь все зависит от их разработчиков. В этом случае главное вовремя устанавливать обновления этих продуктов, чтобы закрывать обнаруженные уязвимости.
Какие инструменты использовать для защиты сервера?
Защита серверов от взлома — это всегда комплекс мер. Чтобы построить достаточно надежную систему защиты, по нашим подсчетам, нужно соблюдать восемь базовых правил безопасности.
- администрировать сервера только по защищенному каналу;
- применять средства дополнительной аутентификации;
- использовать один или несколько фаерволов;
- в пользовательском веб-интерфейсе использовать SSL/TSL-шифрование;
- отделять части информационной системы дополнительными периметрами безопасности с помощью частных подсетей подсетей;
- использовать средства мониторинга;
- применять инструменты автоматического выявления вторжения в систему;
- проводить регулярный аудит системы.
Далее расскажем о каждом правиле развернуто с указанием конкретных инструментов и примерами реализации в сервисе 1cloud.
1. Защитить канал управления сервером
Практически всегда управление сервером происходит удаленно по сети, потому что обычно «железная» машина стоит в центре обработки данных (ЦОД) вне зависимости от того, арендуете вы сервер у IaaS-провайдера, или развернули собственное облако. Даже если сервер находится в пределах офиса в отдельном помещении, администраторы не бегают к нему при первой необходимости, а управляют им через удаленный доступ.
Если сервер работает под управлением операционной системы Windows, надежным способом считается штатная утилита, использующая RDP-протокол (Remote Desktop Protocol). Она так и называется: RDP-клиент.
При использовании сервиса 1cloud вы можете скачать RDP-файл в панели управления сразу после создания сервера.
В случае использования Linux, канал связи с сервером можно защитить с помощью криптографических SSH-ключей. Вся информация, которая будет пересылаться между сервером и компьютером сисадмина будет зашифрована. Подробнее о том, как настроить SSH-ключи в облаке 1cloud читайте в этой инструкции.
2. Настроить двухфакторную аутентификацию
Предотвратить перехваты контроля над учетными записями помогает двухфаторная аутентификация. Это конечно не панацея, но серьезный барьер, который не сможет преодолеть большая часть злоумышленников. Помимо взлома пароля им еще нужно будет как-то достать ваш телефон, чтобы перехватить код.
В 1cloud подключить двухфакторную аутентификацию можно в панели управления в настройках аккаунта. Код для входа в учетную запись будет присылаться либо по SMS, либо его можно сгенерировать через мобильное приложение Google Authenticator. О том, как установить данное приложение и использовать вы можете прочитать в нашей инструкции.
Настроить дополнительную аутентификацию можно также через вышеупомянутые SSH-ключи. В этом случае подключение к серверу будет происходить без использования пароля. Потребуется еще одна пара ключей. При этом секретный ключ должен находиться на стороне администратора.
3. Контролировать соединение с интернетом с помощью фаервола
Сетевой фильтр давно стал необходимым элементом любого устройства, подключенного к сети. Его называют по-разному: межсетевой экран, брандмауэр, фаервол (firewall).
Он регулирует пересылку проходящих через него пакетов данных. В соответствии с правилами, которые задаются при настройке, фаервол блокирует входящие запросы из интернета на подключение к серверу. Это позволяет изолировать программное обеспечение сервера от нежелательных и потенциально опасных проникновений из сети.
Для защиты виртуального сервера можно использовать либо фаервол, встроенный в операционную систему, либо настроить фаервол на уровне сервера прямо в панели управления сервиса 1cloud.
Правила для фаервола будут отличаться в зависимости от задач, для которых используется сервер. Подробнее о принципах работы фаервола и рекомендациях по настройке, читайте этой в статье.
4. Защитить веб-браузер
Если вы развернули веб-сервер, на котором хранится сайт, необходимо защитить канал связи пользователя с вашим ресурсом. Чаще всего таким каналом является браузер. Защитить его можно с помощью SSL/TSL-шифрования. По нынешней практике, шифровать нужно не только данные зарегистрированных пользователей, но и данные всех посетителей сайта.
Для этого требуется установить SSL-сертификат, чтобы данные пользователей передавались с помощью протокола HTTPs. Даже если злоумышленник перехватит информацию, то не сможет ее расшифровать.
Сертификаты отличаются уровнем шифрования и уровнем валидации владельца сайта. Одни подтверждают только доменное имя, другие — домен и организацию, третьи выдаются после расширенной проверки. Больше информации о том, какой сертификат выбрать для вашего сайта, найдете в статье «Что такое SSL-сертификат и зачем его покупать?».
5. Изолировать части информационной системы
Безопасность сервера обеспечивается не только внешним периметром защиты, но и архитектурой информационной системы, особенно, если она состоит из разделяемых частей. Например, серверу базы данных совсем не обязательно быть видимым напрямую из интернета по публичному адресу. Его можно дополнительно изолировать внутри информационной системы.
Обычно пользовательский интерфейс обеспечивают веб-серверы. Они должны оставаться доступными из интернета. Но все остальные элементы в большинстве случаев могут быть спрятаны в «глубине» периметров безопасности.
Для организации таких периметров можно использовать подсети разных типов. Например, частная подсеть, вообще, не имеет прямого соединения с интернетом.
6. Подключить мониторинг
Даже если у вашей информационной системы имеется круглосуточная дежурная техническая служба, ни один человек не в состоянии непрерывно внимательно следить за всеми параметрами ее работы. Требуются автоматизированные средства наблюдения, чтобы вовремя обнаружить изменения в работе и быстро принять меры по устранению причин. Для этого используется мониторинг.
Наблюдать за работой системы можно из разных точек: как внутри информационной системы, так и снаружи. В Linux-системах популярно свободно распространяемое приложение Munin, в Windows имеется штатная система мониторинга, а также множество продуктов сторонних разработчиков. Также вы можете подключить мониторинг прямо в панели управления 1cloud, что займет у вас не больше минуты. Это позволит наблюдать за работой ваших серверов из разных точек интернета по разным условиям.
7. Вовремя обнаружить вторжение
При наблюдении за работой вашей информационной системы важно своевременно обнаруживать попытки злоумышленников проникнуть в неё. В принципе, это — тот же мониторинг, о котором уже было сказано. Но с учетом специфики выявляемых событий, соответствующие средства отнесены в отдельную группу, названную системами обнаружения вторжения (Intrusion Detection System, IDS).
В качестве признаков вторжения или попыток такового можно рассматривать разные события. Например, продолжительные (необязательно интенсивные) попытки подобрать пароли к разным учетными записям пользователей.
При этом для правильного выявления факта вторжения могут фиксироваться и анализироваться разные сопутствующие события и их параметры. Системы обнаружения вторжения могут иметь дополнительные средства оперативного реагирования. Например, если сетевой адрес источника угрозы выявлен, настройки сетевого фильтра могут быть автоматически изменены так, чтобы все обращения с этого адреса в дальнейшем игнорировались.
IDS-продуктов существует много. Среди них есть как коммерческие, так и свободно-распространяемые. В качестве примера коммерческого продукта можно привести решение компании VAS Experts, свободно-распространяемого — Suricata.
8. Зарегистрировать события и проанализировать
Эта группа инструментов также связана с мониторингом. Но если для последнего важно оперативное выявление аномалий в штатной работе наблюдаемой системы, то основная задача систем протоколирования и аудита — регистрация происходящего для дальнейшего анализа, если таковой потребуется. Например, в случае расследования какого-то инцидента.
Часто под аудитом понимают регистрацию действий пользователей информационной системы, их доступ к разным данным, файлам и операции с ними. Во многих операционных системах имеются штатные средства аудита файлов, приложений и других подобных объектов.
Здесь, в первую очередь, следует обратить внимание не на сбор первичных данных — сколько-нибудь серьезные программные продукты его обеспечивают — а на инструменты анализа большого объема разнородных данных. В этой области также имеется много достаточно зрелых продуктов. Для примера можно назвать: Splunk, Loggly, Logentries.
Что дальше
После того, как вы настроите систему защиты нашего сервера, не будет лишним проверить ее надежность. Найти потенциальные уязвимости можно с помощью искусственной атаки. Этот метод оценки безопасности называется пентест. Обычно для его проведения приглашают специалистов по информационной безопасности, но некоторые тесты вы можете провести самостоятельно, применив программы для взлома серверов.