다른 웹사이트를 공격하기 위해 정상적인 웹사이트를 악용하는 새로운 Magecart 스타일 캠페인
편집 및 추가 설명: 랜스 로즈(Lance Rhodes), 에밀리 라이온스(Emily Lyons)
핵심 요약
Akamai 연구원들은 디지털 커머스 웹사이트에서 PII(Personally Identifiable Information)와 신용카드 정보를 훔치기 위한 새로운 Magecart 스타일의 웹 스키머 캠페인이 진행 중인 것을 발견하고 이를 분석했습니다.
피해 사이트는 북미, 라틴 아메리카, 유럽에서 확인되었으며 규모도 다양합니다. 일부 피해 사이트는 한 달에 수십만 명의 방문자를 처리하는 것으로 추정되기 때문에, 쇼핑객 수만 명의 PII 및 신용카드가 도난되어 악용되거나 다크 웹에서 판매될 리스크에 노출될 가능성이 있습니다.
공격자는 캠페인 기간 동안 Base64를 난독화하고 Google Analytics나 Google Tag Manager 같이 널리 사용되는 써드파티 서비스와 비슷해 보이도록 공격을 마스킹하는 등 다양한 회피 기법을 사용합니다.
특히 공격자는 정상적인 웹사이트를 "탈취"해 임시 C2(Command and Control) 서버로 운영합니다. 이러한 "호스트 피해 사이트"는 자신도 모르는 사이에 악성 코드의 배포 센터 역할을 하며 정상적인 도메인 뒤에 효과적으로 공격을 숨깁니다.
이 공격은 Magento, WooCommerce, WordPress, Shopify로 구축된 웹사이트를 악용하여, 관련 취약점과 악용 가능한 디지털 커머스 플랫폼이 점점 늘어나고 있음을 보여줍니다.
- 이러한 종류의 웹 스키밍 공격은 점점 더 교묘해지고 있어 탐지하기 어려울 수 있으므로, 보안 실무자는 브라우저 내 활동에 대한 행동 및 이상 탐지 기능을 제공하는 툴 및 기술 의 사용을 고려하는 것이 좋습니다.
서론
최근 몇 주 동안 새로운 Magecart 스타일의 스키머 가 등장해 화제가 되고 있습니다. 이 최신 캠페인의 가장 큰 특징은 정상적인 웹사이트를 감염시켜, 실제 도메인 뒤에서 이뤄지는 다른 표적 웹사이트에 대한 공격을 은폐하는 것입니다.
Magecart 공격의 주된 목적은 디지털 커머스 웹사이트의 결제 페이지에서 PII 및 신용카드 세부 정보를 훔치는 것입니다. 전통적으로 이러한 종류의 공격은 주로 Magento 디지털 커머스 플랫폼에서 실행되었지만, 이번 캠페인 및 다른 유사한 캠페인에서는 Akamai 연구원들이 Magento, WooCommerce, WordPress, Shopify로 구축된 웹사이트의 악용을 확인함으로써 공격자들이 악용할 수 있는 플랫폼과 취약점의 종류가 점점 다양해지고 있음을 알 수 있었습니다.
일반적으로 이러한 공격은 WAF(Web Application Firewall)와 같이 널리 사용되는 웹 보안 기법으로는 탐지할 수 없으며 클라이언트 측에서 실행됩니다. 이로 인해 Magecart 공격은 오랜 시간 눈에 띄지 않을 수 있습니다.
지난 몇 주 동안 Akamai는 정교한 인프라와 기능을 활용해 Magecart 스타일의 웹 스키밍 공격을 실행하는 적극적이고 지속적인 캠페인을 확인했으며, 이 캠페인으로부터 피해를 입은 수많은 디지털 커머스 웹사이트를 발견했습니다. 실제로는 이러한 광범위한 캠페인의 일환으로 악용된 정상적인 웹사이트가 더 많을 것이라고 볼 수 있습니다.
대규모 장기 공격
이 캠페인은 예상대로 커머스 기업을 주로 노립니다. 그러나 공격의 규모는 상당히 주목할 만합니다. 피해 기업 중에는 한 달에 수십만 명이 방문하는 곳도 있습니다. 이 경우 도난당한 신용카드 데이터와 PII로 인해 수천, 수만 명의 피해자가 발생할 수 있습니다.
수많은 피해 사이트를 대상으로 한 달 가까이 눈에 띄지 않게 공격이 진행되어 피해 가능성이 더 높아졌습니다. Akamai 연구원들은 추가적으로 이 캠페인이 미국, 영국, 브라질, 스페인, 호주, 에스토니아, 페루의 여러 기업에 미치는 효과를 관찰하고 있습니다.
웹 스키밍 공격은 디지털 커머스 기업에 매우 위험할 수 있습니다. 다른 여러 가지 영향 중에서도 PII 및 신용카드 데이터의 손실은 기업의 평판에 악영향을 줄 수 있습니다. 가장 주목받은 Magecart 공격 중 상당수는 몇 년까지는 아니어도 수개월 가까이 탐지되지 않았습니다. 2022년 Magecart 공격을 받은 9,290개의 디지털 커머스 도메인 중 2,468개는 해당연도가 끝나는 시점까지 감염 상태가 유지되어 커머스 기업에 막강한 위협이 되고 있습니다.
해킹 전 해킹 - 공격 인프라 준비
이 캠페인에서 가장 주목할 만한 부분 중 하나는 공격자들이 웹 스키밍 캠페인을 실행하기 위해 인프라를 준비한 방식입니다. 공격자는 캠페인이 본격적으로 시작되기 전, 웹 스키밍 공격에 사용되는 악성 코드의 '호스트' 역할을 할 취약한 웹사이트를 찾습니다.
공격자는 악성 도메인으로 표시될 수 있는 악성 코드를 호스팅하기 위해 자신의 C2 서버를 사용하는 대신, 취약점이나 기타 수단을 활용해 중소규모 리테일 웹사이트와 같이 보안이 취약한 정상적인 사이트를 해킹하고 그 안에 코드를 숨깁니다. 이러한 방법으로 정상적으로 보이는 악성 코드의 호스트를 만들어, 선택한 피해 웹사이트에 멀웨어를 전달할 수 있습니다.
본질적으로 이 캠페인은 두 가지 피해 사이트를 만들어냅니다.
- 호스트 피해 사이트: 공격에 사용되는 악성 코드를 호스팅하기 위해 탈취된 정상적인 웹사이트입니다. 공격자는 이러한 사이트를 통해 공격 시 코드를 전달합니다. 이러한 사이트는 보통 정상적인 비즈니스로 운영되기 때문에 피해 사이트로 연결 시 의심을 받을 가능성이 적습니다. 이후 공격 인프라의 일부가 되어, 기본적으로 공격자가 제어하는 서버처럼 작동합니다. 평판 좋은 도메인 뒤에 악성 활동을 숨기려는 의도입니다.
- 웹 스키밍 피해 사이트: Magecart 스타일 웹 스키밍 공격의 표적이 되는 취약한 커머스 웹사이트입니다. 공격자는 웹사이트 리소스에 공격 코드를 직접 삽입하는 대신, 작은 JavaScript 코드 스니펫을 로더로 사용해 호스트 피해 사이트에서 전체 공격 코드를 가져옴으로써 공격에 사용된 대부분의 악성 코드를 보다 효과적으로 숨길 수 있습니다.
이러한 사이트가 어떻게 침해되는지는 명확하지 않지만, 유사한 이전 캠페인에 대한 최근 리서치에 따르면 공격자는 일반적으로 표적 웹사이트의 디지털 커머스 플랫폼(예: Magento, WooCommerce, WordPress, Shopify 등)이나 웹사이트에서 사용하는 취약한 써드파티 서비스에서 취약점을 찾습니다.
Akamai 연구원들은 몇몇 웹사이트가 호스트 피해 사이트가 되는 것을 관찰했습니다. 이러한 웹사이트는 모두 커머스 웹사이트인 것으로 나타났습니다. 악용된 호스트 웹사이트가 또다시 악용된 것으로 보이는 경우도 있습니다. 이러한 웹사이트는 첫째, 앞서 언급했듯이 악성 코드의 호스트로 사용됩니다. 둘째, Magecart 스타일의 웹 스키밍 공격에 노출되어 사용자 정보가 도난될 수 있습니다. 웹사이트가 삽입된 코드에 감염되어 데이터 도난을 당할 뿐만 아니라, 자신도 모르게 스키머의 악성 활동을 다른 취약한 웹사이트로 확산시키는 수단으로 사용되기도 했습니다.
확립된 평판과 본질적인 신뢰 활용
조사 과정에서 공격자가 만든 것으로 추정되는 가짜 사이트도 발견했습니다. 이들은 소규모 리테일 스토어를 모방한 피싱 웹사이트로 운영되며 정상적인 오리지널 사이트와 매우 유사한 도메인을 사용하는 것으로 보입니다.
정상적인 웹사이트의 악용된 도메인을 사용하는 관행은 공격자가 악성 활동을 숨기는 데 있어 몇 가지 장점이 있습니다. 스키머는 평판이 좋고 긍정적인 관계가 형성되어 있는 도메인 뒤에 숨어 연막을 치는 방식으로, 공격을 식별하고 대응하는 것을 점점 더 어렵게 만듭니다.
정상적인 웹사이트 도메인을 사용할 때 얻을 수 있는 주요 장점 중 하나는 이러한 도메인이 오랜 시간 동안 쌓아온 본질적인 신뢰입니다. 보안 서비스 및 도메인 점수 시스템은 일반적으로 긍정적인 실적과 정상적인 사용 이력이 있는 도메인에 더 높은 신뢰 수준을 부여합니다. 따라서 이러한 도메인에서 수행되는 악성 활동은 자동화된 보안 시스템에서 탐지되지 않거나 정상으로 처리될 가능성이 높습니다.
다른 표적 웹사이트에 대한 공격에 악용된 정상적인 웹사이트의 도메인은 해당 기업의 확인과 협조가 필요한 관계로 공개가 어렵습니다.
눈에 잘 띄는 곳에 숨어 피해 사이트에 악성 코드 로드
인프라가 준비되면 공격자는 웹 스키머 코드를 삽입하기 위해 취약한 디지털 커머스 플랫폼이나 취약한 써드파티 서비스를 보유한 표적을 찾습니다. 공격자는 악용된 웹사이트의 페이지에 인라인(외부 파일에서 로드되지 않고 HTML 내부에 삽입된 스크립트) JavaScript 코드 스니펫을 삽입하는 교묘한 기법을 사용합니다. 이 스니펫은 로더 역할을 하며 이전 단계에서 준비된 호스트 웹사이트에서 전체 악성 코드를 가져옵니다.
삽입되는 스니펫의 구조는 의도적으로 Google Tag Manager 또는 Facebook Pixel과 같은 인기 있는 써드파티 서비스와 유사하게 설계됩니다. 이 접근 방식은 악성 코드가 실제 의도를 위장해 자연스럽게 스며들도록 도와주기 때문에 최근 몇 년간 웹 스키밍 캠페인에서 인기를 얻고 있습니다.
또한 스키머는 전체 공격 코드를 호스팅하는 악용된 웹사이트의 URL을 난독화하기 위해 Base64 인코딩을 사용합니다(그림 1). 이 기법은 코드의 오리진과 목적을 효과적으로 감출 수 있어 스키머들 사이에서 널리 선호되고 있습니다.
이 과정에서 공격자는 탐지를 피하기 위해 세 가지 방법을 사용합니다.
공격에 사용된 도메인을 난독화합니다.
로더를 정상적인 써드파티 스크립트 또는 벤더사로 영리하게 마스킹합니다.
대부분의 코드를 다른 소스에서 가져와 페이지에 삽입해야 하는 악성 코드의 양을 줄임으로써 코드가 발견될 가능성을 크게 줄입니다.
로더가 삽입되면 웹 스키밍 피해 사이트에서 결제를 시도하는 모든 사용자의 개인 정보와 신용카드 정보가 탈취되어 공격자의 C2 서버로 전송됩니다.
코드 분석 - 난독화된 Magecart 공격
조사 과정에서 Akamai는 스키머 코드의 두 가지 뚜렷한 변형을 확인했습니다.
첫 번째 변형은 높은 수준으로 난독화되어 흐름과 논리 구조를 해독할 때 복잡성이 증가했습니다. 공격자는 디버깅과 리서치를 방해하기 위한 기법으로 난독화를 사용해 의도적으로 공격의 정확한 순서를 파악하기 어렵게 만듭니다.
악성 코드의 난독화는 다양한 웹 스키밍 공격에 널리 도입된 방법으로, 최근 몇 년간 수많은 캠페인에서 그 인기가 점점 높아지고 있습니다(그림 2).
Akamai는 난독화된 코드에 포함된 Base64 문자열을 디코딩한 후, CSS(Cascading Style Sheet) 선택기 목록을 발견했습니다. 이러한 선택기 이름은 스키머가 PII 및 신용카드 세부 정보를 캡처하는 입력 필드를 표적으로 삼았음을 명시적으로 보여줍니다.
디코딩된 코드 내에 이러한 CSS 선택기가 존재한다는 것은 스키머의 악의적인 의도를 입증하는 확실한 증거입니다. 민감한 사용자 데이터를 수집하는 데 사용되는 입력 필드를 구체적으로 노림으로써 불법적인 목적으로 PII 및 신용카드 세부 정보를 가로채 유출하려는 스키머의 목적을 분명히 드러냅니다. 정보 수집 수준도 유추할 수 있습니다. 이러한 입력 필드가 일치하려면 공격자가 각 피해 사이트에 맞게 코드를 "맞춤화"해야 하기 때문입니다(그림 3).
이 캠페인에서 발견된 두 번째 변형 악성 코드는 난독화가 덜 되어 있어 비교적 이해하고 분석하기가 쉬웠습니다. 첫 번째 변형과 마찬가지로 코드의 의도가 노출될 수 있는 문자열은 Base64로 인코딩되어 있어 그 의미를 쉽게 해독할 수 있었습니다(그림 4).
두 번째 변형이 흥미로운 이유는 코드 내에 특정 지표가 존재하기 때문입니다. 이러한 지표는 캠페인과 관련된 추가 피해 사이트와 인스턴스를 식별하는 데 도움이 되는 귀중한 단서를 제공했습니다.
도난 데이터 유출
도난 데이터를 유출하는 프로세스는 스키머 코드 내 IMG 태그 생성으로 시작되는 간단한 HTTP 요청을 통해 실행됩니다. 이후 도난 데이터는 쿼리 매개변수로 요청에 추가되고 Base64 문자열로 인코딩됩니다(그림 5).
스키머는 전송된 데이터를 난독화하기 위해 Base64 문자열로 인코딩합니다. 이 인코딩 기술은 위장 레이어를 제공하므로, 보안 시스템과 네트워크 모니터링 툴이 민감한 정보가 유출되고 있음을 식별하기가 더 어려워집니다. Base64로 인코딩된 데이터가 공격자의 서버에 도달한 후에는 원래 형식으로 쉽게 디코딩되어 탈취된 PII와 신용카드 정보가 노출될 수 있습니다.
유출은 결제를 진행하는 사용자마다 한 번만 발생합니다. 사용자 정보가 도난당하면 스크립트가 브라우저에 플래그를 지정해 정보를 두 번 훔치지 않도록 합니다(의심스러운 네트워크 트래픽을 줄이기 위해). 이러한 방식으로 Magecart 스타일 공격의 회피율이 더욱 높아집니다.
보안 권장 사항 및 방어 조치
공격자는 웹 스키머를 심기 위해 취약점을 악용하거나 기존 써드파티 스크립트 중 하나를 악용해 서버에 대한 초기 접속 권한을 얻어야 합니다. 서버에 대한 이러한 초기 접속을 방지하기 위해 보안 담당자는 패치를 최신 상태로 유지하고 WAF를 구축해 보완하는 것이 좋습니다.
그러나 현재 웹 애플리케이션 환경의 복잡성, 배포, 민첩성, 분산 그리고 공격자가 웹 스키머를 설치하는 데 사용할 수 있는 다양한 방법 때문에 브라우저 내에서 실행되는 스크립트의 동작에 대한 가시성을 제공하고 클라이언트 측 공격을 방어할 수 있는 보다 전문화된 보안 솔루션이 필요합니다.
적절한 솔루션은 클라이언트에 대한 실제 공격이 발생하는 위치에 더 가깝게 이동해야 합니다. 민감한 입력 필드를 대상으로 시도된 읽기와 데이터 유출을 성공적으로 식별할 수 있어야 합니다(본 테스트에는 Akamai Page Integrity Manager가 사용되었습니다). 신속하고 효과적인 방어를 위해서는 이러한 이벤트를 적절히 수집하는 것이 좋습니다.
결론
이 캠페인은 웹 스키밍이 여전히 중요한 보안 위협으로 남아 있으며, 공격자들이 활동을 숨기고 탐지를 더욱 어렵게 만들기 위해 끊임없이 공격 기법을 발전시키고 있다는 사실을 상기시킵니다. PCI DSS v4.0에 명시된 새로운 스크립트 보안 요구 사항 에도 이러한 내용이 반영되어 있으므로, 이제 온라인에서 카드 결제를 처리하는 모든 기업은 이러한 종류의 공격을 탐지하고 대응할 수 있는 메커니즘을 갖추어야 합니다.
웹 스키밍에 효과적으로 대응하기 위한 주요 솔루션은 비정상적인 행동을 탐지하는 Akamai Page Integrity Manager와 같은 툴과 기술을 활용하는 것입니다. 웹 스키머는 지속적으로 방법을 수정하고 정적 분석을 회피할 수 있는 점점 더 정교한 기술을 사용하기 때문에, 기존의 정적 분석 툴은 웹 스키머에 대응하는 데 적절하지 않습니다.
고양이와 쥐의 싸움과도 같은 이러한 현상이 지속될 가능성이 높은 만큼, 유사한 캠페인이 계속해서 간헐적으로 발생할 것으로 예상됩니다. 웹 스키밍 영역에서는 보안팀 직원과 공격자 간의 전투가 계속되고 있기 때문에, 선제적인 자세로 혁신적인 보안 조치에 투자하는 것이 매우 중요합니다. 기업은 변화하는 공격 기법에 적응하는 고급 탐지 기술을 도입함으로써 온라인 플랫폼을 더 효과적으로 방어하고, 사용자 데이터를 보호하고, 고객의 신뢰를 유지할 수 있습니다. 웹 스키밍 위협에 대한 지속적인 리서치와 협업, 경계는 웹 스키밍 위협과의 지속적인 싸움에 필수적입니다.
Akamai Security Intelligence Group은 이러한 활동을 지속적으로 모니터링하고 고객과 커뮤니티 모두에게 귀중한 인사이트를 제공할 것입니다. 취약점 및 기타 최신 보안 리서치에 대한 실시간 정보를 더 자세히 알아보려면 Twitter에 보다 상세한 분석을 게시했습니다.
업데이트: 2023년 6월 07일 Akamai는 악용 가능성이 있는 Magento, WooCommerce, WordPress 및 Shopify 플랫폼에 대해 설명하기 위해 이 블로그 게시물을 업데이트했습니다.
IOC
유출 도메인:
byvlsa[.]com
chatwareopenalgroup[.]net