Это может показаться само собой разумеющимся, но лучший способ обеспечить безопасность вашего сервера – это поддерживать его в актуальном состоянии. Это не обязательно означает, что вы должны быть на переднем крае и применять обновления, как только они будут выпущены, практически без тестирования, а просто иметь процесс, гарантирующий, что обновления действительно применяются в разумные сроки. Возраст большинства эксплуатируемых уязвимостей превышает год, хотя критические обновления следует применять как можно скорее при тестировании, а затем в производственной среде, если проблем нет.
Существуют разные виды обновлений: исправления, как правило, устраняют одну уязвимость; накопительные пакеты – это группа пакетов, которые устраняют несколько, возможно, связанных уязвимостей, а пакеты обновления – это обновления для широкого спектра уязвимостей, состоящих из десятков или сотен отдельных исправлений. Обязательно загляните на многочисленные форумы пользователей Microsoft после выпуска обновления, чтобы узнать, какие впечатления от него испытывают другие люди. Имейте в виду, что версия ОС также является разновидностью обновления, и использование устаревших серверных версий значительно отстает от кривой безопасности.
Если ваш производственный график позволяет это, вам следует настроить автоматические обновления на своем сервере. К сожалению, многим ИТ-отделам не хватает рабочей силы для проверки и тестирования каждого патча, и это может привести к застою, когда дело доходит до установки обновлений. Однако гораздо опаснее оставлять производственную систему без исправлений, чем автоматически обновлять ее, по крайней мере, для критических исправлений. По возможности, обновления следует размещать поэтапно, чтобы тестовые среды получали их на неделю или около того раньше, что дает командам возможность наблюдать за их поведением. Необязательные обновления можно выполнить вручную, поскольку они обычно устраняют незначительные проблемы.
Другие обновления программного обеспечения MS также через Центр обновления Windows, поэтому не забудьте включить обновления для других продуктов, если вы используете Exchange, SQL или другую технологию сервера MS. Каждое приложение необходимо регулярно обновлять и тестировать.
Разница во времени всего в 5 минут полностью нарушит вход в Windows и различные другие функции, которые полагаются на безопасность Kerberos. Серверы, являющиеся членами домена, будут автоматически синхронизировать свое время с контроллером домена при присоединении к домену, но на автономных серверах необходимо настроить NTP для синхронизации с внешним источником, чтобы часы оставались точными. Контроллеры домена также должны синхронизировать свое время с сервером времени, чтобы весь домен оставался в рабочем диапазоне фактического времени.
Например, если вы создаете веб-сервер, вам нужно, чтобы для этого сервера из Интернета были открыты только веб-порты (80 и 443). Если анонимные интернет-клиенты могут общаться с сервером на других портах, это создает огромную и ненужную угрозу безопасности. Если у сервера есть другие функции, такие как удаленный рабочий стол (RDP) для управления, они должны быть доступны только через VPN-соединение, чтобы неавторизованные люди не могли использовать порт по своему желанию из сети.
Брандмауэр Windows – это приличный встроенный программный брандмауэр, который позволяет конфигурировать трафик на основе портов изнутри ОС. На автономном сервере или любом сервере без аппаратного брандмауэра перед ним брандмауэр Windows по крайней мере обеспечивает некоторую защиту от сетевых атак, ограничивая поверхность атаки разрешенными портами. Тем не менее, аппаратный брандмауэр всегда является лучшим выбором, поскольку он разгружает трафик на другое устройство и предлагает больше возможностей для обработки этого трафика, позволяя серверу выполнять свои основные обязанности. Какой бы метод вы ни использовали, ключевым моментом является ограничение трафика только необходимыми маршрутами.
Как упоминалось выше, если вы используете RDP, убедитесь, что он доступен только через VPN, если это вообще возможно. Если оставить его открытым для Интернета, это не гарантирует, что вас взломают, но это дает потенциальным хакерам еще одно вторжение на ваш сервер.
Убедитесь, что RDP доступен только авторизованным пользователям. По умолчанию все администраторы могут использовать RDP, если он включен на сервере. Дополнительные люди могут присоединиться к группе пользователей удаленного рабочего стола для доступа, не становясь администраторами.
Помимо RDP, следует тщательно заблокировать различные другие механизмы удаленного доступа, такие как Powershell и SSH, если они используются, и сделать их доступными только в среде VPN. Telnet вообще не следует использовать, поскольку он передает информацию в виде обычного текста и во многих отношениях крайне небезопасен. То же самое и с FTP. По возможности используйте SFTP или SSH (из VPN) и вообще избегайте незашифрованных коммуникаций.
Сервер Windows имеет набор служб по умолчанию, которые запускаются автоматически и работают в фоновом режиме. Многие из них необходимы для работы ОС, но некоторые из них не требуются и должны быть отключены, если не используются. Следуя той же логике, что и брандмауэр, мы хотим минимизировать поверхность атаки сервера, отключив все, кроме основных функций. В старых версиях MS server больше ненужных сервисов, чем в новых, поэтому внимательно проверяйте все серверы 2008 или 2003 (!).
Важные службы должны быть настроены на автоматический запуск, чтобы сервер мог восстановиться без вмешательства человека после сбоя. Для более сложных приложений воспользуйтесь функцией автоматического (отложенного запуска), чтобы дать другим службам возможность начать работу до запуска интенсивных служб приложений. Вы также можете настроить зависимости служб, в которых служба будет ждать успешного запуска другой службы или набора служб перед запуском. Зависимости также позволяют вам останавливать и запускать сразу всю цепочку, что может быть полезно, когда важно время.
Наконец, каждая служба работает в контексте безопасности определенного пользователя. Для служб Windows по умолчанию это часто учетные записи локальной системы, локальной службы или сетевой службы. Эта конфигурация может работать большую часть времени, но для приложений и пользовательских сервисов передовой опыт диктует настройку учетных записей для конкретных сервисов, локально или в AD, для обработки этих сервисов с минимально необходимым объемом доступа. Это удерживает злоумышленников, скомпрометировавших приложение, от распространения этого взлома на другие области сервера или домена.
Корпорация Майкрософт предоставляет анализаторы передового опыта на основе ролей и версии сервера, которые могут помочь вам еще больше укрепить ваши системы путем сканирования и предоставления рекомендаций.
Хотя контроль учетных записей пользователей (UAC) может раздражать, он служит важной цели абстрагирования исполняемых файлов от контекста безопасности вошедшего в систему пользователя. Это означает, что даже если вы вошли в систему как администратор, UAC предотвратит запуск приложений от вашего имени без вашего согласия. Это предотвращает запуск вредоносных программ в фоновом режиме и предотвращает запуск программ установки или другого кода вредоносными веб-сайтами. По возможности оставляйте UAC включенным.
Советы в этом руководстве помогают защитить операционную систему Windows, но каждое приложение, которое вы запускаете, также должно быть усилено. Общие серверные приложения Microsoft, такие как MSSQL и Exchange, имеют особые механизмы безопасности, которые могут помочь защитить их от атак, таких как программы- вымогатели, такие как WannaCry. Обязательно исследуйте и настраивайте каждое приложение для максимальной устойчивости. Если вы создаете веб-сервер, вы также можете следовать нашему руководству по усилению защиты, чтобы улучшить его безопасность в Интернете.
Начало: Контрольный список повышения безопасности Windows Server. Часть 1
Продолжение: Контрольный список повышения безопасности Windows Server. Часть 3