"한국서도…" ATM 털어가는 악성코드 열전

세계 ATM 악성코드 활동 10년 잔혹사 정리

컴퓨팅입력 :2017/04/04 17:31    수정: 2017/04/05 14:43

최근 한국서 악성코드가 금융자동화기기(ATM)를 감염시킨 사례가 발생했다.

감염으로 유출된 카드번호를 통한 국내외 ATM 부정인출과 카드결제 부정승인 시도로 이어진 사건이었다.

ATM 악성코드 감염 자체는 새로운 일이 아니다. 과거부터 외국에서 여러 차례 악성코드를 통한 ATM 공격 시도가 있었다. ATM은 실제 화폐를 보관하고 있고 불특정 다수 금융소비자의 카드번호 및 개인정보를 다룬다. 공격자들은 기기에 보관된 현금을 직접 탈취하거나, 금융소비자의 카드번호와 개인정보 등을 빼돌려 부정거래로 이득을 취하기 위해 ATM 악성코드를 만들어 이용했다.

2009년 발견된 스카이머(Skimer)는 2007년부터 활동한 최초 ATM 악성코드다. ATM 악성코드 출현 빈도는 2013년 윈도XP 지원 중단 이후 확 늘었다. 2013년 플로터스(Ploutus), 2014년 타이업킨(Tyupkin)이, 2015년 수세풀(SUCEFUL)과 그린디스펜서(GreenDispencer)가 발견됐다. 2016년 변종 스카이머, 앨리스(Alice), 리퍼(Ripper)가 나왔다. 올해 변종 플로터스와 한국ATM 악성코드가 발생했다.

[출처=Pixabay] ATM

핀테크를 비롯한 첨단 금융서비스 확산 논의가 활발해지고 있는 한국에서 전통적인 금융서비스기기인 ATM을 노린 악성코드 공격사례가 발생하면서, 현존 금융전산 서비스 환경의 안전성과 보안 기술을 둘러싼 업계 관심이 고조됐다. 이에 전문가들의 도움을 받아 알려진 기존 ATM 공격 사례를 만든 역대 악성코드와, 최근 국내 사례에서 발견된 악성코드의 특징 및 기존과의 차이점을 정리해 소개한다.

국내 한 사이버보안 전문업체 분석가는 "ATM악성코드는 2007년부터 활동해 현재까지 꾸준히 발견되고 있다"며 "ATM은 대부분 윈도 운영체제(OS)를 사용하고 있는데, 주로 이용하고 있던 윈도XP 대상으로 마이크로소프트(MS)의 업데이트 및 기술 지원이 2013년 중단됨에 따라 ATM 악성코드가 증가했고, 그 보안 위협이 큰 이슈가 되고 있다"고 지적했다.

과거 ATM 악성코드 공격 방식은 공격자가 악성코드를 감염시킨 뒤 직접 키보드를 연결하거나 카드를 삽입하는 기술을 사용하는 형태였다. 물리적인 접근, 침해를 전제한 악성코드 공격 및 현금 탈취 시도에 대비해야 했다. 새로 국내서 발견된 ATM 악성코드는 명령제어서버에 접속, 공격자가 ATM을 원격으로 제어할 수 있는 형태로 파악됐다. 물리 영역 외 보안을 강화할 필요가 높음을 시사한다.

■2017년 3월 무슨 일 있었나

금융감독원에 따르면 지난달 청호이지캐쉬가 운영하는 일부 ATM이 악성코드에 감염됐다. 청호이지캐쉬는 편의점과 할인매장 등의 ATM 설치 및 유지보수 전문업체다. 이 회사가 운영하는 ATM 기기 2천290대 가운데 63대가 악성코드 감염 우려 대상으로 지목됐다. 중국, 태국, 대만 등에선 ATM 부정인출, 한국에선 위장 가맹점 부정승인 사례가 발생했다. 카드번호 등 금융정보 유출 피해 가능성이 제기됐다.

당시 금감원은 피해예방 차원의 조치를 했다. 금융권 관계자를 소집한 회의에서 금융소비자에게 정보유출 가능성이 높은 카드 2천500여건에 재발급 또는 비밀번호 즉시변경 안내, 외국 마그네틱카드 현금인출 차단, 부정승인 모니터링 강화 등을 지시했다. 이후에도 카드정보 유출로 인한 부정인출과 부정사용이 발생하더라도 금융소비자에게 금전 피해가 없도록 조치하겠다고 공언했다.

금감원은 더불어 "금융 부가통신(VAN)사업자가 금융사에 준하는 보안 대책을 마련하도록 금융회사를 통해 지도하겠다"면서 청호이지캐쉬를 포함한 VAN사 대상의 금융회사, 금융보안원 공동 특별점검을 예고했다. VAN사는 전자금융거래법상 '전자금융보조업자'에 해당한다. 금감원의 직접 감독대상인 금융기관은 아니지만, 제휴 금융회사를 통한 간접 점검 대상이다.

■스카이머, 최초의 ATM 악성코드

