웹 스키밍, 당신의 신용 카드를 노린다.

chaning01
StealthSolution
Published in
8 min readJun 2, 2022

안녕하세요, Chaning입니다.

오늘의 주제는 웹 스키밍입니다.

다소 생소한 이름인데요. 온라인 쇼핑을 즐겨하신다면 오늘의 주제를 지나치시면 안됩니다!(노우노우)

저는 코로나가 시작되기 전부터 온라인 쇼핑을 즐겨했는데요. 국내에서 정식 발매가 되지 않은 상품들을 사고 싶거나, 매장이 너~무 먼 경우 온라인으로 주문했습니다. 코로나가 시작된 이후에는 기본적인 생필품까지 온라인으로 주문하곤 했네요.(그래서 살이 찐건가..)

이 부분은 개인적인 의견이 아니라 수치적으로 증명된 내용입니다. 실제로 2021년 4/4분기 온라인 쇼핑 거래액은 2020년 동분기 대비 17.8% 증가했습니다. 이러한 현상으로 온라인 쇼핑몰이 우후죽순 등장하고 있기 때문에 사용자 입장인 여러분들도 주의하셔야 합니다.

얼마 전, MS에서도 웹 스키밍 공격을 경고한 적이 있을 정도이죠!

그렇다면 웹 스키밍이 무엇인지, 이와 관련된 것은 어떤 것이 있는지 알아보시죠.

웹 스키밍 | Web Skimming

웹사이트를 뜻하는 web과 ATM이나 카드 단말기 등에 특정 장비로 카드 정보를 복사해가는 불법 행위인 skimming이 합쳐진 말입니다. 공격자가 웹 사이트에서 사용 중인 *써드 파티 앱을 통해 악성 스크립트나 악성코드를 주입하여 웹 사이트의 결제 또는 체크아웃 페이지를 침해하는 해킹 기법입니다. 신용 카드 정보와 개인 정보가 수집됩니다. 최근에는 온라인 쇼핑몰 사이트 이외에도 은행, 병원 등 결제 정보가 등록되는 사이트라면 모두 표적이 됩니다.

*써드 파티 앱: 단말기 제조사나 통신사에서 만든 앱이 아닌 일반 앱스토어에서 다운로드 받을 수 있는 앱

쉽게 말씀드리면 결제 서비스를 제공하는 사이트에서 사용하는 써드 파티 서비스의 결제 화면이나 카드 등록 화면의 코드를 해커가 만든 코드로 바꿔치기하여 여러분의 카드 정보나 개인 정보를 훔쳐가는 것이죠! 여러분은 그저 사이트를 믿고 결제했을 뿐인데, 정보가 유출될 수도 있습니다.

대부분의 온라인 쇼핑몰은 많은 기능을 직접 구현하기보다 오픈 소스나 API를 사용해서 외부 시스템과 연결하기 때문에 해당 부분의 보안 스캔을 하기도 어렵습니다.

해커들이 다양한 침투 경로를 사용하겠지만 크게 두 가지의 침투 경로를 알아보시죠.

침입로

  • 직접 공격: 이 방법은 목표 웹사이트에 스키밍을 위한 코드를 직접 심는 것입니다. 해커는 제로데이 취약점을 악용하는 등의 방법으로 웹 서버의 취약점을 공격하고 코드나 스크립트 파일을 바꿔치기합니다. 물론 쉬운 방법은 아니지만 불가능한 것도 아니니 주의가 필요합니다. 세상에는 불가능하다고 생각했던 일들이 실현되는 경우가 많으니까요.
  • 써드 파티 서비스 공격: 많이 사용하는 써드 파티 서비스 사이트에 스키밍 코드를 주입한 후 이 서비스를 사용하는 모든 웹사이트로 공격합니다. 대부분의 웹사이트는 약 60개 이상의 써드 파티 서비스를 사용하고 있습니다. 모든 기능을 직접 구현하기에 시간 및 비용이 많이 들다보니 써드 파티 서비스를 사용해서 기능을 빠르게 갖다 쓸 수 있어서 사용합니다. 하지만 이 말은 써드 파티 서비스가 해킹을 당했을 경우, 이 서비스를 사용하는 웹사이트 또한 위험에 처할 수 있다는 것입니다.

