태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

보안관련소식2009.05.22 15:19
악성코드자료2007.11.12 12:39


▶ 패커란

실행 압축 파일(ExePacker, 이하 패커)은 실행 파일에서 불필요한 부분을 제거하고 코드와 데이터를 압축해서 실제 파일 크기 보다 작게 만든 파일이다. 도스 시절 부족한 디스크 공간을 효율적으로 사용하기 위해 실행 파일의 크기를 줄이는 LZEXE, DIET, PKLITE 등이 알려져 있다. 윈도우 시대로 넘어오면서 디스크 공간 확보의 목적 뿐만 아니라 리버스 엔지니어링(Reverse Engineering)을 통하여 분석을 어렵게 하기 위한 목적으로도 이용된다.

패커는 악성코드에서 많이 이용되지만 자신을 보호할 필요가 있는 보안 프로그램이나 언더그라운드에서 제작되는 크랙 파일 등에도 사용된다. 패커는 크게 단순히 길이를 줄이기 위한 압축형(Compressor), 분석을 방지하기 위해 단순 암호화 방법을 사용하는 암호형(Cryptor), 여러 파일 설치형(Installer), 압축보다 안티 디버깅 기법(anti-debugging tricks)등 원래 코드 분석을 방해 목적이 강한 보호형(Protector) 등으로 나뉜다. 일반적으로 악성코드에서는 압축형, 암호형, 보호형이 사용되며 이들이 혼합되기도 한다.

▶ 악성코드에서 패커 이용

악성코드에서 이들 프로그램을 이용 하는 이유는 다음과 같다.

첫째, 악성코드 크기가 줄어듦: 악성코드는 비정상적인 활동을 하므로 자기복제, 전송 등의 시간을 줄이기 위해서 악성코드의 길이가 가급적 짧을 필요가 있다. 하지만, 최근 컴퓨터나 네트워크 성능이 좋아지면서 악성코드 크기에 대한 민감성은 많이 줄어들었다.

둘째, 안티 바이러스의 진단을 피할 수 있음: 패커 이용의 가장 큰 목적은 안티 바이러스의 진단을 피하는 것이다. 변형이 많을 경우 안티 바이러스 회사는 악성코드에서 발견되는 고유 값이 아닌 유사 변형을 진단할 수 있는 기능을 추가한다. 악성코드 제작자 입장에서는 소스코드를 상당히 수정하지 않는 이상 제작하는 변형이 사용자들에게 퍼지기도 전에 사전에 진단 될 수 있다. 하지만, 패커를 통해 실행 파일을 수정하면 유사 변형에 대한 진단 기능이 있는 안티 바이러스 제품도 해당 실행 압축을 해제하지 못하면 진단 할 수 없다. 실제로 패커가 잘 알려지기 시작한 2004년은 유사 악성 IRC봇 변형이 대량으로 등장한 시기이다.

셋째, 분석을 어렵게 할 수 있음: 분석 방해 기능이 포함된 패커로 분석가의 분석을 지연해 결과적으로 악성코드의 생존 기간을 연장 시키려는 목적으로 이용된다. 최근 악성코드는 40%만 일주일간 활동하고 30일 동안 활동하는 악성코드 역시 15%에 불과하다. 따라서, 악성코드 제작자는 동일한 목적을 이용해 사용되지만 분석을 최대한 어렵게 하고 많은 변형을 동시에 배포해 생존 확률을 높일 필요가 있다.

▶ 패커를 둘러싼 보안업체와 악성코드 제작자들

기존에 진단되는 웜이나 트로이목마를 패커로 압축하면 전혀 다른 파일이 되어 해당 패커를 해제하지 못하는 안티 바이러스 제품은 진단 할 수 없었다. 이에 안티 바이러스 프로그램은 널리 사용되는 패커에 대한 압축 해제 기능을 조금씩 추가하기 시작한다. 하지만, 2004년 악성 IRC봇 소스가 공개되면서 같은 소스에서 접속 IRC 서버 주소만 조금씩 수정된 변형이 전세계적으로 수없이 등장하기 시작했다. 소스코드 제작자는 안티 바이러스 제품에서 진단되지 않는 방법으로 패커의 사용을 알려주었고 패커의 사용이 악성코드 제작자들 사이에 일반화되었다. 더 이상 언패킹 기능이 부가기능이 아닌 필수 기능이 되면서 안티 바이러스 제품에서도 알려진 패커의 해제 기능이 강화되었다.

2005년부터 악성코드 제작자들은 널리 알려져 있지 않은 패커를 이용하거나 기존에 나와있는 패커를 일부 수정해 자신만의 패커를 만들어 이용하기 시작했다. 또 흔히 PE 패치로 불리는 실행 코드를 일부 수정해 안티 바이러스 프로그램에서 패커 이용 사실을 알 수 없게 하는 방법도 증가했다. 개인적으로 제작된 패커와 PE 패치가 급증하면서 안티 바이러스 업계에서는 패커를 풀어서 내용을 보고 진단하는 방식보다 일반적이지 않은 패커를 사용하거나 다중 압축된 파일은 악성코드의 가능성이 매우 높으니 이들에 대한 진단 가능성에 대한 견해가 나타났고 2006년부터 더욱 많은 샘플 증가로 특정 패커를 진단하는 안티 바이러스 프로그램이 늘어나기 시작했다.

