Открыть сервис

Демон печати

Демон печати (англ. Printing Demon, Print Demon) — системный процесс в операционных системах семейства Windows, отвечающий за управление очередью печати, взаимодействие с драйверами принтеров и передачу данных на печатающие устройства. Официальное название исполняемого файла — spoolsv.exe (Print Spooler Service). Демон печати работает как фоновый сервис, загружаемый при запуске системы, и обеспечивает буферизацию заданий печати, что позволяет пользователям отправлять документы на печать без ожидания завершения обработки предыдущего задания.

История

Происхождение термина

Термин «демон» (daemon) в контексте компьютерных систем восходит к операционным системам семейства Unix, где так назывались фоновые процессы, выполняющие системные задачи. В Windows аналогичные функции выполняют службы (services), однако в среде системных администраторов и разработчиков закрепилось название «демон печати» для обозначения подсистемы печати. Впервые механизм буферизации печати был реализован в ранних версиях Windows (Windows 3.1, Windows 95) как часть подсистемы GDI (Graphics Device Interface). В Windows NT 3.1 (1993 год) появился полноценный сервис spoolsv.exe, который стал основой для всех последующих версий Windows.

Эволюция в Windows

В Windows 2000 и Windows XP демон печати был значительно переработан: добавлена поддержка сетевой печати, улучшена обработка ошибок и введена система очередей с приоритетами. В Windows Vista и Windows 7 архитектура печати была изменена в связи с переходом на новую модель драйверов — Print Driver V4, что потребовало модификации демона. В Windows 10 и Windows 11 демон печати продолжает использоваться, но с рядом ограничений безопасности, введённых после обнаружения критических уязвимостей.

Архитектура и работа

Основные компоненты

Демон печати состоит из нескольких ключевых модулей:

  • Spoolsv.exe — основной исполняемый файл службы, запускаемый от имени системы (Local System).
  • Router (Winspool.drv) — клиентская библиотека, которая перенаправляет вызовы приложений к демону печати.
  • Print Provider — модуль, отвечающий за взаимодействие с конкретным типом принтера (локальный, сетевой, виртуальный).
  • Print Processor — компонент, обрабатывающий данные печати (например, преобразование EMF в RAW).
  • Port Monitor — драйвер, управляющий физическим подключением (LPT, USB, TCP/IP).

Процесс обработки задания

  1. Приложение (например, текстовый редактор) отправляет команду печати через GDI или DirectWrite.
  2. Winspool.drv передаёт задание в службу spoolsv.exe.
  3. Демон печати помещает задание в очередь (каталог %SystemRoot%\System32\spool\PRINTERS\).
  4. В зависимости от настроек, задание может быть предварительно обработано (например, преобразовано в формат EMF для последующей печати на другом устройстве).
  5. Print Processor обрабатывает данные, а Port Monitor отправляет их на принтер.
  6. После завершения печати задание удаляется из очереди.

Буферизация и очереди

Демон печати использует буферизацию для временного хранения заданий. Это позволяет:

  • Пользователю продолжать работу, не дожидаясь завершения печати.
  • Системе обрабатывать несколько заданий одновременно (многопоточность).
  • Перенаправлять задания на другой принтер в случае ошибки.

Уязвимости и проблемы безопасности

PrintNightmare (CVE-2021-34527)

В 2021 году была обнаружена критическая уязвимость в демоне печати Windows, получившая название PrintNightmare. Она позволяла злоумышленнику с правами обычного пользователя выполнить произвольный код с системными привилегиями через службу spoolsv.exe. Уязвимость затрагивала все версии Windows, начиная с Windows 7 и заканчивая Windows 10. Microsoft выпустила экстренные обновления безопасности, но впоследствии были найдены обходные пути. В ответ на это компания рекомендовала отключить службу печати на критически важных серверах, где она не требуется.

Другие известные уязвимости

  • CVE-2010-2729переполнение буфера в демоне печати Windows 2000 и XP, позволявшее удалённое выполнение кода.
  • CVE-2016-3238 — уязвимость, связанная с неправильной обработкой прав доступа к очереди печати, что позволяло локальному пользователю повысить привилегии.
  • CVE-2021-1678 — проблема с проверкой подлинности драйверов, которая могла быть использована для установки вредоносного ПО.

Рекомендации по безопасности

Для снижения рисков эксплуатации уязвимостей демона печати рекомендуется:

  • Отключать службу Print Spooler на серверах, не использующих печать.
  • Регулярно устанавливать обновления безопасности от Microsoft.
  • Ограничивать права пользователей на установку драйверов принтеров.
  • Использовать групповые политики для блокировки удалённого доступа к очереди печати.

Применение и значение

В корпоративной среде

Демон печати является неотъемлемой частью инфраструктуры печати в организациях. Он позволяет централизованно управлять принтерами, настраивать общие очереди и контролировать расход ресурсов. В Windows Server используется расширенная версия службы, поддерживающая кластеризацию и балансировку нагрузки.

В домашних условиях

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

В виртуальных средах

В виртуальных машинах (например, Hyper-V, VMware) демон печати может быть отключён для повышения производительности, если печать не требуется. Однако в некоторых сценариях (например, при использовании тонких клиентов) он остаётся необходимым.

Интересные факты

  • Название «демон печати» является неофициальным, но широко используется в русскоязычной технической литературе и сообществах системных администраторов.
  • В ранних версиях Windows (до Windows 95) демон печати отсутствовал — задания печати обрабатывались последовательно, что приводило к блокировке приложений.
  • В Windows 11 демон печати по умолчанию запускается только при наличии подключённого принтера, что снижает поверхность атаки.
  • В 2022 году Microsoft выпустила обновление, которое отключает службу Print Spooler на всех клиентских версиях Windows, если она не используется в течение 30 дней.

Критика

Основные нарекания к демону печати связаны с его архитектурной сложностью и исторически сложившимися проблемами безопасности. Критики отмечают, что служба spoolsv.exe имеет слишком широкие привилегии (запуск от имени системы), что делает её привлекательной целью для атак. Кроме того, зависимость от устаревших протоколов (например, SMB для сетевой печати) усложняет защиту. В ответ на это Microsoft постепенно внедряет модель «печати без демона» (Print without Spooler), но на практике она пока не получила широкого распространения.

Источники

  • Microsoft Docs. «Print Spooler Service Architecture». — 2023.
  • CVE-2021-34527. National Vulnerability Database. — 2021.
  • Русскоязычная документация Windows. «Служба печати (Spooler)». — 2022.
  • Журнал «Системный администратор». «Уязвимости демона печати: история и методы защиты». — № 7, 2022.
  • Книга «Windows Internals, Part 1» (7-е издание). — Microsoft Press, 2021.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →