Процесс исполнения клиент-сервер

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Подсистема клиент/сервер времени выполнения (англ. Client/Server Runtime Subsystem, CSRSS) или csrss.exe, входит в состав операционной системы Microsoft Windows NT, и предоставляет собой часть пользовательского режима подсистемы Win32. Включена в состав Windows 2000, Windows XP, Windows 2003, Windows Vista, Windows Server 2008 и Windows 7. Поскольку большинство операций подсистемы Win32 были перенесены в режим ядра, а конкретнее в драйверы режима ядра, в Windows NT 4 и выше CSRSS в основном отвечает за обработку консоли в Win32 и графический интерфейс выключения ОС. Подсистема имеет решающее значение для функционирования ОС; поэтому завершение этого процесса приведет к отказу системы. При нормальных условиях, CSRSS не может быть завершена применением команды Taskkill или с помощью диспетчера задач Windows, хотя это возможно в Vista, если диспетчер задач запускается в режиме администратора. В Windows 7 и Windows 8 Developer Preview, диспетчер задач сообщит пользователю, что завершение процесса приведет к отказу системы, и покажет запрос хочет ли пользователь продолжить.

Завершение csrss.exe ведёт к BSOD и (аварийной) перезагрузке Windows. Исполняемый файл csrss.exe хранится в папке %SYSTEMROOT%\system32.

Обзор[править | править исходный текст]

Процесс участвует в работе:

Работа подсистемы[править | править исходный текст]

CSRSS выполняется как системный сервис пользовательского режима. Когда процесс пользовательского режима вызывает функцию с участием консольных окон, создания процесса/потока, или поддержки Side-by-Side, библиотеки Win32 (kernel32.dll, user32.dll, gdi32.dll) вместо запроса системного вызова обращаются к процессу CSRSS путем меж-процессного вызова (IPC вида Local Procedure Call), и CSRSS делает большую часть реальной работы, без того, чтобы подвергать опасности (компрометировать) ядро[1]. Однако вызовы к оконному менеджеру и сервисам GDI обрабатываются драйверами режима ядра (win32k.sys)[2].

История[править | править исходный текст]

Серия выпусков Windows NT 3.x вмещала компонент GDI (интерфейс графических устройств) внутри CSRSS, но GDI был перенесен в режим ядра в версии Windows NT 4.0 для улучшения производительности графического отображения[3]. Процесс запуска Windows был значительно изменен начиная с версии Vista. В версиях Windows Vista и 7 работает 2 экземпляра csrss.exe [4].

Угрозы[править | править исходный текст]

Известно, что вирусы, шпионские программы и трояны, заражают или маскируются под этот процесс. Это делают по меньшей мере следующие зловредные программы:

  • Nimda.E [5]
  • W32/Netsky.ab@MM [6]
  • W32/VBMania@MM [7]

Множество вирусов использует для маскировки имя приложения, чтобы не вызвать подозрения у пользователя, особенно учитывая, что для каждого терминального доступа создаётся отдельный экземпляр процесса, поэтому на серверных машинах их количество может доходить до нескольких десятков. Оригинальный файл хранится только в папке %SYSTEMROOT%\system32, а его подмена практически невозможна на компьютере с одной операционной системой.

Проблемы[править | править исходный текст]

Данная программа является критическим системным компонентом, отвечающим за вызовы функций подсистемы Win32. При её завершении система завершит работу с отображением синего экрана смерти.

Ссылки[править | править исходный текст]

  1. Detailed implementation of a system service in Windows NT. Undocumented Windows NT. Архивировано из первоисточника 15 марта 2012.
  2. Russinovich Mark Windows Internals, 5th Edition. — Microsoft Press, 2009. — P. 54.
  3. The Windows NT 4.0 Kernel mode change. MS Windows NT Kernel-mode User and GDI White Paper. Microsoft. Проверено 19 января 2009. Архивировано из первоисточника 15 марта 2012.
  4. Inside the Windows Vista Kernel - Startup Processes. Inside the Windows Vista Kernel - Startup Processes. Microsoft. Проверено 1 октября 2010. Архивировано из первоисточника 15 марта 2012.