ATM 한 대 뜯어보면 암호화 모듈, 인증 라이브러리, 카드리더 펌웨어까지 외부 부품이 수십 개 들어가 있다. 한 보안 연구자가 이 부품들 속에서 아홉 개의 취약점을 찾아냈는데, 문제는 은행 창구 앞 기계 한 대로 끝나지 않는다. 같은 암호화 라이브러리와 인증 모듈이 결제 단말기, 산업용 제어 장비, 일반 기업 서버에도 그대로 재사용되기 때문이다. 소프트웨어 공급망 공격이 무서운 이유가 바로 여기 있다. 정작 정확히 아는 사람은 드물다.
소프트웨어 공급망 공격, 정확히 뭔가
직접 공격은 해커가 목표 시스템의 방화벽이나 로그인 화면을 뚫는 방식이다. 공급망 공격은 다르다. 목표를 곧바로 노리지 않는다. 대신 그 목표가 쓰는 부품, 라이브러리, 업데이트 서버를 먼저 장악한다. 건물을 부수는 대신 벽돌 공장에 불량 벽돌을 섞어 넣는 셈이다. 그 벽돌을 산 건설사는 전부 위험에 노출된다.
은행, 병원, 제조사가 각자 만들었다고 믿는 프로그램도 실제로는 오픈소스 라이브러리나 외부 벤더 모듈을 가져다 조립한 결과물이다. 모듈 하나에 구멍이 나면, 그 모듈을 쓰는 회사 전부가 동시에 뚫린다.
ATM 취약점, 패턴은 늘 비슷하다
와이어드가 전한 이번 조사 결과를 보면, 발견된 결함들이 하나같이 낯익다.
- 암호화 키가 코드 안에 하드코딩되어 있어 리버스 엔지니어링만으로 추출 가능
- 수년 전 폐기된 구버전 암호화 알고리즘을 여전히 기본값으로 사용
- 인증 절차를 우회할 수 있는 로직 오류
- 제조사 간 코드 재사용으로 한 벤더의 결함이 여러 브랜드 기기에 동시 존재
ATM 제조사가 직접 짠 코드가 아니라, 암호화·인증을 전담하는 서드파티 소프트웨어 회사의 라이브러리에서 문제가 나왔다는 게 핵심이다. 이 라이브러리, ATM에만 들어가는 게 아니다. 키오스크, 결제 단말기, 잠금장치 같은 다른 임베디드 기기에도 그대로 박혀 있다.
왜 자꾸 반복될까
구조적인 이유는 세 가지로 정리된다.
- 레거시 의존성 — 임베디드 기기는 교체 주기가 10~15년으로 길다. 한번 탑재된 암호화 모듈은 좀처럼 바뀌지 않는다.
- 벤더 신뢰의 함정 — 대형 제조사도 하청 업체가 만든 모듈의 내부 코드까지 검증하지 않고 그대로 채택하는 경우가 흔하다.
- 패치 배포의 어려움 — 서버 소프트웨어와는 다르다. 물리적으로 흩어진 수만 대 기기에 업데이트를 적용하려면 현장 출동이 필요할 때가 많다.
결함 하나가 발견돼도 실제 패치가 모든 기기에 깔리기까지 몇 년씩 걸리는 일, 드물지 않다.
기억해둘 만한 사고 세 건
비슷한 구조의 사고, 이전에도 있었다.
- 솔라윈즈(2020) — 네트워크 관리 소프트웨어 업데이트 서버가 해킹당했다. 이를 쓰던 미국 정부기관과 대기업 수천 곳이 동시에 뒷문을 열어준 꼴이 됐다.
- 로그4셸(2021) — 자바 로깅 라이브러리 Log4j의 결함 하나로 전 세계 서버 애플리케이션 상당수가 원격 코드 실행 위험에 노출됐다.
- XZ 유틸스(2024) — 리눅스 배포판 다수가 의존하는 압축 라이브러리에 수년에 걸쳐 은밀하게 백도어가 심어졌다가 뒤늦게 발견됐다.
ATM 사례는 규모만 다를 뿐 패턴은 같다. 눈에 보이는 서비스 하나가 아니라, 그 뒤에 숨은 부품 하나가 사고의 진짜 원인이라는 점. 매번 똑같이 확인된다.
기업·개발팀이 지금 점검해야 할 것들
소프트웨어를 만들거나 운영한다면 아래부터 확인해볼 만하다.
- SBOM(소프트웨어 자재명세서) 작성 — 어떤 오픈소스와 서드파티 모듈을 쓰는지 목록화
- 사용 중인 암호화 라이브러리의 버전과 알고리즘이 여전히 안전한 수준인지 주기 점검
- 외부 벤더 코드에 대한 정기 보안 감사 계약 조항 포함
- 패치 배포 자동화 — 임베디드·현장 기기일수록 원격 업데이트 체계가 사고 대응 속도를 가른다
- 디지털 서명 검증 없이는 업데이트를 설치하지 않는 정책
이 다섯 가지만 지켜도 사고 발생 시 원인 파악 시간이 크게 줄어든다.
일반 사용자가 챙길 만한 것들
당장 코드를 고칠 수는 없어도, 습관으로 위험을 줄이는 방법은 있다.
- 은행 지점이나 사람 많은 장소의 ATM을 이용하고, 카드 투입구에 이물질이 붙어 있는지 확인
- 거래 후 명세서나 앱 알림으로 이상 거래 여부를 바로 확인하는 습관
- 같은 은행이라도 기기별로 소프트웨어 버전이 다를 수 있다. 화면 UI가 유독 오래되거나 반응이 느리면 이용을 피하는 것도 방법
- 회사에서 쓰는 결제 단말기나 키오스크도 정기 점검 대상에 포함하도록 요청
이런 것도 궁금할 텐데
Q. SBOM이 정확히 뭔가요?
소프트웨어에 들어간 모든 구성 요소를 재료 목록처럼 정리한 문서다. 식품 성분표 생각하면 된다. 문제가 터졌을 때 어떤 제품에 특정 라이브러리가 들어갔는지 빠르게 추적하는 용도다.
Q. 공급망 공격은 왜 막기가 유독 힘든가요?
공격 대상이 하나가 아니라, 그 부품을 쓰는 모든 회사이기 때문이다. 제조사 하나가 아무리 보안을 잘 갖춰도, 협력사 코드까지 매번 검증하기는 현실적으로 쉽지 않다.
Q. 개인이 ATM을 쓸 때 실제로 위험한가요?
이번에 나온 결함들은 물리적 접근이나 네트워크 조작이 함께 필요한 경우가 많다. 평범한 이용자가 당장 피해를 볼 확률은 낮다. 다만 은행 입장에서는 대량 인출이나 카드 정보 유출로 이어질 여지가 있어, 가볍게 볼 사안은 아니다.
출처: Wired



