Как предотвратить удаленное выполнение кода с сервера-члена домена?

Как предотвратить удаленное выполнение кода с сервера-члена домена?

Есть ли способ, используя брандмауэр, настройки групповой политики или другой элемент управления, запретить кому-либо, вошедшему в домен, удаленно выполнять код на контроллере домена (к которому у него в противном случае нет сетевого доступа), учитывая, что он мог украсть чьи-то учетные данные администратора домена? Или сетевой доступ, необходимый для обычного членства в AD, навсегда и неразрывно совпадает с сетевым доступом, необходимым для удаленного выполнения, скажем,PsExecили PowerShell?

Приведем пример:

  • Сервер Windows "member1" является членом домена для простого домена AD
  • Серверы Windows "dc1" и "dc2" являются контроллерами домена для этого простого домена.
  • между member1 и контроллерами домена есть аппаратный брандмауэр, и только те,TCP и UDP портыкоторые требуются для членства в домене, разрешены между member1 и DC.
  • Пользователь «Джек» является пользователем «member1» и, помимо доступа, описанного в предыдущем пункте, не имеет сетевого доступа к контроллерам домена.
  • Джек хитер и может получить учетные данные администратора домена «Джилл» с помощью атаки социальной инженерии или другим методом.
  • Джек получает эти учетные данные, входит в систему member1 и может удаленно выполнить код на dc1 или dc2, используя, возможно,PsExecили PowerShell, даже просто развернуть свою собственную утилиту с .NET, поскольку сетевой доступ, необходимый для членства в домене, включает сетевой доступ, необходимый для выполнения удаленных вызовов, таких как эти.

Я хочу остановить эту атаку, гарантируя, что member1 сможет выполнять только обычные функции AD (аутентификация, обновление групповой политики, синхронизация времени и т. д.) в домене, и запретить другие действия, такие как удаленное выполнение процессов на контроллерах домена.

решение1

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

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

Если у вас есть чувствительные компьютеры, которые вы хотите защитить от компрометации вашего домена, рассмотрите возможность создания отдельного домена (в отдельном лесу) для этих хостов и управления ими отдельно; это очень распространено, когда требуются безопасные анклавы. Вы также можете рассмотреть возможность вообще не присоединять их к домену, особенно если их очень мало.

Глядя на ваши комментарии, я действительно не уверен, какова ваша модель угроз.

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

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

Настройки для этого находятся в GPO, который применяется к контроллерам домена, в разделе Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment..., если это то, что вы пытаетесь сделать.

Пользователи (и другие субъекты безопасности) привязаны к домену или к машине, но не к обоим. Вы не можете делать такие вещи, как запрет прав администратора домена на основе того, с какого компьютера они подключаются в AD. Но вы можете ограничить сетевой доступ к контроллерам домена, которые не являются RODC, и этого, вероятно, должно быть достаточно (в зависимости от вашей модели угроз), чтобы предотвратить административные действия со случайных рабочих станций пользователей. Если вы хотите запретить пользователям использовать RODC в качестве опорных точек (это то, что вы хотите сделать?), я полагаю, вы можете запретить им все права входа, но это сделает администрирование довольно сложным — вместо этого я бы рекомендовал разрешить только порты репликации DS на брандмауэре между RODC и другими контроллерами домена.

Порты, которые вам необходимо открыть, указаны в документации по развертыванию RODC; см. раздел «Требуемые порты связи» по адресуhttps://technet.microsoft.com/library/dd728028%28v=ws.10%29.aspx. Но, увы, RPC должен быть разрешен, и именно так работает psexec. Это позволит вам запретить вход только с помощью таких вещей, как RDP.

Чтобы завершить это и предотвратить использование psexec с украденными учетными данными, вы всегда можете запретить администраторам домена вход в пакетное задание через вышеупомянутый GPO на контроллерах домена с возможностью записи. Это немного снизит управляемость, но это решение, которое вы можете принять. Есть действительно хороший документ об этом и других советах по безопасности учетной записи администратора домена наhttps://technet.microsoft.com/en-us/library/dn487454.aspx. Использование делегированного доступа, при котором административным учетным записям предоставляются определенные административные права посредством делегирования вместо общего администрирования домена, также может быть вариантом для вас.

решение2

Что вам нужно для доступа с контроллера домена? Поскольку у вас есть брандмауэр между member1 и контроллером домена, вы можете заблокировать весь доступ к dc1 и dc2, а затем разместить что-то вроде контроллера домена только для чтения или веб-интерфейса за пределами брандмауэра, к которому member1 может получить доступ.

решение3

Вы можете атаковать эту проблему с другой стороны, просто заблокировав все исполняемые файлы (exe, bat, ps1 и т. д.) от запуска на ваших контроллерах домена с помощью SRP или AppLocker, за исключением тех, которые вы одобрите заранее. Таким образом, даже если они получат доступ, они будут серьезно затруднены.

Но если предположить, что у кого-то есть права администратора, он может делать с вашим доменом все, что захочет, с большинства компьютеров — контроллер домена в основном используется для аутентификации...

И, как сказал Тодд, если вы не можете доверять Джилл, вам лучше удалить ее права...

решение4

Проще говоря, администратор домена может делать все, что захочет (отсюда и доменный администратор!). Нет способа заблокировать того, кто украл учетные данные администратора домена. Он может обойти любые меры безопасности, которые вы установите.

Связанный контент