본문 바로가기
#4 VBA/#4.1 환경설정 및 기본개념

매크로 보안 경고 대처 방법 완벽 정리

by 이세계의엑셀 2024. 12. 29.
반응형

매크로 보안 경고가 자주 발생하면 매번 작업을 중단하고 보안 설정을 변경해야 해서 업무 효율이 크게 떨어진다. 특히 회사나 기관에서 엑셀 VBA 매크로를 널리 활용한다면, 매크로 보안 경고 메시지가 발생할 때마다 사용자가 불편을 겪거나 실행이 차단되어 작업 흐름이 끊기곤 한다. 여기서는 매크로 보안 경고가 왜 뜨는지, 어떻게 설정하면 안전하면서도 원활하게 매크로를 실행할 수 있는지 상세히 살펴보고, 실제 VBA 코드를 다룰 때 주의해야 할 점과 추가 팁을 함께 정리한다.

반응형

매크로 보안 수준 이해하기

매크로 보안 수준 종류

  • 모든 매크로 차단(Disable All Macros Without Notification)
    엑셀에서 매크로 실행을 전면 차단한다. 이 옵션일 때는 매크로 파일을 열어도 경고조차 뜨지 않고, 매크로가 바로 비활성화된다.
    • 장점: 사용자가 매크로 실행을 실수로 눌러도 코드가 실행되지 않으므로 악성 매크로 위험이 사실상 없다.
    • 단점: 정상적인 매크로도 모두 막아버리므로, 매크로 기반 자동화 업무에 방해가 된다.
  • 알림 없이 매크로 차단(Disable All Macros With Notification)
    매크로가 포함된 문서를 열면, 화면 상단의 보안 경고가 표시되어 매크로가 비활성화된 상태임을 알려준다. 사용자가 [콘텐츠 사용] 버튼을 눌러야 매크로가 실행 가능해진다.
    • 장점: 의심스러운 매크로를 실수로 열어도 바로 실행되지 않고, 승인 절차를 거친다.
    • 단점: 자주 실행해야 하는 매크로라면 매번 승인 버튼을 눌러야 하는 번거로움이 있다.
  • 서명된 매크로만 실행(Disable All Macros Except Digitally Signed Macros)
    디지털 인증서로 서명된 매크로는 허용하고, 서명되지 않은 매크로는 차단한다.
    • 장점: 회사 내부에서 공인된 인증서를 배포해 매크로에 서명하면, 보안 경고 없이 원활하게 자동화 업무를 진행할 수 있다.
    • 단점: 개인 사용자나 소규모 팀에서는 인증서 발급·관리가 번거롭고, 서명되지 않은 매크로 파일을 받으면 별도 승인 과정을 거쳐야 한다.
  • 모든 매크로 실행 허용(Enable All Macros)
    사실상 모든 매크로를 자동으로 허용한다. 보안성은 거의 없으며, 어떤 매크로라도 파일을 열자마자 실행된다.
    • 장점: 매크로 보안 경고 자체가 뜨지 않아 매번 승인하는 절차가 필요 없다.
    • 단점: 악성 코드가 포함된 매크로를 별다른 필터 없이 실행할 위험이 매우 크다.

매크로 보안 경고 발생 원인

  1. 보안 센터 설정
    엑셀 옵션 → 보안 센터 → 보안 센터 설정에서 매크로 보안 수준이 높거나, “매크로 차단” 상태로 지정된 경우 보안 경고가 뜬다.
  2. 매크로가 포함된 파일 확장자
    *.xlsm, *.xlsb, *.xltm 파일처럼 매크로가 들어있는 형식이 아니라면 매크로가 실행되지 않는다. 반대로 매크로 가능 확장자라도, 보안 수준이 높으면 경고가 뜬다.
  3. 디지털 서명 여부
    매크로가 서명되지 않았다면, “서명된 매크로만 실행” 옵션에서 파일을 열 때 경고나 차단이 발생할 수 있다.
  4. 외부 출처
    인터넷에서 다운로드받은 엑셀 파일이나 외부 기관에서 이메일로 받은 엑셀 파일은 신뢰할 수 있는 위치(Trusted Locations)가 아니므로, 매크로 보안 경고가 뜰 확률이 높다.

 

안전한 실행 환경 설정

