Кажется, не так давно, примерно в 2015 году, мы начали слышать о хакерах, которые не использовали вредоносное ПО внутри периметра цели.
И использовали то, что было под рукой – это были различные инструменты, расположенные на целевом участке.
Это оказалось идеальным способом совершить «грязное дело», не производя лишнего «шума».
В наши дни этот подход набрал обороты и стал мейнстримом, в первую очередь благодаря обилию готовых хакерских инструментов, таких как PowerShell Empire. Мы уже писали о том, как PowerShell в сочетании с PowerView становится мощным поставщиком информации для хакеров (вся эта мудрость собрана в нашей коллекции, которую вам стоит прочитать как можно скорее).
Конечно, любой инструмент можно использовать как во благо, так и во вред, поэтому я не думаю, что подразумеваю, что PowerShell был создан для того, чтобы облегчить жизнь хакерам.
Но точно так же, как вы не оставите мощный болторез рядом с висячим замком, вы, вероятно, не захотите позволить хакерам или, по крайней мере, максимально усложнить им доступ к PowerShell. Это, в свою очередь, поднимает важную тему в мире кибербезопасности: ограничение приложений, также известное как внесение в белые и черные списки.
Общая идея состоит в том, чтобы операционная система знала и строго контролировала, какие приложения пользователь может запускать, а какие нет. Например, как гомо-блогу мне обычно нужны некоторые базовые инструменты и приложения (и теплое место для сна по ночам), и я прекрасно могу жить без PowerShell, netcat, psexec и всех других команд, о которых я говорю.
рассказал в предыдущих постах.
То же самое касается большинства работников компаний, а потому квалифицированный ИТ-специалист должен уметь составить список приложений, безопасных для использования.
В мире Windows можно обеспечить соблюдение правил выполнения приложений с помощью специальных политик использования программ, а в последнее время и AppLocker. Однако, прежде чем мы перейдем к этим сложным идеям, давайте попробуем два очень простых решения и посмотрим, что в них не так.
ACL и другие упрощения
Мы часто думаем, что списки ACL Windows используются для управления доступом к читаемому контенту.Но их можно применять и к исполняемым файлам — то есть .
exe, .
vbs, .
ps1 и другим.
Я вернулся в облако Amazon Web Services, где у меня размещен домен Windows для мифической и когда-то легендарной компании Acme, и поработал там с ACL, чтобы продемонстрировать некоторые ограничения доступа.
PowerShell.exe, как вам легко скажет любой системный администратор, находится в папке C:\Windows\System32\WindowsPowerShell\v1.0. Я зашел в эту папку, вызвал ее свойства и моментально ограничил права выполнения PowerShell двумя основными группами: «Администраторы домена» и «Acme-SnowFlakes», группа опытных пользователей Acme.
Я вошел на сервер под именем Боб (моя должность в Acme) и попытался вызвать PowerShell. Результаты ниже.
На практике, вероятно, можно было бы придумать сценарий — почему бы не использовать PowerShell для автоматизации этого процесса настройки ACL для всех ноутбуков и серверов в малых и средних компаниях.
Это неплохое решение.
Если вам не нравится идея изменения списков ACL для исполняемых файлов, PowerShell предлагает собственные инструменты ограничения.
Как пользователь с правами администратора вы можете использовать что угодно, но проще всего использовать встроенный командлет Set-ExecutionPolicy. Это уже не такое неуклюжее решение, как установка ACL. Например, вы сможете ограничить запуск PowerShell только в интерактивном режиме (с помощью параметра «Ограничено»), чтобы он не запускал сценарии PS, которые могут содержать хакерское вредоносное ПО.
Однако это также заблокирует сценарии PowerShell, выполняемые вашим ИТ-персоналом.
Чтобы разрешить одобренные сценарии, но отключить вредоносные хакерские сценарии, используйте параметр RemoteSigned. Теперь PowerShell будет запускать только подписанные скрипты.
Администраторам, конечно, придется создавать свои собственные сценарии, а затем подписывать их, используя проверенные учетные данные.
Я не буду вдаваться в подробности, как это сделать, главным образом потому, что это очень легко обойти.
Кто-то здесь в блоге описал целых 15 способов обойти ограничения безопасности в PowerShell. Самый простой — использовать параметр Bypass в самом PowerShell. Да! (см.
ниже).
Звучит как дыра в безопасности, да?
Итак, в PowerShell есть несколько серьезных уязвимостей.
Это кстати и понятно, ведь это ведь всего лишь программная оболочка.
Но даже подход ограничения на уровне ACL имеет свои фундаментальные проблемы.
Если бы хакеры смягчили свою философию, они могли бы легко загрузить, скажем, трояна удаленного доступа (RAT) — собственную копию PowerShell.exe. А затем запустите его напрямую, легко избегая ограничений разрешений с помощью локального PowerShell.
Политики ограничения использования программного обеспечения
Эти серьезные дыры в безопасности (и многие другие) всегда сопровождают операционные системы потребительского уровня.Это побудило исследователей ОС создать безопасную операционную систему, обладающую достаточной мощностью для контроля над тем, что можно запускать.
В мире Windows эти силы известны как политики ограничения программного обеспечения (SRP) — для справки, проверьте это — они настраиваются через редактор групповой политики.
С их помощью вы можете контролировать, какие приложения можно запускать, на основе расширения файла, имен путей и наличия у приложения цифровой подписи.
Самый эффективный, хотя и самый болезненный подход — запретить все, а затем добавить туда те приложения, которые вам действительно нужны.
Это известно как белый список.
Мы рассмотрим это более подробно в следующей части.
В любом случае вам нужно будет запустить редактор политики gpEdit и перейти в «Политика локального компьютера»> «Настройки Windows»> «Настройки безопасности»> «Политики ограничения программного обеспечения»> «Уровни безопасности».
Если вы нажмете «Запрещено», то сможете сделать эту политику безопасности по умолчанию – не запускать никаких исполняемых файлов!
Белый список: Запретить по умолчанию, а затем добавить разрешенные приложения в «Дополнительные правила».
Это больше похоже на тактику выжженной земли.
На практике вам придется ввести «дополнительные правила» для добавления обратно разрешенных приложений (включая их имя и путь).
Если вы выйдете из PowerShell, вы фактически отключите инструмент на месте.
К сожалению, вы не можете настраивать правила политики ограничения использования программного обеспечения на основе отдельных групп или пользователей.
Дерьмо! И теперь это логически подводит нас к последнему усовершенствованию безопасности Microsoft, известному как AppLocker, которое имеет свои уникальные функции, позволяющие открывать приложения.
Давайте поговорим об этом в следующий раз.
Теги: #информационная безопасность #Системное администрирование #Хранение данных #PowerShell #varonis
-
Банковская Роботизированная Автоматизация
19 Oct, 24 -
Опасны Ли Одноранговые Приложения?
19 Oct, 24 -
Operan: Ускоряет Производительность Ansible
19 Oct, 24