2019.06.11

현존하는 가장 위험한 해커 집단··· '메이지카트' 해킹 수법 집중 분석

David Strom | CSO
메이지카트(Magecart)는 온라인 쇼핑 장바구니 시스템(일반적으로 마젠토(Magento) 시스템)을 해킹해 고객 결제(지불) 카드 정보를 훔치는 악성 해커 집단이다. 이런 사이버 위협을 공급망 공격(supply chain attack)이라고 하는데, VAR이나 시스템 업체의 서드파티 소프트웨어 구성 요소를 해킹하거나 IT팀 모르게 산업 프로세스를 감염시키곤 한다.
 
ⓒ Getty Images Bank

장바구니는 고객의 결제 및 지불 관련 정보를 포함하고 있어 해커에게 매력적인 표적이다. 악성코드로 이런 데이터 스트림을 제어할 수 있으면, 그 즉시 사용할 수 있는 카드를 갖게 되는 것이나 마찬가지다. 그런데 많은 전자상거래 사이트가 이런 서드파티 구성 요소와 함께 사용되는 코드를 제대로 검사하지 않는 장바구니를 사용한다.

메이지카트는 2016년에 등장한 후 활발히 활동하고 있다. 리스크아이큐(RiskIQ)는 2018년 메이지카트 침해 사례 분석 보고서를 통해 거의 한 시간에 1번꼴로 웹사이트가 이 코드로 침해를 당한다고 주장했다. 와이어드(Wired) 역시 ‘2018년 인터넷에서 가장 위험한 사람들’ 가운데 하나로 메이지카트를 지목했다.

메이지카트의 가장 최근 피해 사례는 마이필로우닷컴(MyPillow.com)과 아메리슬립닷컴(AmeriSleep.com)에 결제 카드 스키밍 스크립트를 심었던 것이다. 이밖에도 메이지카트 공격 사례는 티켓마스터(Ticketmaster, 영국 사업 부문, 2018년 1월), 브리티시 에어웨이(British Airways, 2018년 8월), 전자 제품 소매업체인 뉴에그(NewEgg, 2018년 9월), 쇼퍼 어프루브드(Shopper Approved, 2018년 9월), 스포츠 관련 수집품 웹사이트인 톱스(Topps, 2018년 11월), 애틀랜타 호크스(Atlanta Hawks, 팬 기념품 판매 온라인 상점, 2019년 4월), 수천 개에 달하는 대학 캠퍼스 구내 서점들(2019년 4월), 잡지 포브스(Forbes, 2019년 5월) 등이 있다.

메이지카트의 ‘작업 방식’
일반적으로 메이지카트가 해킹하는 방식은 자바스크립트 코드를 바꿔치기하는 것이다. 이를 위해 마젠토 소스를 수정하거나 주입 공격을 통해 악성코드가 호스팅된 웹사이트로 장바구니를 이동시킨다. 보안 전문가들은 약 40종의 코드 주입 익스플로잇을 발견했다. 이를 탐지하는 유일한 방법은 전자상거래의 전체 소스 스택을 줄별로 바뀐 부분이 있는지 확인하는 방법이다.

해커는 악성코드를 호스팅하기 위해 아주 영리한 방법도 사용한다(메이지카트 공격에만 국한된 방법은 아니다). 자신의 코드를 미사용 깃허브 프로젝트에 업로드하는 것이다. 이들 사이버 범죄자는 프로젝트 소유권을 탈취한 후 악성코드가 포함된 새로운 코드 버전을 배포한다. 수많은 웹사이트에 악성코드를 뿌려 활발히 사용되도록 하는 데 목적이 있다. 보안 툴이 깃허브의 코드를 스캔하지 않을 수도 있으므로, 해커는 그 안에 코드를 숨기고 이런 침해된 프로젝트를 이용해 무사히 빠져나갈 수 있다.

