
CVE-2017-0144 (EternalBlue/MS17-010)에 대한 보완 제어를 제공하는 방어적 Windows 보안 애플리케이션으로, SMB 모니터링, 공격 탐지, 자동 방화벽 대응, 구성 감사, 레거시 및 지원되지 않는 시스템에 대한 보안 보고를 포함합니다.
아직 **CVE-2017-0144 (MS17-010 / EternalBlue)**에 노출된 시스템(일반적으로 공식 Microsoft 보안 업데이트를 더 이상 받을 수 없는 레거시 또는 지원되지 않는 Windows 설치)을 위한 방어적 보완 제어를 제공하는 Windows 데스크톱 보안 애플리케이션입니다.
LegacyShield는 기본 SMBv1 취약점을 패치하지 않습니다. 모니터링, 휴리스틱 탐지, 자동화된 (일시적, 되돌릴 수 있는) 방화벽 완화, 구조화된 로깅, 전문적인 보고를 통해 공격 표면을 줄이고 가시성을 향상시킵니다. 공식 MS17-010 업데이트를 적용하거나 지원되는 Windows 버전으로 업그레이드하는 것이 최종적인 해결책입니다.
이 프로젝트에는 어떠한 종류의 익스플로잇 코드, 개념 증명 공격 코드, 권한 상승 기술 또는 공격 도구도 포함되어 있지 않습니다.
| 기능 | 요약 |
|---|---|
| 시스템 평가 | Windows 버전, SMBv1 상태, 포트 139/445 노출, 방화벽 상태, 파일 공유, 네트워크 프로필을 읽습니다(쓰지 않음). 0–100 사이의 보안 점수를 생성합니다. |
| SMB 모니터링 | OS 연결 테이블을 통해 TCP 139/445를 폴링하여 새로운 인바운드 연결을 확인합니다. 패킷 캡처나 페이로드 검사는 없습니다. |
| 탐지 엔진 | 구성 가능한 휴리스틱: 연결 버스트, 분당 볼륨, 반복된 실패한 협상. |
| 자동 대응 | 공격 소스에 대해 임시, 태그 지정, 자동 만료 Windows 방화벽 차단 규칙을 생성합니다. 자체적으로 생성하지 않은 규칙은 절대 건드리지 않으며, 완전한 롤백을 지원합니다. |
| 로깅 | 구조화된 JSON/CSV/일반 텍스트 로그와 높은 심각도 이벤트에 대한 Windows 이벤트 로그 항목. |
| 보고 | 경영진 요약 보안 보고서를 JSON, HTML 또는 PDF로 내보낼 수 있습니다. |
| 데스크톱 UI | PySide6 대시보드, 사이드바 탐색, 시스템 트레이 알림. |
| 백그라운드 서비스 | 선택적 pywin32 기반 Windows 서비스로 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가 필요합니다. 핵심/모듈/서비스 비즈니스 로직은 플랫폼에 독립적이며, 모의 Windows API 프로토콜을 통해 모든 OS에서 테스트 스위트를 실행할 수 있습니다. —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 시스템 프로그래밍, 모니터링/탐지 설계, 보안 애플리케이션 아키텍처를 보여주는 방어 엔지니어링 포트폴리오 프로젝트입니다. 특정 라이선스 없이 배포되며, 배포 전에 사용 목적에 적합한 라이선스를 추가하세요.