Malware
크로노스(Kronos) 악성코드
2017 08 14
  • Facebook
  • Twitter
  • Copy URL

2014년 7월 러시아의 언더그라운드 포럼에서 7,000달러에 악성코드를 판매한다는 글이 올라왔다.[1] 이 악성코드는 뱅킹 악성코드로 여러 탐지 및 보안 기능을 우회하는 모듈이 덕지덕지 붙어있었다. 더불어 악성코드 판매자는 일주일간 악성코드를 사용해보고 살 수 있는 옵션을 제공하였고, 악성코드에 대한 상세 설명을 달아 홍보하기도 하였다.[2] 이렇게 판매된 악성코드는 영국과 북미에서 주로 발견되었으며, 2014년 7월 프랑스의 은행권이 이 바이러스로 공격당했다는 기사가 올라오기도 했다.[3] 그리고 3년이 흐른 뒤, 이 악성코드가 최근 활발하게 언급되고 있는데 그 이유가 며칠 전 wannacry의 영웅이라 불리는 Marcus Hutchins가 이 악성코드의 개발자로 붙잡혔기 때문이다. 그러므로 오늘은 이 악성코드, 크로노스(Kronos)에 대해 이야기해보려 한다.[4]

이미지를 불러오는데 실패했습니다.

크로노스(Kronos) 악성코드는 Marcus Hutchins이 개발한 악성코드로, 트로이 목마 유형의 악성코드다.[5] 크로노스 악성코드는 2009년으로 거슬러 올라가 악성코드의 제왕이라고 불리는 ‘제우스(Zeus) 악성코드’의 변종으로 보고 있는데, 그 이유는 같은 뱅킹 악성코드이면서 크로노스라는 명칭도 그리스 신화에 나오는 제우스의 아버지 이름이기 때문이다.[6] 조금 억지인가. 아무튼, 크로노스 악성코드는 대상 은행 사이트에 코드 인젝션 공격을 함으로써 피싱사이트와 같은 새로운 웹 페이지를 만들고, 이를 통해 온라인 뱅킹 자격 증명, 전화 뱅킹 암호 및 신용 카드 정보를 수집하는 악성코드다.[7] 크로노스 악성코드는 사실 악성코드를 통해 알려진 사건, 사고보다 러시아 언더그라운드 포럼에 처음 나타나 7,000달러라는 고가에 판매되었다는 점에서 더 크게 알려져 있다.[8]

이 악성코드는 C&C서버와 암호화 통신을 할 수 있고, 대상이 되는 금융 웹 사이트를 방문하는 동안 웹 브라우저에서 HTML 및 Javascript를 바로 삽입할 수 있다.[9] 더불어, 루트킷 및 바이러스 백신 기술을 사용하였고, 은행 업무 기능 및 구성파일 암호 해독은 곧 게시될 거라며 계속해서 기능추가가 있음을 암시했다. 한 언론매체에 따르면, 이 악성코드는 A/S, 버그제보도 가능했었다고 한다.[10] 실제로, 판매 글이 올라온 후에 2015년에는 같은 악성코드로 보이는 사건이 영국에서 발생하였고[11], 코드가 비슷한 것으로 보아 정기적으로 코드를 조금씩 변경하여 은밀하게 유지되고 있었음을 보이기도 했다.[12]

크로노스 악성코드는 주로 drive-by-download 및 피싱을 통해 확산하였다. 주로 이메일에 첨부된 파일이나 링크를 통해 감염되는데, Microsoft SharePoint와 연결된 것처럼 사용자를 속여 감염시켰다.[13] 일반적으로 악의적인 첨부 파일, 광고, 흥미를 유발하는 링크 등 다양한 방법으로 퍼져 나갔고, Microsoft SharePoint 외에 정상적인 콘텐츠로 보이게도 하여 대게는 컴퓨터에 잘 숨겨져 있어 찾기 어려웠다고 한다.[14]

