[보안뉴스 문가용 기자] 공격자들이 끊임없이 개량과 혁신을 이어가고 있다는 건 보안 업계가 익히 알고 있는 사실이다. 공격자들의 전략과 전술이 획기적으로 변하는 것도 놀랍지만, 사실 악성 코드만큼 빠르고 효과적으로 발전하는 것도 없다. 공격자들은 계속해서 은밀하고 강력한 페이로드를 만들어내기 위해 끊임없이 스스로를 변화시키고 현대 보안 체계에 적응해간다.
[이미지 = gettyimagesbank]
보안 업체 인테저(Intezer)는 “로더(loader) 시장의 변화를 눈여겨봐야 한다”고 주장하며 그 이유에 대해 “오늘날의 사이버 환경에서 로더만큼 공격자들에게 의미가 큰 도구가 없기 때문”이라고 말한다. 실제로 로더는 이제 거의 모든 멀웨어 감염 사건에서 초기 침투와 악성 페이로드 유포를 담당한다. 공격자들의 목적과 직접적인 관련이 있는 기능을 가진 페이로드가 피해자의 시스템에 곧바로 심기는 사례는 더 이상 존재하지 않는다. 현대 보안 시스템들이 워낙 강력해 어지간한 악성 페이로드는 죄다 걸러내기 때문이다. 로더가 없으면 멀웨어도 없는 게 현재 상황이라고 할 수 있다.
“그러므로 공격자들은 로더를 보다 더 교묘하고 은밀하게 만드려, 그 로더를 퍼트리는 전략 역시 세밀하게 가다듬고 변경시킵니다. 샌드박스 내에서 실행되지 않게 하는 기능, 분석을 방해하는 기능 등은 이미 로더들의 기본 덕목이 된 지 오래입니다. 그렇게 발전한 로더는 다크웹 암시장에서 유통되고 있어 누구나 적당한 가격만 내면 사용할 수 있습니다. 그리고 실제 공격자들은 그렇게 하고 있습니다.”
그런 맥락에서 인테저는 최근 배블로더(BabbleLoader)라는 새로운 로더에 주목했닥도 한다. 그 이유는 배블로더의 스텔스 기능이 강력하고, 백신과 샌드박스 환경을 기가 막히게 우회하기 때문이다. “여러 보안 장치들을 회피하여 피해자의 메모리에 정보 탈취형 멀웨어를 심도록 설계된 로더입니다. 본연의 목적을 들키지 않고 달성하기 위해 여러 가지 기능을 탑재하고 있지요.”
이런 배블로더의 주요 특징을 인테저는 다음과 같이 정리하고 있다.
1) 정크 코드 삽입 및 형태 변환 : 로더의 구조와 작동 흐름을 변경함으로써 시그니처 기반 탐지, 인공지능 탐지, 행동 기반 탐지 기술 모두를 효과적으로 우회할 수 있다.
2) 런타임 발동 : 필요한 기능을 런타임에만 발동시키기 때문에 정적 분석만으로는 식별할 수 없게 한다.
3) 셸코드 로딩 및 복호화 : 악성 코드를 메모리에서 로딩하고 복호화 함으로써 파일 기반 스캔 기능을 무력화시킨다.
4) 샌드박스 및 분석 방지 : 가상 환경을 탐지하여 분석과 자동 방어가 효과를 발휘하지 못하게 한다.
이 모든 걸 합했으니 배블로더는 현재 “정적 및 동적 보안 탐지 및 분석 기술들을 모두 무력화시킬 수 있는 다재다능한 도구”가 될 수밖에 없다는 게 인테저의 설명이다. “그런 도구를 공격자들이 가만히 둘 리가 없죠. 이미 여러 캠페인에서 사용되고 있음이 발견됐습니다. 특히 영어와 러시아어를 구사하는 개인 사용자들을 대상으로 하고 있다고 할 수 있습니다.”
그렇다면 현재 이 배블로더는 어떤 식으로 퍼지고 있을까? 인테저가 조사한 바에 의하면 크랙된 소프트웨어를 미끼로 쓰는 게 대부분이라고 한다. “사용자가 특정 게임이나 영상 편집 유틸리티, VPN, 브라우저 등을 무료로 쓰려고 크랙된 버전을 검색해 다운로드 할 때를 노리고 있습니다. 또한 회계 소프트웨어나 HR 또는 급여 담당자들이 자주 사용하는 양식으로 위장될 때도 있습니다. 이 경우 금융 업무 혹은 재정 업무를 처리하는 담당자나 부서를 집중적으로 노린 거라고도 할 수 있겠죠.”
정크 코드의 활용
인테저는 배블로더가 정크 코드를 매우 영리하게 활용한다는 걸 알아냈다. 분석가들을 혼란스럽게 하기 위한 장치인데, 여러 방법으로 구현되고 있었다. 그 중 대표적인 건 다음과 같다.
1) 불필요한 경로와 난수 데이터 : 코드에는 실제로 접근되거나 참조되지 않는 경로가 다수 포함되어 있었고, 무작위로 생성된 문자열도 다량 발견됐다.
2) 무작위 명령어 남발 : 목적 없이 변수에 값을 추가하거나 레지스터 간 데이터를 이동시키는 등의 명령어가 과도히 사용되고 있었다.
이런 코드는 코드의 양을 크게 증가시켜 디스어셈블러나 디컴파일러에 과부하를 일으키기도 한다. “실제로 IDA나 기드라(Ghidra), 바이너리닌자(Binary Ninja)와 같은 분석 도구들이 작동을 하지 않거나 느려지거나 아예 오류로 멈추는 것을 확인했습니다. 공격자들의 의도가 무엇인지 정확히 보였지요. 자신들의 목적을 달성하기 위해 뭘 해야 하는지를 정확히 알고 있다고 볼 수 있습니다.”
정크 코드로 메타모픽이라는 기법을 구사하기도 했었다. 한 마디로 배블로더의 변종들을 마구 생성하는 건데, 로더의 각 빌드가 고유한 문자열과 메타데이터, 코드, 해시, 암호화 방식을 가지게 되고, 따라서 구조적으로 완전히 독립적인 샘플이 완성된다고 인테저는 설명한다. “겹치는 부분이 있긴 한데 일부 코드 조각에 불과합니다. 이러니 시그니처 기반 탐지 장치로는 배블로더를 잡아내기가 어려운 겁니다.”
배블로더 정크 코드의 경악스러운 점은 인공지능을 기반으로 한 탐지 기술에도 문제를 발동시킨다는 것이다. “왜냐하면 코드 구조를 지속적으로 변화시키기 때문입니다. 인공지능 모델은 ‘패턴’을 추출해내는 게 특징인데, 구조가 계속 변하니 올바른 패턴을 찾아내는 게 어려워집니다. 그래서 탐지가 아예 되지 않거나 오탐이 발생합니다. 불필요한 명령어들이 인공지능을 속이기도 하고, 변수들의 데이터 흐름을 인공지능이 잘못 이해하기도 합니다.”
여기에다가 정크 코드로 인해 인공지능 분석에 사용되는 비용마저 증가한다고 인테저는 지적한다. “정크 코드 때문에 코드의 양 자체가 어마어마하게 늘어나죠. 그러므로 인공지능이 분석해야 할 것들이 기하급수적으로 늘어나게 됩니다. 그러니 이를 처리하는 데 소요되는 자원과 비용이 증가할 수밖에 없습니다. 한 마디로 배블로더는 ‘복잡성’ 그 자체를 무기로 가지고 있는 멀웨어라는 뜻이 됩니다.”
배블로더, 어떤 일을 수행하는가
여기까지는 배블로더가 최초 침투를 하기 위해 각종 탐지 기술을 회피하는 방법에 대한 내용이었다. 진짜는 침투 후에 벌어지는 일들이다. 어떤 것들이 있을까? “배블로더가 제일 먼저 하는 일은 동적으로 악성 API 호출을 발동시키는 겁니다. 악성 API가 발동될 수 있도록 여러 가지 난독화 기술을 동원하는데, 주로 API 해싱 기법을 활용합니다. 그런 후에는 피해자 메모리를 건드리기 시작합니다. 악의적으로 사용할 메모리 공간을 할당하고 생성하는 것이라고 할 수 있습니다. 그 공간에서 무작위로 저장된 코드 덩어리들을 올바른 순서로 배열합니다. 이것들은 나중에 실행 가능한 코드로 변합니다.”
코드까지 메모리에 챙겨놓은 다음 배블로더가 할 일은 그 코드를 실행시키는 건데, 그 전에 한 가지 작업을 더 한다. 샌드박스 탐지 기법을 발동시키는 것이다. “샌드박스 환경에서 분석되는 것을 방지하기 위해 다이렉트엑스 DLL(DirectX DLL)을 검사하고, DXGI 라이브러리를 로드하며, 벤더 ID를 비교하는 등의 작업들을 실시합니다. VDLL 함수도 검사하고요. 이렇게 함으로써 샌드박스에서 나타나는 특징들이 하나라도 있는지 파악하고, 디스어셈블러로 분석했을 때 값이 노출되지 않게 하려는 겁니다.” 그래서 샌드박스의 기미가 조금이라도 보이면 배블로더는 내부 변수 값을 설정하여 모든 작업을 종료한다.
그런 후 또 다른 샌드박스 검사를 실시하고, 이 과정을 통과하면 비로소 최종 페이로드를 발동시키기 시작한다. “이 단계에서 배블로더는 또 다른 로더인 도넛로더(Donut Loader)를 사용합니다. 이 도넛로더가 최종 페이로드를 압축 해제하고 실행합니다. 로더의 과정을 한 번 더 거치게 함으로써 탐지를 더 어렵게 만든 것입니다. 그런 후 C&C 서버와의 통신 체계를 마련하는데, 이 때 토르 네트워크를 통합니다.”
방어, 어떻게 해야 하는가?
공격 전략이 점점 더 복잡해짐에 따라 때 이른 탐지라는 것 역시 점점 더 어려운 것이 되어가고 있다. “보안도 어쩔 수 없이 복잡해져야 합니다. 여기서 ‘복잡해져야 한다’는 건 여러 층위의 보안 시스템을 구축한다는 뜻이 됩니다. 공격자들이 단계별로 들어오니, 우리도 여러 단계의 관문을 설치해야 한다는 것으로, 이는 공격자와 방어자 간 무한 군비 경쟁이 있을 수밖에 없다는 걸 방증하기도 한다. “결국 이 싸움의 본질은 ‘비용’이라고 할 수 있습니다. 공격자가 더 많은 비용을 들이면 성공할 확률이 높아지는 거고, 방어자가 더 많은 비용을 쓰면 그만큼 방어 효과가 높아지는 겁니다.”
인테저는 배블로더가 현재 강력함을 과시할 수 있는 건 방어자가 과도한 비용을 쓸 수밖에 없도록 유도하고 있기 때문이라고 짚는다. “비용 극대화의 멀웨어라고 할 수 있습니다. 그 비용은 돈도 되고 시간도 됩니다. 어느 한 쪽이라도 극대화 된다면 방어자에게 큰 부담이 되고, 따라서 탐지나 분석에 걸리지 않을 확률이 높아집니다. 보안 담당자들은 가뜩이나 시간에 쫓기는 사람들인데 말이죠.”
흥미로운 건 보안 담당자들의 시간을 아끼기 위해 인공지능 기반 솔루션들이 각광을 받고 있는데, 배블로더는 그 인공지능 솔루션들마저 큰 효력을 발휘하지 못하게 한다는 것이다. “인공지능은 미래의 보안 도구라고 해도 과언이 아닙니다. 우리는 인공지능을 파트너로 삼아 악성 위협들에 대항할 것입니다. 그런데 배블로더가 이미 그 인공지능을 바보로 만들고 있으니, 시사하는 바가 큽니다. ‘인공지능이 발전하면 잘 되겠지’라는 막연한 희망을 제거하는 것이라고도 할 수 있습니다.”
인테저는 “로더 시장이 점점 더 치열해지고 있다는 건 보안 업계가 긴장하며 주목해야 할 현상”이라고 말한다. “배블로더는 그 정점에 서 있는 멀웨어라고 할 수 있습니다. 하지만 빠른 시간 안에 이를 능가하는 것이 나올 가능성이 높습니다. 보안 업계가 배블로더를 보며 뒤에 올 더 위협적인 것들을 볼 수 있어야 합니다. 심지어 우리가 기대하고 있는 인공지능까지도 힘을 다 발휘하지 못하게 하니, 우리에게도 보다 더 획기적인 대책이 필요합니다.”
3줄 요약
1. 새로운 로더 멀웨어 배블로더, 인공지능까지 약화시킴.
2. 요즘 공격자들 사이에서 로더 경쟁이 치열한데, 이는 적신호임.
3. 배블로더가 갖는 의의, 보안 업계 전체가 심각하게 받아들여야 함.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>