본문 바로가기

malware

POS 시스템 공격 : 정규 소프트의 악용으로 신용 카드 정보를 검증, 절취 후 언더 그라운드 시장에서 판매

728x90
트렌드 마이크로는 현재 확인되고있는 POS (판매 시점 정보 관리) 시스템에 대한 공격에 대한 조사 분석을 실시하고 있습니다. 지금까지 확인 된 POS 시스템에 대한 공격에서는 POS 단말기에 POS 악성 코드를 감염시켜 메모리의 정보를 절취하는 수법이 중심이되어 있습니다. 자세한 내용은 다음의 연구 논문을 참조하십시오 :

다운로드는 여기 : " POS 시스템에 대한 공격 소매 · 서비스 업계에 위협 "

당사는 시스템에 대한 공격에 대해 계속 조사를 실시하고 있습니다. 있는 POS 악성 코드를 조사하고 있었는데, 흥미로운 검체를 확인했습니다. 그것은 개선 된 악성 프로그램과 Ground Lab 사의 소프트웨어 "Card Recon"의 비정품이 포함 된 압축 파일 (확장자 rar)이었습니다. Card Recon은 국제 보안 표준 인 'PCI」에 준거 한 상용 정보 유출 방지 제품 "Data Leakage Prevention (DLP)"입니다. 또한,이 압축 파일의 악성 프로그램은 각각 " TSPY_POCARDL.AI "및"SPYW_CCVIEW "로 감지됩니다.

이 사이버 범죄자 집단은 메모리의 정보를 수집하는 악성 프로그램을 이용하고 카드 정보를 검색하기 위해 아이러니하게도 DLP 제품을 이용하고있는 것 같습니다. 문제의 압축 파일에서 확인 된 Card Recon의 비정품은 2011 년의 정보를 저장하고있었습니다. 이 소프트웨어의 자세한 내용은 다음과 같습니다.

링크 날짜 : 9:14 AM 3/11/2011 메이커 : Ground Labs 품목 : PCI DSS CHD Scanner 제품 : Card Recon 제품 버전 : Release 1.14.7 파일 버전 : Release 1.14.7 머신 타입 : 32-bit












Card Recon의 비정품을 이용한 다른 검체를 찾았는데, 다른 2 개의 압축 파일을 확인했습니다. 신용 카드 정보를 수집하는 악성 프로그램 파일과 키 입력 조작 정보를 수집하는 악성 프로그램 파일입니다. 사이버 범죄자가 상용 DLP 제품을 이용하는 것에 그만큼의 놀라움은 아니지만 왜 정보를 확인했는지 그 이유를 생각하게했습니다. 정보를 수집하기 위해 이용한 정규 표현식이 불충분했던 것일까 요.

사이버 범죄자는 수집 한 정보를 확인하고 그 효과를 검증 할 필요가 있다고 생각됩니다. 그들은 지하에서 신용 카드 정보를 판매합니다. 실수있는 정보를 판매하는 것은 평가를 낮출뿐만 아니라 단순히 신용을 잃게 이상의 나쁜 결과를 초래할 수 있습니다.

먼저, 직불 카드 및 신용 카드 등의 지불 카드 번호 관하여 더 많은 것을 이해할 필요가있을 것입니다. 이 번호의 형식은 "ISO / IEC 7812」으로 규정되어 있습니다. 사용되는 16 자리 번호의 형식은 다음과 같습니다.

IIII-IIAA-AAAA-AAAC

카드의 처음 6 자리는 "발행자 식별 번호 (Issuer identifier number, IIN)"이되고, 첫 번째 자리는 "주요 산업 식별자 (Major industry identifier, MII)"라고되어 있습니다. Visa 나 MasterCard, Discover, American Express (AMEX) 등 주요 카드 회사는 어느 회사가 발행 한 카드인지 확인 IIN을 각각 가지고 있습니다. 개인 계좌 번호는 최대 12 자리까지 자리수를 바꿀 수 있으며, 최종 자리수 "C"는 Luhn 알고리즘으로 산출되는 체크 디지트가 있습니다.