스카이머는 제조사 '다이볼드(Diebold)'의 ATM기기 '아길리스(Agilis) 91x' 대상 악성코드였다. ATM 프린트 기능을 사용해 ATM 사용자의 마그네틱카드 정보와 비밀번호를 출력하는 식으로 정보를 유출했다. 2007년 6월 25일 제작돼 18개월간 활동하다 2009년에야 탐지됐다.

[출처=Pixabay] 신용카드

스카이머가 발견된 시점은 ATM에 물리적인 접근을 위해서는 마스터키가 필요했고, 공개된 ATM 관련 기술문서나 정보가 많지 않아 공격이 어려울 때였다. 업계에선 발견 자체가 큰 파장으로 인식됐고, 인터넷과 연동되는 기기의 위험성과 보안 중요성이 대두됐다.

■플로터스, 윈도XP 지원 중단에 맞춰 등장

플로터스는 윈도XP에서 실행되는 악성코드였다. 지난 2013년 MS가 해당 OS 업데이트 지원 중단을 발표할 무렵 발견됐다. 공격 명령을 단문메시지(SMS)와 키보드 입력으로 받는 2가지 형태가 있었다.

SMS 입력 악성코드에 감염된 ATM은 기기에 설치된 휴대전화를 통해 특정 명령어가 담긴 SMS로 출금 동작을 하게 된다.

키보드 입력을 받는 악성코드에 감염된 ATM은 설정파일에 생성된 식별정보(ID)를 통해 출금 명령어와 출금할 지폐 수를 입력받아 동작한다. 공격자는 이 악성코드를 통해 ID생성, ID활성화, 출금, 악성코드 비활성화 등 명령을 키보드의 '펑션키'로도 내릴 수 있었다.

■타이업킨, CD를 이용해 ATM 감염

타이업킨은 32비트 윈도 OS를 대상으로 제작된 악성코드다. 지난 2014년 동유럽 지역 ATM 기기 50대 이상에서 발견됐고 미국, 인도, 중국 등으로 전파됐다. 부팅CD 형태로 제작된 악성코드가 ATM을 감염시키는 방식이었다. 공격자가 ATM 기기의 PIN 패드에 특정 코드를 입력해 최대 40장의 지폐를 인출할 수 있게 만들어졌다.

제작자는 감염 탐지 회피를 위해 일요일과 월요일 저녁 등 특정 시간에만 악성코드가 동작하게 했다. 입력 값도 공격자만 알아볼 수 있는 랜덤시드로 생성했다. 네트워크 비활성화 명령, 자가 삭제 기능도 갖췄다. 이런 정황은 제작자가 심화된 ATM 시스템 지식을 갖췄을 것이라 짐작케 했다.

■수세풀, 최초의 멀티벤더 ATM 악성코드

수세풀은 다이볼드와 NCR, 2곳의 ATM을 공격할 수 있게 제작된 악성코드였다. 지난 2015년 샘플이 '바이러스토털'에 올라오면서 최초로 발견됐다.

수세풀은 ATM에 삽입된 카드를 강제로 보관하는 기능, 카드의 데이터를 읽는 기능, PIN패드 제어, 탐지를 피하기 위한 ATM센서 제어 등 여러 기능을 갖췄다. 그래픽사용자인터페이스(GUI)도 제공했다. 이를 통해 카드를 훔치거나, PIN패드에 입력된 키를 읽거나, ATM 기기의 음성 경보장치 및 조명과 음성 표시장치를 켜고 끌 수 있었다.

■그린디스펜서, 스스로 흔적 제거

수세풀과 같이 2015년 발견된 그린디스펜서는 ATM이 일시적인 고장 상태인 것처럼 꾸민 뒤 공격자의 입력을 받아 현금을 인출하도록 만들어진 악성코드다. 2015년 9월 이전에만 실행되고 이후 비활성화하도록 설계됐다.

[출처=Pixabay] ATM PIN패드

감염 기기는 화면에 "이 ATM은 일시적으로 서비스 불가 상태이니 양해 바랍니다(We regret this ATM is temporary out of service)"라는 문구를 출력한다. 이 때 공격자가 ATM에 접근해 올바른 PIN코드를 입력하면 현금을 인출시킨 뒤 자가삭제됨으로써 감염 흔적을 없앤다.

■변종 스카이머, 더 영악해졌다

2009년 발견된 스카이머 악성코드의 변종이 2016년 등장했다. 공격자가 제작한 '매직카드(Magic Card)'를 삽입하면 60초 이내에 비밀번호를 입력하라는 팝업을 띄운다. 인증이 끝나면 입력 패드를 통해 설치정보표시, 현금인출, 삽입된 카드정보 수집, 카드정보출력, 자가삭제, 디버그, 업데이트 등 21가지 명령을 내릴 수 있는 상태가 된다.

변종은 초기 실행될 때 파일시스템이 FAT32인지 NTFS인지 확인하고, 그에 맞는 악성코드를 가져와 감염 동작을 수행한다. 설치된 악성코드는 MS 윈도기반 ATM 애플리케이션용 API인 '익스텐션 포 파이낸셜서비스(XFS)'의 실행파일 엔트리포인트를 수정, LoadLibrary 함수를 추가해 netmgr.dll이라는 파일을 설치한다.

