로컬에서는 다 됐다

ATM 종합관리시스템을 로컬에 세우는 건 어렵지 않다. 시뮬레이터 하나 띄우고, 거래 메시지 주고받고, 상태를 대시보드에 뿌리면 화면이 그럴듯하게 돈다. 통합 테스트도 초록불이 뜬다.

문제는 그 초록불이 로컬에서는 존재하지 않는 축들을 통과한 적이 없다는 것이다. 그 축이 무엇인지 하나씩 적는다. 각 항목은 “로컬 테스트가 왜 이걸 못 잡는가”를 기준으로 골랐다.

① 장치 계층 — 두 세대의 표준이 동시에 살아 있다

ATM 은 현금 디스펜서, 카드 리더, 핀패드, 프린터, 센서가 붙은 복합 장비다. 애플리케이션이 이 장치들을 부르는 규격이 CEN 의 XFS(eXtensions for Financial Services) 다.

여기서 로컬 테스트가 만드는 첫 번째 착각이 나온다. 시뮬레이터는 보통 한 세대만 흉내낸다. 그런데 CEN-CENELEC 의 CWA 배포 목록을 보면 실제로는 두 계열이 나란히 게시되어 있다1.

  • CWA 17852 — XFS4IoT Specifications. Release 2024-03, 2023-02, 2021-01 세 판본이 올라와 있고, 2024-03 판은 2025년 4월에 정정 재발행됐다2.
  • XFS 3.x 계열(3.51, 3.40, 3.30 …)은 각자의 CWA 번호로 별도로 유지된다1.

CEN 문서는 두 계열의 기술적 관계를 “후속”이라고 명시하지 않는다. 벤더 쪽에서는 XFS4IoT 를 XFS 3.x 의 후계로 소개하지만, 그건 벤더 주장이다. 관리시스템 설계자 입장에서 확실한 사실은 하나다 — 현장 장비 모수에 두 세대가 섞여 있을 수 있고, 표준 문서상 둘 다 유효하다.

그래서 장치 추상화 계층을 “XFS 하나”로 잡으면, 글로벌로 나가는 순간 국가별·계약별로 장비 세대가 갈리면서 그 계층이 깨진다.

② 메시지 계층 — ISO 8583 은 아직 죽지 않았다

거래 메시지 쪽은 더 흔한 착각이 있다. “요즘은 ISO 20022 로 간다”는 것이다.

ISO 8583 의 정식 이름은 Financial transaction card-originated messages — Interchange message specifications 이고, 비트맵으로 데이터 요소 위치를 지정하는 오래된 형식이다. ISO 20022 는 UML 로 모델링하고 XML 로 표현하는 완전히 다른 체계다. 둘 사이에는 공통 구조가 없다.

중요한 건 카드 도메인의 전환이 의무가 아니라는 점이다. ISO 20022 를 카드 취득사–발급사 구간에 적용하는 규격이 ATICA(Acquirer-to-Issuer Card Messages)인데, 이 문서 자체가 ISO 8583 과의 공존(coexistence)을 명시적으로 다룬다3. 즉 표준을 만든 쪽에서부터 “당분간 둘 다 산다”를 전제하고 있다.

로컬 테스트는 대개 한쪽 포맷만 태운다. 실제 글로벌 시스템은 지역마다 다른 포맷을 물고 들어오고, 그 변환 계층이 손실 없이 왕복하는지가 진짜 문제가 된다. 금액·통화·응답코드가 두 체계 사이를 오갈 때 어디서 정보가 깎이는지는 로컬 픽스처로는 드러나지 않는다.

③ 키 관리 — 코드가 아니라 달력에 마감이 있다

로컬 테스트 환경은 대개 평문 키나 고정 테스트 키로 잘 돈다. 그래서 이 축은 통째로 안 보인다.

PCI SSC 는 2014년 12월 PCI PIN Security Requirements 에 요구사항 18-3(Key Blocks)을 도입했고, 이행을 3단계로 나눴다. Visa 가 공지한 개정 시행일은 다음과 같다4.

단계 적용 범위 시행일 종전
Phase 1 서비스 제공자 내부 연결 및 키 저장(HSM 연결 앱·DB 포함) 2019-06-01 연장 없음
Phase 2 협회·네트워크와의 외부 연결 2023-01-01 2021-06-01
Phase 3 가맹점 호스트, POS 단말, ATM 2025-01-01 2023-06-01

