[스페셜리포트] 진화하는 악성코드, 파밍·큐싱 결합 PC·스마트폰 동시 공격

파밍으로 인터넷 뱅킹 정보 수집하고 큐싱으로 악성 앱 설치

2014-06-04     이광재 기자

<저자 : 송지훤·류소준 KISA 코드분석팀>


개요
최근 PC와 스마트폰에서 금융정보를 탈취하기 위한 해커들의 움직임이 다수 포착되고 있다. 실제 한국인터넷진흥원에 신고·접수된 악성 앱중 10% 이상과 PC 악성코드중 17% 이상이 보안카드 번호, 주민등록번호 등 금융 정보를 탈취하고 있다.

뿐만 아니라 가능한 많은 금융정보를 수집하기 위해 해커는 파밍(Pharming: 피싱(Phishig)과 농사(Farming)의 합성어로 PC에 가짜은행사이트로 유도하는 악성코드를 설치하고 금융정보를 빼낸 후 예금을 인출하는 사기 범죄)과 큐싱(Qshing: QR코드와 개인정보, 금융정보를 낚는다(Fishig)는 의미의 합성어로 QR코드를 통해 악성 링크로의 접속을 유도해 악성 앱을 설치하는 사기 범죄) 수법을 복합적으로 사용해 인터넷 뱅킹 정보와 모바일 뱅킹 정보를 동시에 수집하는 것으로 확인됐다. 또한 해커는 원격 제어 및 DDoS 공격이 가능한 Gh0st 3.75 계열 악성코드를 함께 유포하고 있었다.

해커는 일반 웹 사이트를 해킹하고 브라우저, 자바 등의 취약점을 통해 악성코드를 유포시켰다. 해당 악성코드는 감염된 PC에서 공인인증서 및 시스템 정보를 수집해 해커에게 전송하고 변조된 hosts 파일을 통해 파밍 공격을 수행한다.

이후 해커는 피싱 사이트를 통해 개인 정보를 입력하도록 유도하고 2차 인증이 필요한 것처럼 속여 QR코드로 사용자의 스마트폰에 악성 앱을 다운받도록 한다.

이렇게 PC와 스마트폰을 동시에 공격하는 방식은 악성코드가 2차 채널 인증 의무화(2013년 9월26일부터 시행된 미등록 기기에서 금융 거래시 본인 인증을 1채널(PC) 외에 2채널(스마트폰, 유선전화 등)로 확대하는 방안) 등과 같은 새로운 금융 보안 정책에 따라 진화하고 있다는 것을 보여준다고 할 수 있다.

악성코드 유포 기간 및 규모
지난 2013년 9월부터 최소 7개월 간 해당 악성코드를 제작한 해커는 여행사, 수련관, 웹하드 업체 등 60개가 넘는 국내 홈페이지를 통해 악성코드를 유포했다. 악성코드를 유포한 사이트와 시기는 다음과 같다.

PC 악성코드 분석 결과
악성코드 특징점 = 여러 유포지에서 다운로드되는 악성코드는 본래 3단계에 걸쳐 악성코드를 생성한다. 대부분 mydat.dll(혹은mydll.dll)이 CHIinwywamzi.exe를 CHIinwywamzi.exe가 svchsot.exe를 svchsot.exe가 kb0ce.exe를 순차적으로 다운받아 실행하는 것으로 나타났다. 악성코드마다 각기 다른 악성 행위를 하며 개인정보, 컴퓨터 정보 등을 유출시킨다.

또한 이 악성코드들은 모두 독자적으로 유포되기도 한다. 전체 구조와 악성코드별 행위들은 아래 표와 같다.

60개 이상 사이트에서 발견된 악성코드를 분석한 결과 대부분 아래와 같은 공통점이 발견됐으며 동일 조직이 금융 정보 수집을 위해 IP와 기능만 약간 수정해 끊임없이 악성코드를 유포하고 있는 것으로 추정된다.

공통점 - hosts 파일 변조 = 금융정보를 수집하는 악성코드 이름은 대부분 mydat.dll, mydll.dll이었으며 링크파일(.lnk)을 통해 실행됐다. 실행된 뒤에는 호스트 파일을 변조해 가짜 금융 사이트로 접속을 유도하는데 해당 악성코드는 공격에 사용되는 IP를 두 가지 방식을 통해서 얻어온다.

