qingfro9님의 블로그 입니다.

[Life][잡담]mPOS와 POS의 차이 본문

Life/잡담

[Life][잡담]mPOS와 POS의 차이

qingfro9 2018. 8. 18. 08:13
오래전부터 POS와 MPOS에 대한 궁금증이 생겼다. 궁금증은 어떤 컨퍼런스에 발표 제목이 두 플랫폼에 대한 악성코드 발표 제목이였던걸로 기억한다. 그래서 POS는 아는데 mPOS는 뭘까해서 정리해볼려고 한다. 한 3주정도 밀린거 같다.

+ 또 미루다가... 이제 쓴다.. 사실 미루다 보니 열정이 많이 죽어서 간단하게만 정리하고 끝낸다.. 볼게 너무 많은데 질질 끌수 없다.


mPOS : Movile Point Of Sale
POS : Point Of Sale

결론부터 정리하면 mPOS는 모바일로 결제를 도와주는 POS기를 의미한다.  (스마트폰이나 태블릿 등으로 결제를 할 수 있는 시스템을 이야기 하는 것이지..!)

mPOS의 예로는 아래 그림을 볼 수 있다.



mPOS는 POS APP을 설치하여 앞에 리더기를 모바일 장치를 리딩하여 지불하는 형태를 가지고 있다고 한다. 또한 mPOS는 PCI 호환이 되어 있음으로 Apple Pay나 NFC 지불 방식으로 지불이 가능하다. 이뿐만 아니라 가격도 저렴하여 이용과 접근성이 매우 좋다고 한다.

음.. 뭐 따로 볼건 없고, 예전 노트(2015-12-02)를 보니까 c42ab23c4cfc6c2a233a25debc73601d 을 분석한 흔적이 있다.

분석해보면 좋겠지만.. 귀찮다.. 사실 지금 주말 아침에 갑자기 눈뜬거라서 그런지..

해당 샘플은 POS 악성코드인 FindPOS라는 악성코드인것으로 보인다.

간단하게 POS 악성코드들은 어떤 특징을 가지는지 정도 간단하게 정리해 보고 노트를 맞치겠다.

  • 기본적인 워크 플로우
    • 프로세스 실행, 파일 드랍, 레지스트리 키 접근, 새로운 프로세스 생성, 원본 파일 삭제
    • 프로세스 실행, 뮤텍스 생성, 메모리 스크랩핑, 실행 파일 다운
    • 프로세스 실행, 뮤택스 생성, 키로깅, 실행파일 다운
  • 메모리 스크랩핑 : 대부분 POS 악성코드에서 발견할 수 있는 코드 / 메모리를 읽고 Track 데이터를 찾음, 카드가 POS 단말기에 읽기면 카드 데이터가 암호화 되지 않은 상태로 잠시 존재하는데, 이때 메모리에 있는 카드 정보를 획득하는 형태
    • explorer.exe / lsass.exe / csrss.exe 프로세스들을 주로 사용해서 스크랩함
    • EnumProcesses, OpenProcess, GetTokenInformation, LookupAccountSid, VritualQueryEx, ReadProcessMemory API를 사용하여 정보 획득

      메모리 스크랩 코드



findpos yara rule
rule findpos
{
meta:
description = "FindPOS is a newly discovered POS family."
category = "Point of Sale"
author = "Josh Grunzweig"
strings:
$s1 = "oprat=2&uid=%I64u&uinfo=%s&win=%d.%d&vers=%s" nocase wide ascii
$pdb1 = "H:\\Work\\Current\\FindStr\\Release\\FindStr.pdb" nocase wide ascii
$pdb2 = "H:\\Work\\FindStrX\\Release\\FindStr.pdb" nocase wide ascii
     $pdb3 = "H:\\Work\\Current\\KeyLogger\\Release\\KeyLogger.pdb" nocase wide ascii
condition:
any of ($s*) or
any of ($pdb*) or
        (
          cuckoo.sync.mutex(/WIN_[a-fA-F0-9]{16}/) and
          cuckoo.registry.key_access(/\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/) and
          (
              cuckoo.filesystem.file_access(/C\:\\WINDOWS\\System32\\\w{8}\.exe/) or
              cuckoo.filesystem.file_access(/C\:\\Documents\ and\ Settings\\[^\\]+\\\w{8}\.exe/)
          )
        )
}




Comments