신뢰할 수 있는 위치(Trusted Locations)

  • 폴더 지정
    엑셀 옵션 → 보안 센터 → [보안 센터 설정] → [신뢰할 수 있는 위치]에서 특정 폴더나 드라이브를 “신뢰할 수 있는 위치”로 설정하면, 그 폴더 내 파일은 매크로 보안 경고 없이 실행된다.
    • 장점: 자주 쓰는 매크로 파일을 해당 폴더에 두면 보안 경고가 뜨지 않아 업무 효율이 오른다.
    • 단점: 이 폴더에 악성 매크로 파일이 섞여 들어갈 경우, 자동으로 실행될 위험이 있다. 폴더 관리를 철저히 해야 한다.
  • 하위 폴더 포함
    신뢰할 수 있는 위치 설정 시 “이 위치의 하위 폴더도 모두 신뢰”를 체크하면, 구조가 복잡한 프로젝트를 트리 형태로 관리해도 문제없이 매크로를 열 수 있다.

디지털 인증서로 서명

  1. SelfCert.exe를 통한 자가 서명 인증서
    간단한 테스트 용도나 사내 전용으로 쓸 때는 SelfCert.exe(오피스 설치 폴더 포함)를 이용해 자체 인증서를 생성할 수 있다.
    • 장점: 무료이고 편리하다.
    • 단점: 외부 기관이나 다른 PC에서 ‘신뢰할 수 있는 게시자’ 목록에 추가되지 않았다면 경고가 뜰 수도 있다.
  2. ' 예시: 인증서 생성 후 VBA 에디터에서 ' [도구] -> [디지털 서명(Digital Signature)] -> ' 인증서 선택 -> 프로젝트에 서명
  3. 공인 인증 기관의 서명
    사내 공인 인증 인프라(PKI)나 외부 인증서를 사용하면, 서명된 매크로를 어느 PC에서든 보안 경고 없이 실행 가능하다.
    • 장점: 전문 인증서로 서명하면, 기업 전반에 걸친 매크로 배포 시 보안성과 신뢰도가 높아진다.
    • 단점: 비용이 발생하거나, 발급·갱신 절차가 필요하다.

보안 수준 조정

  • 중간 수준
    회사 정책이 엄격하지 않다면, “알림 없이 매크로 차단”을 기본으로 두고, 자주 쓰는 매크로는 [콘텐츠 사용]을 눌러 한 번만 승인하면 되게끔 하는 방법이 있다.
    • 승인 후에는 해당 파일을 ‘신뢰할 수 있는 문서’로 등록해두면, 이후로는 경고가 뜨지 않는다.
  • 서명된 매크로만 실행
    사내에서 배포되는 모든 매크로 파일을 디지털 서명한 뒤, 매크로 보안 수준을 “서명된 매크로만 실행”으로 설정하면, 안전과 편의 둘 다 잡을 수 있다. 서명되지 않은 외부 매크로는 차단되므로 관리가 용이하다.

 

매크로 보안 경고 대처 절차

1) 신뢰 경고 창에서 승인

가장 단순한 방법은 보안 경고가 뜰 때 [콘텐츠 사용] 버튼을 누르는 것이다. 다만 매일매일 반복해야 하는 파일이라면 번거롭기 때문에, 아래와 같은 절차를 고려할 수 있다.

  • [이 문서의 매크로를 신뢰] 옵션이 표시되는 경우, 체크 후 승인하면 이후로는 동일 문서에서 경고가 뜨지 않는다.
  • 매크로가 안전하다고 확신할 수 있는 내부 문서라면, “이 문서에 포함된 매크로를 항상 신뢰” 설정을 해두면 일일이 승인할 필요가 없다.

2) 매크로 보안 수준 변경

엑셀 옵션 → 보안 센터 → [매크로 설정]에서 원하는 수준을 택할 수 있다. 예를 들어 “알림 없이 매크로 차단”에서 “서명된 매크로만 실행”으로 바꾸면, 서명된 파일만 편하게 열 수 있다.

  • 절차
    1. 엑셀 상단 [파일] → [옵션] 클릭
    2. 왼쪽 목록에서 [보안 센터] → [보안 센터 설정] 버튼
    3. 매크로 설정 항목에서 원하는 옵션 체크
    4. 확인 후 엑셀을 재시작해 적용

3) 신뢰할 수 있는 위치 등록

자주 사용하는 폴더를 신뢰할 수 있는 위치로 정하면, 그 폴더에 있는 매크로 파일들은 매크로 보안 경고 없이 곧바로 열 수 있다.

  • 절차
    1. [파일] → [옵션] → [보안 센터] → [보안 센터 설정]
    2. 왼쪽 목록에서 [신뢰할 수 있는 위치]
    3. [새 위치 추가] 버튼 → 폴더 경로 지정
    4. 필요하다면 하위 폴더 신뢰 옵션 체크

