1. 개요 및 배경

  • 거가대교 전산시스템 총괄로서 매일 보호나라 공지, 보안 뉴스, CVE를 따로 확인해 왔음
  • 정보가 흩어져 있어 우리 자산(ITS·OT·네트워크 장비)과 관련된 위협을 빠르게 걸러내기 어려웠음
  • 공개 피드를 한 화면에 모아 한국 연관·ITS·OT 여부를 판단하고, 자산대장과 겹치면 우선순위를 올리는 대시보드를 구축함
  • Python 3.11+, Flask, HTMX, SQLite 기반이며 네트워크 없이 샘플 모드로 바로 실행 가능함

2. 출처 및 참고

  • 아이디어 출처: ngnicky-ai/kr-secwatch (한국 보안 위협을 한 화면에서 보고 Slack으로 알리는 구상)
  • 원본 저장소는 라이선스가 없어 코드·템플릿·키워드 목록·화면 자산을 일절 가져오지 않았음
  • 거가대교 ITS·OT 자산 관점으로 처음부터 새로 작성한 독립 구현(클린룸)임
  • 라이선스: MIT (Copyright 2026 최규선). 화면 보조 htmx 2.0.4는 0BSD임

3. 구조도

KR-SecWatch ITS 구조도

  • 수집(RSS·API) → 분류·점수화 → SQLite 저장 → 대시보드·주간보고·알림 순으로 흐름
  • 모듈: collect / classify / store / alerts / report / web 으로 분리함

4. 주요 기능

4.1 수집 피드

  • 보호나라 보안공지·취약점 RSS
  • 보안뉴스, 데일리시큐 RSS (제목·짧은 요약·링크만)
  • CISA KEV, NVD CVE API 2.0(CVSS), FIRST EPSS(악용 확률)
  • ransomware.live 한국 피해 조직 정보

4.2 분류 및 우선순위 (상한 100점)

  • KEV 등재 36, EPSS×20(최대 20), CVSS÷10×16(최대 16)
  • 자산 일치 18, 한국 연관 8, ITS·OT 10, 국내 피해 주장 28
  • 72 이상 긴급, 46 이상 높음, 18 이상 주의, 그 외 참고로 구분함

4.3 자산대장 매칭

  • secwatch/assets/inventory.yaml에 Fortinet·Cisco·Ivanti, CCTV/NVR, SCADA 등 별칭을 등록함
  • 항목에 자산 별칭이 나오면 우선순위를 올려 우리 장비 관련 위협을 먼저 보게 함

4.4 알림 (기본 꺼짐)

  • Slack webhook 또는 SMTP 메일. 환경 변수가 없으면 전송하지 않음
  • 점수 하한(기본 46) 이상 + 한국·ITS·OT·자산 중 하나 해당 시에만 전송함
  • 같은 항목·채널은 1회만, 1회 실행당 최대 10건으로 제한함

4.5 랜섬웨어 정보 최소 저장

  • 조직명·국가·그룹·업종·날짜만 저장함
  • 유출 목록, onion 주소, claim_url은 저장하지 않음. 피해 등록은 범죄 그룹의 주장임을 명시함

5. 화면

대시보드

현황 대시보드. HTMX 필터로 등급·태그별 조회 가능함

주간 보고

최근 7일 주간 보고 (HTML·Markdown 출력)

모바일 화면

좁은 화면에서는 한 열로 접혀 현장에서도 확인 가능함

6. 실행 방법

python3 -m venv .venv
. .venv/bin/activate
pip install -e ".[dev]"
python -m secwatch serve --demo
  • http://127.0.0.1:8080 접속. 샘플 배너가 보이면 가상 데이터임
  • 주간 보고: python -m secwatch report --demo --out reports
  • 라이브 수집: python -m secwatch collect
  • Docker: docker run --rm -p 8080:8080 kr-secwatch-its

7. ITS 현장 적용 포인트

  • 요금·전광판·CCTV·교량 계측 등 현장 자산을 자산대장에 등록해 해당 취약점을 우선 확인함
  • KEV·EPSS 기반으로 패치 순서를 정해 점검 인력 투입을 효율화함
  • 주간 보고를 내부 보안 점검 보고 자료로 그대로 활용 가능함
  • 내부망 운영 시 127.0.0.1 바인딩과 알림 꺼짐 기본값으로 정보 유출 위험을 줄임
  • 관련 글: 취약점 점검 앱, FortiMail 대응 도구

8. 한계 및 향후 계획

  • 키워드·별칭 기반 분류라 오탐·누락 가능성이 있음
  • NVD API 키가 없으면 조회 속도가 제한됨
  • 향후 자산대장 CMDB 연동, 공급사 보안 공지 피드 추가, 점수 가중치 현장 튜닝 예정임

9. 레포지토리