본문 바로가기

내부정보 유출 방지 USB·개인정보·프린트 워터마크·탐지·플레이북 자동화

728x90

목표와 전체 아키텍처

  1. 목표
  • 내부정보/개인정보의 저장·복사·반출(USB, 메일, 클라우드, 프린트) 전 과정 추적
  • 정책 위반 시 즉시 차단/격리, 증거 보존, 법적 감사 대응
  • 오탐 최소화와 운영 편의(예외 승인·화이트리스트·대시보드) 확보
  1. 권장 아키텍처(요약)
  • 엔드포인트 DLP/EDR: USB·프린트·클립보드·클라우드 전송 가시화/차단
  • 프린트 보안: 드라이버/에이전트/복합기 서버형 워터마크 + 출력 결재/로그
  • SIEM/SOAR: 모든 이벤트를 ECS(또는 공통 스키마)로 표준화 → 규칙·UEBA·플레이북
  • 데이터 분류/라벨링: 민감도 라벨(공개/내부/중요/기밀), EDM/포맷/정규식/ML 결합
  • 무결성·보존: WORM/S3 Object Lock, 해시·서명, 장기보관(법적 준거)

USB 쓰기/읽기 모니터링 & 통제

  1. 정책 원칙
  • 기본: 읽기 허용·쓰기 제한(승인제), 관리자/보안팀의 예외 승인 프로세스
  • 허용 장치: 회사 지급 디바이스(시리얼/VID/PID 화이트리스트)만 쓰기 허용
  • 시나리오: 야간/휴일 대량 복사, 고위험 계정·퇴직 예정자 활동, 민감도 ‘중요/기밀’ 파일 이동 시 경보/차단
  1. 로그 스키마(핵심 필드)
  • @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)
  1. 탐지 규칙(예시)
  • “10분 내 동일 사용자·동일 장치에서 문서형 파일 200건↑ 쓰기
  • “민감도 라벨 Secret/Restricted 파일을 removable 드라이브로 복사”
  • “허용 목록 외 미인증 USB 장치 연결(시도 포함)
  1. 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)·정책과 결합해 자동 차단/승인 워크플로 구축
  1. 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

내부정보/개인정보 저장·반출 모니터링

  1. 데이터 분류/라벨링(권장 4단계)
  • Public / Internal / Restricted / Secret
  • 파일 메타에 라벨·태그 부여(문서속성/분류툴/자동 라벨러)
  1. 탐지 기술 조합
  • EDM/디렉토리 매칭: 고객/직원 번호 테이블 기반 정합 탐지
  • 패턴/포맷: 주민번호·계좌·전화·이메일·카드 BIN 등(오탐 방지 마스킹·체크섬)
  • ML/OCR: 스캔 PDF/이미지 내 개인정보 인식
  1. 유출 경로 커버리지
  • USB/프린트/클라우드(Drive/Box/외부 공유)/웹 업로드/이메일/IM
  • 시간대·량·민감도·사용자 리스크 점수 기반 상황 인지형 정책(ABAC)

이벤트 수집 & 통합 분석(SIEM)

  1. 수집원 표준화
  • EDR/DLP/OS/프린트/메일/프록시/클라우드 → 단일 스키마(ECS 등) 매핑
  • 타임스탬프·타임존 표준화(NTP), 호스트/사용자 식별자 정규화
  1. 핵심 상관 규칙
  • [USB 연결] + [10분 내 문서 100건↑ 복사] + [민감 라벨] → High
  • [민감 파일] + [외부 메일 첨부] + [야간] + [새로운 수신자 도메인] → High
  • [프린트 대량] + [워터마크 해제 시도] + [승인 불일치] → High
  1. 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:*
  1. Wazuh 룰(요지)
  • syscheck에서 마운트 경로 대량 생성 이벤트 집계 → 임계치 초과 알림
  • local_rules.xmlusb_write 키워드(auditd) 상향 분류

프린트 보안 & 워터마크

  1. 방식 비교
  • 드라이버 내 워터마크: 빠름/간단, 중앙 통제·이력 제한
  • PC 에이전트: 정보(계정·IP·문서명·시간·QR) 다양, 정책 유연
  • 복합기 서버형: 중앙 통제, 결재/로그 일원화, 비용 효율
  1. 정책 포인트
  • 기본 워터마크 상시 적용(“대외비/출력자/시간/IP/문서명/QR”)
  • 특수문서 예외는 결재 필수, 해제 로그 남김
  • 출력량 임계치/야간 출력 경보, 부서별 허용 프린터 제한
  1. 드라이버 설정(Windows 개요)
  • 인쇄 → 프린터 속성/기본 설정 → 워터마크
  • 변수 사용 예: 출력자:%USERNAME% / %DATE% %TIME%

