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