본문 바로가기
Security Essay

매크로를 사용한 부고 안내문 사칭 메일 사례

by _Jay_ 2021. 6. 28.
반응형

오늘 에세이에서는 메일로 전파되는 악성코드 중에서 조금 더 지능화된 사례에 대해서 다뤄보고자 합니다. 이전에 다뤘던 메일의 첨부파일에 첨부된 악성코드는 대부분 실행파일이였죠. 해커가 파일의 이름을 'abc.exe.pdf'와 같이 이중 확장자를 사용거나 파일 아이콘을 PDF와 같은 일반적인 문서처럼 바꿔 보내는데, 이러한 케이스는 보통 메일 보안 솔루션에서 확장자 기반 필터링으로 차단 됩니다. 그런데 이번에는 악성코드가 실행파일이 아닌 우리가 자주 쓰는 문서 형태로 오는 케이스에 대해서 기술적인 내용과 함께 말씀드려보겠습니다.

저희가 PC에서 자주 이용하는 문서는 보통 MS Office의 워드나 엑셀, 한컴의 한글 문서 등이 있죠. 그런데 우리가 작성한 문서 안에도 개발할 때 사용되는 프로그래밍 언어의 코드가 들어간다는 것을 아시고 계신지 모르겠는데요. 매크로라는 기능 때문입니다. 이 매크로라는 용어는 엑셀 문서를 자주 사용하시는 분이라면 친숙하실거고, 게임에서 매크로를 돌려보신 분도 대강 아시고 계실 듯 합니다. 매크로는 쉽게 말해서 자주 사용하고 반복하는 작업을 자동화하기 위한 기능으로 생각하시면 되는데요. 만약 엑셀에서 수식 계산과 같이 복잡한 작업이 반복되어야 한다면, 매크로를 통해 클릭 한번으로 자동화할 수 있겠죠.

엑셀 문서에서 동일한 작업을 반복적으로 해야한다고 했을 때, 매크로를 정의하여 사용할 수 있습니다. 만약 특정 셀의 텍스트의 글꼴을 "휴먼졸림체", 글꼴 크기를 "14pt", 글꼴 색을 "파랑"으로 적용해야한다면 이를 매크로로 정의하여, 특정 셀에 대고 매크로 실행 버튼을 누르기만 하면 텍스트에 위의 세 가지가 적용이 되는 방식이죠. 그런데 이렇게 정의된 매크로는 VBA(Visual Basic for Application)이라는 프로그래밍 언어로 코드가 생성되는데요. 여기서는 대강 "cell.fontType='휴먼졸림체'; cell.fontSize=14; cell.fontColor='blue';"와 같이 코드가 저장될 겁니다.

그런데 문제는 엑셀이 자동으로 코드를 생성하는 것 외에도 사용자가 직접 코드를 수정할 수 있다는건데요.. 특정 URL에서 파일을 다운 받는 URLDownloadToFile 함수(=API)나 파일을 실행하는 ShellExecute 함수 등 Visual Basic Script에서 사용할 수 있는 모든 함수를 실행할 수 있습니다. 그런데 말이죠.. 여기서 언급한 함수가 왠지 악성코드가 충분히 사용할 수 있는 함수처럼 느껴지지 않나요? 네.. 해커가 실제로 엑셀 문서에 매크로를 정의해서 문서를 여는 순간 사용자의 PC에 랜섬웨어를 다운로드 받아서 실행시켜버리는.. 이런 악성행위를 하는 코드를 작성합니다.

이렇게 악의적인 행위를 하는 매크로가 포함된 문서를 문서형 악성코드라고 하고요. 엑셀(xlsx)이나 워드(docx)와 같은 문서는 메일로 굉장히 많이 보내는 첨부파일이기 때문에, 이전에 말씀드렸던 실행파일처럼 보안 솔루션에서 기본적으로 필터링하지 않습니다. 보안 솔루션에서 하두 실행파일로 보내는 메일은 차단이 되니까, 해커가 이제는 추가적으로 파일을 다운로드 받고 실행시키는 행위를 하는 문서형 악성코드를 만들어서 보낸거죠. 또 그렇다고 메일 보안 솔루션에서 문서형 악성코드를 아예 막지 못하는건 아닙니다. 첨부파일에 문서가 존재하면 해당 문서에서 매크로가 있는지 확인하고, 매크로에 악성코드가 사용할만한 함수가 있으면 악성으로 판단하고 차단시켜 버리는 기능을 추가했죠. 이에 대해서는 다음에 더 자세히 설명하도록 하겠습니다.

 

 

부친 부고 안내문? 알고 보니 또 ‘이모텟’ 악성코드 감염 유도

최근 부고 안내문으로 위장한 악성 메일이 유포된 것으로 드러났다. 해당 메일은 국내에 지속적으로 유포되고 있는 매크로 문서 악성코드를 첨부한 악성 메일의 일종으로 뱅킹 악성코드인 ‘이

www.boannews.com

 

오늘 인용한 기사는 그렇게 큰 내용이 없기 때문에 해당 악성코드에 대해 좀 더 자세히 설명드리고 마치도록 하겠습니다. 일단 발견된 악성코드는 꽤 이전부터 발견된 이모텟이라는 이름의 뱅킹 악성코드라고 하는데요. 뱅킹이라고 해서 어렵게 생각하시지 말고, 공인인증서와 같은 금융 정보를 탈취하는 악성코드라고 생각하시면 됩니다. 그런데 위에서 설명드린 것처럼 문서형 악성코드 안의 매크로에서 파일을 다운로드하고 실행시키는 함수가 실행된 것은 아니고, 파워쉘 스크립트라고 하는 명령 제어 도구를 이용하여 추가 악성코드를 다운로드 받습니다.

 

파워쉘 스크립트(PowerShell Script)는 윈도우를 제어하기 위한 명령어를 입력할 수 있는 명령창 도구 정도로 생각하시면 됩니다. 보통 리눅스에서 bash 쉘과 비교되는데, 원래 저희가 아는 명령창 또는 명령 프롬프트(cmd)는 검은색 창에 흰색 글씨죠. 그런데 파워쉘은 파란색 창에 흰색 글씨입니다. 이게 뭔지 모르시겠다면 윈도우+R키를 눌러서 'powershell'을 입력한 뒤 엔터를 누르시면 바로 아실 수 있을 겁니다. 이 파워쉘은 일반적으로 제공하는 명령창보다 프로세스 제어라든지 네트워크 통신 등 좀 더 파워풀한 기능을 가지고 있다고 생각하시면 충분한데요. 앞으로도 종종 나올 것이기 때문에 기억해두시면 좋을 듯 합니다.

 

그래서 다시 정리를 하자면.. 해커가 문서형 악성코드를 불특정 다수에게 메일로 보냈고, 이 메일을 여는 순간 매크로가 실행되면서 파워쉘 스크립트를 이용해서 추가적인 악성코드를 다운로드 받았고, 이 악성코드를 실행시켜 사용자의 금융 정보를 탈취했다..정도로 요약하시면 될 것 같습니다. 문서형 악성코드에 대해 설명드린다고 굉장히 많이 길어졌는데요. 사실 강의로 치면 몇 시간 분량은 나오기 때문에, 정말 필요한 부분만 컴팩트하게 정리해봤습니다. 더 자세한 내용들은 이후 에세이에서 설명드리는 것으로 하죠. 그럼 오늘은 여기서 마치겠습니다. 긴 글 읽어주셔서 감사합니다.

 

반응형

댓글