brunch

브런치북 APT 개론 06화

You can make anything
by writing

C.S.Lewis

by 흐르는 강물처럼 Feb 17. 2021

APT-6 (APT 공격과 탐지장비의 숨바꼭질)

APT 공격이 침투하는 방법과 이를 탐지하는 장비 간의 숨바꼭질

이러한 취약점이 발견된 후 취약점을 제거할 수 있는 업데이트 혹은 패치를 적용하지 않게 되면 이를 이용하여 시스템에 침입할 수 있는 수단으로 활용될 수 있습니다. 이렇게 취약점을 이용한 공격을 익스플로잇(exploit)이라고 합니다. 발견된 보안 취약점을 이용하여 공격자의 의도된 동작을 수행하도록 만들어진 절차 혹은 명령, 스크립트, 프로그램을 뜻합니다.



국가의 후원을 받는 APT 공격 그룹의 경우 이러한 제로데이 익스플로잇(알려지지 않은 취약점 공격)을 보유하고 있다가 대규모 공격에 사용하는 경우가 많습니다. 예를 들면 CVE-2015-6585 취약점의 경우 한컴오피스 2014에서 발견된 취약점으로 이를 주로 사용하는 공공기관과 교육기관을 타깃으로 북한의 공격 그룹이 공격에 활용한 경우가 있었습니다.



익스플로잇이 성공하게 되면 공격자는 실제 악성 행위를 수행하는 악성코드를 감염시스템에 설치하게 되는데 이때 사용되는 프로그램을 드로퍼(Dropper)라고 합니다. 드로퍼가 사용되는 이유는 악성코드를 압축해서 시스템에 설치된 백신 등의 보안 프로그램의 탐지를 회피하고 필요시에 압축을 해제하여 메모리에 올려서 동작이 가능한 상태로 만드는 역할을 수행하기 위해서입니다.



드로퍼에 의해 악성코드가 정상적으로 작동을 시작하면, 감염시킨 시스템에 대한 정보를 사전에 설정된 외부 서버(C&C 서버)로 전송한 후 추가적인 악성코드나 공격자의 명령을 수행하게 되는데 이런 동작을 콜백(Callback)이라고 합니다.



앞에서 설명한 세 가지 단계를 통해서 공격자는 시스템 감염을 완성시키게 되는데 아래 <그림 1>을 통해 이 단계를 정리해 보았습니다. APT 공격은 그림의 세 가지 단계를 통해 시스템을 감염시켜야 공격이 시작될 수 있는데 방어자의 입장에서는 감염된 이후에 공격을 탐지하는 것보다는 시스템을 감염시키는 초기 단계를 탐지해서 차단시키는 것이 더 효율적인 방어라고 할 수 있습니다.



그래서 많은 APT 탐지 장비들이 이 단계를 집중해서 공격을 탐지하려고 합니다. 좀 더 자세한 사항은 다음 글에서 APT 공격 방어 장비를 소개할 때 설명드리도록 하겠습니다.



< 그림 1 >  APT 공격 초기 시스템 감염 순서



악성코드에 의한 침해사고가 빈번해지면서 여기에 대응하기 위한 방어기술이 발전하고 방어체계가 발달하면서, 점점 악성코드를 통한 공격성공률이 떨어지게 되었습니다. 이에 대응하여 공격자의 전략도 발전하게 되는데 악성코드가 컴퓨터에 감염되는 것을 차단하는 백신의 탐지 성공률이 증가하게 되자 탐지를 회피하기 위해 다양한 멀웨어 변종의 출현이 증가하게 되었습니다.



변종 멀웨어의 증가에 대응하기 위해 가상 환경에서 멀웨어가 동작하는 행위를 모니터링하여 악성 여부를 판단하는 기술이 발전하면서 다시 악성코드 탐지율이 증가하자, 이에 대응하여 가상 환경에서의 탐지를 우회하는 기술이 개발되어 발달하게 됩니다. 즉, 창과 방패의 경쟁이 무한 반복되고 있는 것이라고 할 수 있습니다. 그럼 하나씩 자세히 알아보죠.



악성코드의 사용이 활성화되면서 처음부터 전부를 개발하는 것이 아니고 최초로 만들어진 멀웨어의 원형을 참고해서 변형시키거나 멀웨어 생성 툴을 통해 손쉽게 새로운 멀웨어 변종을 개발하여 공격에 이용되는 경우가 흔해졌습니다.