일반적으로 사용하는 보안 솔루션은 써드 파티 서비스에서 스키머 코드를 구분하기에는 어려움이 많습니다. 또한 난독화 방식의 진화로 보안 관제팀이 할 일이 더욱 많아지고 있죠. 가장 악질적인 부분은 구매하는 당사자인 저와 여러분들이 알아채지 못하고 결제를 물 흐르듯이 진행하면 눈뜨고 코베인다는 것입니다.

실제 어떻게 동작하는지 알아보시죠.

동작 방식

써드 파티 HTML/JavaScript 코드는 웹사이트 소유자가 제어할 수 없고 직접 모니터링할 수 없는 외부의 저장소에서 웹사이트로 전달되기 때문에 해커들이 좋아합니다. 이렇게 하면 해커가 모든 써드 파티 라이브러리에 무단으로 접근할 수 있습니다. 이후 스키밍 코드를 기존 JavaScript 파일 중 하나에 주입하고 숨기는 것이 전부입니다.

그 다음 웹사이트의 사용자인 여러분이 웹브라우저 또는 모바일 장치에서 웹사이트를 열면 악성 코드가 합법적인 써드 파티 코드와 섞여 다운로드됩니다. 써드 파티 서버에서 악성 코드가 다운로드되기 때문에 웹사이트의 보안 담당자는 악성 코드의 행적을 보여주는 로그나 표시가 없거나 이미 의심스러운 일이 일어나고 있을 수도 있습니다.

위에서 말씀드린 순서를 간단하게 나열해드리겠습니다.

  1. 여러분이 온라인 쇼핑몰에 접속합니다. 이 때, 써드 파티를 참조하는 HTML이 전달됩니다.
  2. 돈독이 오른 해커가 수단과 방법을 가리지 않고 해당 써드 파티 서버에 침투합니다.
  3. 써드 파티에서 악성 태그를 읽어오고 여러분의 브라우저로 전송됩니다.
  4. 해커는 입력한 카드 정보나 개인 정보를 해커의 서버로 복사하고 빼돌립니다.

말로만 보면 좀 서운하니까 그림도 만들어왔어요.(칭찬 좀 ^^)

이러면 여러분이 당한 것이죠. 이 과정에서 눈치챌만한 요소가 있을까요?… 저는 못찾겠습니다….

이렇게 불법적으로 수집한 정보는 다크웹에 업로드되어 판매합니다.

이 방식을 아주 활발하게 사용하는 해킹 그룹이 있는데요.

걔네도 알아보겠습니다.

메이지카트 | Magecart

온라인 쇼핑몰 결제 화면의 취약점을 이용하여 사용자가 입력하는 정보를 유출하거나 복제합니다. 코로나로 인해 늘어난 온라인 쇼핑몰을 공격하여 약 5만개 이상의 웹사이트가 공격을 당했다고 합니다. 주 공격 방법으로 웹 스키밍과 *폼재킹을 사용합니다.

💡TMI: Magecart라는 이름은 Magento라는 오픈 소스 이커머스 플랫폼을 첫 목표로 삼으면서 ‘쇼핑 카트’와 Magento를 합쳐서 Magecart라는 이름이 탄생했습니다.

*폼재킹: 웹사이트의 입력란 정보를 탈취하는 기법으로 대부분의 온라인 쇼핑몰 결제 화면의 형태가 비슷한 방식이기 때문에 사이트의 해당 위치에 입력되는 정보를 탈취해갑니다. 폼재킹의 경우, 이전에 포스팅 했던 내용이 있으니 읽어보시길 추천합니다.(제가씀 ㅋ)

