본문 바로가기
Study/랜섬웨어

랜섬웨어의 정의

by 꼬부기가우는소리 2016. 6. 27.
728x90


참고 사이트 : 

- [나무위키] 랜섬웨어 

- [위키백과] RSA 암호

- [Microsoft] 설정 및 기타 앱 데이터 저장 및 검색

- [System engineer] [스크랩] AppData 폴더란?



Ransomware

몸값을 뜻하는 ransom과 제품을 뜻하는 ware의 합성어로, 사용자의 동의 없이 컴퓨터에 불법으로 설치되어서, 컴퓨터의 정상적인 이용을 방해하고, 이를 해제하기 위해 을 요구하는, 사용자의 파일을 인질로 잡는 악성 프로그램을 말한다.


CryptoLocker가 국내 등에 소개되며 악명을 떨치기 시작한 이후로, 랜섬웨어 = 컴퓨터 암호화 라는 것이 거의 공식처럼 여겨지고는 있지만, 크립토락커가 등장하기 이전에도 이런 형식의 컴퓨터를 암호화하지 않는 형식의 랜섬웨어들은 많이 존재했다. 물론, 크립토락커가 등장한 이후 랜섬웨어의 대새는 암호화 랜섬웨어인 것으로 보인다. 


이전까지는 외국 사이트 등에서나 간간이 볼 수 있었지만, 2015년 들어 한국 웹에서 급격히 유행하기 시작했다. 문서나 스프레드시트, 그림 파일 등을 제멋대로 암호화해 열지 못하도록 한 뒤, 돈을 보내주면 해독용 열쇠 프로그램을 전송해준다고 하며 금품을 요구한다. 크립토락커 등 랜섬웨어의 대부분은 Tor를 기반으로 한 웹페이지를 이용하기 때문에 추적이 어렵고 막대한 시간이 들기 때문에 검거가 어렵다. 랜섬웨어가 암호화하는 파일의 종류는 .xls, .doc, .pdf, .jpg, .cd, .avi, .rar, .zip, .mp4, .png, .psd, .hwp, .java, .js 등이 있다.


해커가 요구하는 대로 비트코인 등 가상 계좌로 돈을 보내면 복호화 프로그램을 줄 지도 모르나 대부분은 주지 않는다.


LAN을 이용해 네트워크를 구성한 상태에서 네트워크 내의 모든 컴퓨터가 죄다 오염되었다면 사태는 더 심각해진다. 키가 컴퓨터마다 고유하게 설정돼서 감염된 다른 컴퓨터에 적용할 수가 없기 때문에, 공용 네트워크를 통해 랜섬웨어가 세트로 퍼질 경우 컴퓨터마다 따로 돈을 내야 한다. 다만 공용 네트워크라 하더라도 타 컴퓨터에 대한 쓰기 권한이 없다면 전염되지는 않는다고 한다.


이 악성코드를 없애도 암호화된 파일은 복구가 되지 않는 것은 물론, 백신 프로그램으로도 복구 소프트웨어로도 한계가 있기 때문에, 백업만이 해결책이다. 백신이야 말할 것도 없지만, 일부 랜섬웨어는 파일의 내용도 변경시키기 때문이다.



증상

감염되면, 한동안 CPU팬이 미친듯이 회전하며 하드를 읽는다. 그리고 있는 대로 메모리를 끌어쓰기 시작한다. 종류에 따라서는 일정한 텀을 주면서 처리하여 사용자가 컴퓨터의 이상을 쉽게 눈치채기 힘들게 만든 종류도 있다.


컴퓨터 성능에 따라 약 5분에서 최장 1시간 정도의 암호화 작업을 하는데, 보통 C&C 서버에서 RSA 공개키를 받아온 다음 파일 데이터들을 전체 검색하듯이 찾기 시작한다. Ctrl+F를 하고 *.*를 입력했을 때 찾는 현상과 비슷하다. 이때까지는 컴퓨터가 조금 느려지는것 외에는 딱히 체감되는 문제는 없다.


이렇게 파일 목록과 RSA 공개키가 확보되면 파일 각각에 대해 AES 키를 매번 생성하여 파일을 암호화하기 시작한다. 파일 내용을 암호화하고 파일로 다시 쓸 때, 보통 이 때 사용한 AES 키를 아까 서버에서 받아온 RSA 공개키를 이용해서 암호화하여 같이 저장한다. 따라서 공격자만 갖고 있는 비밀키가 있어야 이 AES 키를 알아내서 복호화를 할 수 있다.




RSA 암호

RSA는 공개키 암호시스템의 하나로, 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다.