크로노스 악성코드를 판매하는 글에는 악성코드의 기술적 기능에 대해 자세하게 설명되어 있었다고 한다. 먼저, 크로노스는 Internet Explorer, Firefox 및 Chrome의 브라우징 세션에서 소위 ‘form-grabbing’ 및 HTML 콘텐츠 삽입 기술을 사용하여 자격 증명을 훔칠 수 있었다. Form-grabbing은 keylogging보다 정교한 공격 기법이다. 키보드 입력을 대상으로 하여 사용자의 복사-붙여 넣기 같은 입력 데이터는 놓칠 수 있는 keylogging과 달리 Form-grabbing는 전송되기 전에 모든 양식의 데이터를 캡처하기 때문에 정확하고 더 많은 데이터를 수집할 수 있다.

두 번째로, 크로노스 악성코드는 제우스 악성코드의 기능 중 HTML Injection 기능을 포함하고 있다. HTML Injection은 HTML을 주입하여 사용자가 보는 화면을 바꾸어 보여주는 기능으로, 이를 통해 본래 있지도 않은 사용자 정보 입력 칸을 만들어 사용자의 입력을 유도한다.[15] 즉, 제우스에서 사용하는 HTML 코드삽입을 크로노스에서도 쉽게 구현할 수 있도록 하였다.[16] 이는 제우스가 가장 널리 배포된 악성코드이기 이기도 하며, 제우스를 사용하고 있는 잠재 고객을 노린 것이기도 하다.[17]

세 번째로 크로노스 악성코드는 다른 악성코드, 백신으로부터 자신을 방어할 수 있도록 32비트와 64비트 Windows 시스템에서 실행되는 사용자 모드 루트킷을 포함하고 있다.[18] 이는 크로노스 악성코드가 다른 악성코드나 비슷한 종류의 뱅킹 악성코드로부터 자신을 보호하고, 백신으로부터 자신을 숨기기 위한 기능 중 하나다.[19] 즉, 크로노스는 악성 프로그램 분석에 일반적으로 사용되는 백신 탐지 및 샌드 박스 환경을 회피할 수 있다.[20]

마지막으로 크로노스 악성코드는 C&C 서버를 통해 서로 연결한다. 이때 오가는 데이터를 스니퍼로부터 보호하기 위해 봇과 공격자 간의 연결을 암호화로 진행한다.[21] 예를 들어, 사용자의 정보가 공격자에게 전송될 때 오가는 데이터는 암호화되어 전송되며, 공격자가 보내는 HTML 코드도 암호화되어 보내진다.

정리하자면, 크로노스는 두 가지의 다른 공격 기능이 결합한 악성 프로그램이다. 이 바이러스는 트로이 목마와 루트킷이 섞여 있으며, 이 두 가지 바이러스의 능력으로 크로노스는 쉽게 PC에 침투하여 시스템 내부에 숨을 수 있었다. 또한, 사용자의 행동을 추적하여 쉽게 데이터를 수집하고 특히, 로깅 및 암호화 같은 은행 데이터를 주로 수집했다. 바이러스는 자신이 목적으로 한 데이터를 얻자마자 자신의 소유자에게 데이터를 보냈고, PC의 사용자는 이에 대해 전혀 감지 못했다는 것이 큰 문제였다. 크로노스의 루트킷은 일반적으로 잘 알려진 후킹 기법을 사용하고, 섹션을 조작하여 원격 프로세스에 코드를 주입하는 등 약간의 트릭을 사용했다. 이 때문에 다른 백신이나 보안상 중요한 행동을 탐지 및 관리함으로써 악성코드의 침입을 차단하는 기능인 HIPS(Host Intrusion Prevention System)에서도 제대로도 된 탐지가 되지 않았던 것 같다.[22] 즉, 크로노스는 당시 다른 뱅킹 악성코드보다 사용자, 보안 전문가가 사용하는 보안 도구들을 우회하는 많은 기능이 담긴 아주 잘 만든 악성코드인 것 같다. 이제는 잘 볼 수 없지만…

유성경 yuopboy@grayhash.com