구글 검색 결과를 조작하는 악성코드

SEO poisoning과는 달라

최근 영화 파일로 가장한 악성코드가 토렌트에서 발견됐다. 이것은 구글 검색 결과를 비롯해 웹 페이지를 변조하고, 광고를 삽입하고, 가상화폐를 탈취한다.

'검색 결과 조작'이라고 하면 흔히 SEO poisoning을 뜻한다. 이는 검색 엔진의 알고리즘을 노려, 부정한 트래픽을 발생시켜 순위를 끌어올리는 것이다. 즉, 검색 엔진을 속이는 것이다. 반면 이 악성코드는 검색 엔진에 대한 공격이 아니다. 감염된 PC의 브라우저를 공격하는 것이다.

영화 파일로 위장

악성코드는 최신 영화 The Girl in the Spider's Web처럼 보이는 아이콘을 갖고 있었다. 그러나 이것은 파워셸 스크립트로 연결된 LNK 파일이다. 실행 파일이 아닌 것처럼 위장하는 전형적인 수법이다.

이처럼 파일 형식을 위장하는 경우에 대비해, 다운로드한 파일은 이름만 보지 말고 속성을 살펴보는 것이 중요하다.

광고 삽입

이 악성코드는 실행되면 먼저 레지스트리를 변경해서 Windows defender를 끈다. 그리고 구글의 첫 화면 아래 부분에 광고를 띄운다. 원래 구글 첫 화면에는 광고가 없다.

웹 페이지 변조

Google의 검색 결과 페이지를 조작한다. 예를 들어, '스파이웨어'를 검색하면 첫 2개의 결과는 가짜 백신을 가장 뛰어난 보안 앱으로 소개하는 링크가 나타난다. 이런 식으로 특정 검색어를 입력하면 조작된 결과를 보여준다. 러시아의 검색 엔진인 Yandex에 대해서도 같은 짓을 한다.

Wikipedia에는 사이트 후원을 위해 가상화폐를 기부하라는 배너를 삽입한다. 물론 적혀있는 가상화폐 지갑은 해커의 것이다.

가상화폐 탈취

피해자가 여는 웹 페이지를 감시하고 있다가, 비트코인이나 이더리움 등 가상화폐를 송금하는 페이지가 열리면 수취인의 지갑 주소를 해커의 것으로 바꿔치기 한다. 가상화폐를 탈취하는 악성코드들이 많이 이용하는 수법이다.

가상화폐 지갑 주소는 길고 복잡하기 때문에 피해자가 조작을 눈치채기 어렵다. 특정 위치의 일부라도 확인하는 것이 도움이 될 수 있다.

브라우저 확장 이용해 코드 인젝션(code injection)

웹 페이지에 광고를 삽입하거나 내용을 변조하는 것은 브라우저 프로세스에 코드를 삽입함으로써 가능하다. 즉 브라우저 프로세스 내에서 임의의 외부 코드를 실행하는 것이다.

코드 인젝션은 안정성과 보안성에 큰 위협이지만, 실시간 디버깅이나 보안 검색에도 이용된다.

브라우저에 코드 인젝션을 하는 것은 일반 프로그램을 통해서도 가능하지만, 브라우저 확장 프로그램(browser extension)을 이용하는 것이 더 쉽다. 브라우저 확장은 사용자와 사이트 간의 트래픽을 보고 변경할 수 있는 권한이 있기 때문이다.

이 악성코드는 파이어폭스에서는 'Firefox Protection'이라는 확장을 강제로 설치해 이용했다. 크롬에서는 'Chrome Media Router'라는 확장을 이용했는데, 이는 크롬 스토어에서 다운로드하는 것이 아니라 크롬에 기본으로 내장돼 있는 것이다.

크롬 확장의 권한 제한해야

크롬의 경우, 코드 인젝션을 위해서는 확장 이용이 필수다. 크롬이 제3자 프로그램의 코드 인젝션을 제한하기 시작했기 때문이다. 현재는 이런 시도에 대해 '호환되지 않는 앱'이라는 경고를 내는 데 그치지만, 곧 나올 72 버전에서는 자동으로 차단한다.

크롬 확장은 크롬 존재의 이유라고 해도 과언이 아닐 정도로 편리하지만, 사이트 액세스 권한 등 강력한 권한으로 보안상으로는 큰 구멍이라 할 수 있다. 따라서 클릭 시에만 작동하게 하든가, 특정 사이트에서만 작동하게 하든가 하는 식으로 제한을 하는 것이 좋다. 물론 무분별하게 설치하지 않는 것이 가장 중요하다.


크롬 확장의 권한 설정 화면이다. 확장 목록에서 해당 프로그램을 선택하면 진입할 수 있다.

웹 페이지 조작하는 Razy 악성코드

1.24일 Kaspersky Lab에서 이 악성코드에 대한 보고서를 발표했다. 카스퍼스키 백신에서는 이를 Trojan.Win32.Razy.gen으로 탐지한다. 이 보고서를 참고해서 내용을 추가했다.

레이지는 실행파일(.exe)로 배포된다. 앞서 영화 파일로 위장한 파워셸 스크립트에서 발견됐다고 했는데, 이 스크립트는 레이지를 다운로드하는 역할을 했다.

레이지 악성코드의 핵심은 브라우저 확장을 이용하는 것이다. 감염 시 먼저 브라우저의 확장 관리 기능을 마비시킨다. 크롬에 대한 공격에서는 chrome.dll을 변조해서 확장 프로그램에 대한 이상 여부 검사를 무력화하고, 레지스트리를 변경해서 자동 업데이트 기능을 꺼버린다. 그리고 악성 확장을 새로 설치하거나, 이미 설치돼 있는 확장을 감염시킨다. 앞서 Chrome Media Router를 언급했지만, 이외에도 다른 확장도 이용한다.

QR 코드도 변조

웹 페이지 변조는 다양한 사례가 발견됐다. 유튜브 페이지에 동영상을 끼워 넣은 경우도 있었다. 특히 가상화폐를 탈취하려는 시도가 많다.

텔레그램 사이트에는, 텔레그램 토큰을 저렴한 가격에 구입할 수 있다는 공지를 띄우는데, 클릭하면 피싱(Phishing) 사이트로 연결된다.

일부 가상화폐 거래소에서는, 시세보다 좋은 조건으로 타 가상화폐로 환전해 준다며 송금을 요구하는 가짜 팝업을 생성하기도 했다.

또한 QR 코드도 조작한다. 가상화폐 관련 사이트에서는 거래 편의를 위해, 가상화폐 지갑 주소를 QR코드로 제공하기도 한다. 이 이미지를 조작해 해커의 지갑으로 연결되도록 바꾼다.


관련 자료
  1. 크롬이 '호환되지 않는 앱'이라는 경고를 나타낸다면
  2. 파일 확장명 위장한 악성코드
  3. 구글, 크롬 확장의 보안 문제에 손쓰기 시작했다

참고 자료
  1. Fake Movie File Infects PC to Steal Cryptocurrency, Poison Google Results
  2. Google Chrome To Kill Browser Code Injection By 2019
  3. Google to Block Third-Party Software from Injecting Code into Chrome Browser
  4. One in 20 web users infected with ad injection software 
  5. Razy in search of cryptocurrency

댓글

이 블로그의 인기 게시물

엑셀 필터 상태에서 복사와 잘라내기

가정에서도 망 분리를 해보자

잉크젯 프린터 전원은 항상 켜 놓아야 좋다