RSA는 두 개의 키를 사용한다. 여기서 키란 메시지를 열고 잠그는 상수 (constant)를 의미한다. 일반적으로 많은 공개키 알고리즘의 공개키 (public key)는 모두에게 알려져 있으며 메시지를 암호화 (encrypt)하는데 쓰이며, 암호화된 메시지는 개인키 (private key)를 가진 자만이 복호화 (decrypt)하여 열어볼 수 있다. 하지만 RSA 공개키 알고리즘은 이러한 제약조건이 없다. 즉 개인키로 암호화하여 공개키로 복호화 할 수 있다.


공개키 알고리즘은 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한사람만이 존재한다는 점에서 대칭키 알고리즘과 차이를 가진다.


RSA는 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 집작할 수 없도록 디자인되어 있다.


AES 암호

고급 암호화 표준 (AES, Advanced Encryption Standard)은 2001년 미국 표준 기술 연구소 (NIST)에 의해 제정된 암호화 방식이다. AES는 미국 정보가 채택한 이후 전 세계적으로 널리 사용되고 있다. 1977년 공표된 DES를 대체한 AES는 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 알고리즘이다.

 



그리고 암호화가 모두 완료되거나 완료되기 전에 재부팅을 하는 경우, 악성 코드가 당신은 랜섬웨어에 걸렸습니다 라는 식의 txt파일이나 알림창과, 해당 컴퓨터용으로 복호화 파일을 전달할 html 연결 페이지를 자동으로 띄운다. 그리고 그 순간부터 대부분의 작업을 할 수가 없다. 대표적인 증상들을 열거하면 다음과 같다.


(1) 중요 시스템 프로그램이 열리지 않는다.

현재 확인 된 것으로는 명령 프롬프트 (cmd), 윈도우 제어판의 일부 기능 (관리도구의 서비스, 시스템 제어 등), 레지스트리 편집기 (regedit), 시스템 유틸리티 (msconfig), Windows 작업 관리자 (Ctrl + Alt + Del), 시작 (왼쪽 아래의 깃발 모양 또는 창문 모양), 프로그램 및 기능 등이 있다. 이 프로그램을 실행시키면 뜨는 듯하다가 다시 꺼지는 현상이 반복된다. 또는 실행시킨 프로그램이 종료됨녀서 메시지가 적힌 메모장이 열린다.


(2) 윈도우 복원 시점을 제거한다.


(3) 랜섬웨어가 별도의 다른 악성코드를 심기도 한다.


(4) CPU와 램 사용량이 급격하게 증가하고 파일들이 암호화되기 시작한다.

호화가 완료된 파일들이 들어있는 폴더에 위에서 말한 html과 txt파일을 생성한다. 이것은 하위 폴더, 상위 폴더 구분없이 일단 해당 디렉토리의 모든 파일을 암호화하고 난 뒤에 생성한다.


(5) 백신이 오작동한다. 혹은 강제로 꺼지거나 삭제된다.


(6) 안전모드로 기동할 경우, 중간까지는 로딩되는 듯하다가 다시 정상 윈도우로 부팅된다. 즉, 안전모드 자체로 진입할 수가 없다.


(7) 유저가 암호화된 파일을 열 수 없다

원래 해당 파일을 편집했던 프로그램으로 연결해도 '읽을 수 없는 형식'이라 표시된다. 만약 유저가 아직 암호화되지 않은 문서파일을 열 경우, 한동안은 편집이 가능하지만 문서를 저장하는 순간 암호화된다.


(8) 외장하드나 USB로 파일 백업을 시도할 경우, 강제적으로 외장 메모리 접속을 해제시킨다. 그리고 옮기기를 시도한 파일들이 전부 암호화된다.

위의 행동을 통해 외장하드 역시 랜섬웨어에 감염될 수 있으며, 경우에 따라서 외장하드를 손상시킨다. 계속 강제로 접속을 끊고 연결하고 끊고 연결하고를 반복하기 때문인데, 이는 결과적으로 외장하드 및 메모리에 배드섹터를 야기하게 된다. 이렇게 감염된 외장하드를 다른 컴퓨터에 연결한다 해도 당장은 이상이 없다. 배드섹터가 발생한 부분을 제외하고는 정상적으로 파일에 접근할 수 있으며, 외장하드에 파일을 옮기는 것도, 그 파일을 가져오는 것도 가능하다. 하지만 외장하드 내에 위에서 설명한 html과 txt파일이 생성되어 있다면 절대로 해당 파일을 열지 말자. 감염된다.


(9) 재부팅을 할 때마다 상기한 txt 파일, html 파일이 시작 프로그램 목록에 또 추가된다.

 

(10) 악성코드는 대략 C드라이브 Program files나 C드라이브 USER Appdata Roaming 등에 자기 자신을 복사하는 유형이 꽤 많다.


