설계도면을 작성하는 것은 항공, 조선, 건설, 토목, 기계, 방산 등 다양한 산업 분야에서 필수불가결한 작업 중의 하나입니다. 현재와 달리 과거에는 설계도면을 엔지니어가 한땀 한땀 수기로 작성했지만, 1982년 AutoCAD가 출시되면서 컴퓨터를 이용하여 보다 쉽고 빠르게 2D 및 3D 설계도면을 작성할 수 있게 되었습니다. 이렇게 전자식으로 설계도면을 작성할 수 있게 됨에 따라 수기로 작성할 때보다 더욱 섬세하고 효율적으로 도면 제작이 가능하여 궁긍적으로는 산업 공정의 완성도를 높일 수 있습니다. 이처럼 설계도면을 컴퓨터로 작업하는 기술 및 소프트웨어를 CAD(Computer Aided Design)라고 부르며, 현재는 기계설계, Bio/Nano/Medical CAD, 선박설계, 건축설계, 토목설계, 플랜트설계 등 다양한 산업 분야에서 CAD를 활용하고 있습니다.
CAD 기술이 다양한 산업 분야에서 활용됨에 따라 전자식 설계도면을 이용한 악성코드가 출현하게 되었습니다. 최초의 설계도면 악성코드는 568byte의 짧은 길이의 VBA 매크로를 이용한 ‘ACAD.star’ 명칭의 바이러스로 2000년에 출현하였습니다. 이를 시작으로 설계도면 이용한 악성코드가 점차 빈번하게 출현하고 있습니다. 이에 본 글에서는 이러한 설계도면 악성코드에 대해 살펴보고, 피해사례 및 최신동향에 대해 알아보도록 하겠습니다.
CAD 소프트웨어는 설계도면을 효율적으로 작성하기 위해 다양한 기능들을 제공하는데, 해커는 이러한 기능을 교묘히 이용하거나, 취약한 기능을 악용하여 악성코드를 삽입하는 방법으로 악성 행위를 수행하고 있습니다.
∘ OLE(Object Linking and Embedding)

<그림 1 > OLE 개체 삽입
CAD 소프트웨어는 설계도면 내 OLE(Object Linking and Embedding)를 포함하는 기능을 제공하고 있는데, 해당 기능은 Microsoft에서 개발한 외부 프로그램과 정보를 공유하기 위해 사용되며, 설계도면 파일에서 외부 프로그램을 연결하여 쉽게 작업할 수 있도록 하는 편의 기능입니다. <그림 1>에서 볼 수 있듯이 설계도면에 MS Office 문서, 이미지, 텍스트 파일 등을 삽입할 수 있으며, 해커는 이러한 기능을 교묘하게 악용하여 설계도면 내 악성 파일을 포함시킨 후 사용자가 설계도면과 함께 악성코드가 실행되도록 유도합니다.
∘ VBA(Visual Basic for Application)

<그림 2 > VBA 매크로 실행
MS Office와 같이 설계도면에서도 VBA 매크로를 사용할 수 있도록 기능을 제공하고 있습니다. 주로 설계 자동화를 위해 사용되며, 악성코드의 경우 URL을 이용한 악성코드 다운로드, 외부 파일 실행, 시스템 파일 접근 등을 수행할 수 있습니다. 이 외에도 VBA는 여러 기능을 제공하고 있으며, 외부에서 가져온 VBA 매크로를 사용할 때는 더욱 주의가 필요합니다.
∘ Lisp(List Processing)

