- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 한글(HWP) 문서에서 나타나는 “매크로 보안 경고”를 안전하게 해소하고, 개인 및 조직 환경에서 재발을 방지하기 위한 설정과 운영 절차를 최고 전문가 수준으로 정리하여 현장에서 바로 적용하도록 돕는 것이다.
1. 한글 매크로 보안 경고의 의미와 위험도
한글 문서의 매크로는 문서 내부에 포함된 자동화 스크립트로 반복 작업을 자동화하거나 외부 데이터를 불러오는 데 사용되나, 악성 스크립트가 포함될 경우 사용자 PC 권한으로 임의 코드가 실행될 수 있어 보안 경고가 표시되는 것이다.
- 경고 표시 이유: 신뢰되지 않은 매크로 실행으로 인한 악성코드 감염 위험이 존재하기 때문이다.
- 주요 위험: 사용자 폴더 탈취, 네트워크 자격증명 수집, 추가 악성 파일 드롭, 원격 제어 시도 등이다.
- 자주 혼동되는 항목: OLE 개체, 외부 하이퍼링크, 임베디드 실행 파일도 보안 경고를 유발할 수 있다.
주의 : 경고를 단순히 끄거나 우회하는 설정은 근본 해결이 아니다. 출처 검증, 서명 검증, 격리 검증 후 합법적 업무 필요가 확인된 경우에만 허용 수준을 조정해야 한다.
2. 즉시 대응 체크리스트(개인 사용자)
- 파일 출처 확인: 신뢰 가능한 발신자, 공식 배포 경로, 배포 이력 확인을 우선 수행한다.
- 격리 열람: 업무상 반드시 확인이 필요하면 가상 머신 또는 샌드박스 환경에서 우선 열어본다.
- 백신 검사: 실시간 감시를 켠 상태에서 수동 검사까지 병행한다.
- 매크로 비활성 열람: 문서는 열되 매크로 실행은 허용하지 않고 내용만 검토한다.
- 서명 여부 확인: 디지털 서명된 매크로인지 확인하고, 서명자·인증서 유효성·체인 신뢰를 점검한다.
3. 안전하게 여는 표준 절차(SOP)
- 다운로드 후 속성 확인: 파일을 우클릭→속성에서 위험 표시가 있는지 확인하고 필요 시 격리 폴더로 이동한다.
- 오프라인 미리보기: 네트워크를 잠시 차단한 상태에서 구조적 요소(이미지, 표, 텍스트)만 검토한다.
- 매크로 내용 확인: 문서 속 매크로 편집기에서 코드 유래, 외부 연결, 파일 시스템 접근, 쉘 호출 등을 점검한다.
- 업무 필요성 판단: 매크로가 꼭 필요한 기능인지, 대체 수단이 있는지 검토 후 실행 허용 여부를 결정한다.
- 허용 시 범위 최소화: 파일 단위 또는 신뢰 위치 단위로 최소 범위에서만 허용한다.
4. 한글 보안·신뢰 설정 점검 포인트
4.1 매크로 실행 기본 정책
- 기본값 권고: “매크로 금지, 신뢰된 문서/서명/위치만 허용” 수준을 유지한다.
- 예외 처리: 조직 검증을 통과한 문서 템플릿만 예외를 부여한다.
4.2 신뢰할 수 있는 위치 설계
- 원칙: 개인 PC 임의 폴더가 아닌, 중앙에서 관리되는 읽기 전용 공유 경로를 지정한다.
- 운영: 변경 이력 로깅, 접근권한 최소화, 정기 무결성 점검을 실시한다.
4.3 신뢰할 수 있는 게시자(인증서) 정책
- 조직 발급 코드서명 인증서로 매크로 템플릿에 서명한다.
- 루트·중간 CA 체인을 사전 배포하여 사용자 단말에서 신뢰를 보장한다.
- 만료·폐기(Revocation) 시 즉시 갱신·차단 공지 및 템플릿 재배포를 시행한다.
5. 파일 출처 구분과 MOTW(Zone Identifier) 점검
인터넷·메일 첨부로 받은 파일에는 Windows가 “인터넷 영역” 표식을 부여할 수 있다. 이 표식은 애플리케이션의 보안 경고 강화 조건으로 작동한다.
# PowerShell: MOTW(Zone.Identifier) 존재 여부 확인 Get-Item -Path "C:\Users\Public\Downloads\sample.hwp" -Stream * | Where-Object {$_.Stream -eq "Zone.Identifier"}
내용 확인
Get-Content -Path "C:\Users\Public\Downloads\sample.hwp" -Stream "Zone.Identifier"
주의 : MOTW 제거로 경고를 억제하는 행위는 권장하지 않는다. 출처 검증과 서명 검증을 통한 합법적 신뢰 확립이 우선이다.
6. 디지털 서명된 매크로 신뢰 프로세스
- 서명 확인: 문서의 매크로에 적용된 코드서명 인증서의 발급자, 만료일, 사용 용도를 확인한다.
- 체인 검증: 루트·중간 인증서가 시스템 신뢰 저장소에 존재하는지 확인한다.
- 폐기 목록 확인: OCSP/CRL 확인이 가능한 네트워크에서 유효성을 점검한다.
- 조직 승인: 보안팀 승인 이후 신뢰 게시자로 등록하여 사용자 프롬프트를 줄인다.
7. 개인 사용자 설정 가이드(업무용 권장값)
7.1 기본 보안 수준
- 매크로 자동 실행 차단한다.
- 인터넷에서 받은 문서에 대해 읽기 전용 보기 또는 보호 보기를 우선 적용한다.
- 외부 연결(하이퍼링크, OLE) 클릭 시 확인 대화상자를 유지한다.
7.2 신뢰 위치 최소화
- 임시로 허용한 신뢰 위치는 작업 종료 후 즉시 제거한다.
- 다운로드 폴더, 데스크톱은 신뢰 위치로 지정하지 않는다.
7.3 업데이트 및 취약점 관리
- 한컴오피스와 Windows 보안 패치를 최신으로 유지한다.
- 백신과 EDR이 매크로 실행 이벤트를 기록하고 차단할 수 있도록 정책을 활성화한다.
8. 조직 환경: 보안 아키텍처와 통제 설계
8.1 신뢰 체인 기반 배포
- 표준 템플릿(.hwp)을 중앙 저장소에 배치하고 빌드 파이프라인에서 자동 서명한다.
- 버전 관리와 체인지로그를 운영하여 사용자에게 변경 사유를 투명하게 제공한다.
8.2 접근 통제
- 공유 경로는 읽기 전용으로 배포하고, 템플릿 변경 권한을 관리자 전용으로 제한한다.
- 서명 키 관리에 HSM 또는 비대화형 서명 서버를 사용한다.
8.3 로깅 및 가시성
- 매크로 실행, 차단, 경고 해제, 신뢰 위치 변경, 게시자 등록 이벤트를 중앙 SIEM으로 수집한다.
- 월간 리포트로 사용자·부서별 허용 추세를 분석하고 교육·정책을 조정한다.
9. 공격 기법 대비 방어 매핑
| 공격 벡터 | 설명 | 방어 통제 | 현장 적용 팁 |
|---|---|---|---|
| 매크로 내 쉘 호출 | 명령줄 또는 스크립트 엔진 호출 | 매크로 기본 차단, EDR 차단 규칙 | 의심 문서는 오프라인 미리보기로 우선 검토한다 |
| 외부 URL 로드 | 원격 템플릿·페이로드 다운로드 | 프록시 차단, DNS 필터링 | 허용 도메인 화이트리스트를 관리한다 |
| 임베디드 실행파일 | 내장된 PE 파일 드롭 | 실행 파일 차단 정책, 백신 실시간 검사 | 다운로드·임시 폴더의 실행을 제한한다 |
| 신뢰 위치 남용 | 사용자 임의 폴더 신뢰 지정 | 정책으로 신뢰 위치 제한 | 작업 후 신뢰 위치 자동 제거 스크립트를 배포한다 |
| 서명 오용 | 만료·탈취 인증서 사용 | CRL/OCSP 검증 강제 | 서명키 보관은 HSM으로 격리한다 |
10. 현장 점검 체크리스트
| 항목 | 체크 방법 | 권장 기준 | 주기 |
|---|---|---|---|
| 매크로 기본 정책 | 클라이언트 정책 점검 | 자동 실행 차단 | 분기 1회 |
| 신뢰 위치 관리 | 등록 경로 목록 검토 | 중앙 공유만 허용 | 월 1회 |
| 신뢰 게시자 | 인증서 유효성·체인 점검 | 자체·공인 CA 유효 | 분기 1회 |
| 업데이트 상태 | 버전·패치 레벨 확인 | 최신 | 월 1회 |
| 경고 이벤트 | SIEM 대시보드 분석 | 이상 급증 시 원인분석 | 주 1회 |
11. 안전한 예외 처리 설계
- 예외 사유 기록: 누가, 왜, 얼마 기간 동안 허용했는지 기록한다.
- 만료 자동화: 예외 기간 종료 시 자동 원복한다.
- 재평가: 해당 매크로를 표준 템플릿으로 승격할지 정기적으로 평가한다.
12. 사용자 교육 핵심 메시지
- 모르는 출처의 문서 매크로는 실행하지 않는다.
- 업무상 필요한 매크로는 반드시 서명·검증 후 신뢰 위치에서 사용한다.
- 경고를 우회하지 말고 보안팀에 신고한다.
13. 문제 해결 가이드(증상별)
13.1 신뢰된 문서인데 계속 경고가 표시됨
- 문서가 다른 위치로 이동되며 신뢰 범위를 벗어났을 수 있다.
- 문서가 수정되어 서명 무결성이 깨졌을 수 있다.
- 인증서 만료·폐기로 유효성이 상실되었을 수 있다.
13.2 정품 템플릿인데 매크로가 차단됨
- 클라이언트 정책이 “모두 차단”으로 강화되었을 수 있다.
- 신뢰 게시자 목록에서 조직 인증서가 제거되었을 수 있다.
13.3 외부 협력사 문서 처리
- 협력사에 서명·배포 절차를 요구하고, 검증 후 한시적 신뢰 경로를 제공한다.
- 검증 완료 전에는 샌드박스에서만 열람한다.
14. 운영 자동화 스니펫(참고)
다음 예시는 보안팀 운영 편의를 위한 일반적 점검 스니펫이다.
# PowerShell: 다운로드 폴더 내 HWP 파일의 MOTW 스캔 Get-ChildItem "$env:USERPROFILE\Downloads" -Filter *.hwp -Recurse | ForEach-Object { $s = Get-Item -LiteralPath $_.FullName -Stream "Zone.Identifier" -ErrorAction SilentlyContinue if ($s) { Write-Output ("MOTW: " + $_.FullName) } }
PowerShell: 코드서명 인증서 만료 임박 목록 (시스템 저장소)
Get-ChildItem Cert:\LocalMachine\My |
Where-Object { $.EnhancedKeyUsageList.FriendlyName -contains "Code Signing" } |
Where-Object { $.NotAfter -lt (Get-Date).AddDays(45) } |
Select-Object Subject, NotAfter
주의 : 스크립트는 운영 환경에 맞게 검토 후 배포한다. 무분별한 자동 삭제나 일괄 변경은 위험하다.
15. 재발 방지 로드맵
- 표준 템플릿 전면 서명화 및 중앙 배포 완료한다.
- 사용자 단말의 매크로 기본 차단을 정책화한다.
- 신뢰 위치를 최소화하고 변경 시 감사를 의무화한다.
- 이벤트 로깅·모니터링 체계를 구축한다.
- 분기별 보안 교육과 피싱 모의훈련을 실시한다.
FAQ
경고를 끄면 편한데 비활성화해도 되나?
비활성화는 권장하지 않는다. 경고는 악성 매크로 실행을 막는 최후의 방어선이다. 신뢰 위치·게시자·서명 기반의 최소 예외로만 운영해야 한다.
협력사 문서의 매크로를 업무상 꼭 실행해야 한다면?
협력사에 서명 요구와 배포 경로 증빙을 요청한다. 검증이 끝나면 한시적 신뢰 경로에서만 실행하고, 만료 시 자동 원복한다.
디지털 서명이 있으면 100% 안전한가?
그렇지 않다. 서명은 출처 확인과 변경 탐지를 돕지만, 탈취된 인증서나 오용 가능성이 있다. CRL/OCSP 확인과 템플릿 검토를 병행해야 한다.
개인 사용자도 신뢰 위치를 써도 되나?
가능하나 최소 범위로 제한해야 한다. 다운로드 폴더, 데스크톱을 신뢰 위치로 지정하는 행위는 금지해야 한다.
보안 제품이 있는데도 경고가 뜬다. 정상인가?
정상이다. 애플리케이션 자체의 보안 정책과 운영체제·보안제품은 상호보완적이다. 경고는 정책에 따른 정상 동작이다.