브리티스 에어웨이 해킹 사고의 경우 메이지카트는 특정 시스템에 맞춤화된 공격을 감행했다. 리스크아이큐에 따르면, 이는 브리티스 에어웨이의 결제 및 지불 페이지 설정 방식에 맞춘 공격이었다. 이는 해커가 이런 사이트를 표적으로 삼아 공격하는 방법을 매우 신중히 준비한다는 점을 시사한다. 일반적인 메이지카트 스키머를 주입하는 단순한 방식이 아닌 것이다.

메이지카트는 마이필로우 웹사이트 공격에서는 더 진화된 방식을 보여줬다. 당시 마이필로우는 첫 악성코드를 바로 발견해 제거했다. 그러나 메이지카트는 사이트 액세스 권한을 계속 보유하고 있었고 두 번째 공격에서 전술을 바꿨다. 리스크아이큐 보고서에 따르면, 해커는 아주 영리하게 행동했다. 두 번째 공격에서는 통상 라이브챗(LiveChat) 스크립트로 삽입되는 스크립트 태그와 일치하는 라이브챗용의 새로운 스크립트 태그를 추가해 마이필로우 웹사이트에 스키머를 주입했다. 여기서 끝이 아니다. 메이지카트 해커는 여기에서 한 걸음 더 나아갔다. 진짜 라이브챗 서비스가 반환한 표준 스크립트를 프록싱해 그 아래 스키머 코드를 첨부한 것이다”라고 설명했다.

메이지카트의 진화
리스크아이큐와 플래시포인트(Flashpoint)가 공동으로 조사해 지난해 발표한 보고서를 보면, 메이지카트 코드와 그 침해 방법을 자세히 알 수 있다. 이들은 활발하게 악성코드를 개발하고 있으며 6개 이상의 해킹 집단으로 구성됐다. 그룹마다 코드 서명과 방법이 달라 연구자들이 이를 분류할 수 있었다. 이러한 연구를 통해 이 악성코드 개발 집단이 역량을 계속 강화하고 있음이 밝혀졌다.

- 새로운 플러그인으로 마젠토(Magento)를 극복. 쇼퍼 어프루브드(Shopper Approved) 웹사이트 공격은 심각했다. 대부분의 메이지카트 공격에서 마젠토 장바구니에 대한 침해가 발견됐다. 이 경우 다양한 웹사이트를 평가해 ‘평판’을 표시하는 업체의 고객 스코어링 플러그인을 활용했다. 연구자에 따르면, 7,000개 이상의 전자상거래 사이트에 악성코드가 퍼져나갔다. 연구자의 경고를 받은 후 쇼퍼 어프루브드는 신속하게 악성코드를 제거했다.
- 광고 서비스 이용. 메이지카트는 장바구니만 공격하는 것 같지만, 새로운 방법 하나를 사용해 광고 배너를 감염시켰다. 사용자가 브라우저에서 광고를 보면, 코드가 사용자 컴퓨터로 다운로드되고 감염된 서버에 악성코드를 호스팅할 수 있다.
- 더 표적화되고, 정교한 공격. 메이지카트는 악성코드를 광범위하게 확산하고 잠재적인 피해자에게 시간을 투자해 코딩과 인프라를 파악하는 방법을 넘어서고 있다. 브리티스 에어웨이가 여기에 해당하는 사례다. 해커가 내부 애플리케이션의 논리 흐름을 이용했다. 연구원에 따르면, 브리티스 에어웨이의 수화물 클레임 정보 페이지와 연결된 감염된 스크립트의 코드 22줄을 추적할 수 있었고, XSS 공격으로 브리티시 에어웨이 서버에 침투했다.

메이지카트는 브리티시 에어웨이 자체 서버에 저장되어 있지 않은 데이터까지 빼낼 수 있었다. 그러나 브리티시 에어웨이가 이상한 점 하나 때문에 코드가 수정된 것을 찾아냈다. 즉, 해킹이 있기 이전 마지막으로 수화물 관련 스크립트를 수정한 것이 2012년 12월이었기 때문에 최근 수정된 것을 이상하게 여기고 발견할 수 있었다.
 
