보안 이슈

AhnLab 보안 전문가의 심층분석! 보안 이슈 정보를 전해드립니다.

[Special Report] POS 시스템도 해킹 안전지대 아니다

  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.

  • AhnLab
  • 2014-08-28

POS System Hacking | POS 시스템을 노리는 위협 
 

최근 POS(Point of Sales, 판매시점관리) 시스템을 이용한 대규모 침해 사고가 국내외에서 잇따라 발생하고 있다. 국내에서는 지난해 12월 POS 단말기 관리 업체의 서버를 해킹해 85개 가맹점의 POS 단말기에 저장된 신용카드 정보를 탈취, 이를 이용한 위조카드로 1억원을 인출한 사건이 발생했다. 비슷한 시기에 미국에서도 대형 유통업체 타겟(Target)사의 오프라인 매장의 POS 시스템을 통해 7,000만 건의 신용카드 정보가 유출되는 사고가 발생했다. 그 동안 보안 전문가들의 경고에도 불구하고 간과됐던 POS 시스템의 보안 위협이 대규모 보안 침해 사고로 현실화된 것이다.
이 글에서는 POS 시스템을 노리는 국내외 악성코드를 알아보고, 국내 POS 시스템 보안 침해 사례에 이용된 악성코드를 상세하게 살펴본다. 


POS 시스템과 관련된 보안 침해 사고가 증가함에 따라 정부 및 기관은 관련 규제를 강화하는 움직임을 보이고 있다. 금융감독원은 최근 POS 단말기에 소비자의 카드 정보를 저장할 수 없도록 하고 카드결제 내역은 암호화하여 결제승인대행업체로 전송하도록 하는 등의 조치를 발표했다. 지난해 말 발생한 타겟사의 POS 시스템 해킹으로 대규모 개인정보 유출 사건을 경험한 미국에서는 주요 금융기관과 지방은행, 신용조합을 중심으로 기존 마그네틱 방식의 신용카드에 반도체 칩을 추가 장착한 IC카드를 출시하는 한편, 가맹점의 POS 시스템 또한 IC카드용으로 전환을 서두르고 있다. POS 시스템을 겨냥한 악성코드가 마그네틱 카드의 데이터를 탈취한다는 점에 주목한 것이다.

 

일반적으로 금융거래에 사용되는 마그네틱 카드에 저장된 데이터는 ‘ISO/IEC(International Organization for Standardization and International Electrotechnical Commission) 7813’을 따르고 있다. 마그네틱 트랙(Magnetic tracks)은 트랙1~트랙3으로 이루어져 있으며, 현재 트랙1과 트랙2를 사용하고 있다. 그 구조는 [그림 1]과 같다.

 


 
[그림 1] 마그네틱 트랙1과 트랙2의 구조 (*출처: 위키피디아)

 

 

신용카드 정보 유출을 목적으로 하는 악성코드는 마그네틱 리더기로 입력되는 값을 노리거나 메모리에서 트랙1이나 트랙2로 추정되는 내용을 검색하는 기능을 포함하고 있다.

 

 

POS 시스템을 노린 악성코드

 

지난 7월 31일, 미국 국토안보부 산하 사이버 긴급 대응팀(US-CERT)은 홈페이지를 통해 POS 시스템을 이용해 정보를 유출한 악성코드가 지난해 10월 발견된 뒤 여러 변종이 유포되고 있다고 밝혔다. 그러나 POS 시스템을 노린 악성코드가 나타난 것은 훨씬 전부터다. 2009년 트래커(Tracker)를 시작으로, 2013년부터 본격적으로 POS 시스템을 노리는 다양한 악성코드가 발견되고 있다. 한국에서도 2014년 초 POS 시스템을 노린 한국형 악성코드가 처음 발견되었다. 해당 악성코드 제작자는 몇 달 후 검거되었다.


이 글에서는 [그림 2]와 같이 지난 2009년부터 2014년 8월 현재까지 발견된 주요 POS 시스템을 노린 악성코드에 대해 살펴본다.

 

 
[그림 2] 2009년 - 2014년에 발견된 주요 악성코드

 

 

■ 트래커(Tracker)

 

2009년에 처음 발견된 악성코드로, POS 시스템을 노린 초기 악성코드로 알려져 있다. 일반 응용 프로그램 개발 언어인 델파이(Delphi)로 제작되었으며, 메모리에서 트랙1과 트랙2에 해당하는 신용카드 정보를 정규 표현식(Regular Expression)으로 찾아 Data.txt 등에 저장한다.

 

