APT 시뮬레이터와 ARES 소개
2019, Jul 15    

이 글에서는 APT 시뮬레이터를 소개하고, 쏘마에서 개발하고 있는 Advanced Attack Simulator, ARES 구현 기술을 공유하고자 합니다. 그리고 MITRE ATT&CK Matrix를 ARES에 어떻게 적용했는지, 어떻게 활용하고 있는지 간단히 소개해 드리겠습니다.

   

APT 시뮬레이터


1. 등장 배경

2017년 말부터 등장하기 시작해 특히 올해 들어 그 수가 상당히 증가하고 있는 APT 시뮬레이터는 무엇이며 왜 나오게 된 걸까요? (2018.09 공격 에뮬레이션 증가) 저는 가장 큰 두 가지 이유로 단순 악성코드에 대한 대응이 아니라 APT 공격 그룹에 대응 전략으로써, 1. 사이버 킬 체인에 기반해 TTP를 테스팅하고, 2. EPP에서 EDR로의 수요 변화를 꼽고 싶습니다.

1.1. 사이버 킬체인 기반 TTP 테스팅

많은 사람들이 공격 프레임워크라고 하면 메타스플로잇 을 떠올립니다. 하지만 메타스플로잇은 APT 공격에서 발생하는 모든 단계를 재현해내기에는 부족한 부분이 있습니다. 특히 사이버 킬체인 관점에서 메타스플로잇은 악성코드가 설치된 이후 명령어를 보내고 제어하는 Command & Cotrol단계와 특정 행동을 실행하는 Actions on Objective단계 등을 수행하는데 어려움이 있습니다. 공격자가 시스템을 초기 침투할 때는 메타스플로잇도 충분히 유용한 도구지만 침투 이후 악성코드의 행위는 APT 시뮬레이터가 더 유용할 수 있습니다. 물론, 모든 APT 시뮬레이터로 모든 공격 기법을 재현할 수 있는것은 아닙니다. 상세한 내용은 APT 시뮬레이터 종류에서 다시 설명해 드리겠습니다.

사이버 킬체인 7단계 - 위키피디아

그림 - 사이버 킬체인 7단계 위키피디아

1.2. EPP -> EDR로의 수요 변화

EPP(Endpoint Protection Platform, 전통적인 백신 제품을 생각하면 됨.)는 악성코드 해시나 정적인 정보로 시그니처 기반 탐지를 주로 하고 있습니다. 이런 탐지는 알려지지 않은 취약점 및 악성코드에는 굉장히 취약합니다. 그리고 많은 APT 공격 그룹은 바로 추가 악성 행위를 하지 않고, 시스템을 장악한 후 잠복 기간을 가집니다. 또한 최초 침입에 사용하는 취약점이나 악성코드 이외에는 정상적인 도구만 이용하는 리빙 오프 더 랜드 (Living off the Land) 공격이 증가하고 있습니다. 따라서 악성코드 설치 이후 공격은 윈도우 내장 도구를 이용하는 경우가 많기 때문에 EPP로는 탐지가 더욱 어렵습니다. 이런 이유로 행위기반으로 탐지할 수 있는 EDR(Endpoint Detection and Response) 제품의 필요성이 증가했고, 더불어 정상적인 도구를 이용한 공격을 재현하고 탐지에 도움을 줄 수 있는 테스팅 도구의 필요성이 증가하면서 2018년도 다양한 APT 시뮬레이터가 급격히 개발되기 시작했습니다.

   

2. APT 시뮬레이터 종류


