보안정보
전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.
JavaScript 기반의 Ransomware : Ransom32
2016.03.02
28,270
서비스사업본부 보안분석팀 정예슬
1. 개요
지난 해 국내 대형 커뮤니티를 중심으로 한글 버전 Crypt0L0cker가 유포되며 국내를 떠들썩하게 만들었던 랜섬웨어가 여전히 다양한 방법으로 진화하고 있어 2016년에도 각별한 주의가 요구된다.
랜섬웨어는 ransom(몸값) + ware(제품)의 합성어로 컴퓨터 사용자의 PC나 문서를 암호화하여 인질로 잡고 데이터를 복호화 해주는 조건으로 금품을 요구한다.
발생년도 | 랜섬웨어 이름 | 특징 |
1989.12 | AIDS | 초기 랜섬웨어로 하드 드라이브의 루트 디렉터리를 암호화 |
2010.08 | WinLock | 외설적인 이미지를 표시하는 형태로 화면을 잠금 |
2013.09 | CryptoLocker | 중요 문서 암호화 및 비트코인 사용 시작 |
2013.11 | CryptoWall | 파일 내용뿐만 아니라 파일명도 암호화 |
2015.03 | TeslaCrypt | 게임 데이터를 대상으로 Angler Exploit kit을 이용 |
2015.04 | Crypt0L0cker | 한글판 랜섬웨어 등장 |
2015.05 | Tox | 서비스형 랜섬웨어 |
2015.09 | Chimera | 파일 암호화 뿐만 아니라 인터넷에 유포하겠다고 협박 |
2015.12 | Ransom32 | JavaScript 기반의 랜섬웨어 |
[표 1] 주요 랜섬웨어의 특징
랜섬웨어는 스팸메일의 첨부파일, 감염된 웹 사이트를 통한 드라이브 바이 다운로드 등을 통해 유포되고 있으며, 지난 12월 말일 경 수익률에 25%를 제공하는 조건으로 랜섬웨어를 판매하는 서비스 형태의 JavaScript 기반 랜섬웨어 Ransom32가 등장했다.
2. Ransom32란 무엇인가
Ransom32는 최초의 JavaScript 기반 랜섬웨어로 2015년 12월에 처음 발견됐다.
이메일 첨부파일에 SFX(self-extracting archives) 압축 파일로 포함되어 유포되고 있으며, 22M 크기의 해당 파일을 다운로드하면 자동 압축 해제되면서 Ransom32가 실행된다.
이 랜섬웨어는 어플리케이션 개발을 위한 NW.js 프레임워크를 이용하였으며, Tor 네트워크에 숨어있는 C&C서버로 부터 암호화 키를 받아 사용자 파일을 암호화 하고 복호화의 조건으로 비트코인을 요구하는 랜섬웨어다.
[그림 1] Ransom32 감염 공지
■ NW.js란 무엇인가
NW.js는 JavaScript를 이용하여 Windows, Linux, Mac OS X 와 같이 다양한 OS 위에 어플리케이션을 개발할 수 있는 프레임워크로 Node.js 및 Chromium을 기반으로 한다. NW.js를 이용하면 파일을 디스크에 바로 기록할 수 있는 등 디스크 액세스, 전체화면 디스플레이와 같은 다양한 기능 구현이 가능하다.
■ Tor란 무엇인가
Tor는 분산형 네트워크 기반으로 onion 라우터를 거쳐서 네트워크를 사용하고 나가는 연결이 익명으로 처리되는 익명 인터넷 통신 시스템이다. Tor는 SOCKS 인터페이스를 제공하고 SOCKS를 이용하여 Tor 가상 회로를 통해 데이터를 보낼 수 있으며, 데이터는 암호화 기법을 사용하여 전송된다. 또한 신원을 밝히지 않고 각종 서버의 운용이 가능한 히든 서비스 기능이 있다.
3. Ransom32 구성 파일
Ransom32.RAR파일이 자동 압축 해제되면 %Application Data%Chrome Browser에 풀린다.
압축파일 내의 Ransom32.RAR을 구성하고 있는 파일은 다음[그림 4-2]와 같다.
[그림 4-2] Ransom32.RAR 구성 파일
1) chrome.exe NW.js 어플리케이션 패키지로 Malware 코드를 포함한 파일
2) g Malware의 구성정보를 포함하는 파일로 웹 인터페이스 환경 등을 설정
3) msgbox.vbs 악성코드에 감염된 장치에 메시지 박스를 보여주는 script 파일로 메시지 박스를 구성
4) rundll32.exe Tor client 파일
5) s.exe Optimum X Shortcut 파일로 데스크톱을 조종하고 시작메뉴에 단축 아이콘을 만듬
6) u.vbs 주어진 디렉터리에서 모든 파일과 폴더를 열거하고 삭제하는 script
7) 기타 locales 디렉터리 / ffmpegsumo.dll / nw.pak / icudtl.dat 파일들은 NW.js 프레임워크가 올바로 기능하기 위해 필요한 데이터를 포함하고 있으며, 정상 NW.js 구성 파일과 동일 .chrome 디렉터리 / n.l / n.q / TempWmicBatchFile.bat 파일들은 Ransom32가 실행되며 생성됨
4. Ransom32 실행 과정
[그림 3] Ransom32 실행 과정
Ransom32.rar 파일을 다운로드하면 %Application Data%Chrome Browser 디렉터리에 자동 압축 해제되면서 chrome.exe 파일이 실행된다.
chrome.exe 파일은 다시 %Local Settings%Temp 디렉터리에 자동 압축 해제되며 ‘s.exe’ , ‘rundll32.exe’ 등을 실행 시킨다.
s.exe는 시작메뉴에 Chrome Service를 생성하여 부팅 시 Malware가 자동 실행되도록 하고 rundll32.exe는 Tor Client로 85번 포트를 통해 Tor 네트워크에 숨어있는 Ransom32 C&C 서버와 연결한다.
C&C 서버에서 Bitcoin 주소와 암호화 키를 보내면 chrome.exe는 index.html을 통해 binary.bin을 실행시켜 파일 암호화를 시작한다.
s.exe
s.exe파일은 레지스트리에 Chrome Service를 등록시켜 부팅을 할 때 마다 Malware가 실행되도록 한다.
하지만 실행 환경에 따라 동작하지 않는 경우도 있다.
rundll32.exe
Tor client 파일인 Rundll32.exe가 실행되면 SOCKS를 이용하여 C&C서버와 85번 포트로 연결을 한다.
연결에 성공하면 C&C서버는 피해자에게 금품을 지불하게 할 Bitcoin 주소와 암호화를 위한 Cryptographic key를 보낸다.
[그림 4] rundll32.exe 실행 화면
[그림 5] Tor 네트워크와 연결 관련 동작
g 파일
Malware의 구성정보를 포함하는 파일로 ‘affid’는 Ransom32.RAR을 배포한 RaaS(Ransomware as a Service) 가입자의 Bitcoin 주소다.
rundll32.exe가 C&C서버와 연결하면 C&C 서버는 rsapublickey와 피해자에게 Bitcoin 지불을 요구 할 주소(btcaddress)를 보내 chrome.exe가 g 파일에 작성한다.
[그림 6] g 파일
chrome.exe
NW.js 어플리케이션 패키지인 chrome.exe파일은 NW.js 패키지 내의 브라우저 기능을 지원하는 실행파일 nw.exe 파일과 96%의 유사도*를 가지며, 단순 윈도우 실행 파일(exe)처럼 보이나, 압축 파일 자체가 실행 파일로 되어 있는 SFX(self-extracting archives) 파일이다.
Ransom32를 실행시키는 Malware가 필요로 하는 프레임워크를 포함하고 있으며, 자동 압축 해제 기능을 이용하여 Local SettingsTemp 디렉터리에 압축을 푼다.
[그림 7] chrome.exe와 nw.exe의 유사도 비교
[그림 8] chrome.exe의 구성
chrome.exe는 암호화 대상 파일에 접근하여 파일을 암호화 한다.
[그림 9] 암호화 대상 파일(FileName)에 접근
[그림 10] 실제 암호화 프로세스 과정
* 유사도 계산은 ssdeep를 사용하였으며, ssdeep는 서로 다른 Fuzzy hash(컨텍스트 기반 개별 해시) 결과를 비교하여 유사도를 계산하는 기능을 제공한다.
암호화
Ransom32는 AES 128비트 CTR(CounTeR) block mode로 파일을 암호화한다.
암호화는 chrome.exe에 패키징되어 있는 index.html 파일을 통해 nwjc로 컴파일된 자바스크립트 바이너리 파일인 binary.bin을 실행하여 이루어진다.
[그림 11] index.html 파일
[그림 12] binary.bin 파일
C&C 서버로 부터 RSA로 암호화된 AES 키를 얻을 수 있고, 아래 [그림 13]의 확장자를 대상으로 암호화가 진행되며 [그림 14] 디렉터리에 포함된 시스템 파일 및 모든 파일은 암호화에서 제외된다.
[그럼 13] 암호화 대상 확장자
[그림 14] 암호화 제외 디렉터리
암호화가 진행되면 아래 [그림 15]와 같이 파일을 읽을 수 없게 된다.
[그림 15] Ransom32 감염 전 / 후 파일 비교
아래 [표 2]을 보면 대부분의 랜섬웨어는 파일을 암호화 할 때 파일 확장자가 변경되지만, Ransom32는 파일 확장자 변경 없이 암호화가 진행되는 것을 확인 할 수 있다.
랜섬웨어 |
확장자 변경 |
CryptoLocker |
.encrypted |
CryptoWall |
파일 이름 전체가 랜덤하게 변경 |
TeslaCrypt |
.aaa / .abc / .ccc / .vvv 등 |
Chimera |
.crypt |
Radamant |
.RRK / .RDM |
Ransom32 |
확장자 변경 없음 |
[표 2] 랜섬웨어 별 확장자 변경 비교
[그림 16] 각 랜섬웨어 별 감염 파일
5. 결론
■ JavaScript 기반의 랜섬웨어 ■ 용량이 큰 랜섬웨어
■ 파일의 확장자 변경 없이 암호화하는 랜섬웨어 ■ RaaS 서비스 운영
Ransom32는 NW.js 프레임워크를 이용한 JavaScript 기반의 랜섬웨어로 이론상으로는 NW.js가 Windows 운영체제 뿐만 아니라 Linux, Mac OS X 등으로도 패키징 될 수 있기 때문에 다양한 운영체제를 감염시킬 수 있는 위험이 있다.
대부분의 랜섬웨어는 1MB 이하의 크기를 갖지만, Ransom32는 22MB의 큰 크기를 자랑하며 백신 설정에 따른 크기제한에 걸려서 검사되지 않는 경우도 있다. 또한 다른 랜섬웨어와 달리 사용자 파일 암호화 시 확장자를 변경하지 않는 특징이 있다.
[그림 17] RaaS 관리자 패널 페이지
이러한 Ransom32는 비트코인 주소만 있다면 25%의 수익금을 지불하는 조건으로 [그림 4-17]의 관리자 패널 페이지에서 누구든지 쉽게 다운로드하여 유포할 수 있기 때문에 특히 주의가 필요하다.
랜섬웨어는 해커들이 복호화 할 수 없는 경우도 많이 있지만, 중요 파일을 살리고자 하는 마음에 어쩔 수 없이 돈을 지불하는 사용자가 해마다 늘고 있다.
CryptoLocker를 활용한 범죄 조직은 복호화를 빌미로 단 100일만에 3천만 달러의 수익을 올렸고, Angler Exploit kit은 TeslaCrypt, CryptoWall과 같은 랜섬웨어를 만들어 연간 6,000만 달러의 피해를 발생시켰다.
JavaScript 기반의 랜섬웨어 등장은 앞으로 더 쉽게, 더 다양한 환경에서, 더 많은 사용자들을 위험에 빠뜨릴 것이다.
끊임없이 진화하는 랜섬웨어로부터 중요한 데이터를 지키기 위해서는 사전 예방과 사후 조치를 꼭 명심해야 한다.
6. 어떻게 예방하고 조치할 것인가
1) 사전 예방
- 스팸성 이메일 열람 자재하기
- 접속 할 사이트의 안전성을 확인하기
www.virustotal.com 검색 및 구글 확장프로그램 WOT 이용
(WOT download : https://chrome.google.com/webstore/detail/wot-web-of-trust-website/bhmmomiinigofkjcapegjjndpbikblnp?utm_source=chrome-app-launcher-info-dialog)
- 첨부파일은 백신 검사 후에 다운받기
- 백신 설정에서 검사 파일의 최대 크기 제한 해제 및 압축파일 검사 등을 설정하기
[그림 18] 압축파일 검사/감시 설정(알약)
- 백신 프로그램, 응용 프로그램 및 OS 등을 최신 업데이트하여 사용하기
- 중요 데이터는 백업해두고 사용하기
- Tor IP 및 85번 포트 차단하기
Tor는 경유 서버 IP리스트를 가지고 있고 이러한 IP들은 공개되어 있기 때문에 이를 통해 Tor IP 차단 및 모니터링 정책을 세울 수 있다.
URL |
[표 3] Tor 관련 IP정보 제공 사이트
2) 사후 조치
- Ransom32 감염 시 컴퓨터 전원 차단
- Ransom32 삭제 및 복호화 프로그램 사용하기
(http://nabzsoftware.com/types-of-threats/ransom32 시스템 환경에 따라 적용되지 않을 수 있음)
■ Tor IP 차단 SIEM으로 대응하기 : SIEM 블랙리스트 기능을 통한 대응 방법
SIEM 콘솔에 접속해서 상단메뉴에서 [설정-> 블랙리스트] 관리를 선택한다.
1. 블랙리스트 관리 메뉴에서 [토르IP대역]을 추가한 한다. (최초에만 추가하면 된다.)
2. [블랙리스트 관리-> 블랙리스트 설정]에서 그룹명 토르IP대역을 선택한다.
3. 아래와 같이 [오른쪽 버튼->목록 불러오기->Text]를 선택하여, 토르파일을 불러온다.
[그림 19] SIEM 블랙리스트 관리
블록리스트 등록이 완료되면 사이트 설정에 맞게 경보설정을 할 수 있고 만약 부하가 많이 발생할 경우, 검색기능을 통해 공격시도 내역을 찾을 수 있다.
중복된 IP를 피하기 위해 주기적으로 해당 룰셋을 리셋하고 새로운 룰을 지속적으로 적용하기를 권장한다.
[그림 20] 블랙리스트 등록 내역 조회
7. 참고자료
[1] http://blog.emsisoft.com/2016/01/01/meet-ransom32-the-first-javascript-ransomware/
[2] http://securityaffairs.co/wordpress/43250/cyber-crime/ransom32-crypto-ransomware.html
[3] https://www.virustotal.com/
[4] https://github.com/nwjs/nw.js
[5] https://www.scirra.com/tutorials/1276/nwjs-export/ko
[6] https://www.torproject.org/about/overview.html.en
[7] https://ko.wikipedia.org/wiki/%ED%86%A0%EB%A5%B4_(%EB%84%A4%ED%8A%B8%EC%9B%8C%ED %81%AC
[8] http://ssdeep.sourceforge.net/
[9] http://hummingbird.tistory.com/6235
[10] http://www.boannews.com/media/view.asp?idx=48724&kind=1
[11] 월간 동향 분석보고서 2013년 9월호 TechNote “토르의 이해 및 대응방법”