<그림 3 > Lisp 파일 로드
앞서 설명한 VBA와 유사한 개념의 Lisp 기능도 함께 제공하고 있습니다. 두 기능의 차이점이라면 VBA는 CAD 소프트웨어와 동일한 공간에서 실행하는 방면, Lisp은 외부 파일로부터 프로그래밍 언어를 해독하여 실행하는 방식입니다. Lisp은 <그림 3>과 같이 프로그램에 로드하여 코딩된 명령어를 이용하여 설계도면을 작성할 수 있습니다. 악성코드의 경우 Lisp 프로그래밍을 이용한 다양한 악성 행위를 수행할 수 있으며 프로그램을 로드 시 주의를 요합니다.
CAD 소프트웨어는 앞서 설명한 기능보다 다양한 기능을 제공하고 있는데, 이러한 다양한 기능을 통해 악성 행위를 수행할 수 있는 여러 위협이 존재할 수 있기 때문에 출처가 분명하지 않거나, 의심스러운 설계도면을 취급할 때는 각별한 주의가 필요하겠습니다.
설계도면 악성코드 동작 방식
설계도면 악성코드들의 동작 방식에 대해 살펴보면, 먼저 설계도면 파일을 실행하기 위해 파일의 구조를 해석하고 보여주기 위한 CAD 소프트웨어가 반드시 필요합니다. 설계도면 파일은 다양한 확장자로 저장되는데 이에 호환하는 CAD 소프트웨어로 실행할 수 있으며, CAD 소프트웨어를 통해 악성 행위가 발현되는 절차로 동작합니다.
1. 해커가 설계도면 악성코드 전달
2. CAD 소프트웨어로 설계도면 실행
3. 해커가 포함한 외부 모듈(OLE, VBA, Lisp 등)을 실행
4. 감염 및 전파

<그림 4 > 설계도면 악성코드 동작 방식
<그림 4>와 같이 설계도면 악성코드가 동작하며, 대부분의 설계도면 악성코드는 사용자가 감염 사실을 인지하지 못하도록 정상적인 기능이 동작되도록 설계되어 있습니다. 또한, CAD 소프트웨어에서 악성 행위를 실행하기 때문에 안티바이러스가 이를 탐지하는데 한계가 발생합니다.
설계도면 악성코드 피해사례
설계도면 악성코드 중 대표적인 사례로 ‘ACAD/Medre.A’ 웜 바이러스가 있으며, 이로 인해 심각한 피해가 발생하였습니다. 2012년에 발간된 ’ESET’의 ACAD/Medre.A 분석 보고서[3]에 따르면 감염은 <그림 5>와 같이 주로 페루에 집중되었고, 다른 국가에서도 소수의 감염이 확인되었습니다.

<그림 5 > ‘ACAD/Medre.A’ 감염 국가
‘ACAD/Medre.A’ 웜 바이러스로 인해 수만 개의 설계도면 파일이 유출되는 피해가 발생했고, 해당 악성코드의 주요 행위로는 악성코드 복제, AutoCAD 도면 및 이메일(Outlook, Foxmail) 파일을 중국의 전자 메일을 통해 전송하는 것으로 확인되었습니다. 해외 보안회사인 Forcepoint에서 ‘ACAD/Medre.A’ 웜 바이러스와 동일한 악성 모듈 패키지를 약 300건을 수집 및 분석한 결과[4] 해당 패키지의 악성코드들은 다리 설계도, 호텔 설계도, 건물 설계도 등 정상 설계도면 파일로 위장하고 있었고, 이는 악성코드를 판매 및 사용을 극대화하기 위해 다양한 산업 분야에 맞춰 제작된 것으로 추정하고 있습니다. 해당 유형의 악성코드는 고도화를 거쳐 현재에도 활발하게 출현하고 있으므로 주의가 필요합니다.
2013년 Kaspersky에서 탐지 및 분석된 ‘Trojan-Downloader.Acad.Qfas.b’, ‘Trojan.Acad.Qfas.o‘의 설계도면 트로이목마 악성코드[5]가 있는데, 이는 <그림 6>과 같이 주로 중국, 인도, 베트남에서 감염된 것으로 확인되었으며, 해당 악성코드는 VBA와 Lisp을 조합하여 악성 파일을 다운로드 및 실행하여 악성 행위가 동작하는 것으로 확인되었습니다. 주요 목적은 사용자의 인터넷 브라우저 시작 페이지 변경과 광고 페이지를 표시하도록 하여 이를 통한 금전적 이득을 목적으로 하고 있습니다.

