랜섬웨어는 어떻게 감염되는가? (feat. RSA & AES)

vinca·2024년 7월 23일
1
post-thumbnail

Introduction

OO메일 서버 ➡ Gmail 서버로 마이그레이션 작업을 수행하던 도중, 계속해서 실패되는 메일들이 확인되었다.
왜 이러한 실패가 발생하는 지 알아보고자, 메일을 직접 열어봤고 대부분 멀웨어나 랜섬웨어와 같은 악성코드가 담긴 파일들 때문에 구글에서 기본적으로 마이그레이션을 차단한 것을 확인할 수 있었다.

물론 구글이 직접 악성코드를 검사해서 이를 막아주는 것은 아니고, 악성 코드로 의심되는 특정 확장자 명이 담긴 파일을 차단해준다. Gmail에서 차단되는 파일 형식

마이그레이션 작업을 하면서 느낀 거지만, 처음부터 구글 메일(Gmail)을 사용했다면 이러한 스팸 메일을 사전에 방지할 수 있었을 텐데,,라는 생각이 들었다.

악성코드가 담긴 메일

자, 이제 해당 메일을 열어보자.

3월20일 까지 389달러의 벌금을 내라고하며, 동봉된 첨부파일을 확인하라고 한다.
"누가봐도 말도 안되는 소리인데"라고 하기에는 사 발신자가 회사 대표 메일로, 메일함이 안되니 확인바란다는 등, 충분히 낚일만한 메일도 많다.

악성코드 파일 분석

해당 파일을 VirusTotal을 통해서 분석해본 결과는 다음과 같다.

파일을 올리면 해당 파일을 각 보안업체의 기준을 통해 분석해주는데, 해당 파일이 언제 처음으로 등장했는지, 파일의 해시값을 바탕으로 상세한 분석 결과를 확인할 수 있다.
결과는 백신업체 31곳에서 걸렸다. (자랑스럽게 한국의 안랩이 두번째로 위치해있다. A로 시작해서.)

...
이제 본격적으로 이러한 랜섬웨어에 왜 걸리는 지 알아보도록 하자.

랜섬웨어에 감염되는 과정

물론 위의 해당 파일을 실제로 열진 않겠지만, 만약 열게되는 경우 어떤 과정을 통해 랜섬웨어에 감염되는 지 보다 개발자스럽게 알아보도록 한다.

💡 해당 방법이 모든 랜섬웨어의 감염 방법에 해당하는 것은 아니며, 랜섬웨어의 종류에 따라서 다양한 방식으로 감염시킨다.
해당 예시는 랜섬웨어의 대표적인 예 중 하나이다.

1. 사용자가 해당 랜섬웨어 파일을 실행 or 다운로드

사용자가 토렌트나, 피싱 이메일, 파일 다운로드 등을 통해 랜섬웨어 파일을 실행시킨다.
이 때, 공격자의 RSA 공개키🔐가 함께 다운로드 된다.

여기서는 공격자의 "RSA 공개키"가 다운로드 된다는 것만 알아두고, 4번에서 함께 설명한다.

아래 사진은 랜섬웨어에 감염될 경우, 사용자에게 제공되는 일종의 [알림과 협박이 담긴 설명서]이다.
실제로 그 뜻을 해석해보면 RSA-2048 키를 통해서 암호화 되었다고 친절하게 설명해주고 있다.

2. 사용자 시스템의 정보 전송

감염된 PC에서는 본격적으로 랜섬웨어 프로그램이 실행되고, 사용자 정보 및 IP를 공격자의 C&C (Command and Control) 서버에 전송한다.

Tip.
사실 이러한 C&C 서버 또한 해커 본인의 서버를 사용하는 것이 아닌, 다른 멀쩡한 서버를 해킹한 뒤, 악성 코드를 심어두는 형태로 서버를 좀비화하여 사용한다.

이를 통해서 공격자는 해당 정보를 바탕으로 어떤 PC가 감염되었는지 확인하고, 이렇게 수집된 정보를 기반으로 사용자에게 돈을 받고 데이터를 복구💲해주게 된다. 하지만 돈 줘도 복구 안해주는 경우가 많다.