Luhn 알고리즘은 ISO 표준에서 정의 된 간단한 체크섬 방식에서 15 번째 자리까지의 실수를 감지하도록 설계되어 있습니다.16 자리 모두가 거래에 필요한 기타 정보와 함께 마그네틱 카드의 각 자기 트랙 (트랙 1과 트랙 2)에 저장되어 있습니다. 이들은 모두 " ISO / IEC 7813」으로 정의되어 있습니다.

트랙 1 및 2의 정보가 어떻게 카드에 저장되는지는 상세하게 정의되어 있기 때문에 악성 프로그램은 정규식 패턴을 이용하여 Random Access Memory (RAM)에서 이러한 정보를 찾아 수 있습니다. 다음은 트랙 1의 정보를 검색하기위한 정규 표현식의 예입니다.

^ % (AZ) ([0-9] {1,19}) \ ^ ([^ \ ^] {2,26}) \ ^ ([0-9] {4} | \ ^) ( 0-9] {3} | \ ^) (^ \? +) \? $

필요한 정규식 연루된 경우 목적으로 한 정보 이외에, RAM에서 불필요한 데이터도 잘못 수집 버릴 가능성이 있습니다. 잘 정의 된 정규식이면 깨끗한 결과를 반환하지만, 그렇지 않은 정규식에 비해 계산으로 비싸게 수 있습니다. RAM에서 단시간에 정보를 수집하는 것이 목적이라면 특히 수집 된 정보를 오프라인에서 검증 할 때, 질보다 효율성이 중요합니다.

드문 일이지만, 깨끗한 코드 작성을 신봉하는 순수 주의자의 악성 프로그램 제작자도 있습니다. 그림 1은 Visual Basic로 작성된 POS 시스템을 노리는 악성 프로그램의 예이지만, 실제로 Luhn 알고리즘을 구현하고 있습니다.

그림 1 : Luhn 알고리즘의 구현 (클릭하면 확대합니다)
그림 1 : Luhn 알고리즘의 구현 (클릭하면 확대합니다)

이 악성 프로그램은 RAM에서 정보를 수집하기 위해 정규 표현식을 사용하여 다음 정보를 확인하기 위해 함수 "Luhn"를 사용합니다. 이 함수는 입력 된 문자열을 가지고 true 또는 false의 부울 값을 반환합니다. 잘못된 정보는 폐기되고 악성 프로그램은 유효한 결과만을 수집합니다.

이 코드의 실행은 대용량의 정보 수집은 특히 적합하지 않습니다. 왜냐하면 매우 높은 계산 능력을 필요로합니다. 따라서 부정 이용 된 Card Recon 같은 DLP 제품을 오프라인에서 사용하는 것이 이상적입니다. 2013 년부터 미국 주요 소매 업체에서 대량의 정보 유출이있었습니다 만, 700 만건의 지불 카드 정보의 검증은 침입 한 네트워크 외부에서 실시하는 것이 최적입니다.

POS 시스템의 정보를 수집하는 악성 프로그램과 비정품 Card Recon 이야기를 되 돌리면 당사는 AMEX와 Discover, Diners Club, JCB, Visa, MasterCard 등의 카드 회사와 "테스트 / 기타"를 IIN을 이용하여 식별 DLP 도구를 확인했습니다. "테스트 / 기타"숫자 열은 Luhn으로 활성화되지만, 어떤 특정 카드 회사에 맞지 않는 것입니다.

당사는 온라인에서 가짜 신용 카드 번호 생성 도구를 사용하여 Luhn에서 옳다고 감지되는 신용 카드 번호를 각 카드 회사마다 만들고 Card Recon DLP 도구를 사용하여 유효한 신용 카드 번호를 드라이브에서 검색합니다. 또한,이 DLP 도구는 지불 카드 번호를 확인합니다. 그러나 트랙 1 및 2의 모든 정보는 확인하지 않습니다.

그림 2 : 부정 이용 된 Card Recon 도구
그림 2 : 부정 이용 된 Card Recon 도구

