메이지카트가 다시 한 번 창의력을 발휘했다. 그러면서 자신들의 악성 요소를 최대한 눈에 띄지 않게 숨겨두는 데 성공했다. 단순히 새로운 시도를 한 것을 떠나 최근 사이트 관리자들의 심리를 역이용한 것이 이채롭다.

[보안뉴스 문정후 기자] 메이지카트(Magecart)라는 악명 높은 사이버 범죄 집단 연합체가 새로운 공격 전술을 들고 나타났다. 카드 정보를 가로채는 멀웨어를 사용하는 것 자체는 기존과 동일한데, 그 코드를 다소 엉뚱한 곳에 숨기기 시작한 것이다. 이 때문에 꽤나 오랜 기간 온라인 구매 사이트 관리자들이 이들의 악성 코드를 발견하지 못하고 있다. 꽤나 유명한 브랜드들도 마찬가지인 것으로 나타났다.

[보안뉴스 / 10.12.] 404 오류 페이지 이용한 메이지카트의 새 캠페인, 발상의 전환 눈에 띄어

[이미지 = gettyimagesbank]

메이지카트가 새롭게 찾아낸 비밀 장소는 404 오류가 발생했을 때 나타나는 디폴트 페이지다. 보안 업체 아카마이(Akamai)가 발견해 세상에 알렸다. 사이트의 다른 페이지들에도 약간의 변경이 있긴 하지만, 눈에 띌 정도는 아니다. 이 변경들은 주로 404 오류를 발동시키기 위한 것이고, 진짜 악성 코드는 404 오류가 실제로 발동됐을 때 표시되는 페이지에 숨겨져 있다. 아카마이의 보안 전문가 로만 르보브스키(Roman Lvovsky)는 “매우 혁신적인 전략”이라고 평하며 “이전 메이지카트 캠페인에서는 전혀 찾아볼 수 없었던 것”이라고 말한다.

404 오류 페이지
원래 메이지카트는 결제가 진행되는 페이지에 자신들의 멀웨어를 숨겼었다. 현대 웹사이트들이 워낙 복잡하게 구성되어 있었기 때문에 이렇게만 해도 메이지카트의 공격을 발견하는 게 쉽지는 않았다. 다만 메이지카트 자체가 유명해지면서 온라인 상거래 사이트들이 조심하기 시작했고, 그러면서 메이지카트도 전략의 변경이 점점 더 필요해지는 시점이었다. 그러면서 메이지카트의 멀웨어에도 각종 난독화 기술이 탑재되었다. 결제 페이지 그 자체가 아니라, 그 페이지에 영향을 주는 CSS 파일에 멀웨어를 숨기는 기법도 등장했었다.

404 오류 페이지에 악성 코드를 숨기는 것은 CSS 파일과 이미지에 악성 코드를 숨기는 것과 큰 맥락에서는 비슷하다고 보안 업체 휴먼시큐리티(Human Security)의 보안 전문가 벤 바리오(Ben Baryo)는 설명한다. “현대의 보안 솔루션들이나 보안 전문가들이나, 404 오류 페이지까지 샅샅이 검사하지는 않거든요. 그 지점을 공격자들이 영리하게 간파한 것이죠. 실제로 이 전략 덕분에 메이지카트의 공격 지속 기간이 꽤나 길어지기도 했고요.”

공격은 어떤 식으로 이뤄지는가?
이번 공격에 대해 아카마이는 다음과 같이 설명한다. “이들은 먼저 페이지들을 조작해 피해자가 입력하는 카드 정보를 자신들이 중간에서 가로챌 수 있도록 합니다. 가짜 양식을 삽입하거나 정상 페이지 위에 겹치는 것이죠. 피해자가 이런 페이지에 접속해 카드 정보 입력을 완료하고 전송이나 결제 버튼을 누르면 오류가 납니다. 동시에 가짜 양식은 사용자가 입력한 정보와 함께 지워지고 공격자의 서버로 전송됩니다. 그리고 진짜 결제 페이지와 양식이 나타납니다. 사용자는 귀찮지만 다시 정보를 입력하고 결제합니다. 구매한 물건이나 서비스는 이상 없이 도착하고요. 구매자는 자신이 메이지카트에 넘겼다는 사실을 전혀 알지 못합니다.”