첫 번째 방식은 주로 서버에서 plus.php라는 파일의 내용을 읽어 IP를 가져오는 방식으로 소스 코드 상에는 인코딩돼 있지만 악성코드 내부의 디코딩 루틴을 거친 후에는 공격 아이피와 도메인의 내용이 나타나게 된다.

두 번째 방식은 중국 블로그에서 IP를 파싱해오는 방식이다. 주로 user.qzone.qq.com이라는 중국 블로그에서 ‘#’을 기준으로 IP를 검색한 후 금융 사이트 접속시 해당 IP로 연결되도록 호스트 파일을 변조한다.

초기에는 첫 번째 방식과 두 번째 방식이 번갈아 사용됐으나 최근에는 두 방식을 함께 사용하는 악성코드가 발견되고 있다. 그 이유는 추가 악성코드 유포지가 차단됐을 때를 고려해 두가지 방식을 함께 사용하는 것으로 보인다.

두 번째 방식은 실제 국제 협력 채널을 사용해야하기 때문에 중국 블로그에 조치 요청하기까지 많은 시간이 소요되고 있다.

공통점 -공인인증서 수집 = 악성코드는 대부분 공인인증서가 저장돼 있는 NPKI 폴더를 압축해 해커의 정보유출지로 유출했다.

공통점 - 7-zip에서 사용되는 커맨드 형식의 압축 방식 사용 = 40개 이상 사이트에서 유포된 악성코드는 공통적으로 공인인증서가 저장된 NPKI 폴더를 7-zip 압축프로그램 콘솔버전(7za.exe)으로 압축했다.

명령어를 확인한 결과 악성코드는 대부분 압축 파일 형식을 .7z으로 압축 비밀번호는 123으로 사용했다. 악성코드가 압축시 사용하는 7-zip 옵션별 의미는 아래 표와 같다.(※ 악성코드 사용한 7-zip 명령(예) : C:7az.exe a .t7z .p123 .aoa .mhe [공인인증서])

공통점 - 사용자를 인식 및 관리하기 위해 사용자 계정 유출 = 악성코드는 CPU 종류, 운영체제 정보, RAM 크기 등을 유출하는데 해당 정보는 감염된 사용자를 인식하고 관리하기 위함으로 추정된다. 수집한 데이터는 아래 모듈을 통해 인코딩하는 것으로 확인됐다.

공통점 - 現 프로세스 실행 목록에서 백신 종료 = 악성코드는 현재 프로세스 실행 목록에서 백신 프로세스나 서비스를 검색하고 기능을 멈추거나 백신을 종료한다.

공통점 - 분석 방해를 위해 Base64 디코딩 방식 사용 = 악성코드는 정보 유출지 서버, 레지스트리 경로, 백신 명, 함수명 등 주요 문자열을 전부 Base64(8비트 이진 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이뤄진 일련의 문자열로 바꾸는 인코딩 방식)로 인코딩했다.

해커는 악성코드가 문자열로 인해 쉽게 분석되는 것을 피하기 위해 문자열을 전부 Base64로 인코딩했다. 문자열은 사용되기 직전 Base64 디코딩 함수를 거친후 사용됐다.

공통점 - Gh0st Rat 3.75 악성코드 추가 다운로드 = 해커는 다양한 용도로 감염PC를 활용하기 위해 Gh0st 3.75계열 원격제어 및 DDoS 공격 악성코드를 유포하고 있는 것으로 나타났다. 원격제어 기능으로는 키보드 및 마우스 제어, 화면 제어, 파일 다운로드 등이 있으며 DDoS 기능으로는 GET, SYN, UDP, ICMP Flooding 등이 있다. 테스트 결과 실제 악성코드가 Gh0st Rat 3.75 관리 프로그램에 접속돼 제어 가능했다.

해커가 이용한 서버 및 취약점 분석 결과 = 2013년 9월부터 해커가 이용한 서버를 분석한 결과 악성코드는 피싱IP를 전달받기 위해 대부분 plus.php에서 정보를 수집했다. 국가별로는 피싱IP 정보 수집 및 정보 유출을 위해 미국에 존재하는 서버를 애용했다. 또한 호스트 파일에 기재되는 피싱 IP는 주로 일본 서버를 애용했으나 해당 서버가 해킹돼 이용됐을 가능성도 존재한다.

해커는 약 12가지 취약점 등을 이용해 악성코드를 유포하는 것으로 확인됐다. 또한 악성코드 감염률을 높이기 위해 대중적으로 사용되는 브라우저, 자바 취약점 등을 이용했다.

