보안전문가 기고(1). 시뮬레이션 환경에서 APT 공격결과 분석

|
APT 공격에 대해서는 안티바이러스 이상의 대응 필요!


SANS연구소는 글로벌 보안연구 및 교육기관으로 연구활동과 함께 다양한 교육 프로그램을 마련해 전 세계적으로 활동하고 있다. 이에 본지에서는 최근 사이버 공격에 대한 이해도를 높이고, 글로벌 보안위협 추세와 대응방안을 살펴보기 위해 SANS코리아의 협조로 SANS연구소의 유명 보안전문가들의 기고를 3회에 걸쳐 연재한다. [편집자 주]


연재순서-----------------------------------------

1. 시뮬레이션 환경에서 APT 공격결과 분석 - 롭 리

2. 침투 시험 가치 극대화하기 - 브라이스 갤브레이스

3. 가상 환경에서 권한 상승 방법 - 스테판 심스

------------------------------------------------


[보안뉴스=롭 리 SANS 연구소] 디지털 포렌식 사고 대응(DFIR) 분야 커뮤니티에서 가장 큰 불만사항 중 하나가 바로 교육으로 사용할 실제 데이터가 없다는 점이다. 1년 전에 필자는 SANS의 중견 강사 전체가 참가해 경험에 바탕한 실제 시나리오를 만들고, 나머지 전문가들은 공격 스크립트를 검토하고 자문하는 것으로 계획을 세웠다.


이 결과 대부분의 기업에서 운영하는 환경과 같은 윈도우 시스템을 기반으로 하는 실제 공격 시나리오를 만들 수 있었다. 이 공격 시나리오는 현재 ‘SANS FOR508 : 고급 포렌식 및 사고 대응과정’(www.itlkorea.kr/sans/for508.php)에서 사용되고 있다.


이를 활용하여 FOR 508 과정 참가자들이 실제 파일 시스템과 메모리 이미지를 이용하여 지능형 지속위협(APT) 기반의 활동을 탐지·식별 및 포렌식 조사를 분석할 수 있도록 하는 것이다. 즉, 수강 학생들에게 분석을 위해 ‘실제 세계’의 데이터를 보여줄 수 있도록 하는 것이다. 공격 데이터를 생성하여 SANS 과정에서 실제 공격에서처럼 지능적인 공격 활동을 조사할 수 있게 된다.


실제 공격팀을 구성해 실제 APT와 유사한 적들의 행동을 모방하도록 했다. APT 전술을 먼저 본 후에, 우리는 실제 기관의 네트워크를 모방한 실제 환경을 만들도록 훈련계획을 세웠다. 그 결과 침투 시험과 APT 공격 시험에 있어 다른 점을 발견했다.


약 1주일 이상, 먼저 공격 팀을 관찰한 후 굉장히 가치 있는 교훈을 얻었다. 이와 관련한 첫 번째 질문은 ‘안티바이러스가 정말 소용이 없는가?’이다.


안티바이러스가 정말 소용없는가?

수 년 동안 안티바이러스가 우회가능하다는 것을 알고 있었다. 일련의 APT 사건을 포함하여 수년간 많은 보안사고에서, 사고대응팀은 안티바이러스는 침해 징후를 탐지한다는 것을 알았다. 그러나 종종 무시되기도 했다.


훈련을 하는 과정에서 적어도 필자는 일부 특징을 탐지할 것으로 기대했다. 하지만 일주일에 동일한 APT 기술을 사용하여 네트워크를 조사한 결과, 안티바이러스가 지능적이고, 능력 있는 적을 방어하는 데는 한계가 있다는 것을 알았다. 필자는 안티바이러스를 이용하지 말라고 추천하지는 않는다. 하지만 지능적인 적을 찾아내고 방어하기 위해서는 단순히 안티바이러스에 의존하는 것 그 이상을 해야 한다는 점이다.


기업에서 사용하는 안티바이러스나 디지털 포렌식 사고대응(HIDS)이 실제로 훌륭한 기능을 해 줄 것이라고 기대했으나, 안티바이러스는 쉽게 우회가 되었다. 우리는 낮은 수준의 공격은 쉽게 차단할 수 있는 것을 확실하지만, 호스트 기반의 안티바이러스를 신경 쓰지 않고 우리가 원하는 모든 것을 할 수 있었다.


시험에 사용된 안티바이러스 프로그램