이 도구는 어떤 Python 라이브러리를 Luhn의 검증 옳다고하여 테스트 신용 카드 번호로 잘못 인식했습니다. 이것은 정규식이 실패하고 불필요한 정보를 수집하면 전술 한 내용을지지합니다. 트랙 1 및 2에 포함 된 계좌 번호, 유효 기간, CVC / CVV1 코드 등 모든 정보가있는 것이 신용 카드 정보 수집을 획책하는 사람에게는 매우 중요합니다. 카드 번호 만의 경우에 비해 모든 정보를 갖춘 경우 언더 그라운드에서는 고가가 붙습니다. 사이버 범죄자는 트랙 1과 2의 데이터를 수집하기 위해 정규 표현식을 사용하지만, 수집 한 카드 번호를 확인하는 것은 이론적으로 나머지 데이터도 활성화임을 의미 있습니다.

그림 3 : Card Recon에서 검출 된 파일 (클릭하면 확대합니다)
그림 3 : Card Recon에서 검출 된 파일 (클릭하면 확대합니다)

언더 그라운드 시장에서 어떤 신용 카드 정보 같은 가치가 있는가하는 질문이 있을지도 모릅니다. 놀랍게도 대답은 "아니오"입니다. 그것은 수요와 공급에 관계가 있습니다.

당사가 최근 러시아 언더 그라운드를 재검토 한 결과, 언더 그라운드 시장에서의 신용 카드 정보의 가격은 몇 년 동안 하락하고있는 것으로 나타났습니다. 그러나 신용 회사 당 가격은 여전히​​ 차이가 있습니다. 수집 한 신용 카드 정보를 매매하는 Web 사이트를 보면 "유효한"미국 신용 카드의 일반적인 가격이 좋아요 (표 1 참조).

표 1 : 신용 카드의 가격 (달러 / 1 장당)
표 1 : 신용 카드의 가격 (달러 / 1 장당)

다음의 2 점에 주목하십시오. 1 번째는 신용 카드 정보를 대량으로 구입하면 1 장당 가격이 내려갈 것입니다. 최대 66 %까지 할인되는 경우도있었습니다. 두 번째는 Discover와 AMEX 카드 정보 쪽이 Visa 나 MasterCard보다 단가가 높은 것입니다.

이것은 AMEX와 Discover 신용 카드 정보를 Visa 나 MasterCard보다 입수하기 어려운 때문입니다. 희귀 한 정보이면, 가격은 오릅니다. 불행히도, 왜 AMEX와 Discover가 Visa와 MasterCard보다 높은 팔리는 가지 좋은 이유를 찾을 수 없습니다. AMEX와 Discover의 잘못된 카드가 감지되지 않는 것일까 요. 아니면 신용 한도액이 높은 것일까 요. 아니면 신뢰할 수 있을까요. 명료 한 것은 모릅니다.

지금까지의 조사에 의한 당사의 결론을 다음에 정리합니다.

  • 트랙 1 및 2의 정보를 수집하는 악성 프로그램이 이용한 정규식 계산으로 가벼운 것이 확인되고 있습니다. 따라서 대량의 데이터를 처리 할 수​​, 게다가 몰래 실행할 수 있습니다. 예외가있는 것은 판명되어 있습니다 만, POS 시스템의 정보를 수집하는 악성 프로그램의 주류는 일반적으로 코드에 Luhn 검증을 구현하지 않습니다.
  • 수집 한 정보의 검증은 비정품 Card Recon 같은 쉽게 구할 수있는 도구하거나 혹은 자작 도구를 이용하여 일반적으로 오프라인으로합니다. 신용 카드 정보를 수집하는 사이버 범죄자들은​​ 검증과 카드 회사마다의 구별도합니다.
  • 언더 그라운드 시장에서는 사용 용이성과 수요에 따라 카드 회사마다 각각 다른 가격이 설정되어 있습니다.

참고 기사 :

  • Scrape FAST, Find'em Cards EASY! " 
    by Numaan Huq (Senior Threat Researcher)

  • 728x90