ВВЕДЕНИЕ
В современных условиях информатизации общества вопросы обеспечения информационной безопасности и контроля доступа к вычислительным ресурсам приобретают особую значимость. Операционная система Windows, являясь наиболее распространённой платформой для персональных компьютеров, предоставляет пользователям широкие возможности по запуску произвольных приложений. Однако эта свобода создаёт серьёзные риски: от несанкционированной установки вредоносного программного обеспечения до нарушения корпоративных политик безопасности и снижения производительности системы.
Существующие штатные средства контроля приложений в Windows (такие как AppLocker и Software Restriction Policies) имеют существенные ограничения: они доступны только в старших редакциях операционной системы (Enterprise, Education), требуют сложной настройки через групповые политики и глубоких знаний в области администрирования. Это делает их малопригодными для малых организаций, образовательных учреждений и домашних пользователей.
В связи с этим возникает потребность в простом, эффективном и доступном инструменте контроля процессов, который мог бы работать на любых версиях Windows без необходимости сложной настройки и дополнительных лицензи
1.Основная часть
1.1 Обоснование актуальности разработки программы
Современные операционные системы предоставляют пользователям свободу запуска любых приложений, что создаёт риски:
- несанкционированная установка вредоносного ПО;
- нарушение корпоративных политик безопасности;
- снижение производительности из-за фоновых приложений;
- утечка конфиденциальной информации;
- нарушение лицензионных соглашений;
Стандартные средства Windows (AppLocker, Software Restriction Policies) требуют:
- версий Windows Enterprise/Education;
- сложной настройки через групповые политики;
- административных прав для изменения.
Основной задачей разработки программы Process Guardian является простое, эффективное и доступное решение для управления процессами операционной системы для всех версий Windows.
1.2.Назначение и область применения программы
Разработанная программа Process Guardian (защитник процессов) – это специализированное программное обеспечение для автоматического контроля и управления запущенными процессами в операционной системе Windows. Программа реализует механизм принудительного завершения нежелательных процессов на основе предварительно настроенного белого списка разрешённых приложений.
Область применения:
корпоративная безопасность: ограничение запуска несанкционированного ПО на рабочих местах;
образовательные учреждения: контроль доступных приложений в компьютерных классах;
киоски и терминалы: обеспечение работы только разрешённых программ;
родительский контроль: ограничение доступа детей к нежелательным приложениям;
производственные системы: предотвращение запуска постороннего ПО на критических рабочих станциях.
1.3 Функциональные возможности программы
Основные функциональные возможности разработанной программы представлены в таблице 1.
Таблица 1- Основные функции программы Process Guardian
|
Функция |
Описание |
|
Мониторинг процессов |
Непрерывное отслеживание всех запущенных процессов с интервалом 5 секунд |
|
Фильтрация по белому списку |
Автоматическая проверка каждого процесса относительно списка разрешённых |
|
Принудительное завершение |
Мгновенная остановка нежелательных процессов через API Windows |
|
Логирование действий |
Запись всех событий в файл с временными метками |
|
Защита критических процессов |
Исключение системных процессов для предотвращения сбоев О |
|
Безопасная остановка |
Корректное завершение работы программы по команде пользователя |
Дополнительные возможности программы Process Guardian:
- Расширенный белый список: Более 80 предустановленных системных процессов
- Поддержка Unicode: Корректная обработка имён процессов на любых языках
- Привилегии отладки: Автоматическое получение прав для управления процессами
- Минимальное потребление ресурсов: <1% CPU, ~5 МБ памяти
1.4. Техническая реализация программы
1.4.1 Архитектура программы
Основные функции разработанной программы представлены на рисунке 1. Это просмотр и сканирование процессов операционной системы, проверка разрешеных программ, включенных в «белый список», завершение нежелательных приложений, запись в журнал информации о произведенных действиях.
Рисунок 1 - Архитектура программы
1.4.2 Используемые технологии
Для разработки программы были использованы приложения и технологии [1,2] представленные в таблице 2.
Таблица 2 - Технологии создания программы Process Guardian
|
Компонент |
Технология |
|
Язык программирования |
C++ |
|
Платформа |
Windows API (Win32) |
|
Работа с процессами |
Toolhelp32 API |
|
Управление привелегиями |
Windows Security API |
|
Логирование |
Fstream (C++ библиотека) |
|
Интерфейс |
Консольное приложение |
Основным элементом разработки программы были функции Windows API .
Windows API включает набор функций, структур данных и констант, предоставляемых перационной системой Windows для разработки приложений. Позволяет программам напрямую взаимодействовать с ОС: создавать окна, управлять ресурсами, работать с файлами, обрабатывать события [3-8].
Ключевые API функции, использованныепри создании программы:
CreateToolhelp32Snapshot() - создание снимка процессов;
Process32First() - начало перебора;
Process32Next() - продолжение перебора;
OpenProcess() - открытие процесса;
TerminateProcess() - завершение процесса;
AdjustTokenPrivileges() - изменение привилегий;
WideCharToMultiByte() - конвертация Unicode.
1.4.3 Описание работы программы
Разработанная программа обеспечивает безопасность и стабильность работы операционной системы. Описание возможностей защиты операционной системы Windows приведены в таблице 3.
Таблица 3 - Возможности защиты ОС Windows
|
Возможность |
Описание |
|
Белый список системных процессов |
80+ критических процессов Windows защищены от завершения |
|
Защита от самозавершения |
Игнорирование собственного процесса |
|
Проверка привелегий |
Автоматическая проверка прав администратора |
|
Обработка ошибок |
Graceful degradation при отсутствии прав доступа |
|
Логирование |
Полная аудируемость всех действий |
Описание мер по предотвращению сбоев:
защита от моргания интерфейса: исключение процессов explorer.exe, sihost.exe, dwm.exe;
стабильность ядра: Защита csrss.exe, wininit.exe, services.exe;
сохранность данных: корректное завершение с освобождением ресурсов.
Примеры использования программы.
Сценарий 1: Образовательный компьютерный класс.
Задача: разрешить только учебное программное обеспечение
Решение: в белый список добавлены браузер, текстовый редактор, среда разработки. Все игры и развлекательные приложения автоматически закрываются.
Сценарий 2: Корпоративный киоск.
Задача: обеспечить работу только одного приложения.
Решение: В белый список включено только целевое приложение и системные процессы. Пользователь не может выйти за пределы заданного интерфейса.
Сценарий 3: Родительский контроль.
Задача: Ограничить доступ к играм .
Решение: Игровые процессы автоматически завершаются, разрешены только образовательные приложения. На рирунке 2 представлен фрагмент программного кода функции ScanAndKillProcesses.
Рисунок 2 - Функция ScanAndKillProcesses (фрагмент исходного кода)
Основной алгоритм работы функции ScanAndKillProcesses:
1. Создание снимка всех запущенных процессов через CreateToolhelp32Snapshot().
2. Последовательный перебор процессов с помощью Process32First() и Process32Next().
3. Проверка каждого процесса на наличие в белом списке.
4. Завершение нежелательных процессов через TerminateProcess().
5. Освобождение ресурсов и логирование результатов.
Функция вызывается циклически каждые 5 секунд до остановки программы пользователем.
Интерфейс программы Process Guardian
В консоли отображается текущий статус мониторинга, интервал проверки (5 секунд) и информация о запущенных процессах. Программа работает в фоновом режиме и фиксирует все действия в лог-файл process_log.txt. Для остановки пользователем предусмотрена команда нажатия клавиши Q.
ЗАКЛЮЧЕНИЕ
Process Guardian представляет собой эффективное, простое в использовании и надёжное решение для контроля процессов в операционной системе Windows.
Программа успешно сочетает в себе:
функциональность – полный контроль над процессами ОС;
безопасность – защита критических системных компонентов ;
производительность – минимальное потребление ресурсов;
удобство – простая настройка и управление.
Программа может быть использована как в образовательных целях (изучение системного программирования), так и в реальных сценариях обеспечения информационной безопасности.
Список использованных источников и литературы
Петцольд Ч. «Программирование для Windows». 5-е изд. — М.: Вильямс, 2018. — 896 с.
Зыков, С. В. Программирование : учебник и практикум для вузов / С. В. Зыков. — 2-е изд., перераб. и доп. — Москва : Издательство Юрайт, 2026. — 285 с. — (Высшее образование). — ISBN 978-5-534-16031-4. — Текст : электронный // Образовательная платформа Юрайт [сайт]. — URL: https://urait.ru/bcode/583644 (дата обращения: 28.04.2026).
2. Microsoft Docs. Process Security and Access Rights. — Режим доступа: https://docs.microsoft.com/en-us/windows/win32/procthread/process-security-and-access-rights
3. Microsoft Docs. Tool Help Library. — Режим доступа: https://docs.microsoft.com/en-us/windows/win32/toolhelp/tool-help-library
4. Microsoft Docs. CreateToolhelp32Snapshot Function. — Режим доступа: https://docs.microsoft.com/en-us/windows/win32/api/tlhelp32/nf-tlhelp32-createtoolhelp32snapshot
5. Microsoft Docs. TerminateProcess Function. — Режим доступа: https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-terminateprocess
6. Microsoft Docs. AdjustTokenPrivileges Function. — Режим доступа: https://docs.microsoft.com/en-us/windo
7. CodeProject. Process Management in Windows. — Режим доступа: https://www.codeproject.com/Articles/Process-Management-in-Windows
8. Stack Overflow. Terminating processes programmatically. — Режим доступа: https://stackoverflow.com/questions/tagged/process-termination