[그림 3] 신용카드 정보를 수집하여 Data.txt에 저장하는 트래커(Tracker)

 

 

■ 덱스터(Dexter)

 

2012년 12월 대규모 감염이 확인되었다. 사이버보안 업체 시큐러트(Seculert)는 자사 블로그를 통해 신용카드 번호를 추출하는 덱스터(Dexter)가 전세계에 유포되었다고 주장했다. 이에 따르면 한국에서도 해당 악성코드 감염 보고가 있었다고 한다. 


 

[그림 4] 2012년 12월 전세계 덱스터 감염 현황 (*출처: Seculert 블로그)

 

 

덱스터 악성코드가 실행되면 iexplorer.exe에 악성코드가 삽입(injection)되고 메모리에서 트랙1과 트랙2를 검색한다.
 

 


[그림 5] 덱스터(Dexter)의 신용카드 번호 추출 코드

 

 

■ v스키머(vSkimmer, 또는 Vskimm)

 

v스키머(vSkimmer) 또는 V스킴(Vskimm)이라고 불리는 악성코드는 2013년 3월 맥아피에서 처음 공개했다. 이 악성코드가 실행되면 메모리 내에서 트랙 정보가 검색된다. 


 

[그림 6] v스키머(vSkimmer또는 Vskimm) 검색 문자열

 

해당 악성코드는 변형이 존재하며, 수집된 카드 번호를 http://www.posterminalworld.la, mx3.ringtonetrip.com 등으로 전송한다.

 


[그림 7] v스키머 악성코드의 접속 주소

 

발견 당시 v스키머가 접속한 주소는 31.31.xxx.xx로, 해당 IP는 주기적으로 다른 도메인 네임을 가졌다. 해당 IP는 랜섬웨어 등 다른 악성코드의 통신에도 이용되었다. 즉, 해당 IP를 이용한 것이 동일인 혹은 동일 그룹의 소행이라면 신용카드 번호 수집 외에도 여러 금전적인 목적의 악의적인 행위를 하고 있었음을 추측할 수 있다.

 


[그림 8] 31.31.xxx.xx 의 다양한 도메인 네임

 

v스키머 악성코드의 특징은 감염 시스템이 인터넷에 연결되어 있지 않을 경우, 볼륨 이름이 ‘KARTOXA007’인 이동식 드라이브를 찾아 카드 번호를 dmpz.log에 저장하는 것이다. 이는 망이 분리되어 있는 POS 시스템에서 정보를 유출하기 위한 것으로 보인다.

 


[그림 9] 인터넷이 연결되지 않았을 경우 탈취한 정보를 USB 메모리에 저장

 

 

■ 알리나(Alina)

 

2013년 5월 보안업체인 트러스트웨이브(Trustwave)가 자사 블로그(스파이더 랩 블로그)를 통해 보고한 악성코드이다. [그림 10]과 같이 알리나(Alina)라는 문자열과 버전 정보를 포함하고 있는 것이 특징이다.

 


[그림 10] 알리나(Alina) 악성코드에서 나타나는 특징적인 문자열

 

다른 악성코드와 마찬가지로 신용카드 번호를 찾는 문자열을 확인할 수 있으며, 관련 문자열은 악성코드 변형에 따라 다르다.

 

 


[그림 11] 알리나 악성코드 변형의 메모리 검색 문자열

 

 

■ 잭포스(Jackpos)

 

2014년 2월 보안업체 인텔크롤러(IntelCrawler)가 악성코드 잭포스(Jackpos)에 관한 정보를 공개했다. 국내에서도 2013년 11월 해당 악성코드의 변형이 확인되었다. 국내에서 발견된 변형의 파일 이름은 spread.exe였으며, 이 악성코드를 실행하면 ‘Hacking of network started’ 등의 메시지가 나타난다.

 


[그림 12] 국내에서 발견된 잭포스(Jackpos) 드롭퍼 실행 화면

 

잭포스 악성코드는 여러 파일로 구성되어 있다. 이들 파일 중 일부는 Autoit으로 제작되어 있으며 [그림 13]과 같이 코드가 난독화되어 있다.
 


[그림 13] Autoit으로 제작된 잭포스 악성코드의 난독화된 소스코드

 