3. 대칭키를 사용하여 사용자 데이터 암호화

대칭키사용자의 PC에서 생성한 뒤, 이를 통해 사용자의 데이터를 암호화한다.
즉, 사용자의 PC에서 대칭키를 생성하고, 해당 대칭키(비밀키)로 암호화 한다.

즉, 사용자의 파일을 cat.png 에서 cat.encryped로 암호화되는 과정을 의미한다.

대칭키란? (AES)
암호화와 복호화에 같은 키를 사용하는 방식.
하나의 비밀 키를 사용하여 데이터를 암호화하고 복호화할 수 있다.
키가 노출되는 경우 보안이 그대로 끝난다.
즉, 대칭키 = 단일 비밀키 1개

4. RSA 공개키(비대칭키)를 통해서 암호화

1번에서 넘어갔던 공격자의 RSA 공개키🔐를 통해서 사용자의 대칭키를 암호화 한다.

그렇다면 위 그림과 같이 사용자의 대칭키는 AES 대칭키 암호화된 채로 RSA 공개키로 한번 더 잠기게 된다.

공개키란? (RSA)
RSA는 대칭키가 아닌 비대칭키 방식으로, 공개키와 비밀키가 있다.
공개키는 사용자 모두에게 공개되기에 이를 통해 데이터를 암호화 할 수 있지만, 풀기 위해서는 비밀키가 필요하다.
RSA 공개키로 암호화 하는 경우, 반드시 RSA 비밀키로 복호화 해야한다.

4. RSA 공개키 삭제

이후, 사용자가 대칭키를 통해서 복호화할 수 있으므로, AES 대칭키를 C&C 서버로 전송하고 대칭키를 사용자 PC에서는 삭제한다.

그리고, 공격자의 RSA 공개키 또한 복호화에 사용되거나 분석될 우려가 있으므로 사용자 PC에서 삭제한다.
(사실 공격자의 RSA 공개키는 비밀키가 아니기 때문에 복호화하는데 사용할 수는 없지만 공격자 입장에서 보안의 우려가 있으므로 지운다.)

왜 AES, RSA 두번의 암호화 과정을 거치는가?

랜섬웨어의 핵심은 빠르게 사용자 시스템에서 파일들을 감염(잠금)시키는 것이다. 따라서 속도가 빠른 AES 대칭키 방식으로 사용자의 파일을 암호화한 뒤, RSA로 이러한 AES 대칭키만을 암호화 시켜 속도와 보안 두마리의 토끼를 모두 잡는 것이다.


랜섬웨어의 해결 방안

당연하게도 저런 악성코드로 의심되는 파일은 실행(열지)않는 것이 맞다.
근데 솔직하게 바쁜 업무 와중에 20XX_06_12_전사_워크샵_계획_설문지.jse 이런식으로 파일이 온다면, 제대로 안보고 클릭했다가 아차!😱 싶을 수 있다.

그렇기에 첫째로 사전 차단하는 것이 올바르고, 둘째로 감염된 경우 이를 인지하고 빠르게 조치를 취하는 것이 맞다.

사전 차단하는 방법

스크립트 파일로 유포되는 랜섬웨어 예방 팁! - AhnLab

레지스트리 편집기를 열고 해당 경로를 찾아 다음의 변수 2개를 신규로 만들어 추가하면 된다.

경로 : HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Windows Script Host → Settings

*변수 2개 추가하기
"Enabled"="0"
"IgnoreUserSettings"="1"

해당 방법은 스크립트 파일과 관련된 랜섬웨어의 실행 자체를 막는 방법으로, 이 방법은 js, wsf, vbs 파일을 직접 실행할 수 없도록 하여 랜섬웨어의 감염을 막을 수 있다.

감염된 경우 해결하는 방법

바이러스 제로 카페에서 멀웨어 제로키트(malware zerokit) 를 다운 받은 후 실행하면 된다. 감염의 초기나 발병전에 진행해야 손실을 막을 수 있다.
해당 카페에서 찾기 어려울 경우, 공식 홈페이지를 이용하자.

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

0개의 댓글