이커머스 등 웹을 통한 비대면 서비스 이용이 확산되는 가운데, 사용자가 접속하는 웹페이지 스크립트를 변조해 고객 개인정보와 결제정보를 가로채는 공격이 꾸준히 발생하고 있다.

웹페이지에 악성 스크립트 코드를 심어 결제정보를 가로채는 이 공격은 웹 스키밍(Skimming) 또는 폼재킹(Formjacking) 공격이라고 불린다. 폼재킹은 입력양식(Payment Form)에 담긴 정보를 가로채간다(Hijacking)는 의미를 담은 합성어다.

지난 2018년 하반기부터 온라인상에서 구매와 결제 서비스가 일어나는 크고 작은 유통·소매, 미디어, 서비스 업계를 중심으로 다양한 산업에서 공격 피해가 두드러지게 증가하고 있다.

38만건의 고객 신용카드 결제정보를 유출한 영국항공을 비롯해 9개월 넘게 침해 공격이 진행됐지만 알지 못했던 티켓마스터, 유명 백화점 체인인 메이시스(Macy’s) 등이 대표사례다. 대부분 사이버범죄집단인 ‘메이지카트(Magecart)’ 소행으로 지목되고 있다.

 사용자 개인정보·금융정보 탈취 위해 정교한 공격 수행

여러 공격그룹들로 이뤄진 것으로 보이는 메이지카트는 웹 기반 카드 스키머라 할 수 있는 악성 자바스크립트 코드를 타깃 결제 페이지에 심어놓는다. 사용자가 웹사이트에서 물품을 구매한 뒤 이름, 주소, 지불카드 등의 정보를 입력한 뒤 결제하기 버튼을 눌러 해당 정보를 제출할 때 악성코드를 이용해 해당 정보를 자신의 서버로 전송한다. 이 정보를 다크웹에 금융정보와 개인정보를 판매하거나 부정거래를 시도해 수익을 거둔다.

공격자들은 파트너사가 개발한 웹페이지나 플러그인, 소프트웨어의 취약점을 이용해 코드를 변경하고 스키밍 코드를 삽입해 수많은 사용자가 이용하는 최종 표적 웹사이트에 악성코드를 심는 방식을 주로 이용한다. 공격자들은 결제정보를 몰래 가져가기 위해 스키머 코드 사용뿐 아니라 점점 더 다양하고 정교한 수법이 사용되고 있는 것으로 보고되고 있다.

티켓마스터 침해사고의 경우, 메이지카트는 고객지원에 사용된 챗봇업체인 인벤타, 소시아플러스 등 파트너사 프로그램의 취약점을 이용해 악성 자바스크립트 코드를 삽입·실행시키는 방식으로 티켓마스터 웹사이트까지 영향을 미칠 수 있게 했다. 이를 통해 티켓마스터 고객의 카드 정보를 캡처해 자신들의 명령제어(C&C) 서버로 전송했다.

2019년 11월 이커머스 사이트 지불결제 페이지 자바스크립트 스키머 공격을 벌여 탐지된 핍카(PIPKA)는 인코딩으로 콘텐츠를 숨겼고, HTML 이미지 소스 태그 요청을 사용해 제어 서버를 숨겨 탐지를 회피했다. 공격자자가 제어하는 웹사이트로 유출한 뒤 스스로 코드까지 삭제했다.

수많은 서드파티 소스로 구성되는 웹사이트, 보안관리에 취약

요즘 웹사이트들은 이같은 공격에 취약할 수밖에 없는 구조다. 서로 다른 개발사가 만든 수많은 웹페이지와 스크립트로 구성돼 있기 때문이다. 대개 수십 개의 제3자(서드파티) 소스를 사용한다. 오픈소스와 상용소스, 라이브러리를 조합해 웹사이트를 만든다고 볼 수 있다. 이 가운데 다수는 사용자 브라우저에서 스크립트를 실행한다.

타사에서 제공·관리하는 스크립트에 대한 가시성과 통제력을 가질 수 없는 것이 현실이다. 여기서 보안 문제가 발생한다. 빠르고 편리하게 웹서비스를 만들 수 있지만 보안관리가 취약해질 수 있다.

웹사이트 운영사에 파트너사가 시큐어코딩 등 보안 개발은 물론, 취약점과 보안성을 면밀하게 테스트, 분석하고 검증해 빠르게 조치하도록 강제하는 것은 쉬운 일이 아니다. 더욱이 웹페이지 스크립트는 잦은 변경으로 매우 동적인 특성을 띠기 때문에 보안 결함이나 취약점을 노출하기 십상이다. 보안 개발을 하는데 시간도 오래 걸린다.

국내에서는 아직까지 이같은 공격으로 인한 큰 피해가 알려지지는 않았다. 하지만 지금까지 알려진 이같은 스크립트 공격 사례는 빙산의 일각으로, 실제 공격 건수는 훨씬 많을 것이라는 경고가 나오고 있다는 점에서 국내 웹사이트를 운영하는 기업들은 관심을 기울여야할 것으로 보인다.