USB 감사 로그 설계(무결성·적시성·상세성)

  1. 필수
  • 누가/언제/어떤 장치/어떤 행위/어떤 파일/결과
  • 무결성: integrity.hash(SHA-256), 서명/체인, WORM/보관기간
  • 프라이버시: 민감·개인정보는 최소수집·마스킹(예: 파일 내용 저장 금지)
  1. 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"
    }

윈도우/리눅스 구현 레시피(요점만)

  1. 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
  1. Linux
  • usbguard: 연결 제어(허용/차단/학습)
  • auditd: 마운트 경로 쓰기 이벤트 키워드 usb_write
  • FIM(와주/Wazuh): /media/ 등 경로 실시간 모니터
  • Osquery: usb_devices 주기 수집, 결과 → Fleet/Wazuh/Elastic
  • Syslog/Agent: journal → SIEM 전송

개인정보 외부 반출 “자동 대응 플레이북”(SOAR)

  1. 트리거(예)
  • “민감 라벨 파일 + 외부 메일 첨부”
  • “USB 쓰기 대량 + 야간/휴일 + 고위험 계정”
  • “프린트 대량 + 워터마크 해제 시도”
  1. 자동 단계
  • (A) 즉시 조치: 전송 차단(메일/웹/USB/클라우드), 네트워크 격리(호스트), 계정 일시 잠금(권한 축소)
  • (B) 증거 보존: 관련 로그·해시·정책·스크린샷/메일 헤더 수집, 케이스 생성(TheHive 등)
  • (C) 케이스 라우팅: 담당자·관리자 알림(Slack/이메일), SLA 타이머 시작
  • (D) 영향 평가: 파일 목록·수신자·노출 범위/수량, 법적 신고 요건 검토
  • (E) 복구/통지: 외부 전송 취소 요청, 저장소 접근 회수, 교육/재발방지
  • (F) 종료/개선: RCA, 룰/정책/예외 목록 보정
  1. 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 }

운영 점검 체크리스트(요약)

  1. 정책/인증: 데이터 분류표 최신화, 예외 승인 로그 존재, ISMS-P/ISO27001 맵핑
  2. 에이전트: 배포 현황 100%, 버전/정책 동기화, 우회 시도 탐지
  3. 탐지 품질: 오탐률·미탐률·MTTD/MTTR 지표, 상관 규칙 튜닝
  4. 대응 체계: SOAR 성공률, 격리·차단 평균 소요, 케이스 누락 없음
  5. 무결성/보존: 해시 검증 성공, WORM/Object Lock 상태, 시간 동기
  6. 교육/캠페인: 분기별 보안 인식 강화, 고위험 부서 추가 트레이닝

준거(요지)

  • 개인정보보호법/ISMS-P/ISO 27001: 최소수집, 목적 외 이용 금지, 접근통제, 로그 보존·위변조 방지, 침해사고 신고 의무(해당 시)
  • 프라이버시 by Design: 내용 수집 최소화(메타 중심), 필요 시 익명/가명 처리

KPI & 대시보드 지표

  • 탐지·차단: 일·주간 USB 대량복사 건수, 차단률, 승인 처리 시간
  • 민감도 흐름: 라벨 등급별 외부 전송 시도, 경로(USB/메일/클라우드/프린트) 분포
  • 대응 성능: 평균 격리시간, 케이스당 처리시간, 재발률
  • 커버리지: 에이전트 설치율, 정책 적용 성공률, 로그 수집 누락 호스트

단계별 구축 로드맵

  1. 0–2주: 정책 정립(데이터 분류), PoC 범위·KPI 확정, 에이전트 샘플 배포
  2. 3–6주: USB/프린트/메일 경로 규칙화, SIEM 상관 규칙·대시보드, SOAR 최소 플레이북
  3. 6–12주: 민감도 라벨/EDM 고도화, 예외·결재 자동화, 교육·운영 프로세스 정착

규칙/쿼리/설정 샘플 모음

  1. 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")
  1. 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
  1. Wazuh FIM(ossec.conf 예시, Windows)
    <syscheck>
      <directories realtime="yes">E:\</directories>
      <directories realtime="yes">F:\</directories>
      <frequency>60</frequency>
    </syscheck>
  1. 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) 반드시
  • 예외 남발: 만료일·사유·승인자 로깅 + 주기 검토(자동 만료 알림)

보안 점검 포인트

  1. 정책: 데이터 분류표/라벨, USB 쓰기 승인제, 프린트 워터마크 상시 적용
  2. 시스템: DLP/EDR/프린트/메일/클라우드/프록시 에이전트 배포 100%
  3. 로그: 누가/언제/장치/행위/파일/결과 + 무결성 보장 + 장기 보관
  4. 탐지: 대량·야간·신규수신·미인증장치·워터마크 해제 상관규칙
  5. 대응: SOAR 자동 격리/차단/증거수집/케이스화/보고 템플릿
  6. 준거: ISMS-P/ISO27001 통제 맵핑, 정기 점검·훈련·교육
728x90
그리드형(광고전용)

댓글