공급망 공격의 피해를 줄이거나 막는 방법
이런 해킹을 막는 가장 좋은 방법은 다음과 같다. 이는 네트워크 보안 강화에 도움이 될 것이다. 또 메이지카트와 다른 공급망 공격 방어에도 유용할 것이다.

- 모든 서드파티 전자상거래, 온라인 광고 업체를 파악하라. 그 후, 자체적으로 코드를 평가하거나 감사하도록 요구한다.
- 서브 리소스 무결성을 적용해 승인 없이 수정된 스크립트가 로딩되지 않도록 만든다. 이를 위해서는 데브옵스팀을 통일된 방법으로 교육하고, 철저히 코드를 검사해 이런 스크립트를 찾아낼 수 있는 시스템을 만드는 것이 중요하다.
- 공급자 서버에 호스팅하기보다 가능한 자신의 서버에 서드파티 스크립트를 많이 호스팅한다. 물론 말처럼 쉽지는 않다. 일반적으로 전자상거래 웹페이지에서 실행되는 서드파티 소스가 수십 개에 달하기 때문이다.
- 엔드포인트 보호 공급업체의 솔루션을 자세히 평가해 메이지카트와 다른 서드파티 침해 공격을 저지할 수 있는지 확인한다.
- 사이버 보험이 이런 종류의 해킹 사고에 대한 보험을 제공하는지 확인한다.
- 계약업체와 공급업체를 소속 풀타임 직원처럼 여기면서, 보안 정책을 검토해 수정한다. 이것이 공급 사슬 공격을 유발하는 이유 중 하나이기 때문이다. 해커는 평균 이하의 보안이 적용된 직원을 노린다는 점을 명심하자.
- 워드프레스를 사용하고 있다면 v5.2 버전으로 업데이트한다. 여러 플러그인 라이브러리에서 사용되는 공급망 공격을 검사해 방어하는 기능을 지원한다. ciokr@idg.co.kr



2019.06.11

현존하는 가장 위험한 해커 집단··· '메이지카트' 해킹 수법 집중 분석

David Strom | CSO
메이지카트(Magecart)는 온라인 쇼핑 장바구니 시스템(일반적으로 마젠토(Magento) 시스템)을 해킹해 고객 결제(지불) 카드 정보를 훔치는 악성 해커 집단이다. 이런 사이버 위협을 공급망 공격(supply chain attack)이라고 하는데, VAR이나 시스템 업체의 서드파티 소프트웨어 구성 요소를 해킹하거나 IT팀 모르게 산업 프로세스를 감염시키곤 한다.
 
ⓒ Getty Images Bank

장바구니는 고객의 결제 및 지불 관련 정보를 포함하고 있어 해커에게 매력적인 표적이다. 악성코드로 이런 데이터 스트림을 제어할 수 있으면, 그 즉시 사용할 수 있는 카드를 갖게 되는 것이나 마찬가지다. 그런데 많은 전자상거래 사이트가 이런 서드파티 구성 요소와 함께 사용되는 코드를 제대로 검사하지 않는 장바구니를 사용한다.

메이지카트는 2016년에 등장한 후 활발히 활동하고 있다. 리스크아이큐(RiskIQ)는 2018년 메이지카트 침해 사례 분석 보고서를 통해 거의 한 시간에 1번꼴로 웹사이트가 이 코드로 침해를 당한다고 주장했다. 와이어드(Wired) 역시 ‘2018년 인터넷에서 가장 위험한 사람들’ 가운데 하나로 메이지카트를 지목했다.