APT 시뮬레이터는 Adversary Emulator, Red Team Automation, Breach and Attack Simulation (BAS)라고도 불립니다. 우선 제가 많은 용어들 중 “APT 시뮬레이터”라고 꼽아서 통칭하고 있는 이유는 우리가 이해하기 가장 쉬운 것 같아서입니다. 외국에서는 Adversary Emulator라는 용어를 주로 사용하고 있지만 우리에겐 왠지 낯선 느낌입니다. 어쨌든 다양하게 불리는 이런류의 프레임워크들은 공격 그룹의 공격 기술을 재현하고 테스트하기 위해, 그리고 Red Team/Purple Team에 도움을 주기 위해 개발되고 있습니다. 2019년 5월 17일 기준으로 개발되고 있는 APT 시뮬레이터 목록 중에서 가장 대표적인 칼데라를 포함해 레드 카나리에서 개발한 아토믹 테스트, 우버에서 공개한 오픈소스 메타의 기능을 살펴보겠습니다. (미국 시장에서는 몇 달 사이에 또 엄청 늘어난 듯 합니다.. 음.. 아쉽게도 목록에 아직 한국 제품은 보이지 않습니다… 쏘마의 ARES가 최초?!^^;)

Tactics 별 시뮬레이터 비교

그림 - Tactics 별 시뮬레이터 비교

2.1 칼데라

칼데라 (CALDERA)는 MITRE™에서 개발한 APT 시뮬레이터 중 가장 최초이자 잘 알려진 시스템입니다. 2016년부터 관련 연구(논문)가 시작되었고 APT 시뮬레이터 구조를 이해하기 가장 좋은 예제입니다. 하지만 초기 버전인 만큼 MITRE ATT&CK Matrix를 적용하고 있지 않으며, 악성 행위를 하는 RAT이 미리 설치 되어 있어 새로운 행위를 적용하려면 수정하기 쉽지 않습니다. 개발 환경은 다음과 같습니다.

칼데라 시스템 구조도

그림 - 칼데라 시스템 구조도

2.2 ATOMIC™ test / Atomic Red Team

아토믹 테스트ATOMIC™ test)는 레드 카나리(Red Canary)에서 개발했고, 데이터는 MITRE ATT&CK의 테크닉 기준으로 야멜, YAML 형식으로 작성되어 있습니다. 그리고 이를 파싱해 실행 프레임워크를 통해 실행하게 되는데, 실행 프레임워크는 파워쉘, 루비, 파이썬 모두 지원해줍니다. 사용자는 원하는 프레임 워크를 선택해 테크닉 YAML 데이터를 실행하는 것입니다. 공개된 테크닉 파일 데이터도 가장 많고, 윈도우, 맥, 리눅스를 지원합니다. 그리고 EDR 제품 중 하나인 Carbon Black 을 수집 센서로 이용해 탐지룰도 생성하고 있으며, IBM의 SIEM장비인 QRadar에 탐지룰을 제공하기도 합니다. 웨비나 를 통해 Defense Evasion, Lateral Movement와 같이 다양한 주제로 정보를 공유하고 있습니다.

레드 카나리의 아토믹 테스트 시스템 구조도

그림 - 레드 카나리의 아토믹 테스트 시스템 구조도

2.3 UBER metta

잘 알고 있는 우버 택시 서비스에서 공개한 오픈소스 중 하나인 메타입니다. Redis/Celery, python, vagrant 를 이용해 개발되었고, 데이터는 MITRE ATT&CK의 전술, tatics 기준으로 역시 YAML 형식으로 작성되어 있습니다. 1. 퍼플팀 시나리오 단위로 작성된 YAML 파일을 파싱해 2. 베이그런트를 실행시켜 3. 원하는 운영체제가 설치된 가상머신을 구동해 실행하는 구조입니다. 가장 큰 장점은 vagrant를 활용한다는 것입니다. 파이썬에서도 이용할 수 있는 이 소프트웨어로 테스트베드를 구축해 다양한 시나리오를 편리하게 테스트 해 볼 수 있습니다.

우버의 메타 시스템 구조도

그림 - 우버의 메타 시스템 구조도

   

ARES