ATM 이 걸리는 건 Phase 3 이고, 시행일은 이미 지났다. 관련 규격은 키 블록 형식을 정의한 ASC X9 TR-31, 비대칭 기법으로 대칭키를 원격 배포하는 ASC X9 TR-345, 그리고 그 근거가 되는 ANSI X9.24 Part 1(대칭 기법)·Part 2(비대칭 기법)다67.

여기서 로컬 테스트와 실제의 간극이 가장 크다. 키 블록 미준수는 기능 결함으로 나타나지 않는다. 코드는 잘 돌고 테스트는 통과한다. 다만 어느 날부터 호스트가 그 단말의 거래를 받지 않는다. 이건 버그 리포트가 아니라 규정 시계의 문제이고, 관리시스템은 “이 장비의 EPP 가 어떤 키 블록 방식을 쓰는가”를 자산 속성으로 들고 있어야 한다.

④ 위협 모델 — 로컬 테스트는 물리를 상상하지 못한다

보안 설계를 로컬에서 하면 위협 모델이 자연스럽게 소프트웨어 쪽으로 쏠린다. 악성코드, 권한 상승, 네트워크 침투. 그런데 실제 데이터는 그 반대를 가리킨다.

유럽 결제단말 범죄를 집계하는 EAST(European Association for Secure Transactions)의 2024년 보고를 보면8:

  • ATM 악성코드·논리 공격은 7건 → 3건으로 57% 감소했고, 보고된 3건은 전부 블랙박스 공격이었으며 손실은 0이었다.
  • 같은 기간 ATM 물리 공격은 4,637건 → 5,953건으로 28% 증가했고, 손실은 900만 유로 → 1,200만 유로로 33% 늘었다.
  • 물리 공격 손실의 71%가 폭발물 공격이었고, 이 손실은 536만 유로 → 856만 유로로 60% 증가했다.
  • 카드 트래핑 +66%(1,630→2,704), 현금 트래핑 +105%(4,795→9,811), TRF +367%(338→1,577), 릴레이 공격 +505%(63→381).
  • 전체 손실은 1억 7,300만 유로 → 7,100만 유로로 59% 감소했는데, 남은 손실의 대부분(6,700만 유로)은 카드 스키밍에 따른 국제 발급사 손실이다.

EAST 는 논리 공격 발생이 워낙 적어 2025년부터는 논리 공격 보고를 중단할 가능성이 높다고 밝혔다8.

이 숫자가 관리시스템 설계에 주는 함의는 분명하다. 잡아야 할 신호가 “프로세스 화이트리스트 위반” 쪽이 아니라 함체 개방, 진동·충격, 디스펜서 물리 이상, 카드 리더 삽입물, 거래 패턴의 국지적 이상 쪽에 있다는 것이다. 그리고 이 신호들은 로컬 테스트에서 단 한 번도 발생하지 않는다. 발생시킬 방법이 없기 때문이다.

덧붙이면 EAST 는 물리 공격의 약 40%가 현금 손실로 이어지지 않지만, 장비와 건물 피해액이 성공한 공격의 현금 손실액을 넘는 경우가 잦다고 적었다8. 손실 지표를 현금 기준으로만 잡으면 실제 비용을 놓친다.

⑤ 시간·통화·로케일 — 조용히 틀리는 축

  • 유지보수 창이 없다. 로컬에서는 아무 때나 재시작한다. 글로벌에서는 내 새벽이 누군가의 피크다. “심야 배포”라는 개념 자체가 성립하지 않는다.
  • 통화 소수 자릿수가 다르다. ISO 4217 은 통화별 minor unit 을 정의하는데, 원화와 엔화는 0자리, 대부분의 통화는 2자리, 일부는 3자리다9. 금액을 정수 최소단위로 다룰지 소수로 다룰지를 통화별로 결정하지 않으면 반올림이 조용히 어긋난다. 로컬 테스트가 원화만 태우면 이 버그는 배포 후에 나온다.
  • 지폐 액면이 카세트에 매핑된다. 통화가 바뀌면 액면 구성이 바뀌고, 카세트 수와 배분 전략이 바뀐다. “출금 금액 → 지폐 조합” 알고리즘은 통화별로 다른 문제다.

⑥ 관측성 — 원격 재부팅이 안 되는 자산

마지막이 가장 근본적이다. ATM 은 롤백이 안 되는 부분을 갖고 있다.

소프트웨어는 되돌릴 수 있다. 그러나 카세트에 낀 지폐, 열린 함체, 부서진 카드 리더는 사람이 현장에 가야 한다. 그래서 이 시스템의 최종 출력은 대시보드가 아니라 출동 작업지시다.