위에 서술된 것은 언제까지나 일부분을 설명한 것이며, 항상 저런 현상인 것은 절대로 아니다. 또한 종류도 많은 데다가 같은 종류의 랜섬웨어도 업데이트가 지속적으로 되고 있기 때문에 위의 내용만 가지고 판단하는 것은 금물이다. 하지만 파일의 확장자를 바꾸고 암호화한다는 것은 동일사항이니 이런 현상이 발생한다면 랜섬웨어가 발생했다고 볼 수 있겠다.




Appdata

Appdata는 특정 앱에 대한 변경 가능한 데이터이다. 여기에는 런 타임 상태, 사용자 기본 설정 및 기타 설정이 포함된다. Appdata는 사용자가 앱을 사용할 때 만들고 관리하는 데이터인 사용자 데이터와는 다르다.


(1) Local Appdata

로컬 앱 데이터는 앱 세션 간에 유지해야 하고 로밍 앱 데이터에 적절하지 않은 모든 정보에 사용해야 한다. 다른 디바이스에서 적용할 수 없는 데이터도 여기에 저장해야 한다. 로밍하기 적절하지 않은 데이터 및 대규모 데이터 집합에 대해 로컬 앱 데이터 저장소를 사용한다.


(2) Data Roaming

앱에서 로밍 데이터를 사용하는 경우 사용자는 손쉽게 앱의 앱 데이터를 여러 장치 간에 동기화 상태로 유지할 수 있다. 사용자가 여러 디바이스에 앱을 설치하는 경우, OS는 앱 데이터를 동기화 상태로 유지하여 사용자가 두 번째 디바이스에 앱을 설치할 때 수행해야 할 설치 작업이 줄어든다. 또한 룀ㅇ을 사용하면 목록 작성 같은 작업을 중단했다가 다른 디바이스에서 바로 이어서 진행할 수 있다. OS는 로밍 데이터가 업데이트되면 이를 클라우드로 복제하고, 앱이 설치된 다른 디바이스의 데이터와 동기화한다.


(3) 임시 Appdata

임시 앱 데이터 저장소는 캐시처럼 작동한다. 파일이 로밍되지 않으면 언제든 제거할 수 잇다. 시스템 유지 관리 작업에서 이 위치에 저장된 데이터를 언제든지 자동으로 삭제할 수 있다. 임시 앱 데이터는 앱 세션 중 임시 정보를 저장하는데 사용할 수 있다. 위치는 TemporatorFolder 속성을 통해 사용할 수 있다.


Appdata Folder

Appdata 폴더에는 앱 설정, 파일 및 PC의 앱 관련 데이터가 포함되어 있다. 기본적으로 이 파일은 탐색기에서 숨겨져 있으며 Local, LocalLow, Roaming이라는 세 개의 숨겨진 하위 폴더를 가지고 있다.


- Roaming : 이 폴더 (%appdata%)에는 사용자가 도메인에 있는 경우 등 PC 간에 사용자 프로필로 이동할 수 있는 데이터가 포함되어 있다. 이 데이터에는 서버와 동기화 할 수 있는 기능이 있기 때문이다.


- Local : 이 폴더 (%localappdata%)에는 사용자 프로필로 이동할 수 있는 데이터가 포함되어 있다.


- LocalLow : 이 폴더 (%appdata%/.../locallow)에는 이동할 수 없는 데이터가 포함되어 잇찌만 액세스 권한 수준이 더 낮다.

 




대처법

    1. crypt, vvv 등의 이상한 확장자가 보이거나, 랜섬웨어 협박문이 뜨면 바로 아래를 시행한다.

    2. 플러그를 뽑는다. 노트북이라면 강제 종료를 한다.

    3. 새 하드디스크를 사서 복사(보존처리)한다.

    4. 복호화 한다. 백신 회사에서 복호화 툴을 제공하며, 범인이 잡힌 랜섬웨어나 오래된 랜섬웨어는 복구가 가능하다.

    5. 복호화가 실패하면 백업, 타임머신(애플)을 저장한 외장하드를 가져온다.

    6. 백업이 없으면 랜섬웨어 제작자에게 돈(비트코인)을 지불한다. 직접 대응할 수도 있고, 전문가(대행업체)를 이용할 수도 있다.

    7. 상위의 사람들이 먹튀를 하거나, 복호화 키 제 짝을 못찾아 엉뚱한 것을 주는 등 상상 이상의 상황이 벌어질 수 있다. 경찰이 범죄자를 잡거나, 랜섬웨어 제작자가 마음이 바뀌어 키를 전부 공개하거나, 백신회사가 랜섬웨어 해제 키를 찾아낼 때 까지 기다린다.

    8. 컴퓨터를 포맷한다.

    9. 백업한 파일로 복구한다.




728x90

댓글