▶ 패커 진단의 이점

패커 자체를 진단 했을 때 장점은 알려지지 않은 악성코드 진단이다. 물론 이는 정확히 코드를 분석해 악성코드라고 확인하고 진단하는게 아닌 특정 패커 자체를 진단하기 때문에 악성코드로 의심된다는 성격이 강하다. 하지만, 바이러스 버스터사의 통계에 따르면 2007년 1/4 분기에 접수된 샘플 중 2만 여 개를 자사의 패커 진단 기능으로 진단했고 적은 수의 정의 데이터로 높은 효율을 얻을 수 있음을 알 수 있다.

▶ 패커 진단의 문제점

패커 진단에 여러가지 이점도 있지만 문제점도 존재한다.

첫째, 악성코드 확인이 안된 진단: 일반적으로 안티 바이러스에서 악성코드는 악의적인 행동이 확인되었을 때 진단에 추가된다. 하지만, 패커를 진단하는 것은 패커 안에 숨겨진 코드가 어떤 내용인지 전혀 알 수 없이 진단한 것이다. 악성코드 확인 없이 진단하는 건 결과적으로는 좋지만 악성코드라고 확인되지 않는 파일에 대한 진단은 논란의 여지가 분명히 있다.

둘째, 오진 가능성: 패킹 안의 내용이 아닌 패커 자체로 진단하므로 정상 파일을 진단하는 오진 가능성이 존재한다. 잘 알려지지 않은 패커를 정상 프로그램에서는 사용될 가능성이 적지만 전혀 없는게 아니며 일부 보안 프로그램은 해커들로부터 분석을 어렵게 하기 위해 상용 패커를 이용하거나 자체 패커로 자신을 보호하기도 한다.

셋째, 상용 제품 진단 어려움: 상용 패커나 널리 알려진 패커는 진단하기 매우 어렵다. 사용 업체의 항의나 소송 문제뿐 아니라 해당 패커를 사용한 제품도 많으므로 진단에 사용할 패커 선정은 신중해야 한다. 예를들어 중국에서 제작된 Upack을 기본으로 진단하는 제품의 경우 Upack은 중국 이외에는 거의 사용되지 않지만 중국에서는 정상 프로그램에서도 이용된다. 만약 Upack을 기본으로 진단하는 제품이라면 중국에서 해당 안티 바이러스 제품 사용은 큰 불편이 따르므로 적어도 중국 내에서는 진단정책 변경이 불가피 할 수 있다.

▶ 패커에 대한 안티 바이러스 현황

기본적으로 상용 패커는 진단에서 제외된다. 진단에 사용되는 패커는 개인적으로 제작되어 일반에 알려지지 않았거나 일반에 알려졌어도 일반적으로 사용되지 않고 대부분 악성코드에서 이용이 확인된 형태이다.

포티넷의 브랸 루(Bryan Lu)가 바이러스 블루틴 2007 컨퍼런스에서 발표한 자료에 따르면 자사에서 집계한 샘플을 분석한 결과 윈도우 악성코드의 40%가 실행 압축되어 있었다. 바이러스 블루틴(Virus Bulletin) 2007년 10월호에 헝가리 바이러스 버스터(VirusBuster)의 가보르 스자파노스(Gabor Szappanos) 연구원에 따르면 와일드리스트에 오른 739개 샘플 중 54개만 패킹되어 있지 않고 나머지 92%가 패킹되어 있으며 사용된 패커는 30 가지 이상이라고 한다.

실제로 2007년 국내에서 발견된 악성코드를 검사해보면 몇몇 제품은 TR/Crypt.NSPM.Gen, Win32/NSAnti 등의 이름으로 패커 자체를 진단했음을 알 수 있다.

▶ 향후 전망

안티 바이러스 업계에서는 엄청나게 증가한 악성코드를 진단하기 위한 방안 중 하나로 패커를 진단하기 시작했다. 악성코드 제작자들은 안티 바이러스 프로그램에 대항하기 위한 새로운 무기로 패커를 선택했고 이를 적극 이용하고 있다. 악성코드 수는 급격히 증가하고 이를 모두 분석하지 못하는 현실에서 안티 바이러스 프로그램의 패킹된 파일에 대한 진단은 점점 증가할 것이다. 하지만, 이는 단점도 존재하므로 안티 바이러스 업계는 패킹 자체를 진단하는 것 뿐만 아니라 보다 다양한 패커를 해제하고 해제된 내용으로 진단하는 방식도 강화해야 할 것이다.

▶ 참고문헌

[1] Gabor Szappanos, Exepacker blacklisting, Virus Bulletin 20007.10 p.14-19
[2] Bryan Lu, A Deeper Look at malware - The Whole Story, Virus Bulletin 2007

출처 - 안철수연구소 ASEC

Posted by viruslab