메이지카트의 가장 최근 피해 사례는 마이필로우닷컴(MyPillow.com)과 아메리슬립닷컴(AmeriSleep.com)에 결제 카드 스키밍 스크립트를 심었던 것이다. 이밖에도 메이지카트 공격 사례는 티켓마스터(Ticketmaster, 영국 사업 부문, 2018년 1월), 브리티시 에어웨이(British Airways, 2018년 8월), 전자 제품 소매업체인 뉴에그(NewEgg, 2018년 9월), 쇼퍼 어프루브드(Shopper Approved, 2018년 9월), 스포츠 관련 수집품 웹사이트인 톱스(Topps, 2018년 11월), 애틀랜타 호크스(Atlanta Hawks, 팬 기념품 판매 온라인 상점, 2019년 4월), 수천 개에 달하는 대학 캠퍼스 구내 서점들(2019년 4월), 잡지 포브스(Forbes, 2019년 5월) 등이 있다.

메이지카트의 ‘작업 방식’
일반적으로 메이지카트가 해킹하는 방식은 자바스크립트 코드를 바꿔치기하는 것이다. 이를 위해 마젠토 소스를 수정하거나 주입 공격을 통해 악성코드가 호스팅된 웹사이트로 장바구니를 이동시킨다. 보안 전문가들은 약 40종의 코드 주입 익스플로잇을 발견했다. 이를 탐지하는 유일한 방법은 전자상거래의 전체 소스 스택을 줄별로 바뀐 부분이 있는지 확인하는 방법이다.

해커는 악성코드를 호스팅하기 위해 아주 영리한 방법도 사용한다(메이지카트 공격에만 국한된 방법은 아니다). 자신의 코드를 미사용 깃허브 프로젝트에 업로드하는 것이다. 이들 사이버 범죄자는 프로젝트 소유권을 탈취한 후 악성코드가 포함된 새로운 코드 버전을 배포한다. 수많은 웹사이트에 악성코드를 뿌려 활발히 사용되도록 하는 데 목적이 있다. 보안 툴이 깃허브의 코드를 스캔하지 않을 수도 있으므로, 해커는 그 안에 코드를 숨기고 이런 침해된 프로젝트를 이용해 무사히 빠져나갈 수 있다.

브리티스 에어웨이 해킹 사고의 경우 메이지카트는 특정 시스템에 맞춤화된 공격을 감행했다. 리스크아이큐에 따르면, 이는 브리티스 에어웨이의 결제 및 지불 페이지 설정 방식에 맞춘 공격이었다. 이는 해커가 이런 사이트를 표적으로 삼아 공격하는 방법을 매우 신중히 준비한다는 점을 시사한다. 일반적인 메이지카트 스키머를 주입하는 단순한 방식이 아닌 것이다.

메이지카트는 마이필로우 웹사이트 공격에서는 더 진화된 방식을 보여줬다. 당시 마이필로우는 첫 악성코드를 바로 발견해 제거했다. 그러나 메이지카트는 사이트 액세스 권한을 계속 보유하고 있었고 두 번째 공격에서 전술을 바꿨다. 리스크아이큐 보고서에 따르면, 해커는 아주 영리하게 행동했다. 두 번째 공격에서는 통상 라이브챗(LiveChat) 스크립트로 삽입되는 스크립트 태그와 일치하는 라이브챗용의 새로운 스크립트 태그를 추가해 마이필로우 웹사이트에 스키머를 주입했다. 여기서 끝이 아니다. 메이지카트 해커는 여기에서 한 걸음 더 나아갔다. 진짜 라이브챗 서비스가 반환한 표준 스크립트를 프록싱해 그 아래 스키머 코드를 첨부한 것이다”라고 설명했다.

메이지카트의 진화
리스크아이큐와 플래시포인트(Flashpoint)가 공동으로 조사해 지난해 발표한 보고서를 보면, 메이지카트 코드와 그 침해 방법을 자세히 알 수 있다. 이들은 활발하게 악성코드를 개발하고 있으며 6개 이상의 해킹 집단으로 구성됐다. 그룹마다 코드 서명과 방법이 달라 연구자들이 이를 분류할 수 있었다. 이러한 연구를 통해 이 악성코드 개발 집단이 역량을 계속 강화하고 있음이 밝혀졌다.

