Руслан Рахметов, Security Vision
Уважаемые коллеги, в предыдущей публикации мы начали обсуждать построение системы управления информационной безопасностью и говорили про фундаментальный этап данного процесса - инвентаризацию и управление ИТ активами. В данной публикации мы продолжим эту тему и приведем практические советы для проведения базовой инвентаризации и управления ИТ-активами собственными силами. Вперед!
Итак, решения ITAM (IT Asset Management) призваны аккумулировать максимально доступное количество информации об ИТ-активах. Достичь этого можно, во-первых, за счет интеграции с информационными системами: данные из Active Directory, WSUS и SCCM серверов Microsoft, решений для контроля за сетевой инфраструктурой (например, Infoblox или Skybox), систем Helpdesk, даже выгрузки из ERP-систем могут содержать интересующую информацию для учета ИТ активов. Во-вторых, средства защиты информации, такие как IDS/IPS-системы, сетевые системы аутентификации (например, Cisco Identity Services Engine или CheckPoint Identity Awareness blade), сканеры сети, анализаторы защищенности и сканеры уязвимостей могут обогатить ITAM сведениями о сетевой активности и конфигурации устройств в сети. И, наконец, сами ITAM-системы могут получать самостоятельно информацию агентным либо безагентным способом. В случае агентного способа на устройства устанавливается агент - клиент ITAM, который собирает информацию об устройстве и передает на сервер ITAM системы для инвентаризации ИТ активов. В случае же безагентного варианта сам ITAM-сервер подключается к интересующему хосту и получает от него информацию, однако, для данного способа необходимы соответствующие полномочия доступа.
Приведем некоторые практические рекомендации по получению инвентаризационных данных. Сфокусируемся на использовании штатного функционала ОС (возьмем ОС Windows как наиболее часто встречающуюся) с применением минимальных привилегий в инфраструктуре. Сразу оговоримся, что некоторые из приведенных ниже способов активно используются и злоумышленниками, производящими рекогносцировку и дальнейшее продвижение в сети атакованной компании, поэтому следует контролировать выполнение подобных запросов в защищаемой инфраструктуре.
1. Получение данных из Active Directory.
Любой аутентифицированный пользователь домена по умолчанию может получить все данные объектов AD (за исключением тех, доступ к которым специально ограничен ACL). Целесообразно будет получить информацию о структуре домена, понять, в каких OU находятся ПК и сервера, где хранятся данные о пользователях и служебных учетных записях. Из атрибутов объекта типа «Компьютер» можно получить данные об установленной ОС (атрибуты operatingSystem и operatingSystemVersion), а также об активности устройства (атрибут lastLogon). В целях упрощения инвентаризации в поле «Описание» администраторы могут вносить характеризующие объект данные, при этом конфиденциальные сведения лучше заносить в виде некого цифрового кода или индекса, сопоставление которых с реальным бизнес-процессом или функцией производится в другой системе.
2. Получение данных с устройств.
Как правило, при инвентаризации получают информацию о конфигурации устройства (версия ОС, установленное ПО, MAC-адрес) и данные о залогиненном пользователе.
2.1. В случае, если для инвентаризации выделена учетная запись, обладающая правами локального администратора на сканируемых устройствах, то задача решается несколькими способами:
· PowerShell Remoting можно использовать в современных версиях ОС (начиная с Windows 7), он работает поверх WinRM, можно создавать достаточно гибкие конструкции вида Invoke-Command -Computer pcname.domain.local . Пример для получения MAC-адреса удаленного устройства: Invoke-Command -Computer pcname.domain.local -ScriptBlock {getmac} -credential domain.local\user
· WinRM работает поверх WMI и также применяется в современных ОС, он позволяет давать удаленные команды вида winrs -r:pcname.domain -u:domain.local\user CommandName , где вместо CommandName можно использовать любую утилиту, которая отработает на удаленном ПК, например, getmac или ipconfig. При этом следует учесть, что по умолчанию WinRM использует Керберос для аутентификации, поэтому обратиться к удаленному ПК по IP-адресу не получится (при использовании IP-адреса аутентификация в инфраструктуре Windows переключается на NTLM). Кроме того, на удаленном ПК должна быть включена и настроена служба удаленного управления Windows (WS-Management).
· можно воспользоваться иными утилитами, позволяющими указывать в качестве параметра имя удаленного ПК, например:
getmac /s pcname.domain.local /fo list /v (при этом простейшим способом получения MAC-адреса удаленного устройства в пределах одного broadcast-домена будет вывод ARP-таблицы)
query user /server:pcname.domain.local
Можно также воспользоваться утилитами из пакета Microsoft Sysinternals Suite, такими как PsLoggedon и PsExec, которые можно использовать для выполнения команд на удаленных ПК.
2.2. Рассмотрим теперь случай, когда учетная запись для проведения инвентаризации ограничена.
Есть несколько причин использовать ограниченные учетные записи, и главная из них - опасность реализации т.н. replay-атак (атак повторного воспроизведения), примерами которых являются атаки Pass-the-Hash (PtH) и Pass-the-Ticket (PtT). Обе атаки используют сохраненные в памяти удаленного процесса lsass.exe соответственно NTLM-хэш и Керберос-билет. Теперь представим, что один из инвентаризируемых ПК заражен вредоносом, который обладает административными правами на зараженном ПК и может прочитать память процесса lsass.exe. Подключаясь к такому инфицированному ПК с учетной записью, обладающей админскими полномочиями на всех ПК в домене, мы рискуем значительно облегчить атакующим жизнь и получение доступа к другим устройствам в сети. Поэтому крайне рекомендуется использовать именно ограниченные учетные записи, которые, даже в случае их «угона», не позволят атакующему существенно развить атаку. Но лучше всего совместить минимальные полномочия и универсальность использования инструментов на различных версиях ОС, включая достаточно старые. И такой способ есть: использование WMI не требует административных полномочий на удаленном ПК и работает на всех ОС Windows, начиная с Windows 98. Защищенную настройку WMI и предоставление гранулированных прав доступа мы обсудим в одной из следующих публикаций, а пока что приведем примеры WMI-запросов для получения инвентаризационных данных с удаленных ПК:
wmic /node:"pcname.domain.local" os get * /format:value - выведет информацию об ОС удаленного устройства
wmic /node:"pcname.domain.local" computersystem list full /format:list - выдаст общие сведения об устройстве
wmic /node:"pcname.domain.local" product get * /format:value - покажет список установленного ПО
wmic /node:"pcname.domain.local" nic get macaddress - отобразит MAC-адрес удаленного ПК
WMIC /node:"pcname.domain.local" /NameSpace:\\root\default Class StdRegProv Call GetStringValue sSubKeyName="SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI" sValueName="LastLoggedOnSAMUser" | findstr "sValue" - выведет имя учетной записи на удаленном ПК, полученное из соответствующей ветки реестра
Разумеется, можно «обернуть» выполняемые команды в PowerShell, например, последнюю команду можно выполнить так:
$hive = 2147483650 #численное обозначение HKLM-куста реестра
$key = "SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI"
$value = "LastLoggedOnSAMUser"
$username = get-wmiobject -list "StdRegProv" -namespace root\default -computername pcname.domain.local
($username.GetStringValue($hive,$key,$value)).svalue
Отметим, что и сам WMI по умолчанию поддерживает передачу ему в качестве параметра списка устройств в текстовом виде, а также указание логина и пароля в явном виде:
wmic /node:@pclist.txt /user:domain.local\user CommandName
Кроме того, есть еще интересные утилиты для инвентаризации сети при отсутствии повышенных привилегий, которые может использовать любой аутентифицированный доменный пользователь (или атакующий):
NetSess и NetView. Данные утилиты выдают список подключенных к общим ресурсам пользователей с их IP-адресами путем отправки SMB-запроса на ресурс \\server.domain.local\IPC$ и исполнения системной функции NetSessionEnum. При отправке таких запросов на контроллер домена можно быстро установить IP-адреса большого количества пользователей, поскольку все доменные хосты регулярно проверяют наличие обновленных доменных политик, подключаясь по SMB к контроллеру домена. В качестве меры защиты можно порекомендовать изменение разрешений на выполнение функции NetSessionEnum, например, путем выполнения скрипта NetCease .
Следует помнить, что и не аутентифицированный в домене пользователь (или атакующий) может получить большое количество информации простым «прослушиванием» сети, отправкой запросов NetBIOS и LLMNR, ARP-спуфингом. Мы будем говорить об этих техниках в следующих публикациях, пока же в целях защиты следует помнить, что все устаревшие и/или неиспользуемые протоколы, такие как NetBIOS, LLMNR, SSDP, LLTD, LLDP, следует отключать/блокировать на уровне ОС и сети, а также детектировать и предотвращать на сетевом оборудовании атаки ARP Poisoning. Следует также учесть, что в сети компании необходимо использовать аутентификацию всех подключающихся устройств - это можно реализовать, например, с помощью применения стандарта IEEE 802.1X, или, как минимум, ограничив подключающиеся устройства по их MAC-адресу с помощью технологии Port Security.
В заключение напомним, что наша платформа Security Vision содержит модуль «Управление активами», который является полноценной системой IT Asset Management, позволяющей автоматизировать стадии контроля информационных активов и выстроить процесс управления активами в несколько ступеней:
· инвентаризация активов (в ручном, автоматизированном и автоматическом режиме);
· классификация активов;
· определение взаимосвязей между активами;
· определение владельцев и ответственных за обслуживание активов;
· мониторинг сетевой доступности и состояния работоспособности.
В автоматическом режиме инвентаризации активов используются специализированные коннекторы данных, обладающие гибкой функциональностью по сбору информации об активах и интеграции с существующими ИТ-системами компании (например, Active Directory, сканер уязвимостей, DLP, антивирусная система, CMDB-система и т.д.). Инструментарий коннекторов данных позволяет агрегировать информацию об IT-активах из множества источников в едином модуле управления, при этом учтенные в системе активы возможно контролировать на предмет сетевой доступности, качества связи и текущего состояния. Свойства активов, занесенные в карточки активов, могут быть настроены максимально гибко для отражения всех принятых в организации характеристик и метрик для ИТ-активов.