728x90
목표와 전체 아키텍처
- 목표
- 내부정보/개인정보의 저장·복사·반출(USB, 메일, 클라우드, 프린트) 전 과정 추적
- 정책 위반 시 즉시 차단/격리, 증거 보존, 법적 감사 대응
- 오탐 최소화와 운영 편의(예외 승인·화이트리스트·대시보드) 확보
- 권장 아키텍처(요약)
- 엔드포인트 DLP/EDR: USB·프린트·클립보드·클라우드 전송 가시화/차단
- 프린트 보안: 드라이버/에이전트/복합기 서버형 워터마크 + 출력 결재/로그
- SIEM/SOAR: 모든 이벤트를 ECS(또는 공통 스키마)로 표준화 → 규칙·UEBA·플레이북
- 데이터 분류/라벨링: 민감도 라벨(공개/내부/중요/기밀), EDM/포맷/정규식/ML 결합
- 무결성·보존: WORM/S3 Object Lock, 해시·서명, 장기보관(법적 준거)
USB 쓰기/읽기 모니터링 & 통제
- 정책 원칙
- 기본: 읽기 허용·쓰기 제한(승인제), 관리자/보안팀의 예외 승인 프로세스
- 허용 장치: 회사 지급 디바이스(시리얼/VID/PID 화이트리스트)만 쓰기 허용
- 시나리오: 야간/휴일 대량 복사, 고위험 계정·퇴직 예정자 활동, 민감도 ‘중요/기밀’ 파일 이동 시 경보/차단
- 로그 스키마(핵심 필드)
@timestamp, user.account, user.department, host.hostname, source.ip
device.vendor, device.model, device.serial, device.vid, device.pid, volume.label
event.action (connect|write|read|copy|delete), outcome (success|blocked|fail)
file.path, file.name, file.extension, file.size, file.hash
policy.id, policy.name, rule.id, rule.name, risk.score
integrity.hash, integrity.signature, collector (edr|dlp|osquery|wazuh)
- 탐지 규칙(예시)
- “10분 내 동일 사용자·동일 장치에서 문서형 파일 200건↑ 쓰기”
- “민감도 라벨 Secret/Restricted 파일을 removable 드라이브로 복사”
- “허용 목록 외 미인증 USB 장치 연결(시도 포함)”
- Windows 구현 팁
- GPO(기본 통제)
- 경로:
컴퓨터 구성 → 관리 템플릿 → 시스템 → 이동식 저장소 액세스
- 핵심: Removable Disks: Deny write access, All Removable Storage classes: Deny all access
- 경로:
- Sysmon(파일 생성/복사 가시화)
Event ID 11 (FileCreate)
→ 이동식 드라이브 경로 필터<!-- sysmon config 예시: FileCreate, 이동식 경로 패턴 --> <RuleGroup name="FileCreate on Removable" groupRelation="or"> <FileCreate onmatch="include"> <TargetFilename condition="begin with">E:\</TargetFilename> <TargetFilename condition="begin with">F:\</TargetFilename> <!-- 회사 환경의 공통 removable 드라이브 문자 범위를 추가 --> </FileCreate> </RuleGroup>
- PowerShell로 USB 연결 이벤트 조회(예시)
# Kernel-PnP / DriverFrameworks 이벤트 조회 Get-WinEvent -FilterHashtable @{ LogName='System'; Id=@(20001,20003,2101,410,430) # 환경에 맞춰 조정 StartTime=(Get-Date).AddDays(-1) } | Select TimeCreated, Id, ProviderName, Message
- 레지스트리(포렌식)
HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR
(연결 이력)
- Microsoft Purview Endpoint DLP 사용 시
- 민감도 라벨·EDM(Exact Data Match)·정책과 결합해 자동 차단/승인 워크플로 구축
- Linux 구현 팁
- usbguard (연결 차단/허용 정책)
# 설치 & 기동 sudo apt-get install -y usbguard sudo systemctl enable --now usbguard # 현재 장치 기반 정책 생성(초안) sudo usbguard generate-policy | sudo tee /etc/usbguard/rules.conf # 동적 허용/차단 sudo usbguard list-devices sudo usbguard allow-device <id> sudo usbguard block-device <id>
- auditd(파일 쓰기 추적)
# /etc/audit/rules.d/usb.rules -w /media -p w -k usb_write -w /run/media -p w -k usb_write -w /mnt -p w -k usb_write # 적용 sudo augenrules --load sudo systemctl restart auditd
- 마운트 지점(예:
/media
,/run/media
,/mnt/usb*
) 대상 쓰기/생성 이벤트 감시
- 마운트 지점(예:
- udev + 스크립트: 장치 연결 시 메타데이터/마운트 지점 기록 → SIEM 전송
- Wazuh/Osquery:
usb_devices
테이블(Osquery), FIM 경로(마운트 포인트) 실시간 모니터
300x250
내부정보/개인정보 저장·반출 모니터링
- 데이터 분류/라벨링(권장 4단계)
- Public / Internal / Restricted / Secret
- 파일 메타에 라벨·태그 부여(문서속성/분류툴/자동 라벨러)
- 탐지 기술 조합
- EDM/디렉토리 매칭: 고객/직원 번호 테이블 기반 정합 탐지
- 패턴/포맷: 주민번호·계좌·전화·이메일·카드 BIN 등(오탐 방지 마스킹·체크섬)
- ML/OCR: 스캔 PDF/이미지 내 개인정보 인식
- 유출 경로 커버리지
- USB/프린트/클라우드(Drive/Box/외부 공유)/웹 업로드/이메일/IM
- 시간대·량·민감도·사용자 리스크 점수 기반 상황 인지형 정책(ABAC)
이벤트 수집 & 통합 분석(SIEM)
- 수집원 표준화
- EDR/DLP/OS/프린트/메일/프록시/클라우드 → 단일 스키마(ECS 등) 매핑
- 타임스탬프·타임존 표준화(NTP), 호스트/사용자 식별자 정규화
- 핵심 상관 규칙
- [USB 연결] + [10분 내 문서 100건↑ 복사] + [민감 라벨] → High
- [민감 파일] + [외부 메일 첨부] + [야간] + [새로운 수신자 도메인] → High
- [프린트 대량] + [워터마크 해제 시도] + [승인 불일치] → High
- Elastic 예시(KQL)
(event.category:file and event.action:(create or write)) and file.extension:(doc docx xls xlsx pdf ppt pptx) and (file.path:/^[D-Z]:\\.+/ or file.drive.type:"removable") and user.name:* and host.name:*
- Wazuh 룰(요지)
syscheck
에서 마운트 경로 대량 생성 이벤트 집계 → 임계치 초과 알림local_rules.xml
로usb_write
키워드(auditd) 상향 분류
프린트 보안 & 워터마크
- 방식 비교
- 드라이버 내 워터마크: 빠름/간단, 중앙 통제·이력 제한
- PC 에이전트: 정보(계정·IP·문서명·시간·QR) 다양, 정책 유연
- 복합기 서버형: 중앙 통제, 결재/로그 일원화, 비용 효율
- 정책 포인트
- 기본 워터마크 상시 적용(“대외비/출력자/시간/IP/문서명/QR”)
- 특수문서 예외는 결재 필수, 해제 로그 남김
- 출력량 임계치/야간 출력 경보, 부서별 허용 프린터 제한
- 드라이버 설정(Windows 개요)
- 인쇄 → 프린터 속성/기본 설정 → 워터마크
- 변수 사용 예:
출력자:%USERNAME% / %DATE% %TIME%
USB 감사 로그 설계(무결성·적시성·상세성)
- 필수
- 누가/언제/어떤 장치/어떤 행위/어떤 파일/결과
- 무결성:
integrity.hash
(SHA-256), 서명/체인, WORM/보관기간 - 프라이버시: 민감·개인정보는 최소수집·마스킹(예: 파일 내용 저장 금지)
- JSON 예시
{ "@timestamp": "2025-09-16T09:45:22+09:00", "user": {"account": "jjchoi", "department": "SecOps"}, "host": {"hostname": "C24-LAP-042", "ip": "10.20.30.40"}, "device": {"vendor": "SanDisk", "vid": "0781", "pid": "5567", "serial": "123ABC", "volume": "WORK_USB"}, "event": {"action": "write", "outcome": "success", "category": "file"}, "file": {"path": "E:\\보고\\개인정보_취급계정.xlsx", "extension": "xlsx", "size": 524288, "hash": "sha256:..."}, "policy": {"id": "DLP-USB-001", "name": "USB Write Restricted"}, "risk": {"score": 85, "reason": "SensitiveLabel:Secret + BulkWrite"}, "integrity": {"hash": "sha256:...", "signature": "cms:..."}, "collector": "edr" }
윈도우/리눅스 구현 레시피(요점만)
- Windows
- 쓰기 차단(GPO): Removable Disks: Deny write access = Enabled
- 감사 정책
auditpol /set /subcategory:"Removable Storage" /success:enable /failure:enable
- Sysmon 설치 + 구성 배포(GPO/로그온 스크립트)
- EDR/DLP 에이전트: 장치 화이트리스트, 파일 라벨·EDM 규칙, 차단/승인 워크플로
- SIEM 전달: Winlogbeat/Agent → Elastic/Wazuh
- Linux
- usbguard: 연결 제어(허용/차단/학습)
- auditd: 마운트 경로 쓰기 이벤트 키워드
usb_write
- FIM(와주/Wazuh):
/media/
등 경로 실시간 모니터 - Osquery:
usb_devices
주기 수집, 결과 → Fleet/Wazuh/Elastic - Syslog/Agent: journal → SIEM 전송
개인정보 외부 반출 “자동 대응 플레이북”(SOAR)
- 트리거(예)
- “민감 라벨 파일 + 외부 메일 첨부”
- “USB 쓰기 대량 + 야간/휴일 + 고위험 계정”
- “프린트 대량 + 워터마크 해제 시도”
- 자동 단계
- (A) 즉시 조치: 전송 차단(메일/웹/USB/클라우드), 네트워크 격리(호스트), 계정 일시 잠금(권한 축소)
- (B) 증거 보존: 관련 로그·해시·정책·스크린샷/메일 헤더 수집, 케이스 생성(TheHive 등)
- (C) 케이스 라우팅: 담당자·관리자 알림(Slack/이메일), SLA 타이머 시작
- (D) 영향 평가: 파일 목록·수신자·노출 범위/수량, 법적 신고 요건 검토
- (E) 복구/통지: 외부 전송 취소 요청, 저장소 접근 회수, 교육/재발방지
- (F) 종료/개선: RCA, 룰/정책/예외 목록 보정
- SOAR 의사코드(개념)
playbook: PII_Exfil_Block trigger: - rule: "USB_BulkWrite_Sensitive" - rule: "Email_External_Attachment_Sensitive" steps: - isolate_or_block: { host: "{{host.name}}", channel: "{{exfil.channel}}" } - collect_artifacts: [logs, policy, file_hash, recipients, device_meta] - create_case: { system: "TheHive", severity: "high" } - notify: { channels: ["SecOps", "Manager"], template: "PII_ALERT" } - assess_impact: { inputs: ["file_list", "recipients", "count"] } - remediate: { actions: ["revoke_share", "delete_external_copy", "reset_tokens"] } - close_case: { rca: true, improve_rules: true }
운영 점검 체크리스트(요약)
- 정책/인증: 데이터 분류표 최신화, 예외 승인 로그 존재, ISMS-P/ISO27001 맵핑
- 에이전트: 배포 현황 100%, 버전/정책 동기화, 우회 시도 탐지
- 탐지 품질: 오탐률·미탐률·MTTD/MTTR 지표, 상관 규칙 튜닝
- 대응 체계: SOAR 성공률, 격리·차단 평균 소요, 케이스 누락 없음
- 무결성/보존: 해시 검증 성공, WORM/Object Lock 상태, 시간 동기
- 교육/캠페인: 분기별 보안 인식 강화, 고위험 부서 추가 트레이닝
준거(요지)
- 개인정보보호법/ISMS-P/ISO 27001: 최소수집, 목적 외 이용 금지, 접근통제, 로그 보존·위변조 방지, 침해사고 신고 의무(해당 시)
- 프라이버시 by Design: 내용 수집 최소화(메타 중심), 필요 시 익명/가명 처리
KPI & 대시보드 지표
- 탐지·차단: 일·주간 USB 대량복사 건수, 차단률, 승인 처리 시간
- 민감도 흐름: 라벨 등급별 외부 전송 시도, 경로(USB/메일/클라우드/프린트) 분포
- 대응 성능: 평균 격리시간, 케이스당 처리시간, 재발률
- 커버리지: 에이전트 설치율, 정책 적용 성공률, 로그 수집 누락 호스트
단계별 구축 로드맵
- 0–2주: 정책 정립(데이터 분류), PoC 범위·KPI 확정, 에이전트 샘플 배포
- 3–6주: USB/프린트/메일 경로 규칙화, SIEM 상관 규칙·대시보드, SOAR 최소 플레이북
- 6–12주: 민감도 라벨/EDM 고도화, 예외·결재 자동화, 교육·운영 프로세스 정착
규칙/쿼리/설정 샘플 모음
- Elastic Detection(개념 EQL)
file where event.action in ("creation","modification") and file.extension in ("doc","docx","xls","xlsx","pdf","ppt","pptx") and (starts_with(file.path, "E:\\") or file.drive.type == "removable")
- Sigma(개념, Sysmon 기반)
title: Bulk Document Writes to Removable Drive logsource: { product: windows, category: file_create } detection: sel_ext: FileName|endswith: - .doc - .docx - .xls - .xlsx - .pdf sel_path: TargetFilename|startswith: - 'E:\' - 'F:\' condition: sel_ext and sel_path level: high
- Wazuh FIM(ossec.conf 예시, Windows)
<syscheck> <directories realtime="yes">E:\</directories> <directories realtime="yes">F:\</directories> <frequency>60</frequency> </syscheck>
- Linux udev 후킹(개념)
# /etc/udev/rules.d/99-usb-log.rules ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", RUN+="/usr/local/bin/usb-log.sh add %k" ACTION=="remove", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", RUN+="/usr/local/bin/usb-log.sh remove %k"
프린트 워터마크 운영 팁
- 기본값을 ‘워터마크 ON’ (회사명/대외비/출력자/시간/IP/문서명/QR)
- 해제=결재 + 감사로그 (누가·언제·왜)
- 야간·대량 출력 경보 + 부서별 할당 프린터 + 원격/모바일 출력 제한
- 복합기 서버형이면 중앙 로그 + 결재 시스템 연계로 통일
자주 빠지는 함정(및 대응)
- 오탐 남발: 패턴만 쓰지 말고 EDM/라벨/맥락(시간·량·신규수신자)을 결합
- 에이전트 미배포: SW 배포 스테이지·자가 점검(헬스체크) 대시보드 필수
- 로그 무결성 간과: 해시·서명·WORM, 시간 동기화(NTP) 반드시
- 예외 남발: 만료일·사유·승인자 로깅 + 주기 검토(자동 만료 알림)
보안 점검 포인트
- 정책: 데이터 분류표/라벨, USB 쓰기 승인제, 프린트 워터마크 상시 적용
- 시스템: DLP/EDR/프린트/메일/클라우드/프록시 에이전트 배포 100%
- 로그: 누가/언제/장치/행위/파일/결과 + 무결성 보장 + 장기 보관
- 탐지: 대량·야간·신규수신·미인증장치·워터마크 해제 상관규칙
- 대응: SOAR 자동 격리/차단/증거수집/케이스화/보고 템플릿
- 준거: ISMS-P/ISO27001 통제 맵핑, 정기 점검·훈련·교육
728x90
그리드형(광고전용)
댓글