- 새로운 플러그인으로 마젠토(Magento)를 극복. 쇼퍼 어프루브드(Shopper Approved) 웹사이트 공격은 심각했다. 대부분의 메이지카트 공격에서 마젠토 장바구니에 대한 침해가 발견됐다. 이 경우 다양한 웹사이트를 평가해 ‘평판’을 표시하는 업체의 고객 스코어링 플러그인을 활용했다. 연구자에 따르면, 7,000개 이상의 전자상거래 사이트에 악성코드가 퍼져나갔다. 연구자의 경고를 받은 후 쇼퍼 어프루브드는 신속하게 악성코드를 제거했다.
- 광고 서비스 이용. 메이지카트는 장바구니만 공격하는 것 같지만, 새로운 방법 하나를 사용해 광고 배너를 감염시켰다. 사용자가 브라우저에서 광고를 보면, 코드가 사용자 컴퓨터로 다운로드되고 감염된 서버에 악성코드를 호스팅할 수 있다.
- 더 표적화되고, 정교한 공격. 메이지카트는 악성코드를 광범위하게 확산하고 잠재적인 피해자에게 시간을 투자해 코딩과 인프라를 파악하는 방법을 넘어서고 있다. 브리티스 에어웨이가 여기에 해당하는 사례다. 해커가 내부 애플리케이션의 논리 흐름을 이용했다. 연구원에 따르면, 브리티스 에어웨이의 수화물 클레임 정보 페이지와 연결된 감염된 스크립트의 코드 22줄을 추적할 수 있었고, XSS 공격으로 브리티시 에어웨이 서버에 침투했다.

메이지카트는 브리티시 에어웨이 자체 서버에 저장되어 있지 않은 데이터까지 빼낼 수 있었다. 그러나 브리티시 에어웨이가 이상한 점 하나 때문에 코드가 수정된 것을 찾아냈다. 즉, 해킹이 있기 이전 마지막으로 수화물 관련 스크립트를 수정한 것이 2012년 12월이었기 때문에 최근 수정된 것을 이상하게 여기고 발견할 수 있었다.
 
공급망 공격의 피해를 줄이거나 막는 방법
이런 해킹을 막는 가장 좋은 방법은 다음과 같다. 이는 네트워크 보안 강화에 도움이 될 것이다. 또 메이지카트와 다른 공급망 공격 방어에도 유용할 것이다.

- 모든 서드파티 전자상거래, 온라인 광고 업체를 파악하라. 그 후, 자체적으로 코드를 평가하거나 감사하도록 요구한다.
- 서브 리소스 무결성을 적용해 승인 없이 수정된 스크립트가 로딩되지 않도록 만든다. 이를 위해서는 데브옵스팀을 통일된 방법으로 교육하고, 철저히 코드를 검사해 이런 스크립트를 찾아낼 수 있는 시스템을 만드는 것이 중요하다.
- 공급자 서버에 호스팅하기보다 가능한 자신의 서버에 서드파티 스크립트를 많이 호스팅한다. 물론 말처럼 쉽지는 않다. 일반적으로 전자상거래 웹페이지에서 실행되는 서드파티 소스가 수십 개에 달하기 때문이다.
- 엔드포인트 보호 공급업체의 솔루션을 자세히 평가해 메이지카트와 다른 서드파티 침해 공격을 저지할 수 있는지 확인한다.
- 사이버 보험이 이런 종류의 해킹 사고에 대한 보험을 제공하는지 확인한다.
- 계약업체와 공급업체를 소속 풀타임 직원처럼 여기면서, 보안 정책을 검토해 수정한다. 이것이 공급 사슬 공격을 유발하는 이유 중 하나이기 때문이다. 해커는 평균 이하의 보안이 적용된 직원을 노린다는 점을 명심하자.
- 워드프레스를 사용하고 있다면 v5.2 버전으로 업데이트한다. 여러 플러그인 라이브러리에서 사용되는 공급망 공격을 검사해 방어하는 기능을 지원한다. ciokr@idg.co.kr

X