4) 디지털 서명 적용

회사가 자체 인증서를 발급할 수 있다면, 사내 표준 인증서로 모든 매크로 파일에 서명하는 방법이 가장 확실하다. 외부 배포용이라면 정식 인증기관의 인증서를 써야 한다.

  • 절차
    1. VBA 에디터(VBE) 열기
    2. [도구] → [디지털 서명(Digital Signature)] 클릭
    3. 원하는 인증서를 선택하고 OK
    4. 매크로 파일 저장, 재열 시 보안 경고 없이 실행 가능 (서명 인증서가 유효하다고 가정)

 

VBA 코드 예시: 서명 확인 및 경고 처리

Sub CheckMacroSecurityLevel()
    Dim secLevel As Integer

    ' 1 ~ 4 수준에 따라 다른 보안 옵션
    ' 1: Disable Without Notification
    ' 2: Disable With Notification
    ' 3: Disable Except Digitally Signed
    ' 4: Enable All

    ' Application.AutomationSecurity로 접근 가능하지만,
    ' 일부 버전에서는 읽기 전용이거나 정책상 제한될 수 있다.
    ' 예: Application.AutomationSecurity = msoAutomationSecurityByUI

    secLevel = Application.AutomationSecurity

    Select Case secLevel
        Case 1
            MsgBox "현재 매크로 보안 수준: 모든 매크로 차단(알림 없음)"
        Case 2
            MsgBox "현재 매크로 보안 수준: 알림 없이 매크로 차단"
        Case 3
            MsgBox "현재 매크로 보안 수준: 서명된 매크로만 실행"
        Case 4
            MsgBox "현재 매크로 보안 수준: 모든 매크로 실행 허용"
        Case Else
            MsgBox "확인할 수 없는 매크로 보안 수준"
    End Select
End Sub

이 코드는 매크로 보안 수준을 확인하는 예시다. 버전에 따라 Application.AutomationSecurity 속성이 쓰기 전용이거나, 정책으로 인해 강제로 제한될 수도 있다. 하지만 어떤 설정이 적용됐는지 모를 때 참고할 수 있는 간단한 검사용이다.


관리자·IT부서 협업 팁

  1. 사내 표준 인증서 사용
    IT부서가 사내 인증서를 발행해 주면, 모든 매크로 파일에 공용 서명을 넣어 배포한다. 사용자 PC에서는 ‘신뢰할 수 있는 게시자’ 목록에 해당 인증서를 등록한다. 그 결과 매크로 보안 경고가 뜨지 않고도 안전성을 확보한다.
  2. 그룹 정책(GPO) 활용
    기업 환경에서 여러 PC에 공통 매크로 보안 정책(예: ‘서명된 매크로만 실행’, 특정 폴더 신뢰 등)을 일괄 배포할 수 있다. 이를 통해 각 사용자 PC를 직접 설정하지 않아도 통일된 보안 체계를 유지한다.
  3. 사전 교육
    일반 사용자를 대상으로 “이상한 메일 첨부 파일은 함부로 열지 말고, 매크로 보안 경고가 뜨면 우선 IT부서에 문의하라”는 기본 보안 교육이 필요하다. 아무리 보안 센터 설정을 해두어도, 사회공학적 공격을 막으려면 사용자 인식이 뒷받침되어야 한다.

매크로 보안 경고 발생 시점별 대처

파일 열기 전

  • 확장자 확인: .xlsm(매크로 사용 통합 문서), .xlsb(바이너리 통합 문서), .xls(구버전)인지 확인한다.
  • 출처 검사: 다운로드한 파일인지, 이메일 첨부인지, USB를 통해 옮겼는지 따져서 위험성이 높은지 점검한다.

파일 열 때

  • 경고 메시지: “보안 경고: 매크로가 차단되었습니다” 창이 뜨면, 이 파일의 신뢰 여부 판단이 중요하다.
    • 회사 내부 공식 문서, 사내 인증서 서명, 공용 폴더에서 제공된 파일이라면 [콘텐츠 사용] 버튼을 눌러 승인.
    • 외부 출처거나 의심스럽다면 [매크로 사용 안 함] 또는 [닫기].

매크로 실행 시

  • 변수나 함수 호출 과정에서 “이 매크로는 현재 설정에서 차단되었습니다” 같은 메시지가 뜰 수 있다. 이때는 엑셀 옵션 → 보안 센터 설정을 확인해 현재 수준을 맞춰야 한다.
  • 디지털 서명 오류 메시지가 뜨면, 해당 인증서가 만료되었거나 변조된 파일일 가능성을 조사해야 한다.

