이 페이로드를 보호하기 위한 여러 가지 방법들 개발돼
[보안뉴스 문가용 기자] 정보 보안에는 온갖 신조어들이 생겨난다. 오늘은 그 중 패커(packer)와 크립터(crypter), 프로텍터(protector)에 대해 간략히 설명을 해보고자 한다. 기계적인 정의보다는 멀웨어 공격이라는 맥락 안에서 이 셋은 어떤 의미를 갖고 있는지를 파악해보자. 기억해야 할 것은 이 기사에 풀어지는 설명이 절대적이지 않다는 것이다. 그러니까 이거 보고 달달 외우고 어디 가서 아는 척 하면 위험할 수 있다는 뜻.
.jpg)
▲ 겹겹이 안아서 보호해줌
일단 셋의 공통점 : 목표
멀웨어 중 실제 나쁜 내용을 담고 있는 부분을 페이로드(payload)라고 한다. 공격자들이 피해자 컴퓨터에서 실행하고 싶은 것도 결국엔 이 페이로드고, 리버스 엔지니어링 안 당하고 싶은 것도 이 페이로드이며, 보안 소프트웨어의 점검망을 피해가게 하고 싶은 것도 페이로드다. 그래서 페이로드 위에 평범하거나 정상적인 코드를 얹혀 감춘다. 감춘다는 목표, 그것이 패커, 크립터, 프로텍터의 공통점이다.
패커
정식 이름은 런타임 패커(runtime packer) 혹은 자가 추출 아카이브(self-extracting archive)다. 패킹된(혹은 압축된) 파일이 실행될 때 메모리 내에서 스스로를 언패킹(혹은 압축 풀기)하는 소프트웨어를 말한다. 그래서 이런 기술을 ‘실행 파일 압축(executable compression)’이라고 부르기도 한다. 이런 방식의 압축 기술은 사용자가 실행 전 일일이 압축 풀기를 하지 않아도 될 정도로 파일을 작게 만들기 위해 개발됐다.
그런데 요즘이 어떤 세상인가. 인터넷 속도, 기기의 성능의 눈부신 발전 때문에 굳이 파일 용량을 작고 더 작게 만들 필요가 없게 되었다. 해도 안 될 건 없지만, 굳이 그런 수고까지 도맡는 사람은 희박하게 되었다. 압축을 하거나 푸는 과정 자체가 사장되다시피 한 것은 당연하다. 페이로드를 못 보게 하기 위한 사람 말고는 아무도 패커를 사용하지 않게 되었고, 사실 요즘 패커는 무조건 의심하고 보는 게 맞다. 리버스 엔지니어링과 탐지를 더 귀찮고 복잡하게 만들기 위한 과정으로 추가된 것일 뿐이다.
크립터
현재 가장 거칠고 기초적이며 원시적인 크립터 기술은 난독화(obfuscation)다. 난독화는 자바스크립트나 비주얼베이직스크립트와 같은 스크립트 류에 자주 사용된다. 그러나 난독화를 뚫어내거나 우회하는 게 그리 어려운 일은 아니다. 이것보다 좀 더 어렵고 고난이도인 기술이 암호화(encryption)다. 암호화 되는 대상은 당연히 파일들이다.
그런데 요즘 나오는 크립트 소프트웨어는 파일 암호화에서 그치지 않는다. 각종 실행 파일을 숨겨 어지간한 탐지 소프트웨어에 걸리지 않도록 만들어주기도 한다. 당연히 분석 들어가기도 어려워진다. 이런 현상은 패커 쪽에서도 나타나고 있다. 패커를 보면 사용자들이 일단 피해가기 시작하자 자동 실행 파일을 더 확실히 감추기 시작한 것이다.
이런 맥락에서 최근 등장한 새로운 용어가 있으니 바로 FUD다. 이는 완전 탐지 불가능(Fully UnDetectable)의 준말로 멀웨어 제작자들의 궁극적인 지향점이 되고 있다. 말 그대로 그 어떤 보안 전문가와 전문업체의 기술로도 탐지되지 않는 상태를 말하는 것이다. 하지만 그런 멀웨어는 제작이 불가능하다는 걸 그들도 알고 있고, 그래서 이들은 들키지 않고 있는 상태가 유지되는 동안 파일을 슬쩍슬쩍 바꿀 수 있는 것에 만족하고 있다.
프로텍터
이러한 맥락에서 프로텍터란, 프로그램의 조작이나 리버스 엔지니어링을 봉쇄하고자 만들어진 소프트웨어다. 보통 패킹 기술과 암호화 기술도 한꺼번에 프로텍터라고 불리며, 실제 프로텍터 소프트웨어를 분석해보면 두 기술을 함께 가지고 있는 경우가 많다. 패킹과 암호화 기술의 조합과 몇 가지 추가 기능이 더해져 실제 리버스 엔지니어링을 매우 어렵게 만든다. 결국 실제 페이로드를 감싸고 있는 각종 보호막들을 가리킨다고 보면 된다.
그런데 패킹이나 암호화와 전혀 상관없는 종류의 프로텍터들도 존재한다. 여기에 대동되는 기술은 코드 가상화(code virtualization)다. 애플리케이션을 보호하기 위해 코드 가상화를 발동시킬 때마다 커스터마이징 된 가상 지침 세트(virtual instruction set)를 사용한다. 사실 게임 회사들이 소스코드를 보호하기 위해 사용하던 고급 기술인데, 멀웨어 제작자들도 조금씩 배워서 자신들의 나쁜 제작물에 도입시키기 시작했다. 특히 랜섬웨어 제작자들 사이에서 인기가 높다. 랜섬웨어에서 암호화 키가 발각되면 말짱 도루묵이기 때문이다. 록키 바트(Locky Bart)라는 랜섬웨어가 오픈소스 코드 가상화 프로젝트인 W프로텍트(WProtect)를 활용하는 것으로 유명하다.
[국제부 문가용 기자(globoan@boannews.com)]
Copyrighted 2015. UBM-Tech. 117153:0515BC
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>