여기까지는 기존 메이지카트 공격 전략과 거의 다르지 않다. 하지만 이런 공격 외에 또 다른 버전의 공격 시나리오가 존재했다. 페이지를 일부 조작하여 존재하지 않는 URL로 연결되도록 만듦으로써(즉 사용자가 세상에 없는 페이지로 이동하길 원한다는 명령을 입력하도록 함으로써) 404 오류 페이지가 나타나도록 강제하는 것이다. 그러면 이 페이지에 미리 숨겨둔 멀웨어가 발동되면서 페이지 방문자의 여러 가지 정보를 빼돌린다.

404 오류 페이지는 ‘퍼스트파티 객체’로 취급 받는다. 즉 홈페이지와 똑같은 서버에 저장된다는 뜻이다. 참고로 요즘 웹사이트들은 각종 서드파티 요소들을 차용하고 있기 때문에 홈페이지를 구성하는 데 필요한 모든 것들이 한 서버에 저장되지 않고 여러 서드파티 서버들에도 저장된다. 이런 서드파티들에 코드를 숨기면 나중에 발동시키는 일이 복잡해지는데, 404 오류 페이지는 그렇지 않다. 또한 콘텐츠 보안 정책(Content Security Policy, CSP) 헤더와 같은 기본 보안 장치들을 간단히 피해갈 수도 있게 된다.

이런 시나리오를 공격에 곁들임으로써 메이지카트는 한층 더 은밀해졌고, 발견하기가 힘들어졌다. “그렇다고 ‘스텔스’에 특화된 멀웨어나 사이버 공격이 된 건 아닙니다. 있지도 않은 페이지로 연결해달라는 요청이 코드에 섞여 있을 때, 이를 노이즈로 해석하는 보안 및 스캐닝 솔루션들이 있고, 그러면 사용자나 사이트 관리자가 이상한 점을 쉽게 발견할 수 있습니다. 물론 메이지카트는 이런 상황을 최대한 피하고 싶겠지요. 실제로 공격자들이 일부러 오류 페이지가 뜨도록 공격을 구성하는 건 매우 드문 일입니다. 오류 페이지가 갑작스럽게 뜨는 것 자체로 눈에 너무 띄면서 피해자의 불필요한 의심을 불러일으키거든요. 메이지카트는 완전히 역발상을 한 것이죠.”

바리오는 “퍼스트파티 객체에 악성 요소를 숨긴 것도 대단히 과감한 행동”이라고 말한다. “현대의 웹사이트들은 수많은 서드파티들을 짜깁기 한 결과물이라고 해도 과언이 아닙니다. 그 구조가 너무나 복잡해서 미로라는 표현이 부족할 정도입니다. 그렇기에 일반적인 공격자들이 뭔가 나쁜 것을 숨겨놓는다고 하면 서드파티의 서드파티의 서드파티를 선택합니다. 복잡한 사이트 구조를 최대한 악용하겠다는 거죠. 사이트 관리자가 그렇게까지 거슬러 올라가 점검을 하기는 쉽지 않으니까요. 그런데 메이지카트는 떡하니 퍼스트파티 객체에 자신들의 무기를 숨겨뒀어요. 보안 점검을 할 때 제일 먼저 서드파티 구성 요소들이 머리 아프게 떠오른다는 보안 담당자들의 생리를 역이용한 것이죠. 여러 모로 대단한 공격입니다.”

글 : 로버트 레모스(Robert Lemos), IT 칼럼니스트
[국제부 문정후 기자(globoan@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>