사용된 제품은 맥아피 Endpoint Protection Suite에 있는 안티바이러스, 안티 스파이웨어, 안전한 서핑, 안티 스팸, 장치 제어, 온사이트 관리, HIPS로 필자는 별도로 자체 컴퓨터로 된 호스트 IPS를 구매했으며, 맥아피 EPO에 구축하여 네트워크에 배치했다(참고사이트 : http://shop.mcafee.com/Catalog.aspx).


윈도우 기반의 기업 네트워크 환경

네트워크는 표준 컴플라이언스 체크리스트를 이용해서 기업 네트워크 보호망을 모방해 구축했다. 우리는 APT 사고 이후에 설치되는 추가적인 보안조치를 포함하지 않았다. 그러나 우리는 방화벽, 안티바이러스, 호스트 기반 IDS 및 자동 패치 시스템 등을 충분히 구축했다. 그리고 사용자에 제약을 많이 두었으며, 대신 약한 관리자 패스워드 정책 및 로컬 관리자 계정을 동일하게 하는 등 약간의 오류도 같이 설정했다.

시험 환경


사용된 악성코드(비공개 프로그램)

·C&C 프로그램 : XMLRPC 트래픽에 인코딩되어 80번 포트로 통신. 이 악성코드는 Microsoft Security Essentials에서는 탐지가 되나, 맥아피 제품에서는 탐지가 안 되었음.


·C&C 채널 : 맟춤식 미터프리터를 지원하는 실행파일. 80번 포트로 연결. 지속성은 없으며 인터벌 세팅도 없음.


사용된 악성코드(공개 프로그램)

회피 기법은 간단하다. 파이선(Python)이나 PERL, Ruby 등의 스크립트로 프로그램을 설계해서 다시 실행 프로그램으로 만드는 것이다.

·Poison Ivy(www.microsoft.com/en-us/download/details.aspx?id=27871)- 탐지를 못하고, 정상적으로 동작함

·Psexec(http://technet.microsoft.com/en-us/sysinternals/bb897553)- 악성코드 아님

·Radmin(http://www.radmin.co.kr/)- 인코딩이 필요 없음. 백도어로 사용

·mimikatz(http://pauldotcom.com/2012/02/dumping-cleartext-credentials.html)- 인코딩 필요 없음


APT 공격 단계

이번 훈련은 네트워크, 호스트 시스템, 메모리, 하이버네이션/페이지 파일 등에서 탐지가 가능한 실제 적의 흔적을 보기 위한 것이었다. 이 악성코드 FOR601(악성코드 분석)과정에서 사용되고, 네트워크 트래픽은 FOR558(네트워크 포렌직) 과정에서 사용될 예정이다.


·1단계 : 스피어 피싱 공격(자바 애플릿 공격) 및 C&C 프로그램 설치

·2단계 : 다른 시스템으로 측면 이동, 악성 유틸리티 프로그램 다운로드. 추가 프로그램 설치 및 도메인 admin 인증데이터 획득

·3단계 : 지적 재산 정보 검색, 네트워크 분석, 이메일 덤프, 해쉬값 덤프

·4단계 : 데이터 수집 후 경유 시스템으로 데이터 복사. 복잡한 패스워드로 데이터 rar 파일로 압축

·5단계 : 경유 서버에 rar 파일을 탈취하고 경우 서버의 데이터 삭제


마지막으로, 우리는 전체 디스크 이미지외에 각각의 컴퓨터에 있는 진짜 메모리, 네트워크 트래픽, 악성코드 샘플을 캡처했다.


사고대응/포렌식 결과

컴퓨터에서 발견한 일부 포렌식 분석결과는 다음과 같다.

스피어 피싱 공격 수퍼 타임라인


메모리 분석 결과(분석 없이 레드라인 화면) : 추가적인 분석을 위해서 볼라틸리티(Volatility) 사용할 계획


우리는 자체 제작한 악성코드와 Poison Ivy, 메타스플로잇 등 잘 알려진 악성프로그램도 사용했다. 안티바이러스는 우회하기 위해 간단한 우회기술을 적용했다. 그 결과 안티바이러스는 탐지를 하지 못했다. 하지만 조치를 취하지 않은 메타스플로잇 페이로드는 탐지했고, 제거할 수 있었다. 우리는 맥아피 직원들이 설명한 설치 및 설정을 따랐다.


필자는 공격팀에 침투시험 과정에서 배운 공격 방법을 사용할 것을 요청했으며, 공격팀은 고급 공격 기법을 사용하지도 않았다. 공격하는 동안 실수도 했지만, 아무것도 탐지하지 못했으며, 차단도 되지 않았다. 이 연습이 실제 상황이라면 남들이 찾기 전에 아마 수개월, 수년 동안 네트워크에 활동할 수 있었다.


필자는---------------------------------------------------------

롭 리(Rob Lee)

롭 리는 SANS 연구소에서 디지털 포렌직 및 사고 대응에 대한 커리큘럼 리더이자 개발자로 컴퓨터 포렌식, 취약점 및 공격 탐지, 침입 탐지/예방 및 사고대응 분야에 15년 이상의 경험을 가지고 있다. 롭 리는 SANS Korea 2012에서 11월 5~10일에 포렌직 508(고급 컴퓨터 포렌직 분석 및 사고 대응) 과정을 강의할 예정이다.

----------------------------------------------------------------

 

And