얘네들이 저지를 굵직한 사건 몇 개만 보시죠!(메이지 카트를 줄여서 메카라고 부르겠습니다.)

  1. British Airway: 메카의 해커들은 British Airways의 웹사이트에서 JavaScript 결제 양식을 복사한 다음 해당 양식을 수정하여 자신들이 제어하는 서버로 결제 정보를 전송하도록 했습니다. 공격 행위가 탐지되는 것을 피하기 위해 최종 사용자 브라우저에서 양식이 정상적으로 작동하도록 만들었습니다. 이 공격으로 38만 명의 결제 정보가 유출됐습니다.
  2. Ticketmaster UK Breach: 메카 해커들이 써드 파티 서비스를 제공하는 Inventa의 서버에 침투하여 스키밍 코드를 주입했습니다. Inventa의 기존 보안 도구는 공격을 감지하지도 못했습니다. Inventa 이외에도 다른 써드 파티 서비스 업체들을 공격하여 전 세계 800개 이상의 온라인 쇼핑 사이트가 공격받았습니다.

이외에도 더 많은 사례가 있지만 방법은 제가 앞서 말씀드린 대로 써드 파티 서비스 업체를 해킹하여 서비스를 사용하는 온라인 쇼핑몰 사이트의 고객을 노렸네요.(맞쥬?)

그렇다면 써드 파티에 대한 웹 스키밍을 막을 방법은 없는걸까요?

써드 파티 보안의 현실

현재 IPS, CSP, WAF 등의 기존 보안 기술은 웹 스키밍을 탐지하지 못하고 있습니다. 또한 써드 파티 서비스 업체가 중요한 기능을 구현하기 위해 또 다른 써드 파티 서비스를 사용한다는 것입니다. 그러니까 써드 파티 서비스 업체라고 모든 것을 직접 구현하지는 않다보니 필요한 기능을 제공하는 써드 파티 서비스를 가져다 쓴다는 것이죠.(하청에 하청에 하청에….) 이렇게 되면 공격을 받을 수 있는 취약점이 더 많이 발생하게 됩니다.

필요한 기능을 바로 사용할 수 있다는 점에서 써드 파티 서비스는 웹사이트 운영자들에게 꼭 필요합니다. 하지만 외부에서 운영하는 서비스는 기존 침입 방식만을 대비한 보안 패러다임에 취약합니다. 대안으로 탐지 기능이 뛰어난 실시간 감시를 지원하는 써드 파티 모니터링 서비스를 이용하는 것을 제안하고 있습니다. 물론 웹 스키밍을 사용하는 해커들의 Javascript와 iFrame 코드 이용을 거부할 수 있는 훌륭한 방법이지만 오탐 문제에 대한 대비가 필요해 보입니다.

코로나의 영향으로 온라인 쇼핑이 크게 늘어나면서 이를 노리는 공격자들도 기승을 부리고 있습니다. 웹 스키밍을 방어할 수 있는 대안으로 앞서 말씀드린 모니터링 서비스도 있겠지만 공격 행위 자체를 무산시킬 수 있는 대안이 현재의 환경에 적합하다는 생각이 들었습니다.

웹 스키밍 또한 서버를 대상으로 이루어지는 공격이기 때문에 서버를 확실하게 보호할 수 있는 방법이 있으면 좋겠네요!

이러한 흐름에 맞춰 스텔스솔루션에서는 스텔스 MTD라는 능동적인 보안 전략을 가지고 있습니다. 시간날 때 읽지 마시고 지금 눌러서 읽어보세요.(강요)

꼭 읽어보세요!!!

진짜!!!(세 번 말함. 폭발할지도 모름.💣)

오늘 포스팅은 여기까지입니다.

읽어주셔서 감사합니다.

Chaning이었습니다.(안녕!)

--

--