국내에서는 처음으로 이같은 스크립트 공격을 탐지, 대응하는 보안 솔루션을 선보인 아카마이는 “악성 웹페이지 스크립트 공격은 메이지카트가 처음 대중화시킨 이후 다른 공격자도 널리 사용하면서 잦은 데이터 침해의 원인이 되는 것은 물론 그 규모가 더욱 커지고 있다”고 경고하며, 이같은 공격에 대한 가시성 확보와 웹페이지 무결성 보호 등 보안 대책이 필요하다고 강조하고 있다.

브라우저 내 스크립트 위협 탐지하는 보안 솔루션 등장

스크립트 공격은 사용자 브라우저단에서 실행해 정보를 탈취하기 때문에 탐지하기 어렵다. 네트워크 침입차단시스템, 침입방지시스템(IPS)은 물론 웹 서버를 보호하기 위한 웹애플리케이션 방화벽도 방어하는데 한계가 있다.

결국 공격을 막기 위해서는 웹사이트 소스코드와 스크립트를 지속적으로 모니터링하고 검사해 무결성을 유지할 수 있어야 한다는 게 아카마이 등 관련 보안업체들의 이야기다.

최신 웹브라우저에서 제공하는 CSP(Content Security Policy)와 SRI(Subresource Integrity) 보안 기능을 적용하면 무단으로 소스코드가 변경·삽입되거나 악성코드가 실행되는 위험을 완화하는데 도움이 된다. 나아가 전체 보호 대상 페이지에 스크립트를 심어 브라우저상에서 감시해 데이터 탈취·전송 시도와 같은 악성 활동을 인지하고 막을 수 있는 방안을 마련해야 한다.


아카마이가 최근 선보인 페이지 인티그리티 매니저(PIM)가 이같은 기능을 제공한다. 클라우드 기반 엣지 플랫폼을 활용해 원래의 소스를 전혀 손대거나 웹사이트·페이지 개발·운영사가 수정하지 않아도 스크립트 코드를 손쉽게 추가·적용할 수 있도록 제공하는 것이 특징이다.

아카마이 PIM은 신용카드 스키밍과 크리덴셜·개인정보를 훔치는 폼재킹 공격을 비롯해 다른 유해사이트로 리다이렉션 시키는 공격 등 웹브라우저단에서 발생하는 디양한 스크립트 위협을 탐지해 웹사이트를 보호한다.

취약한 자바스크립트 리소스에서 실시간 행위 기반 탐지 기술로 악의적이거나 의심스러운 활동을 탐지, 은밀하게 이뤄지는 공급망공격을 차단할 수 있도록 설계됐다. 아카마이 PIM은 실제 사용자 세션에서 스크립트 동작을 지속적으로 분석해 악의적인 행위를 식별한다. 머신러닝과 휴리스틱 분석, 서명, 위험지수화 모델을 이용해 자바스크립트 워크로드와 브라우저 안에서의 활동을 모니터링한다. 아카마이 보안 위협 인텔리전스를 활용해 위협 정보에 대한 정확성을 높여 대응 조치에 대한 판단을 내릴 수 있도록 돕는다. 아울러 공개 노출된 취약점(CVE) 데이터베이스도 지속적으로 분석해 실행되는 자바스크립트 코드에서 알려진 취약점을 파악해 관련 악성 행위를 차단한다.

악성 행위 모니터링을 위해 아카마이의 클라우드 엣지 인프라를 활용해 웹페이지나 인프라 변경 없이 경량 스크립트를 삽입한다. 이를 통해 몇 분 내에 구축해 바로 스크립트 행동 분석을 시작할 수 있는 것이 특징이다. 이 때 쿠키, 네트워크 목적지, 로컬 스토리지, 중요 데이터 입력 또는 오리진 도메인별 이벤트 접근을 모니터하거나 스크립트 행위를 제한하는 런타임 자바스크립트 실행 정책을 미리 설정할 수 있다. 또한 클린 스크립트에서 기대되는 행위를 기준으로 삼아 비교해 의심스런 행위도 탐지할 수 있다.

김도균 아카마이코리아 웹 사업부 본부장은 “아카마이 PIM을 사용하면 관리하기 어려운 서드파티 스크립트의 악성 활동까지 모니터링할 수 있다”면서 “아카마이 PIM은 콘텐츠전송네트워크(CDN) 서비스를 사용하지 않더라도 단독으로 적용할 수 있다. 물론 기존 CDN 서비스 고객이 PIM을 적용하거나 CDN과 PIM을 함께 사용한다면 스크립트 감시 코드를 모든 페이지에 적용할 필요 없이 바로 PIM의 기능을 활용할 수 있는 장점을 제공한다”고 강조했다.

글. 바이라인네트워크
<이유지 기자>yjlee@byline.network