피싱 사이트에서 QR코드를 통해 악성 앱 유포 = 악성코드에 감염되면 호스트 파일 변조 방식으로 금융사이트 뿐만 아니라 사용자가 다수인 사이트(유명 포털 사이트 등)도 피싱 사이트로 연결한다. 사용자가 웹 검색 등을 위해 유명 포털사이트 등에 접속하면 해커가 구성한 가짜 페이지가 보여주고 이 때 보안관련 인증절차를 요구한다. 인증을 위해 해커의 은행 피싱 사이트에 로그인하면 아이디 및 패스워드가 암호화되지 않은 채 정보유출지로 전송된다.

이 후 악성코드는 2채널 본인 인증을 위해 큐싱 기법으로 악성 앱 설치를 유도한다. 해커는 QR코드를 인식하는 앱이 설치되지 않은 상황을 대비해 QR 드로이드(Droid)의 추가 설치를 권유했다. QR코드를 사진처럼 찍으면 악성 앱 다운로드용 URL로 연결돼 설치가 시작됐다.

스마트폰 악성 앱 분석 결과
큐싱(Qshing)을 통해 다운로드되는 악성 앱의 특징 = 해커는 악성코드와 악성 앱을 함께 배포해 복합적으로 사용자를 공격했다. 해커는 악성 앱 유포 경로로 QR 코드를 선택했는데 이는 제작자 추적이 어렵고 앱 다운로드를 위해 연결되는 URL의 악성여부 확인이 어렵기 때문으로 보인다.

QR코드를 통해 설치된 악성앱은 스마트폰 기기에 능숙하지 못한 사용자가 앱 삭제를 쉽게 못하도록 기기 관리자로 자기 자신을 등록한다. 악성 앱을 실행하면 ‘서버 점검중’이라는 허위 메시지를 보여줘 사용자를 속인다.

이 후 악성 앱은 사용자 스마트폰 정보, 전화번호부, SMS 메시지를 유출하고 서버에 1분 간격으로 접속해 명령을 기다린다. 악성 앱은 서버에서 전송한 명령에 따라 문자 수신 방해, 착신 전환 서비스 설정시도 등을 수행한다.

하지만 해당 악성 앱은 사용하는 착신 전환 설정 방식이 우리나라 이동통신 사업자의 방식과는 다르기 때문에 외국(중국, 유럽 등)에서 제작된 앱으로 추정된다. 


외국의 경우는 착신전환 코드가 ‘**21*연결희망번호#’으로 설정이 가능하지만 우리나라는 우선 이동통신사의 홈페이지나 오프라인 대리점 등에서 착신전환 유료 부가서비스를 가입해야 하고 설정 코드도 ‘*71연결희망번호’로 다르다. 


따라서 해당 앱을 통해 실제로 착신 전환이 설정 되지는 않지만 이 부분이 우리나라 이동통신 환경에 맞게 개발 된다면 은행의 자금 이체시 추가 보안 방법인 SMS, ARS 인증을 우회해 금융사기에 악용 될 수도 있을 것으로 보인다.


악성코드 감염 예방 방법 및 대처
한국인터넷진흥원은 매일 취약한 사이트에서 악성코드 유포 현황을 모니터링하고 있으며 악성코드 분석을 통해 악성코드 유포지, 정보수집 서버 등을 조치·차단하고 있다.

뿐만 아니라 파급력이 높은 악성코드는 백신사에 샘플을 공유하고 백신 개발을 요청해 이용자 피해 최소화를 위해 노력하고 있다. 또한 최근에는 금융사별 악성코드 대응을 위해 추가 보안 인증 방법 등을 도입하고 있다. 하지만 해커는 끊임없이 취약한 사이트를 찾아 악성코드를 유포하고 있으며 변경된 인터넷 뱅킹 절차에 따라 진화된 악성코드를 유포하고 있다.

따라서 취약한 사이트에 접속하더라도 악성코드에 감염되지 않도록 사용자는 PC와 스마트폰의 백신을 최신 버전으로 업데이트하고 주기적으로 검사해야 한다. 또한 평소 정품 소프트웨어를 사용하고 의심스러운 사이트 방문과 P2P 등 악성코드 유포지로 악용될 수 있는 서비스 이용을 자제해야 한다.

공인 인증서는 가급적 외부 저장소에 저장하는 것이 좋으며 스마트폰에 알 수 없는 출처의 앱을 다운받을 때는 주의해야 한다. 악성코드에 감염이 의심되면 일단 백신으로 검사한 후 118센터 등에 신고하는 것이 필요하다.