매크로 보안 옵션 이해 과정을 정확히 숙지하면 엑셀 자동화 작업에서 예기치 못한 위험을 방지할 수 있다. 매크로의 실행 수준 조절, 인증서 서명, 신뢰할 수 있는 위치 설정 등 다양한 매크로 보안 옵션을 단계별로 살펴보자.
매크로 보안 옵션 이해는 엑셀에서 자동화를 수행할 때 중요한 기반이 된다. 반복 업무를 손쉽게 처리하는 매크로는 편의성이 뛰어난 만큼, 보안 설정을 소홀히 하면 악의적 코드에 노출될 가능성이 생긴다. 따라서 매크로 보안 옵션 이해를 통해 안전하게 엑셀을 활용하려면, 매크로 실행 방식과 서명, 신뢰할 수 있는 위치 지정 등 여러 기능을 꼼꼼히 살펴봐야 한다.
매크로 보안 옵션의 기본 개념
- 엑셀은 매크로가 실행될 때 발생할 수 있는 보안 위험을 최소화하기 위해 여러 단계의 매크로 보안 옵션을 제공한다.
- 사용자 환경에 따라 매크로를 완전히 차단하거나, 서명된 매크로만 허용하거나, 모든 매크로 실행을 가능하게 하는 식으로 여러 수준을 선택할 수 있다.
- IT 정책이나 프로젝트 성격에 맞춰 적절히 보안 수준을 조정하는 것이 중요하다.
매크로 보안 옵션을 설정하는 이유
- 매크로가 단순 반복 업무를 자동화하는 데 머무르지 않고, VBA 코드를 통해 파일 시스템 접근, 다른 애플리케이션 연동 등을 수행할 수 있기 때문이다.
- 보안 옵션을 제대로 설정하지 않으면 감염된 문서나 악의적 스크립트로 인해 회사 내부 네트워크나 PC가 위험해질 수 있다.
- 엑셀 사용자 개인뿐 아니라 회사 전체에 영향을 줄 수 있으므로, 보안 옵션을 체계적으로 이해하고 적용해야 한다.
매크로 보안 수준
1. 모든 매크로 차단 (Disable All Macros Without Notification)
- 매크로를 전혀 허용하지 않는 가장 강력한 옵션이다.
- 파일을 열었을 때 매크로 실행은 물론, 알림조차 표시되지 않는다.
- 바이러스 감염 예방에 탁월하나, 정상적인 매크로 활용도 함께 차단되므로 실제 업무에서는 활용성이 낮을 수 있다.
2. 알림 없이 매크로 차단 (Disable All Macros With Notification)
- 모든 매크로를 차단하되, 문서를 열 때 사용자에게 경고창을 띄워 매크로가 비활성화되었음을 알린다.
- 매크로를 사용해야 하는 경우, 사용자는 보안 경고 창의 [콘텐츠 사용] 버튼을 눌러야 실행 가능하다.
- 대부분의 엑셀 사용자에게 추천되는 기본값으로, 의심스러운 매크로가 있는 파일을 열었을 때 실수로 코드를 실행하는 위험을 줄여 준다.
3. 서명된 매크로만 실행 (Disable All Macros Except Digitally Signed Macros)
- 디지털 인증서로 서명된 매크로만 실행을 허용하고, 서명되지 않은 매크로는 차단한다.
- 조직 내에서 공인된 인증서로만 매크로를 배포한다면 매우 안전하고 효율적이다.
- 서명이 없는 매크로 파일을 받을 경우, 사용자는 별도의 인증 절차를 거치거나 로컬 정책을 다시 수정해야 한다.
4. 모든 매크로 실행 허용 (Enable All Macros)
- 사실상 보안이 없는 상태로, 매크로가 있는 파일을 열면 무조건 실행할 수 있게 만든다.
- 관리자나 고급 사용자가 테스트 용도로 사용하거나, 매우 신뢰할 수 있는 내부망 환경에서만 활용한다.
- 개인 PC에서 임시로 쓰는 상황이 아니라면, 권장되지 않는다.
매크로 인증서와 서명 방식
인증서 발급 절차
- 매크로에 디지털 서명을 하려면 인증 기관(CA)에서 발급한 인증서가 필요하다.
- 사내 PKI(Public Key Infrastructure)가 구축된 경우, 내부에서 인증서를 받아서 매크로에 서명할 수도 있다.
- 인증서 발급을 위해서는 사용자 신원 정보가 검증돼야 하므로, IT 부서나 공식 인증 기관과 협의해 진행한다.
VBA 프로젝트에 인증서 적용
- 엑셀 파일을 열고 [개발 도구] 탭에서 [매크로 보안]을 설정해 두었다면, VBA 프로젝트 편집기(Alt + F11)에서 인증서 적용을 진행할 수 있다.
- 인증서가 설치된 상태에서 VBA 에디터의 [툴(Tools)] → [디지털 서명(Digital Signature)] 메뉴를 통해 프로젝트에 서명한다.
- 서명이 적용된 프로젝트는 매크로 보안 옵션이 ‘서명된 매크로만 실행’으로 설정된 환경에서도 안전하게 작동한다.
인증서 서명의 장점
- 사용자는 엑셀 문서가 안전한 매크로를 포함하고 있음을 미리 알 수 있다.
- 문서가 도중에 변경되면, 디지털 서명이 무효화되어 실행 전에 경고가 뜬다.
- 대규모 조직에서는 사내 표준 인증서를 통해 배포 프로세스를 간소화하고, 공인된 매크로만 사용하도록 정책을 수립하기 쉽다.
신뢰할 수 있는 위치 설정
신뢰할 수 있는 위치 개념
- 엑셀에서 특정 폴더(로컬 드라이브 또는 네트워크 경로)를 ‘신뢰할 수 있는 위치’로 지정하면, 해당 경로에 있는 파일은 매크로 보안 옵션 제한을 받지 않고 곧바로 실행 가능하다.
- 빈번히 사용하는 매크로 파일이나, 조직적으로 관리되는 템플릿을 보관하는 폴더를 신뢰할 수 있는 위치로 만들어 편의성을 높일 수 있다.
- 과도하게 많은 위치를 신뢰 폴더로 설정하면 보안 위험이 커지므로, 업무 효율과 안전성 사이에서 균형을 맞춰야 한다.
신뢰할 수 있는 위치 추가 방법
- 엑셀을 실행하고 [파일] 메뉴에서 [옵션]을 선택한다.
- [보안 센터] → [보안 센터 설정]으로 이동한다.
- 왼쪽 목록에서 [신뢰할 수 있는 위치(Trusted Locations)]를 선택한다.
- [새 위치 추가] 버튼을 눌러 폴더 경로를 지정하고, 필요하다면 ‘하위 폴더도 모두 신뢰’ 옵션을 체크한다.
- 확인(OK)을 누르면, 해당 경로에 있는 엑셀 파일은 매크로 보안 경고 없이 즉시 실행된다.
VBA 예제: 보안 레벨에 따른 매크로 실행 테스트
아래 예제 코드는 간단한 메시지 박스를 표시하는 매크로다. 실제 업무에서는 특정 데이터를 불러오거나, 다른 시트와 연동해 반복 작업을 자동화하는 로직으로 확장할 수 있다.
Sub 보안옵션테스트()
MsgBox "이 매크로는 현재 보안 옵션 설정에 따라 실행 여부가 달라집니다."
End Sub
- 파일에 이 코드를 삽입한 후, 매크로 보안 옵션을 여러 방식으로 바꿔 가면서 파일을 다시 열어 본다.
- 모든 매크로가 차단된 상태(Disable All Macros)면, 매크로가 실행되지 않고 경고창도 뜨지 않는다.
- 알림과 함께 차단되는 상태(Disable All Macros With Notification)면, 파일을 열 때 노란색 보안 경고가 표시되며, [콘텐츠 사용]을 눌러야 매크로 실행이 가능하다.
- 인증서 서명 후 ‘서명된 매크로만 실행’ 상태에서는, 만약 인증서가 올바르게 적용된 매크로라면 별도 경고 없이 메시지 박스가 표시된다.
- 모든 매크로 허용(Enable All Macros) 상태에서는, 파일을 열자마자 자동으로 코드가 작동한다.
매크로 보안 관리 시 고려 사항
- 조직 정책
회사나 기관마다 보안 정책이 다르므로, 보안 수준을 부서나 IT 관리자와 상의해 결정해야 한다.
내부 전산망이 엄격한 곳에서는 ‘모든 매크로 차단’을 기본값으로 두고, 사내 인증서로 서명된 매크로만 허용하기도 한다. - 버전 차이
엑셀 2007 이전 버전은 현재와 다른 메뉴 구성을 가질 수 있다. 오래된 버전에서도 매크로 보안 기능이 존재하지만, 사용자 인터페이스나 설정 단계가 조금 상이하므로 문서를 호환할 때 유의한다. - 파일 확장자
매크로를 포함하는 엑셀 파일은 .xlsm(매크로가 가능한 엑셀 통합 문서) 확장자를 사용한다. 확장자가 .xlsx로 저장된 문서에는 매크로가 포함되지 않으므로, 매크로 보안 옵션과 상관없이 코드가 실행되지 않는다. - 보안 경고 표시 문제
간혹 신뢰할 수 있는 문서인데도 계속 보안 경고가 뜬다면, 엑셀 옵션에 설정된 신뢰할 수 있는 위치(Trusted Locations)가 정확한지, 디지털 서명이 유효한지 다시 확인해야 한다.
네트워크 드라이브 경로인 경우, 공유 폴더나 VPN 연결 상태가 불안정하면 정상적인 서명 인식이 안 될 수 있다. - 외부 파일 자동 연결
VBA 코드를 통해 인터넷이나 회사 내부망의 다른 데이터 소스와 연결할 경우, 보안 센터에서 외부 콘텐츠 차단 옵션이 활성화될 수 있다. 필요하다면 ‘외부 콘텐츠 사용’에 대한 정책도 함께 검토해야 한다.
매크로 보안 옵션 이해를 높이는 팁
매크로 서명 툴(MakeCert, SelfCert 등) 활용
- 개인 개발 환경에서 테스트용 인증서를 만들 때는 SelfCert.exe 같은 도구로 간단히 자체 서명 인증서를 발급해 볼 수 있다.
- 조직 차원에서는 정식 인증서를 사용하기 전, 사내 개발팀이나 테스트 서버에서 자체 서명 인증서를 발행해 기능을 점검하는 식으로 접근한다.
문서 암호화
- 민감한 VBA 프로젝트 코드가 포함된 엑셀 파일이라면, 매크로 보안 옵션 설정만으로는 완벽한 보호가 어려울 수 있다.
- 엑셀 옵션에서 ‘암호로 파일 보호’를 진행하거나, WinZip, 7-Zip 같은 프로그램으로 문서를 암호화하여 저장해 2차 보안을 적용하는 것도 좋다.
신뢰할 수 있는 게시자(Trusted Publishers)
- 기업 내부에서 여러 개발자가 매크로를 작성한다면, 공용 인증서를 보유한 특정 게시자를 ‘신뢰할 수 있는 게시자’ 목록에 추가해 두면 매번 경고를 해제하지 않아도 된다.
- 게시자 목록은 엑셀 보안 센터 설정에서 별도로 관리 가능하며, 필요할 때 삭제나 추가가 용이하다.
매크로 검사 도구
- 일부 보안 솔루션은 엑셀 파일을 열기 전에 매크로 코드를 분석해 악성 여부를 탐지한다.
- 회사 전산망에 설치된 백신, Endpoint Protection 같은 솔루션과 엑셀의 매크로 보안 옵션을 함께 활용하면 보안 레벨을 한층 더 높일 수 있다.
VBA 예시: 사용자 입력 폼에서 보안 경고 확인
아래 예시 코드는 간단한 UserForm을 띄워 사용자 정보를 입력받은 뒤, 메시지를 반환하는 흐름이다. 이 코드를 정상적으로 실행하려면 매크로 보안 옵션을 ‘차단되지 않음’ 상태 또는 서명된 매크로를 허용하는 설정으로 두어야 한다.
Option Explicit
Private Sub btnOK_Click()
Dim userName As String
userName = Me.txtName.Value
If userName = "" Then
MsgBox "이름을 입력해주세요.", vbExclamation
Else
MsgBox userName & "님, 환영합니다!", vbInformation
Unload Me
End If
End Sub
Private Sub btnCancel_Click()
Unload Me
End Sub
- [개발 도구] 탭에서 UserForm을 삽입하고, TextBox(txtName), CommandButton(btnOK, btnCancel) 등을 배치한다.
- 위 코드를 UserForm 모듈에 붙여 넣고 실행한다. 매크로 보안 옵션이 허용되지 않으면 UserForm이 뜨지 않고 차단 메시지가 표시될 수 있다.
- 실제 업무 상황에서는 이런 식으로 데이터 입력 검증 로직을 추가하고, 입력값을 시트에 기록하거나 다른 문서로 전송할 수도 있다.
매크로 보안 옵션 이해를 바탕으로 안전한 자동화 구축
매크로 보안 옵션 이해를 통해 회사나 개인 PC 환경에서 발생할 수 있는 위험 요소를 사전에 차단하고, 필요한 작업만 안전하게 자동화하는 것이 가능해진다. 매크로 실행 레벨, 인증서 서명, 신뢰할 수 있는 위치를 적절히 활용하면 편의성과 안정성을 모두 달성할 수 있다. 매크로 보안 옵션 이해로 엑셀 업무 효율을 극대화하면서도, 보안 위협에 흔들리지 않는 안전한 작업 환경을 마련해 보길 권장한다.
'#4 VBA > #4.1 환경설정 및 기본개념' 카테고리의 다른 글
매크로 실행 방법 총정리 (0) | 2024.12.29 |
---|---|
매크로 기록 기능 사용법 완벽 가이드 (0) | 2024.12.29 |
VBA 에디터(VBE) 기본 화면 살펴보기: 효율적인 코드 작성의 첫걸음 (0) | 2024.12.29 |
개발 도구 탭 활성화하기 완벽 정리 (0) | 2024.12.29 |
VBA와 매크로의 차이점 완벽 정리 (0) | 2024.12.29 |