Сегодня мы поговорим о последнем кризисе PrintNightmare в отношении пользователей Windows и дадим несколько рекомендаций по защите вашего ПК. Это критическая уязвимость, расположенная в очереди печати Windows. Агентство по кибербезопасности и безопасности инфраструктуры США (CISA) выступило с заявлением по этому поводу, и с тех пор все говорят о другом. Сегодня мы обсуждаем этот вопрос от А до Я.
PrintNightmare: Как это началось?
В начале июня, 8-го числа, Microsoft опубликовала CVE-2021-1675, озаглавленную «Уязвимость, связанная с удаленным выполнением кода диспетчера очереди печати Windows». В то время это казалось незначительной угрозой, которая была идентифицирована до того, как она была использована, и которую можно было легко устранить. Поэтому поводов для беспокойства не было.
Затем крупнейшие мировые агентства безопасности начали публиковать заявления, предупреждающие о крупном обновлении CVE-2021-1675. Эти сообщения призывали пользователей и организации немедленно принять меры для защиты от этой угрозы. В то же время Microsoft опубликовала уязвимость CVE-2021-34527, которая получила название PrintNightmare.
Microsoft присвоила CVE-2021-34527 уязвимость удаленного выполнения кода, которая влияет на диспетчер очереди печати Windows. Получите больше информации здесь: https://t.co/OarPvNCX7O
– Microsoft Security Intelligence (@MsftSecIntel). 2 июля 2021 г.
В отличие от CVE-2021-1675, получившего рейтинг высокого риска, PrintNightmare с самого начала получил рейтинг критической уязвимости, поскольку позволяет удаленное выполнение кода. С тех пор было выпущено несколько обновлений, и Microsoft круглосуточно работает над этой проблемой. Тем временем, пока мы ждем окончательного решения, мы также смогли найти несколько рекомендаций по снижению рисков.
Что такое PrintNightmare?
Проблема заключается в функции очереди печати Windows, в частности в RpAddPrinterDriverEx (), которая, как следует из названия, позволяет установить новый принтер в системе. Хотя диспетчер печати не ограничивает доступ к нему, любой аутентифицированный пользователь может использовать его удаленно.
Так в чем же проблема с возможностью удаленной установки принтера пользователем и что делает PrintNightmare таким опасным? Когда мы говорим об установке принтера, мы имеем в виду его драйвер. Если кто-то может установить драйвер без полномочий, он может содержать множество вредоносных элементов. Таким образом, злоумышленник, который получает доступ к системе и использует RpAddPrinterDriverEx () для выполнения вредоносного кода, может повысить привилегии, отправить полезные данные в скомпрометированную систему и даже получить полный контроль над ПК.
Диспетчер печати – это компонент, присутствующий во всех версиях Windows, поэтому Microsoft указывает, что любая установка ее операционной системы уязвима для атаки с использованием PrintNightmare. Следовательно, какой бы ни была ваша версия Windows, в принципе ваша система подвержена воздействию PrintNightmare, и поэтому вам следует принять меры для защиты себя.
Как защитить себя от PrintNightmare?
Уже существует патч Microsoft для исправления PrintNightmare, но правда в том, что он не эффективен.
Но прежде чем мы перейдем к этому, мы должны вспомнить, что мы упоминали в начале, и различать CVE-2021-1675 и CVE-2021-34527. Что касается первого, Microsoft уже выпустила исправления, которые снижают конкретные риски этой уязвимости. Однако эти исправления не решают проблему, связанную с CVE-2021-34527.
С другой стороны, буквально вчера Microsoft выпустила патчи для PrintNightmare для разных версий Windows, включая те, которые официально больше не поддерживаются:
- KB5004945: Windows 10 20H1, 20H2 и 21H.
- KB5004946: Windows 10 версии 1909
- KB5004947: Windows 10 версии 1809 и Windows Server 2019
- KB5004949: Windows 10 версии 1803
- KB5004950: Windows 10 версии 1507
- KB5004951: Windows 7 с пакетом обновления 1 (SP1) и Windows Server 2008 R2 с пакетом обновления 1 (SP1)
- KB5004958: Windows 8.1 и Windows Server 2012
- KB5004959: Windows Server 2008 с пакетом обновления 2 (SP2)
Плохие новости начали приходить после этих выпусков, некоторые пользователи заявляют, что официальный патч неполный и не имеет никакого эффекта.
0Patch выпустил неофициальный патч, который оказался эффективным против PrintNightmare, но применение официального патча Microsoft смягчает эффект патча, разработанного 0patch, поэтому система снова уязвима для атаки, основанной на этой проблеме безопасности:
Если вы используете 0patch против PrintNightmare, НЕ применяйте обновление Windows от 6 июля! Он не только не исправляет локальный вектор атаки, но и не исправляет удаленный вектор. Однако он изменяет файл localspl.dll, в результате чего наши исправления, которые ДЕЙСТВИТЕЛЬНО устраняют проблему, перестают применяться. https://t.co/osoaxDVCoB
– 0 патч (@ 0 патч) 7 июля 2021 г.
Microsoft заявила, что работает над проблемой, но пока что рекомендуется не разрешать автоматическое обновление Windows, если используется патч 0patch, поскольку защиты, предлагаемой патчем, уже достаточно. Другая возможность – отключить службы печати, которые вам не нужны в каждой системе. Например, на серверах, если они не являются серверами печати, эти службы должны быть отключены по соображениям безопасности. А что касается конечных точек, то точно так же, сократите до минимума активные службы, связанные с печатью, особенно если мы говорим о системах, с которых вы никогда не печатаете.
Чтобы проверить текущий статус службы очереди печати, нам нужно будет открыть консоль PowerShell и ввести Get-Service -Name Spooler в командной строке. В результате мы получим его текущий статус. Если служба отображается как отключенная или отключенная, нам не о чем беспокоиться, поскольку дверь PrintNightmare остается закрытой в этой системе. Если служба активна, есть две возможности, пока мы не говорим о сервере печати, и в этом случае эти меры не могут быть применены, поскольку служба перестанет работать.
Первый, несомненно, самый радикальный, и мы можем использовать его только в том случае, если никогда не будем печатать из этой системы. В той же консоли Powershell, которую мы используем для проверки статуса службы, нам нужно будет ввести следующие команды:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType отключено
Первый немедленно остановит службу печати Windows, а второй изменит свою конфигурацию, чтобы она больше не загружалась после перезагрузки системы. Когда Microsoft выпускает патч, навсегда исправляющий PrintNightmare, вы можете повторно активировать его с помощью этой команды;
Set-Service -Name Spooler -StartupType включен
Таким образом, после перезагрузки системы вы снова сможете нормально печатать из этой системы.
Второй способ – отключить в системе только функцию сервера печати. Таким образом, вы по-прежнему сможете печатать из системы, но у нее больше не будет функции сервера печати для других компьютеров и устройств в сети. Для этого вам нужно будет получить доступ к редактору локальной групповой политики и перейти к Политике локального компьютера> Конфигурация компьютера> Административные шаблоны> Принтеры и найти запись Разрешить диспетчеру заданий печати принимать клиентские подключения.
Затем дважды щелкните по нему и проверьте его статус, который должен быть отключен, чтобы предотвратить риски PrintNightmare. Итак, если для него установлено значение «Не настроено» или «Включено», измените это значение и перезагрузите систему.
Что делать, если вы уже установили патч Microsoft для PrintNightmare?
Возможно, к тому моменту, когда вы это прочитаете, вы уже установили официальный патч Microsoft. Проблема в том, что он не решает проблему PrintNightmare. В таком случае вам придется внести изменения в настройки реестра Windows. Самый быстрый способ сделать это – открыть консоль (командную строку) и ввести следующую команду:
«HKEY_LOCAL_MACHINE Software Policies Microsoft Windows NT Printers PointAndPrint» / v RestrictDriverInstallationToAdministrators / t REG_DWORD / d 1 / f
Введите его точно так, как показано, вы можете скопировать и вставить. Имейте в виду, что, хотя он разделен из-за своей длины, это одна команда.
В принципе, эти меры уже должны обеспечивать необходимый уровень безопасности, хотя правда, что нам все равно придется ждать, пока Microsoft опубликует окончательное решение.