자, 이제 ARES를 살펴볼까요?^^ ARES는 쏘마 인텔리전스 팀에서 개발하고 있는 APT 시뮬레이터입니다. ARES를 설계하면서 몇 가지 중요하게 생각한 부분이 있는데요. APT 시뮬레이터는 칼데라와 같이 서버-에이전트 형태이거나 한 로컬 시스템에서 독립적으로 실행하는 형태가 있습니다. 공격 시나리오를 최대한 다양하게 활용하기 위해서 어느 한 구조만 가지는 것보다 두 가지를 모두 지원해야 합니다. 따라서 ARES 에이전트는 독립적으로 실행되면서도 서버로부터 명령을 받아 수동적으로 실행하는 형태도 지원해 줍니다. 그리고 이를 뒷받침해주는 데이터 포맷도 최대한 유연하게 적용할 수 있도록 설계 했습니다. 그리고 다음으로 고려한 것은 단일 테크닉을 실행하기도하고, 어떤 특정 그룹의 공격 기법을 시뮬레이션하기도 하고 시나리오 기반으로도 테스트가 가능하도록 한 것입니다. (실행 데이터 포맷 설명은 아래에서 더 설명을 이어가겠습니다) 마지막으로 서버-에이전트 실행 구조에서 실제 공격 시나리오를 고려해 에이전트는 최대한 수동적이고 설치 이슈가 없도록 구현했습니다.

1. 시스템 구조

쏘마의 아레스 시스템 구조도

그림 - 쏘마의 아레스 시스템 구조도

아레스의 서버-에이전트 구조는 폴링 방식으로 아래와 같은 요소로 구성되어 있습니다.

  • ARESagent: ARESmgr로부터 명령어를 가져와 실행
  • ARESmgr: 각 실행 데이터 (action, group, technique)와 에이전트 관리
  • ARESweb : 아레스 매니저를 지원해주는 웹 UI

쏘마의 아레스 서버-에이전트 구조

그림 - 쏘마의 아레스 서버-에이전트 구조

아레스를 구현한 기술 스택은 아래와 같습니다.

쏘마의 아레스 구현 기술 스택

그림 - 쏘마의 아레스 구현 기술 스택

2. 실행 데이터 포맷

실행 명령어를 만들기 위한 데이터는 Action/Group/Technique이 있습니다. 테크닉 (Technique)은 명령어 생성 및 실행의 최소 데이터 단위로 마이터의 Txxxx 테크닉 번호를 가지고 있습니다. 운영 체제 플랫폼, 실행자(파워쉘,바이너리,레지스트리이용, 또는 CMD), 실행 인자 등을 정의합니다. 그룹(Group)은 마이터에서 Gxxxxx 그룹 번호를 부여해 관리하는 것으로, 각 APT그룹의 테크닉을 분석해 정의해두고 실행시 테크닉 인자에 반영해줍니다. 이 값은 추후 APT그룹의 공격 특성을 비교하고 파악하는데 활용하기 위해 설계한 것입니다. 물론 특정 그룹이 사용하는 기법을 선택하는 것도 가능하게 해줍니다. 마지막으로 액션(Action)은 단일 테크닉이나 그룹의 실행이 아닌, 여러 그룹의 테크닉과 개별 테크닉을 조합해 하나의 실행 액션을 만들어 주는 것입니다. 서버-에이전트 구조에서 이용할 수 있도록 에이전트 식별자 (ip,port)를 지정해주고, 특정 시간에 실행할 수 있도록 시간을 지정해줍니다.

쏘마의 아레스 시스템 구조도

그림 - 쏘마의 아레스 시스템 구조도

3. ARES로 무얼 할 수 있을까요?

  • 메타스플로잇이나 파워스플로잇, 다른 도구의 한계를 극복하는데 도움이 될 수 있습니다.
  • 악성코드 탐지 하는 것 이외, 이런 공격 기법이 백신에서 탐지되는지 테스트하는 데도 활용할 수 있습니다.
  • 물론 행위 기반 탐지룰을 작성하거나 공격 기법에 따른 아티팩트를 수집하는데도 좋은 도구가 될 수 있습니다.
  • 공격 시나리오를 테스트 할 때, 한번에, 다양한 공격의 조합으로 시뮬레이션 해볼 수 있습니다.

   

ARES를 이용해 시나리오를 테스트 하는 예는 APT3 공격 분석과 ARES를 이용한 공격 시뮬레이션 글을 참고해주시기 바랍니다. 궁금하신 사항은 support@somma.kr 로 문의해 주세요 :)