
Защитное приложение для Windows, обеспечивающее компенсирующие меры контроля для CVE-2017-0144 (EternalBlue/MS17-010) посредством мониторинга SMB, обнаружения атак, автоматической реакции межсетевого экрана, аудита конфигурации и формирования отчетов по безопасности для устаревших и неподдерживаемых систем.
Настольное приложение безопасности для Windows, предоставляющее компенсирующий защитный контроль для систем, всё ещё подверженных уязвимости CVE-2017-0144 (MS17-010 / EternalBlue) — чаще всего это устаревшие или неподдерживаемые установки Windows, которые больше не могут получать официальные обновления безопасности Microsoft.
LegacyShield не закрывает базовую уязвимость SMBv1. Он снижает поверхность атаки и повышает наблюдаемость за счёт мониторинга, эвристического обнаружения, автоматического (временного, обратимого) смягчения через брандмауэр, структурированного журналирования и профессиональной отчётности. Установка официального обновления MS17-010 или переход на поддерживаемую версию Windows остаётся окончательным способом устранения уязвимости.
Этот проект не содержит ни эксплойтов, ни proof-of-concept кода атак, ни техник повышения привилегий, ни каких-либо атакующих инструментов.
| Возможность | Краткое описание |
|---|---|
| Оценка системы | Считывает (никогда не записывает) версию Windows, статус SMBv1, доступность портов 139/445, состояние брандмауэра, общий доступ к файлам и сетевой профиль. Формирует оценку безопасности от 0 до 100. |
| Мониторинг SMB | Опрашивает TCP 139/445 через таблицу соединений ОС на предмет новых входящих подключений. Без захвата пакетов и инспекции содержимого. |
| Модуль обнаружения | Настраиваемые эвристики: всплески подключений, количество попыток в минуту, повторные неудачные согласования. |
| Автоматическое реагирование | Создаёт временные, помеченные, автоматически истекающие правила блокировки брандмауэра Windows для источников-нарушителей; никогда не затрагивает правила, созданные не им; полная поддержка отката. |
| Журналирование | Структурированные журналы JSON/CSV/обычного текста, а также записи в журнале событий Windows для событий высокой серьёзности. |
| Отчётность | Отчёты безопасности со сводкой для руководства, экспортируемые в JSON, HTML или PDF. |
| Графический интерфейс | Панель мониторинга PySide6, боковая навигация, уведомления в системном трее. |
| Фоновая служба | Опциональная служба Windows на базе pywin32, чтобы защита продолжала работать при закрытом GUI. |
LegacyShield/
├── main.py # GUI entry point (+ install/uninstall/rollback CLI verbs)
├── legacyshield/
│ ├── core/ # Read-only system inspection, scoring, shared models
│ ├── modules/ # Config, detection engine, response engine, whitelist
│ ├── services/ # SMB monitor, firewall service, background Windows Service
│ ├── logging_/ # JSON/CSV/text log writers + Windows Event Log mirror
│ ├── reports/ # JSON/HTML/PDF report generator + HTML template
│ └── ui/ # PySide6 main window, sidebar, dashboard, pages, tray
├── config/default_config.json # Shipped default configuration
├── installer/ # PyInstaller spec, build script, manifest, Inno Setup script
├── tests/ # pytest suite incl. mocked-Windows-API tests
├── samples/ # Example config/log/report output
└── docs/ # Guides referenced below
Полное описание архитектуры, включая UML-диаграммы классов и последовательностей, приведено в ARCHITECTURE.md.
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements-dev.txt
pytest tests/ -v
python main.py
GUI (
main.py) и служба Windows (legacyshield/services/background_service.py) требуют Windows +pywin32. Бизнес-логика core/modules/services платформенно-независима, и её тестовый набор запускается в любой ОС с помощью имитации протоколов Windows API — см.tests/mocks/windows_mocks.py.
pip install -r requirements-dev.txt
python installer/build.py # runs tests, then PyInstaller -> dist/LegacyShield.exe
iscc installer/installer.iss # optional: Inno Setup -> dist/installer/LegacyShield-Setup-*.exe
Это портфолио-проект в области защитной инженерии, демонстрирующий системное программирование для Windows, проектирование мониторинга и обнаружения, а также архитектуру безопасных приложений. Он поставляется без конкретной лицензии; перед распространением добавьте лицензию, соответствующую предполагаемому использованию.