주의할 점

  1. 파일 변조 여부
    서명된 매크로도 중간에 파일이 수정되면 서명이 무효화된다. 서명이 무효 상태인데 보안 수준이 ‘서명된 매크로만 실행’이면 경고가 뜬다.
  2. 매크로 포함 여부
    엑셀 파일은 확장자가 .xlsx인 경우 매크로를 아예 포함하지 못한다. 확장자를 .xlsm으로 저장해야 매크로를 쓸 수 있다.
  3. 자바스크립트·VBS·HTA 파일
    엑셀 매크로와 무관하지만, 이메일 등으로 악성 스크립트가 첨부되는 경우도 존재한다. “엑셀 매크로”라고 위장했지만 확장자가 .js, .vbs인 경우 일반 사용자 실수를 유도하기도 한다.
  4. 버전 차이
    엑셀 2007 이전(구버전 .xls) 문서에 포함된 매크로는 최신 버전과 호환성 이슈가 있을 수 있으며, 보안 센터에서 예외 처리해야 할 수도 있다.

확장 팁: 내부망에서의 자동화

사내 네트워크에서만 쓰는 엑셀 매크로라면, 다음 팁을 활용해 매크로 보안 경고 대처를 효율적으로 할 수 있다.

  1. 내부 파일 서버를 신뢰할 수 있는 위치로 등록
    사내 파일 서버(예: \\server\dept\MacroFiles)를 신뢰할 수 있는 위치(Trusted Location)로 지정하면, 같은 네트워크 내 PC에서 이 위치의 매크로는 경고 없이 실행된다.
    • VPN이나 원격 접속 시에는 IP나 경로가 달라질 수 있어, 자주 쓰이는 모든 경로를 등록할 필요가 있다.
  2. 공용 인증서 배포
    사내 PKI가 있다면, CompanyMacroCA 같은 조직 전용 인증 기관을 만들어, 모든 매크로 파일 서명에 동일 인증서를 쓰고, 모든 PC가 그 인증서를 신뢰 리스트에 추가하도록 일괄 배포(GPO)한다.
  3. 버전 통일
    엑셀 버전이 다양하면(예: 일부 PC는 2010, 일부는 2021) 각 버전에서의 보안 센터 UI나 설정 위치가 약간씩 다르다. 버전을 통일하면 매뉴얼·공지 사항을 한 번만 만들면 된다.

테스트용 매크로 작성 시 고려 사항

아래 예시는 사용자가 직접 만든 매크로를 테스트하기 위해서, 보안 경고를 최소화하고 안전하게 코드를 실행하는 예시 시나리오다.

  1. 폴더 구성: C:\MacroTest 폴더를 만들고, 엑셀 옵션에서 해당 폴더를 신뢰할 수 있는 위치로 추가한다.
  2. 매크로 작성: TestMacro.xlsm 파일을 C:\MacroTest 폴더에 저장한다. 매크로 보안 경고 없이 열린다.
  3. Signatures 폴더: 테스트용 인증서를 SelfCert.exe로 생성하고, Visual Basic Editor에서 TestMacro.xlsm에 서명한다.
  4. 의심 파일 분류: 외부에서 받거나 임의 경로에 있는 *.xlsm 파일은 자동으로 차단되므로, 반드시 C:\MacroTest에 복사해 둔다.

마지막으로 정리하는 매크로 보안 경고 대처 방법

매크로 보안 경고가 빈번하게 나타나면 업무 흐름이 끊기고, 자동화 파일을 열 때마다 불편이 커진다. 그러나 무턱대고 매크로 보안 수준을 “모든 매크로 실행 허용”으로 내리면 악성 코드 공격에 취약해진다. 안전하면서도 효율적으로 작업하기 위해, 신뢰할 수 있는 위치 설정, 디지털 서명, 매크로 보안 수준 조절, 사내 정책 수립 등을 적절히 활용해야 한다.

매크로 보안 경고를 능숙하게 대처하면, 엑셀 매크로 자동화를 더욱 안정적이고 원활하게 수행할 수 있다. 특히 “서명된 매크로만 실행” 옵션이나 신뢰할 수 있는 위치 등록을 잘 조합해 쓰면, 매크로 보안 경고 문제를 최소화하면서 안전성을 유지할 수 있다. 결국 매크로 보안 경고를 현명하게 다룰 줄 아는지는 회사 내부 자동화 시스템의 신뢰도와 직결되므로, 철저한 설정과 사전 대비가 필수다.

반응형