그 이유는 취약점이 발견되면, 취약점을 악용하여 멀웨어가 개발된 후, 이를 이용하여 실제 공격이 발각되면 침해사고 분석을 통해 사용된 멀웨어가 분석되어 사용한 정황이 노출되기 때문입니다. 이렇게 노출된 멀웨어는 패턴이 추출되어 바이러스 백신에 등록이 되어 이후 공격에서는 백신에 의해 쉽게 탐지가 되기 때문에 동일한 멀웨어를 공격성공률은 떨어질 수밖에 없습니다.



한 백신업체의 보고서에 의하면 평균 4초마다 새로운 변종이 1개씩 생성된다고 합니다. 대략 6개월 만에 410만 개, 1년 사이에 600만 개의 멀웨어 변종이 등장하기 때문에 모든 변종의 패턴을 백신에 업데이트하는 것은 불가능합니다. 이런 백신의 약점을 이용하여 물량공세를 통해 공격성공률을 높이는 전략이 사용되고 있는 것입니다.



멀웨어를 탐지하는 방식에는 크게 정적 분석과 동적 분석이라는 두 가지 방식이 있습니다. 멀웨어를 실행하지 않고 그 파일 자체가 가지고 있는 내용을 통해 멀웨어 여부를 판단하는 것입니다. 그래서 비교적 쉽고 빠르게 높은 기술 수준 없이 수행 가능한 장점이 있지만, 요즘 같이 변종을 쉽게 만들 수 있는 환경에서는 공격 탐지가 점점 어려워지고 있습니다.



동적 분석은 의심되는 파일을 가상화 시스템에서 실제 실행을 시켜 생성되는 프로세스 및 파일을 모니터링하고 외부 서버와 통신 여부를 확인하여 악성 여부를 판별하기 때문에 정적 분석에 비해서는 좀 더 정확하게 악성 여부를 판단할 수 있습니다. 그러나 분석에 시간이 비교적 많이(1~5분) 소요되고, 여러 개의 가상 환경을 동시에 이용하고 관리하기 위해 고성능의 하드웨어가 필요한 점이 단점이라고 할 수 있습니다.



동적 분석의 통한 멀웨어 탐지장비의 보급이 활성화되면서 공격성공률이 떨어지자 이에 대응하기 위해서 멀웨어 제작자들은 가상 환경을 탐지할 수 있는 기능을 추가하여 탐지를 회피할 수 있는 능력을 추가하였습니다.



멀웨어가 실행되는 환경이 실제 컴퓨터인지 가상 환경인지 구분하여 실제 컴퓨터이면 악성 행위를 시작하고 가상 환경으로 판단되면 악성 행위를 하지 않고 탐지를 회피하는 전술을 사용하기 시작한 것입니다. 이 전술은 동적 분석장비를 개발하는 보안 벤더가 가상화 환경을 다양한 사용자의 실제 환경을 똑같이 모사할 수 없어서 규격화된 몇 개(5 ~ 10개)의 가상 환경만을 이용하여 탐지할 수밖에 없는 빈틈을 이용합니다. 가상 환경인지 여부를 판단하기 위해서 아래와 같은 다양한 방식을 사용하고 있습니다.



1. 사람의 개입을 통한 마우스 포인트의 움직임, 클릭 동작, 스크롤 동작이 있는지 확인


2. 사용자의 응답을 요구하는 대화 상자를 표시하여 응답 여부를 확인


3. 멀웨어가 설치되면 바로 동작하지 않고 일정 시간 대기하거나 특정 시간에만 동작하게 설정


4. 많이 사용하는 가상화 소프트웨어의 특정 요소의 값과 버전을 파악하여 일치하는지 여부 확인


5. 멀웨어가 설치되면 재부팅되기 전까지 악성 행위를 하지 않고 대기



물론 멀웨어 탐지장비를 개발하는 벤더에서도 이런 탐지 우회전술을 감안하여 새로운 탐지 방식을 개발하여 적용하지만 이러한 공격자와 방어자 간의 도전과 응전은 반복될 수밖에 없을 것 같습니다.



다음 글에는 APT 공격의 증가로 인한 기존 보안 모델의 문제점을 해결하기 위해 각광받고 있는 Zero Trust 보안 모델을 알아보고, AI(인공지능)을 공격 탐지에 활용하기 위한 방안과 인공지능의 공격 탐지 정확도를 높이기 위한 빅데이터의 중요성에 대해 알아보도록 하겠습니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari