
PowerShell로 구축된 개인용 Windows SOC 제품군 — 네트워크 연결, 리소스 사용량, 예약된 작업 및 전원 이벤트를 심각도 분류 및 기준 탐지와 함께 모니터링합니다.
응용 프로그램 개발(Anwendungsentwicklung) 재교육 과정 중에 처음부터 구축한 개인용 보안 운영 센터(SOC)입니다. 이 제품군은 Windows 엔드포인트에서 네트워크 이상, 리소스 급증, 프로세스 실행, 레지스트리 변경, 보안 이벤트 로그 활동, 예약된 작업 변경, DNS 쿼리 및 전원 이벤트를 모니터링하며, 모든 것을 구조화된 파일에 기록하여 Python 엔진을 통해 주간 분석 및 상관 분석을 수행합니다.

단일 페이지 Flask 대시보드. 12개 수집기 + 상관 분석 엔진 활성화, 실시간 리소스 모니터, 아웃바운드 연결 피드, 수집기 이벤트 타일 및 스트리밍 엔진 알림.
공식적인 IT 재교육과 병행하여 실용적인 학습 프로젝트로 구축된 이 제품군은 개인 Windows 머신에 실제 SOC 개념(기준 수집, 이상 탐지, 심각도 분류, 로그 집계 및 소스 간 상관 분석)을 적용합니다. 설계 프로세스는 처음부터 적대적이었으며, 각 단계는 다음 단계가 구축되기 전에 레드 팀 분석에 대해 스트레스 테스트를 거쳤고, 이러한 발견에서 정의된 48개의 상관 규칙이 Python 엔진의 아키텍처를 주도했습니다.
개발은 roadmap.md에서 추적됩니다 — 현재 상태, 9단계 포렌식 엔진 계획 및 장기적인 강화 목표.
대시보드는 Flask 서버로 실행되며 수집기 프로세스 탐지를 위해 관리자 권한 상승이 필요합니다. 클론 후 바로 가기를 만드세요:
C:\path\to\SOC를 실제 설치 경로로 바꾸세요.
3. 이름을 SOC Dashboard로 지정합니다.
4. 바로 가기를 마우스 오른쪽 버튼으로 클릭 → 속성 → 고급 → 관리자 권한으로 실행을 선택합니다.
5. 확인을 클릭합니다.
이 바로 가기는 Flask를 시작하고, 준비될 때까지 기다린 후 자동으로 브라우저를 엽니다. Flask가 이미 실행 중이면 시작을 건너뛰고 바로 브라우저를 엽니다. 상태 점은 바로 가기를 관리자 권한 없이 실행하면 회색으로 표시됩니다.
대시보드는 깨끗한 시작/중지 순서를 강제하여 감사자 모듈(아침 무결성 검사, 저녁 해시 체인 검증)이 항상 순서대로 실행되도록 합니다.

모든 수집기 하트비트가 빨간색입니다(상태 파일이 없거나 중지됨). 대시보드 종료 버튼이 숨겨져 있습니다. 대시보드는 End Day가 실행될 때까지 종료를 허용하지 않습니다.

Start Day는 아침 감사자 모듈(SHA256 로그 확인, 아카이브 해시 체인 검증)을 실행하고 12개 수집기와 상관 엔진을 모두 시작합니다. 각 수집기가 보고되면 하트비트가 녹색으로 바뀝니다.

End Day는 모든 수집기를 순서대로 중지하고 저녁 감사자 모듈을 실행합니다. 시퀀스가 실행되는 동안 수집기 점은 녹색으로 유지됩니다. 상태 표시줄에는 *감사자 저녁 실행 중…*이 표시됩니다.

저녁 감사가 완료되면 모든 수집기 점이 빨간색으로 바뀌고, 상태 표시줄에는 *저녁 감사 완료. 안전하게 종료할 수 있습니다.*라고 표시되며, 대시보드 종료 버튼이 나타납니다. 이 버튼을 클릭하면 Flask 프로세스가 깨끗하게 종료됩니다.

브라우저 탭은 수동으로 닫아야 합니다(브라우저는 외부 프로세스에 닫기 API를 노출하지 않음).
수집기 이벤트 타일은 소스별로 가장 최근 심각도 태그가 지정된 이벤트를 보여줍니다. 엔진 경고 피드는 Python 엔진의 상관 결과를 실시간으로 스트리밍하며, 규칙 번호, 신뢰도 점수, 전체 증거 체인 및 SHA256 증거 해시를 포함합니다.

예시: 규칙 35(원시 디스크 읽기)가 powershell.exe에서 \Device\HarddiskVolume3에 대한 원시 핸들을 열 때 실행됨. 규칙 31(DLL 로드 이상)이 사용자 쓰기 가능 경로에서 Defender DLL을 로드하는 것을 플래깅. 모두 전체 프로세스 출처 및 파일 해시 포함.
제품군은 3계층 아키텍처를 따릅니다.
수집 계층 — 백그라운드에서 지속적으로 실행되는 PowerShell 수집기. 각 수집기는 특정 데이터 소스를 모니터링하고 구조화되고 심각도 태그가 지정된 로그 항목을 작성합니다. 모두 관리자 권한 상승이 필요합니다.
분석 계층 — 수집된 로그를 파싱하고 주간 요약 보고서를 생성하는 PowerShell 분석 스크립트. 일반 사용자로 실행됩니다.
상관 엔진(7단계 — 완료) — 모든 수집기 로그를 수집하고, 이벤트를 공통 스키마로 정규화하며, 모든 데이터 스트림에 대해 규칙 기반 및 위험 점수 기반 상관을 실행하는 Python 엔진. 세 가지 프로그램:
| 프로그램 | 단계 | 역할 |
|---|---|---|
| 상관 엔진 | 7 — 완료 | 수집, 정규화, 상관, 경고(SQLite 운영 저장소) |
| SOC 대시보드 | 8 — 완료 | 실시간 가시성 — 수집기 상태, 경고, 증거 체인(Flask) |
| 포렌식 엔진 | 9 — 계획 | 사후 이벤트 조사 — 슈퍼 타임라인, 프로세스 계통, 비콘 분석, 지속성 감사, 추가 전용 증거 데이터뱅크 |
| 포렌식 대시보드 | 9 — 계획 | 요약된 포렌식 결론 — 색상 코드 상태, 보고서 생성, 증거 탐색 |
| 단계 | 스크립트 | 별명 | 기능 |
|---|---|---|---|
| 1 | Sentinel.ps1 | 네트워크 감시자 | 지리적 위치 정보를 포함한 아웃바운드 TCP 연결, 프로세스 경로 확인 및 누적 전송 추적 |
| 1 | Bulwark.ps1 | 야간 감시 | 인바운드 수신 포트 — 기준선 차이, 새/닫힌 포트 탐지, 지리적 위치 이상 |
| 1 | Steward.ps1 | 병참장교 | Windows 성능 카운터를 사용한 프로세스별 CPU, RAM 및 디스크 I/O (8개 언어 자동 감지) |
| 1 | CityGuard.ps1 | 도시 경비 | 예약된 작업 추가, 삭제, 수정 — 작업 및 트리거 변경 탐지 |
| 1 | Watchman.ps1 | 파수꾼 | 전원 이벤트 — 부팅, 절전, 깨우기, 예기치 않은 종료 및 근무 시간 이후 활동 |
| 2A | Registry_Warden.ps1 | — | 레지스트리 실행 키, RunOnce, 서비스 기준선 및 차이, SAM RID 무결성 검사 |
| 2B | Harbinger.ps1 | — | WMI/CIM 이벤트 기반 프로세스 생성 모니터 — 고위험 경로 탐지, 부모 프로세스 추적 |
| 3 | Bloodhound.ps1 | — | DNS 쿼리 모니터 — Shannon 엔트로피 기반 DGA 탐지, TXT 레코드 플래깅, ICMP 볼륨 급증 탐지 |
| 4 | Warden.ps1 | — | 제품군 감시 — SHA256 스크립트 FIM, 로그 크기 회귀, 수집기 상태, 유지 관리 플래그, 자체 감시 예약 작업 |
| 5 | SecEventLog.ps1 | — | Windows 보안 이벤트 로그 — 로그온 이상, 계정 조작, 권한 상승, 서비스 설치, 무차별 대입 공격 탐지 |
| 6 | DoH_Detector.ps1 | — | DNS-over-HTTPS 회피 탐지기 — 허용되지 않은 프로세스에서 28개의 알려진 DoH 확인자 IP로의 TCP 연결 |
| 7 | SysmonWatcher.ps1 | — | Sysmon 커널 수준 이벤트 모니터 — 프로세스 인젝션, LSASS 액세스, 원시 디스크 읽기, 서명되지 않은 드라이버 로드, WMI 지속성 및 브라우저 디버거 연결(22개 이벤트 ID) |
| 스크립트 | 별명 | 기능 |
|---|---|---|
| Investigator.ps1 | 감사 보고서 | Sentinel 아웃바운드 연결 로그의 주간 분석 |
| Crow.ps1 | 사령관 | Bulwark 인바운드 포트 로그의 주간 분석 |
| Ledger.ps1 | 학사 | RAM 추세 탐지를 포함한 Steward 리소스 로그의 주간 분석 |
| Castellan.ps1 | 성주 | CityGuard 예약 작업 로그의 주간 분석 |
| Auditor.ps1 | — | 아침/저녁 모듈 무결성 감사 — SHA256 로그 확인, 아카이브 해시 체인 검증 |
다중 라운드 레드 팀 분석을 통해 정의됨(문서 참조). 7단계에서 구현됨.