해당 악성코드의 PDB 정보에 hack, POS 등의 문자열이 포함되어 있어 POS 시스템 해킹을 위해 제작되었음을 추측할 수 있다.
 


[그림 14] 잭포스(Jackpos) 변형의 PDB 정보

 

■ Mmon(BlackPOS, Kartoxa)

 

Mmon은 2011년부터 발견되었으며, 7,000만 건의 신용카드 정보가 유출된 미국 대형 유통업체인 타겟사 POS 시스템 해킹에 Mmon 변형이 이용되어 유명해졌다. Mmon이 실행되면 [그림 15]와 같이 프로세스를 검색해 신용카드 번호를 추출하고, 검색 결과는 [그림 16]과 같이 output.txt에 저장된다.

 

 

 
[그림 15] 프로세스 검색 중인 악성코드 Mmon

 

 


[그림 16] 악성코드 Mmon의 검색 결과가 저장된 output.txt

 

Mmon 악성코드는 ‘KAPTOXA’와 같은 문자열을 포함하고 있는 것이 특징이다. 


 


[그림 17] Mmon 악성코드에 포함된 문자열 ‘KAPTOXA’

 

 

또 Mmon 악성코드는 109.234.xxx.xxx로 접속한다. 해당 IP의 도메인을 확인해보면 [그림 18]과 같이 다양한 도메인 네임을 가지고 있다.
 


[그림 18] 109.234.xxx.xxx의 다양한 도메인 네임

 

 