<그림 6 > ‘Trojan-Downloader.Acad.Qfas.b’, ‘Trojan.Acad.Qfas.o‘ 감염 국가
설계도면 악성코드 최신동향
앞선 피해 사례와 같이 CAD 소프트웨어 시장에서 AutoCAD가 높은 점유율을 가지고 있기에 해커들은 AutoCAD에 많은 관심을 가지고 이를 이용한 악성코드 제작 및 유포를 시도하고 있습니다. 이로 인한 피해를 줄이기 위해 AutoCAD 홈페이지에 아래와 같이 취약한 파일에 대해 주의를 권고하고 있습니다.[6]
● ARX, DBX, CRX, HDI 파일
● LSP, FAS, VLX, MNL, SCR 파일
● .NET 어셈블리
● VBA 매크로(DVB 파일)
● acad.rx
● 자바스크립트
● DLL 파일
해당 파일들은 AutoCAD를 실행 시 확장형 모듈(ARX, DBX, CRX 등)로 같이 실행되기 때문에 이 모듈을 변조하면 쉽게 악성 행위를 동작 시킬 수 있습니다. 또한 앞에서 살펴본 것과 같이 소프트웨어에서 제공하는 기능인 VBA 매크로 및 Lisp 파일(LSP, FAS, DVB 등)을 이용하여 악성 행위를 동작할 수 있다고 사용자에게 해당 내용과 주의 사항을 공지하고 있습니다.

<그림 7 > ESTsecurity 보안 동향 보고서(2023.06)
<그림 7>은 ESTsecurity에서 탐지된 악성코드 중 상위 15개의 유형을 나열한 것으로[7], 이를 살펴보면 설계도면 악성코드는 상위 15개의 유형 중 3개의 유형으로 AutoCAD 악성코드가 포함되어 있으며, 많은 건수의 악성코드가 탐지되는 것을 확인할 수 있습니다. <그림 7> 외 이전의 보안 동향 보고서에서도 악성코드 상위 15개의 유형에 계속해서 설계도면 악성코드가 랭크되어 있는것으로 보아 해커들이 관심이 집중된 것을 알 수 있으며, 더욱 다양한 유형의 설계도면 악성코드가 출현할 것으로 예상할 수 있습니다.
글을 마치며
이번 포스팅에서는 설계도면 악성코드와 피해사례 및 최근 동향에 대해 알아보았습니다. 악성코드가 급속히 진화하고 발전함에 따라 설계도면 악성코드도 다양하게 변화하고 있으며, CAD 소프트웨어의 다양한 기능과 설계 기술의 고도화되는 것과 동시에 다양한 설계도면 악성코드가 출현할 것으로 예상됩니다. 따라서 출처가 불분명하거나 조금이라도 의심스러운 설계도면이라 하면 취급시 주의를 당부드립니다. 저희 연구팀은 날로 커지는 설계도면 악성코드의 위협에 대응하고자 설계도면 악성코드 전용 분석 기술을 연구하고 있는데, 다음 포스팅에서는 연구 결과와 다양한 설계문서 악성코드에 대한 소식으로 찾아 뵙도록 하겠습니다.
참고문헌
[1] CAPA, “디지털 제조의 첫 걸음, CAD란?”
[2] kaspersky, “ACAD.Star: Computer Viruses Invade AutoCAD”
[3] ESET, “ESET_ACAD_Medre_A_whitepaper”
[4] FORCEPOINT, “AutoCAD Malware – Computer Aided Theft”
[5] kaspersky, “AutoCAD – New Platform for Start Page Trojans”
[6] AUTODESK, “AutoCAD 2024 About Security and Protecting Against Viruses”
[7] ESTsecurity, “2023.06 보안동향보고서”

KAIST 사이버보안연구센터 사이버위협분석팀 연구원으로 리버싱 및 악성코드 분석 관련된 연구를 수행하고 있다.