이 관점을 잡고 나면 설계 질문이 바뀐다. “이 이벤트를 어떻게 표시할까”가 아니라 “이 이벤트가 사람을 보낼 만한가, 보낸다면 무엇을 들고 가야 하는가”가 된다. 오탐 하나의 비용이 알림 하나가 아니라 왕복 출동 한 건이다.

그래서 로컬 테스트에 무엇을 넣어야 하나

로컬이 글로벌을 완전히 재현할 수는 없다. 다만 위 축들이 존재한다는 사실만이라도 테스트가 알게 만들 수는 있다.

  1. 장치 추상화를 XFS 세대별로 최소 두 개의 구현으로 갈라 테스트한다. 하나만 있으면 그 하나에 결합된다.
  2. 메시지 변환 계층에 8583 ↔ 20022 왕복 테스트를 넣는다. 왕복 후 동등성이 깨지는 필드를 명시적으로 목록화한다.
  3. 키 블록 방식을 장비 자산 속성으로 모델링하고, 규정 시행일을 데이터로 들고 있는다. 코드가 아니라 자산 대장의 문제다.
  4. 물리 이벤트(함체 개방, 진동, 디스펜서 이상)를 주입 가능한 형태로 만든다. 실제로 못 일으키니 주입이라도 해야 한다.
  5. 통화를 최소 3종(0자리·2자리·3자리) 태운다.
  6. 시간대를 UTC 고정이 아니라 지역별로 흔들어 태운다.
  7. 모든 알림에 “이게 출동을 유발하는가” 플래그를 붙이고, 오탐률을 출동 비용으로 환산해 본다.

근거의 한계

  • EAST 통계는 유럽 데이터다. 한국·아시아·북미의 공격 구성은 다를 수 있고, 이 글의 물리 공격 우세 결론을 다른 지역에 그대로 옮길 수 없다.
  • PCI 키 블록 시행일은 Visa 가 공지한 개정 일자를 인용했다4. 네트워크·지역·감독기관에 따라 별도 일정이나 추가 요건이 있을 수 있다.
  • XFS4IoT 의 실제 현장 채택률에 대한 중립적 제3자 수치는 확인하지 못했다. 그래서 이 글은 “두 계열이 표준 문서상 병존한다”까지만 주장하고, 비율은 말하지 않는다.
  • ATM 벤더별 XFS 확장 차이는 이 글에서 다루지 않았다. 공개된 1차 자료로 검증하기 어려운 영역이다.
  • 이 글은 특정 제품이나 구현을 평가하지 않는다. 설계 시 고려 항목을 정리한 것이다.

References

  1. CEN-CENELEC, CWA Download Area — Digital Society. https://www.cencenelec.eu/areas-of-work/cen-sectors/digital-society-cen/cwa-download-area/ (2026-09-09 조회)  2

  2. CEN, CWA 17852 — Extensions for Financial Services (XFS) — XFS4IoT Specification, 2024-03 Release. https://www.cencenelec.eu/media/CEN-CENELEC/AreasOfWork/CEN%20sectors/Digital%20Society/CWA%20Download%20Area/XFS/CWA17852/cwa17852_2024-03-release_2025.pdf 

  3. ISO 20022 Registration Authority, ATICA — Acquirer-to-Issuer Card Messages (ISO TC68/SC7/WG9 제출 문서). https://www.iso20022.org/submission-status/771/download 

  4. Visa, Key Block Effective Dates Extended. https://usa.visa.com/dam/VCOM/global/support-legal/documents/key-block-effective-dates-extended.pdf  2

  5. ASC X9, TR 34-2019 — Interoperable Method for Distribution of Symmetric Keys Using Asymmetric Techniques: Part 1. https://webstore.ansi.org/standards/ascx9/ascx9tr342019 

  6. ASC X9, ANSI X9.24-1-2017 — Retail Financial Services Symmetric Key Management Part 1: Using Symmetric Techniques. https://webstore.ansi.org/standards/ascx9/ansix9242017 

  7. ASC X9, ANSI X9.24 Part 2 — Using Asymmetric Techniques for the Distribution of Symmetric Keys. https://standards.globalspec.com/std/10186307/ansi-x9-24-pt-2 

  8. EAST, European Terminal Fraud attacks double (2025-04-14 보도자료, 2024년 European Payment Terminal Crime Report). https://www.association-secure-transactions.eu/european-terminal-fraud-attacks-double/  2 3

  9. ISO, ISO 4217 — Currency codes. https://www.iso.org/iso-4217-currency-codes.html