타겟사 공격에 사용된 악성코드 변형에 대한 보다 자세한 내용은 월간 ‘안’ 2014년 4월호의 '미국 타겟사 개인정보 유출 악성코드 분석'을 참고할 수 있다(http://download.ahnlab.com/kr/site/magazineAhn/ahn_201404.pdf).

 


■ 츄바카(Chewbacca 또는 Fsyna)

 

악성코드 츄바카(Chewbacca 또는 Fsyna)는 2013년 12월 보안업체 카스퍼스키(Kaspersky)에서 최초로 공개하면서 알려졌다. 영화 ‘스타워즈’의 등장 인물인 츄바카(Chewbacca)와 관련된 문자와 이미지가 포함되어 있어 붙은 이름이다.

 

츄바카 악성코드는 신용카드 정보를 유출하기 위해 키로깅과 메모리 스크래핑 기법을 사용한다. 우선 키로깅 기법을 이용해 [그림 19]와 같이 사용자가 입력하는 키 내용을 %temp% 폴더의 system.log에 저장한다.


 


[그림 19] %temp% 폴더에 키로깅 내용 보관

 

또한 [그림 20]과 같이 메모리에서 신용카드 정보를 검색한다.

 


[그림 20] 츄카바 악성코드의 신용카드 정보 검색 문자열

 

츄바카 악성코드의 특징은 추적을 피하기 위해 Tor를 이용해 통신한다는 점이다. 
 


[그림 21] Tor를 이용한 통신

 

 

■ 백오프(Backoff)

 

지난 7월 31일, US-CERT는 홈페이지를 통해 POS 시스템을 감염시켜 고객의 이름, 주소, 신용카드 번호 등의 정보를 유출하는 악성코드를 백오프(Backoff)로 명명하고, 주의를 당부했다. 해당 악성코드는 US-CERT가 미국 내에서 발생했던 다수의 POS 시스템 침해 사고를 조사하던 중 발견된 것으로, 2013년 10월부터 2014년 6월까지 활동했다고 US-CERT는 전했다.

 

US-CERT의 분석 보고서에 따르면 백오프 악성코드는 버전 1.4부터 1.56까지 확인되었다. 그러나 안랩에서 관련 변형을 확인한 결과, US-CERT 문서에는 언급되지 않은 1.56 wed와 1.57 NEWGRUP 버전이 존재하는 것으로 확인됐다([그림 22]). 백오프 악성코드는 메모리 내에서의 트랙 데이터 수집 및 키로깅 기능을 가지고 있다.


 
[그림 22] 백오프(Backoff) 악성코드 내 버전 정보

 

 

국내에서 발견된 POS 시스템 악성코드


앞서 언급한 바와 같이 국내에서도 덱스터(Dexter), 잭포스(Jackpos) 등 해외에서 제작된 악성코드 감염이 확인된 바 있다. 그러나 국내 POS 시스템을 노리고 제작된 악성코드와 해킹 시도가 존재한다. 
 


■ 상용 키로거(Keylogger)

 

2013년 5월 국내 모 대형 유통사의 POS 시스템에서 해킹으로 의심되는 행위가 탐지되어 확인한 결과 상용 키로거가 발견되었다. POS 시스템 해킹을 목적으로 제작된 악성코드는 아니지만 상용 키로거 프로그램을 이용한 POS 시스템 해킹 시도라는 점에서 눈여겨볼 필요가 있다.

 

 
[그림 23] 국내 모 대형 유통사 POS 시스템에서 발견된 상용 키로거

 

해당 상용 키로거가 실행되면 키로거 프로그램이 생성되고 사용자가 입력하는 내용이 저장된다.
 


[그림 24] 생성 파일과 키로깅 내용을 담고 있는 데이터 파일

 

 

■ Ompos

 

2014년 초 국내 POS 시스템 해킹에 Ompos라는 악성코드가 이용됐다. 이 악성코드는 2014년 1월초에 제작된 것으로 추정된다.

 

공격자는 국내 POS 시스템 관리 업체의 서버를 해킹하고, 악성코드가 포함된 업데이트 파일을 이용해 POS 시스템을 감염시켰다. 이는 해외 사례에서는 찾아보기 어려운 독특한 방식으로, 이를 간략히 도식화하면 [그림 25]와 같다. 공격자는 사전에 모 POS 시스템의 자동 업데이트 프로그램인 ***_AutoRun.exe를 악성코드가 포함된 ***PosDemon.exe로 교체해 피해 업체의 POS 시스템이 해당 프로그램을 다운로드함으로써 감염되는 방식이다. POS 시스템에 다운로드된 ***PosDemon.exe가 실행되면 키로깅 기능이 있는 *Pos.exe가 실행되고 ***PosDemon.exe는 정상 파일로 덮어 쓰여진다. 또한 *Pos.exe의 키로깅 기능을 통해 해당 POS 시스템에서 사용된 신용카드 정보가 *Bank****로 시작되는 로그 파일에 저장된다.  


 


[그림 25] Ompos 감염 방식

 

[그림 25]에 나타난 과정을 자세히 살펴보면, 우선 POS 시스템에는 POS 프로그램의 업데이트 기능을 수행하는 ***_AutoRun.exe가 존재한다. POS 시스템이 실행되면 ***_AutoRun.exe가 POS 시스템 업체 서버와 통신하여 업데이트 파일이 존재하는지 확인한다. 
 


[그림 26] POS 시스템 업체의 업데이트 프로그램 실행 화면

 

 

그 후 ***_AutoRun.exe는 악성코드가 포함된 ***PosDemon.exe를 매장의 POS 시스템에 다운로드 한다. 다운로드된 파일은 원본 파일의 이름과 동일하며 리소스 영역에 정상 파일을 포함하고 있다.

 

 

[그림 27] 리스소 영역에 존재하는 정상 파일


 

***PosDemon.exe는 파일 리소스 영역에 존재하는 원래 파일로 덮어 쓰여져 실행되기 때문에 사용자는 악성코드 감염 여부를 확인하기 어렵다. 또한 주요 문자열이 [그림 28]과 같이 난독화되어 있다.

 

 


[그림 28] 난독화된 문자열

 

 

해당 악성코드에는 키로깅 기능이 있어 윈도 폴더의 *Bank****_년_월_일.log 파일에 입력된 키의 내용이 저장된다.

 


[그림 29] 저장된 키로깅 내용

 

변형에 따라 해당 악성코드는 211.234.xxx.xxx:8902나 211.43.xxx.xxx:9501 등으로 통신한다.

한편 해킹된 서버는 별 다른 로그인 과정 없이도 웹 브라우저상에서 서버 파일 구성을 알 수 있다. 


 


[그림 30] POS 시스템 관리 업체의 서버 구성

 

 

IMAGE 디렉터리에는 매장의 POS 시스템에서 출력되는 메뉴, 매장 홍보 내용도 볼 수 있다. 심지어 개인 정보와 관련된 파일로 저장되어 있어 보다 철저한 시스템 관리가 필요하다.


 


[그림 31] 서버에서 찾을 수 있는 매장 내 POS 시스템의 이미지 정보

 

 

POS 시스템도 예외 없어…다각도의 보안 대책 필요

 

편의점이나 일반 매장 등에서 사용하는 POS 시스템은 대부분 저사양 컴퓨터에 관련 프로그램이 운용되는 형태다. 그러나 신용카드 번호 등 고객의 민감한 정보와 접촉하는 지점이자 이러한 정보가 1차로 저장되는 지점이므로 반드시 보안에 대한 조치가 동반되어야 한다.

 

우선, POS 시스템의 로그인 암호를 복잡하게 설정하고 주기적으로 변경해야 한다. 또한 POS 시스템을 겨냥한 악성코드가 증가하고 있는 만큼 지속적으로 POS 시스템이 운용되는 단말기에 보안 업데이트를 적용하고 POS 시스템 운영에 필요하지 않은 서비스는 중지해야 한다. 아울러 POS 시스템의 당초 목적 이외의 용도로는 시스템을 이용하지 않도록 유의해야 한다. 특히 웹 서핑을 통해 악성코드에 감염될 가능성이 높기 때문에 주의가 필요하다.

 

이러한 기본적인 조치 외에도 전용 보안 프로그램을 설치하는 것이 바람직하다. POS 시스템은 저사양 컴퓨터에서 운용되는 만큼 알려진(또는 허용된) 프로그램만 실행할 수 있도록 하는 화이트리스트(Whitelist) 기반의 제품을 도입하는 것이 상대적으로 효율적이며 안전하다.

 

이 글을 마무리하는 시점에도 새로운 POS 시스템을 노린 악성코드와 피해 사례가 보고되고 있다. 금전적 이득을 노린 공격자들은 지속적인 새로운 방법을 찾아내어 공격하고 있으며 POS 시스템도 결코 예외가 아니라는 점을 반드시 명심해야 한다. @

 

 

 

  POS 시스템 및 자동화 기기용 전용 보안 솔루션


 안랩 EPS, POS 시스템 노리는 악성코드 원천 봉쇄

 

 

최근 보안 위협이 고도화됨에 따라, PC나 서버, 스마트폰과 같은 일반 컴퓨팅 기기 외에 공장 생산라인이나 상점의 판매시점관리  (POS) 단말기, 금융자동화기기(ATM) 등에 대한 전방위적인 보안 위협이 가시화되고 있다.

 

df안랩 EPS(Endpoint Protection System)는 제한된 환경 내에서 정해진 프로그램만 실행시키는 화이트리스트 기반의 보안 솔루션으로 POS, ATM 등과 같은 자동화 기기의 보안 위협을 효과적으로 차단할 수 있다.

 

이 제품은 화이트리스트 기반의 솔루션이기 때문에 기존 백신의 블랙리스트 방식 솔루션보다 미발견 변종 악성코드 등에 대한 사전 예방 기능을 제공한다. 또한 안랩 EPS는 저사양 시스템에서 동작하기에 충분한 적은 리소스 점유율(5~10%미만)과 설치 용량을 가지고 있어 자동화기기의 안정성을 유지하면서 빠르고 장애 없이 효과적으로 제품을 적용 및 운영할 수 있다.

 

안랩 EPS는 악성코드 실시간 검사 및 통제, ARP 스푸핑 공격 및 네트워크 공격 차단, 네트워크 IP/Port 차단 등 악성코드 확산 및 방지를 위한 강력한 보안 기능을 제공한다.

 

특히, 매체 제어와 USB 사용을 통한 매체 취약점 차단 등 시스템 운영과 중앙 통제 통합관리와 원격제어와 같은 기능을 통해 유지보수 측면에서 운영의 편리성도 지원하고 있다. 더불어 이 제품은 불필요한 매체, 프로그램 자동실행, 과다 네트워크 등을 차단할 수 있어 관리자가 시스템을 효과적으로 통제 및 운영할 수 있게 도와주며, 원격제어도 가능하다. 또 ATM이나 POS의 동일 네트워크 내에 EPS가 설치되지 않은 시스템을 감지해 잠재적 위협 요소도 제거할 수 있다.

 

안랩 EPS는 금융권의 ATM 및 백화점ㆍ할인마트ㆍ편의점의 POS 등 다양한 산업군의 특화된 시스템에 적용할 수 있다.  


  • AhnLab 로고
  • 분석팀 차민석 책임
  • Facebook에 공유하실 수
    있습니다.

  • Twitter에 공유하실 수
    있습니다.

  • Linked in

    Linked in에 공유하실 수
    있습니다.

  • 붙여넣기

    블로그나 게시판에 붙여넣기 하실
    수 있습니다.