1. 개요
얼마전 금융권과 공공기관에 보안솔루션을 제공하는 보안업체의 디지털 서명이 유출되어 논란이 되었다. 얼마지나지 않아 공공기관,금융기관,민간기관등 국내 시설이라면 대부분 사용하고 있는 프로그램을 만든 회사의 디지털 서명도 유출된것으로 알려졌다. 해당 업체 프로그램은 대부분의 시민들이 쓰고 있다는 점에서 매우 심각한 사안이다. 해당 회사의 인증서로 서명된 악성코드가 등장했고 상당수의 사용자는 감염이 이루어진후에도 아무런 이상을 느끼지 못해 방치했을것이다. 뿐만 아니라 해당 악성코드를 실행할 경우 정상 업데이트와 구분할 수 없다는 점이 파급력을 키운다.
공공 소프트웨어 회사의 프로그램으로 둔갑한 악성코드의 목적은 무엇인지 살펴보았다.
분석보고서 보러가기 - I사 인증서 유출 관련 악성코드
※ 디지털 서명 : 인증서가 인증기관에서 발급된 것임을 증명하기 위해, 디지털 서명을 사용하고 있다. 디지털 서명은 종종
전자서명(서명을 전하기 위해 모든 전자 데이터를 가리키는 상위어의 개념)을 구현하기 위해 사용되기도
한다.
2. 전체 동작
< Figure 1. 악성코드 동작 시나리오 >
< Figure 2. malwares.com 자동 행위 시스템의 악성코드 실행 화면 >
유출된 인증서로 서명된 악성코드는 정상 업데이트 프로그램으로 위장해 배포되고 있으며 내부에 악성 파일을 갖고 있는 Dropper이다. 악성코드가 실행되는 정상 업데이트 프로그램으로 보이도록 Figure 2와 같이 프로그램이 실행된다. 이 때문에 정상 업데이트 프로그램과 구분하기 매우 어렵다.
< Figure 3. 유출된 인증서 정보 >
(1) 타임 라인
2012년 10월 : 인증서 발급
2016년 1월 15일 : 최초 악성코드 수집일
(2) 외부 서버
국외 : 67.222.157.160:389 (미국)
3. 분석 정보
(1) 인코딩
< Figure 4. 악성코드 내부 문자열 디코딩 >
해당 악성코드는 내부에서 사용될 문자열이나 외부 서버와 통신시 사용되는 데이터등 대부분의 의미있는 정보를 인코딩해 저장하고 있다. 특히 서버와 주고받는 데이터의 경우 고정키가 아닌 키를 생성하는 형태로 작성되어 있어 정적 분석이나 문자열 분석을 통해서는 의미있는 정보를 찾기 어렵게 작성되어 있다. 하지만 한번 생성된 키는 변하지 않는다.
외부 서버로 부터 전달받은 데이터를 바탕으로 악성코드의 동작이 구분되며 동작 성공/실패 여부를 인코딩 후 외부 서버에 전송하도록 작성되어 있다.
[ 내부 문자열 저장 방식 ]
- 형식 : 유니코드
- 디코딩 알고리즘 : XOR
- 디코딩 키 : 0x15
- 디코딩 단위 : 1Byte
[ 외부 서버 통신 데이터 저장 방식 ]
- 디코딩 알고리즘 : XOR
- 디코딩 키 : (가변)
- 디코딩 단위 : 4Bytes
- 명령어 - "sm"
< FIgure 6. "SM" 명령 분기 (일부) >
"SM" 명령은 총 45개의 동작으로 구분되어 있으며 주로 커맨드(cmd) 명령을 수행하도록 작성되어 있다. 분석 과정에서 "winecmd" 과 유사함을 보였으며 최종 확인결과 오픈소스 "wine" 의 소스를 이용해 만든 부분임을 확인할 수 있었다.
( 현재 제공되는 "wine" 최신 버전과는 소스상의 차이가 있는 것으로 보아 과거 버전의 "wine" 소스를 바탕으로 개발된 것으로 판단된다. )
관련 소스 보러가기 - wcmdmain.c
- 명령어 - "fm"
< Figure 7. "fm" 명령 분기 (일부) >
폴더 삭제, 파일 찾기, 파일 삭제 등 파일이나 폴더에 관련된 제어가 가능하도록 작성되어 있다.
- 명령어 - "gm"
4. 외부 서버 접속
< Figure 9. 악성코드가 접근한 서버>
현재는 접속되지 않으며 2015년 초부터 사용 이력이 있으므로 앞으로도 새로이 등장할 가능성이 있어보인다.
5. 샘플 목록
* 본 보고서 및 관련 컨텐츠는 저작권의 보호를 받습니다. 재배포, 영리목적의 활용 관련 법률에 의거 처벌 받을 수 있습니다.
댓글