■앨리스, 오로지 현금인출

앨리스는 현금인출 기능만 수행하는 악성코드다. 2016년 발견됐으나 컴파일 시간과 최초 발견 시간 정보를 고려해 보면 2014년부터 활동해 온 것으로 보인다. 감염된 ATM은 현금 보유량 정보를 표시하며 PIN코드 입력창을 열어 둔다. 자가삭제, 구동 종료, 관리자 모드 실행, 3가지 동작을 수행한다. 지정된 명령어 이외 코드를 계속 입력받으면 몇 번 오류를 띄우다, 입력 제한을 초과했다며 스스로 실행을 멈춘다.

앨리스의 특징은 ATM 키패드로 복잡한 명령을 입력받거나 정보를 탈취하는 기능을 갖고 있지 않다는 것으로 요약된다. 다만 이 악성코드는 모든 XFS 사용 ATM에 영향을 준다. 코드 자체가 XFS 환경이 갖춰져 있는지 확인하기 위해 OS의 레지스트리와 DLL 파일을 먼저 보게끔 설계됐다. 또 ATM 기기에 USB, CD롬, 키보드 연결 작업이 선행돼야 동작한다. 물리적으로 접근이 가능한 ATM 기기만 감염된다는 뜻이다.

■리퍼, ATM 감시 방해하는 악성코드

2016년 태국에서 발견된 리퍼는 타이업킨, 수세풀, 그린디스펜서 등과 유사한 특징을 갖고 있다. 수세풀처럼 카드리더를 제어하고, 타이업킨처럼 로컬 기능 비활성화 동작을 할 수 있으며, 그린디스펜서처럼 자체 흔적 삭제 기능을 갖고 있다. 40달러 단위로 현금을 인출한다. 주요 ATM 제조사 3곳을 겨냥해 설계됐다. 스카이머처럼 EMV 칩 또는 특수제작된 ATM 카드를 확인하는 동작을 수행하기도 한다.

리퍼는 기본적인 출금 외에도 여러 명령어를 통해 백그라운드 실행, ATM 소프트웨어 대체, 레지스트리 값 삭제, 제조사의 모니터링 프로세스 실행을 확인해 그와 동일한 이름의 악성코드 파일을 실행하는 레지스트리 등록, 악성코드 실행 종료 동작을 한다. PIN패드를 통해 로그 삭제, 악성코드 GUI 감추기, 네트워크 비활성화 동작도 할 수 있다.

■변종 플로터스, 윈도XP부터 윈도10까지 공격

변종 플로터스는 올해 1월 남미에서 발견됐다. 다이볼로의 ATM 기기 또는 ATM 소프트웨어 업체 '칼리그나이트(Kalignite)'의 플랫폼을 쓰는 40곳의 ATM 업체 기기를 공격하는 악성코드다. 특정 PIN코드 입력시 감염된 기기 현금을 인출한다.

보안업체 파이어아이 설명에 따르면 2017년 발견된 ATM 악성코드 변종 플로터스를 이용하려면 공격자가 ATM 기기에 USB 또는 PS/2 인터페이스로 키보드를 연결해 악성코드 론처(Launcher)를 제어해야 한다.

이 악성코드는 윈도XP, 윈도7, 윈도8, 윈도10 OS 기반 ATM에서 실행된다. 닷넷 리액터 기술을 사용한 난독화를 거쳤다. 특정 펑션키 입력으로 활성화되는 GUI를 갖췄다. 보안 모니터링 프로세스를 탐지해 중지시킨다. 코드는 24시간 후 제거된다.

■최초 한국ATM 악성코드 VAN_XATM.exe

지난달 국내에서 발생한 ATM 악성코드 감염 사례는 63대 ATM을 감염시키고 2천500여개 카드 정보를 유출시켰을 것으로 추정되고 있다. 부정 인출 금액은 크지 않은 반면, 정보 유출 피해가 심각한 것으로 평가됐다. 악성코드 실행파일명은 VAN_XATM.exe이다.

관련기사

VAN_XATM.exe은 java.exe와 javaupdate.exe라는 2가지 파일을 생성, 실행한다. java.exe 파일은 시스템정보를 수집해 명령제어서버와 통신하면서 파일을 저장하거나 로컬 파일실행 결과를 보낸다. 윈도 시작프로그램 경로에 hclean.exe 파일을 생성해 시스템에 상주한다. javaupdate.exe 파일은 원래의 악성코드 파일인 VAN_XATM.exe와 같은 이름의 파일을 생성하는데, 결과물 이름만 같고 내용은 다르다.

이번에 국내에서 발견된 ATM 악성코드는 명령제어서버에 접속한다. 공격자가 감염된 ATM을 원격제어하도록 설계됐다는 뜻이다. 공격자가 악성코드를 감염시킨 후 키보드를 직접 연결하거나 카드를 삽입하는 기술을 써왔던 과거 ATM 악성코드와 차이를 보인다. VAN_XATM.exe 악성코드 명령제어서버의 IP주소는 국내 소재인 것으로 파악됐지만 공격 주체의 신원은 확인되지 않았다.