Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
1 / 54
Team. JGG - 유재욱. 김규헌. 장준영. 진호용. 한미정
안드로이드간편결제앱취약점분석을통한앱보안성향상연구
Codegate 2018 BoB Seminar
2018.04.05
안드로이드보안솔루션우회취약점및대응방안
2 / 54
목 차 1. 프로젝트 소개
2. 안드로이드와 보안 솔루션
3. 보안 솔루션 우회 취약점
4. 보안 솔루션 보안성 강화 방안
3 / 54
1. 프로젝트소개 1.1 팀 소개
1.2 배경 및 필요성
1.3 프로젝트 목표
4 / 54
Member
장준영
Member
김규헌
1. 프로젝트 소개1. 1 팀소개
Mentor
신정훈
Mentor
김경곤
PL
지한별
PM
유재욱
Member
한미정
Member
진호용
5 / 54
1. 프로젝트 소개1. 2 배경및필요성
모바일 간편결제 서비스 이용 경험
출처 : DMC 미디어
간편결제 해킹 시 예상 피해
%
88%
12%
2017년 기준
개인정보 유출
결제 사기
개인 자산과 직결된 금전 피해
서비스 거부로 인한 고객 신뢰도 감소
6 / 54
1. 프로젝트 소개1. 3 프로젝트목표
안드로이드 보안 솔루션 우회 취약점 분석1
2
각 유형별 간편결제 서비스 중 이용률 TOP 5 이내 애플리케이션 선정
간편결제 애플리케이션 취약점 분석
구현 방식 별 간편결제 애플리케이션의 취약점 분석
디바이스 간편결제, 일반 간편결제, 앱카드, 유통업체 간편결제
오프라인 간편결제 온라인 간편결제
B pay C pay
7 / 54
1. 프로젝트 소개
A 유통 pay B 유통 pay
간편결제 애플리케이션 취약점 분석
정적분석을 통해 안드로이드 앱에 적용되는 보안 모듈
기술 및 우회 취약점 연구
보안 모듈 우회 방지를 위한 설계와 구현 방법 연구
간편결제 서비스 보안 취약점 조사
간편결제 앱 기능상 보안성 향상
방법에 대한 연구
B 앱카드A 앱카드A pay
1. 3 프로젝트목표
B pay C pay
안드로이드 보안 솔루션 우회 취약점 분석
8 / 54
1. 프로젝트 소개
A 유통 pay B 유통 pay
간편결제 애플리케이션 취약점 분석
정적분석을 통해 안드로이드 앱에 적용되는 보안 모듈
기술 및 우회 취약점 연구
보안 모듈 우회 방지를 위한 설계와 구현 방법 연구
간편결제 서비스 보안 취약점 조사
간편결제 앱 기능상 보안성 향상
방법에 대한 연구
B 앱카드A 앱카드A pay
1. 3 프로젝트목표
B pay C pay
안드로이드 보안 솔루션 우회 취약점 분석1
9 / 54
2. 안드로이드와보안솔루션
2.1 보안 솔루션의 필요성
2.2 간편결제 프로세스와 보안 위협
2.3 보안 솔루션 현황 및 구조
10 / 54
구 분 시스템 서드파티
보안 솔루션 O O
하드웨어 기반 보안기술(ex. ARM TrustZone)
O X
이유
<시스템 앱과 서드파티 앱에 적용되는 보안 기술>
서드파티 앱은보안 솔루션만을
이용하여 앱 보안성 확보
보안 솔루션의 보안성 향상이 필요
<Trusted Execution Environment>
출처 : duo.com
Currently all Trusty applications are developed by a single party and packaged with the Trusty kernel image.
출처 : https://source.android.com/security/trusty/
2. 1 보안솔루션의필요성 2. 안드로이드와 보안 솔루션
11 / 54
…
보안 솔루션 수요 분야 및 대표 보안 솔루션
게 임
- 소스코드 및 코드패치 보호- 미의도 동작 제한
공 공
- 앱 위변조 방지- 정보유출 및 탈취 방지
금 융
- 높은 수준의 보안성- 금융 컴플라이언스 준수
2. 1 보안솔루션의필요성 2. 안드로이드와 보안 솔루션
12 / 54
보안 솔루션 수요 분야 및 대표 보안 솔루션
금 융
- 높은 수준의 보안성- 금융 컴플라이언스 준수
게 임
- 소스코드 및 코드패치 보호- 미의도 동작 제한
공 공
- 앱 위변조 방지- 정보유출 및 탈취 방지
금 융
- 높은 수준의 보안성- 금융 컴플라이언스 준수
…
2. 1 보안솔루션의필요성 2. 안드로이드와 보안 솔루션
13 / 54
루팅 및 디버깅 감지
앱 위/변조 방지
역분석 방지
메모리 해킹 방지
코드 난독화/암호화
보안 모듈
간편결제 애플리케이션
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
<Key-카드 Table>
카드사 서버간편결제 서버
격리 서버
카드-Key 카드번호
Uy5XbC… 5384-93..
결제 실행
잔액 검증
사용자 인증
카드번호 조회
유저 인증결제 요청
1
인증 결과값8
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
카드-Key결제 요청
4
인증 결과값6
결제 검증/실행5
사용자 간편결제 서비스 제공사 카드사
2. 2 간편결제프로세스와보안위협
간편결제 프로세스 파악
2. 안드로이드와 보안 솔루션
14 / 54
루팅 및 디버깅 감지
앱 위/변조 방지
역분석 방지
메모리 해킹 방지
코드 난독화/암호화
보안 모듈
간편결제 애플리케이션
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
<Key-카드 Table>
카드사 서버간편결제 서버
격리 서버
카드-Key 카드번호
Uy5XbC… 5384-93..
결제 실행
잔액 검증
사용자 인증
카드번호 조회
유저 인증결제 요청
1
인증 결과값8
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
카드-Key결제 요청
4
인증 결과값6
결제 검증/실행5
요청/응답값위변조, 탈취
보안 모듈 우회역분석 및 디버깅앱 위/변조
개인정보 누출, API 취약점
사용자 간편결제 서비스 제공사 카드사
간편결제 프로세스 파악
2. 2 간편결제프로세스와보안위협 2. 안드로이드와 보안 솔루션
15 / 54
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
<Key-카드 Table>
카드사 서버간편결제 서버
격리 서버
카드-Key 카드번호
Uy5XbC… 5384-93..
결제 실행
잔액 검증
사용자 인증
카드번호 조회
인증 결과값8
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
카드-Key결제 요청
4
인증 결과값6
결제 검증/실행5
요청/응답값위변조, 탈취
개인정보 누출, API 취약점
간편결제 서비스 제공사 카드사
간편결제 프로세스 파악
루팅 및 디버깅 감지
앱 위/변조 방지
역분석 방지
메모리 해킹 방지
코드 난독화/암호화
보안 모듈
간편결제 애플리케이션
보안 모듈 우회역분석 및 디버깅앱 위/변조
사용자
2. 2 간편결제프로세스와보안위협 2. 안드로이드와 보안 솔루션
16 / 54
루팅 및 디버깅 감지
앱 위/변조 방지
역분석 방지
메모리 해킹 방지
코드 난독화/암호화
보안 모듈
간편결제 애플리케이션
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
<Key-카드 Table>
카드사 서버간편결제 서버
격리 서버
카드-Key 카드번호
Uy5XbC… 5384-93..
결제 실행
잔액 검증
사용자 인증
카드번호 조회
유저 인증결제 요청
1
인증 결과값8
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
카드-Key결제 요청
4
인증 결과값6
결제 검증/실행5
요청/응답값위변조, 탈취
보안 모듈 우회역분석 및 디버깅앱 위/변조
개인정보 누출, API 취약점
사용자 간편결제 서비스 제공사 카드사
간편결제 프로세스 파악
유저 인증결제 요청
1
인증 결과값8
요청/응답값위변조, 탈취
간편결제 애플리케이션간편결제 서버
2. 2 간편결제프로세스와보안위협 2. 안드로이드와 보안 솔루션
17 / 54
간편결제 프로세스 파악
루팅 및 디버깅 감지
앱 위/변조 방지
역분석 방지
메모리 해킹 방지
코드 난독화/암호화
보안 모듈
간편결제 애플리케이션
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
<Key-카드 Table>
카드사 서버간편결제 서버
격리 서버
카드-Key 카드번호
Uy5XbC… 5384-93..
결제 실행
잔액 검증
사용자 인증
카드번호 조회
유저 인증결제 요청
1
인증 결과값8
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
카드-Key결제 요청
4
인증 결과값6
결제 검증/실행5
요청/응답값위변조, 탈취
개인정보 누출, API 취약점
사용자 간편결제 서비스 제공사 카드사
보안 모듈 우회역분석 및 디버깅앱 위/변조
유 저 카드-Key
User_A Uy5XbC…
<카드-Key Table>
간편결제 서버
격리 서버
유저 값결제 요청
2
인증 결과값7
유저값 -카드 Key 매칭
3
개인정보 누출, API 취약점
간편결제 서비스 제공사
2. 2 간편결제프로세스와보안위협 2. 안드로이드와 보안 솔루션
18 / 54
공격자
사용자 은행 의도한 계좌
공격자 계좌
뱅킹 앱 다운로드1
위/변조 앱 유포2
위/변조된 뱅킹앱 다운로드
3
송금 서비스 사용4
공격자의 계좌로송금
5
리패키징 어택 시나리오
리패키징 어택 시나리오로 송금 대상 및 금액 변조 가능
2. 2 간편결제프로세스와보안위협 2. 안드로이드와 보안 솔루션
19 / 54
2. 3 보안솔루션현황및구조
선정한 7개 앱의 보안 모듈 탑재 현황
A 유통 pay B 유통 payB 앱카드A 앱카드A pay
B Pay A pay A 앱카드 B 앱카드 A 유통 pay B 유통 pay C Pay
a c c c d c c
b d d d d i
e f h
자체 보안 g e
자체 보안
보안 솔루션은 루팅 체크, 무결성 체크, 안티 디버깅, 악성코드 검사, 에뮬레이터 체크 등을 수행하였습니다.
B pay C pay
2. 안드로이드와 보안 솔루션
20 / 54
각 보안 모듈의 동작 기능 분석
구분 루팅 체크 무결성 체크 안티 디버깅 악성코드 검사 애뮬레이터 체크
A30** O O O
V** O O
App** O O O O
M** O O O
D** O
Xe** O O
S** O O O
2. 3 보안솔루션현황및구조 2. 안드로이드와 보안 솔루션
21 / 54
APK
Native Lib
RESOURCE
DEX
보안 모듈
앱 제어
검증
SERVER
간편결제 서비스
보안 모듈호출
2. 3 보안솔루션현황및구조 2. 안드로이드와 보안 솔루션
22 / 54
앱 제작사 보안솔루션 제작사
앱 메인 서비스 개발 보안 솔루션 추가
앱 구동 시보안 솔루션 호출
앱 출시
1 요청
2
3
앱 기능 개발 완료 후 탑재되기 때문에 보안 솔루션과 앱이 독립적 동작
2. 3 보안솔루션현황및구조 2. 안드로이드와 보안 솔루션
23 / 54
3. 보안솔루션우회취약점
3.1 검증 결과값 변조를 통한
보안 솔루션 우회 취약점
3.2 보안 솔루션 별 동작 흐름
3.3 보안 솔루션 별 우회 취약점
24 / 54
3. 보안 솔루션 우회 취약점
APK
Native Lib
RESOURCE
DEX
보안 모듈
앱 제어
검증
SERVER
간편결제 서비스
정상 응답 값으로위/변조
3. 1 검증결과값변조를통한보안솔루션우회취약점
보안 모듈호출
독립적으로 동작 가능
25 / 54
APK
Native Lib
RESOURCE
DEX
보안 모듈
앱 제어
검증
SERVER
간편결제 서비스
정상 응답 값으로위/변조
검증 루틴과 상관없이 우회 가능
보안 모듈비호출화
3. 보안 솔루션 우회 취약점3. 1 검증결과값변조를통한보안솔루션우회취약점
26 / 54
4. 보안솔루션보안성강화방안
4.1 토큰을 통한 검증
4.2 DEX 파일 Hash를 통한 무결성 검증
4.3 이중패킹을 통한 패치난이도 상승
4.4 프로젝트 결과
27 / 54
주요 기능 보안 솔루션 서버
클라이언트 서버
보안 솔루션 호출
검증
검증결과 + 토큰(성공 시)
토큰
토큰 + 요청
응답 (토큰이 유효할 때)
1
2
3
4
5
6
토큰 이용
4. 1 토큰을통한검증 4. 보안 솔루션 보안성 강화 방안
28 / 54
DEX 파일 해시 값을 이용한 네이티브 라이브러리 암호화
DEX Native Library
class native_load() {
decode_lib() find_dex()
Hash()
key = Hash()
decode(key)
native_function()
1 호출
2 DEX 로드
.............
3 복호화
4 복호화 종료
5 호출정상 복호화 시정상 실행
}
4. 2 DEX 파일 Hash를통한무결성검증 4. 보안 솔루션 보안성 강화 방안
29 / 54
기존 보안솔루션의 문제점
독립적 동작
애플리케이션 보안솔루션 애플리케이션 보안솔루션
네이티브 함수를 이용한 종속성 부여
분석 난이도 패치 난이도
분석 난이도 증가에만 집중
분석 난이도 패치 난이도
이중 패킹을 통한 패치 난이도 증가
개선 방안
기존 보안 솔루션 문제점 및 개선 방안
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
30 / 54
DEX Native Library
On LoadLoader
OtherActivity
Protected area1(packed)
load1
2
unpacker1
unpack
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
31 / 54
DEX Native Library
On LoadLoader
OtherActivity
unpacker1
Protected area1(unpacked)load1
2
Protected area2(packed)
unpacker2
4
3
unpack
call
unpack
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
32 / 54
DEX Native Library
On LoadLoader
Dependent Function
unpacker1
Protected area1(unpacked)load1
Protected area2(unpacked)
Security Check
Dependent Function
2
unpacker2
4
3
unpack
call
unpack
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
33 / 54
DEX Native Library
On LoadLoader
Dependent Function
unpacker1
Protected area1(unpacked)load1
Protected area2(unpacked)
Security Check
Dependent Function
2
unpacker2
보안 솔루션 비호출화 방지
분석 후 역함수를 구해야 패치가능
4
3
unpack
call
unpack
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
34 / 54
보안 솔루션 네이티브 라이브러리 개발 프레임워크 구현
보안 솔루션 개발 프레임워크
프레임워크 구조
src
lib
패커1&2
src
script
lib 보호대상
메인 코드
libJGG
프레임워크 메인 코드
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
35 / 54
보안 솔루션 네이티브 라이브러리 개발 프레임워크 사용 매뉴얼
애플리케이션 서비스의 특성에 따라 보안 솔루션을 커스터마이징 할 수 있음
1. 준비 사항
2. Custom 네이티브 함수 및JNI_OnLoad시의 액션 추가
3. Packing / unpacking알고리즘 customize
종속성 함수 추가
패킹 / 언패킹 알고리즘 변경
패커1&2
src
script
lib 보호대상
메인 코드
libJGG
프레임워크 구조
4. 3 이중패킹을통한패치난이도상승 4. 보안 솔루션 보안성 강화 방안
36 / 54
보안 솔루션
▪ 검증 결과값 변조를 통한 검증기능 우회 취약점 분석
▪ 보안 솔루션 우회 취약점대응방안 연구
▪ 취약점 연구 및 논문 작성/발표 / 제보 / 리포팅
보안 솔루션 취약점 분석 논문 투고 및 발표, 금보원 취약점 제보
멀티미디어학회 추계학술대회 (포스터)
안드로이드 애플리케이션 네이티브 라이브러리암호화를 통한 무결성 검증 기능 강화에 대한 연구
정보보호학회 동계학술대회 (구두)
안드로이드 보안 솔루션 검증 결과 변조를 통한 기능 우회 취약점의 대응방안 연구
U.U.U 컨퍼런스
안드로이드 애플리케이션보안모듈 분석
SUA Meetup 세미나
Bypass Security Module of Android Application
금융보안원 취약점 제보침해위협분석팀 및 보안평가부
‘검증 결과값 변조를 통한 우회 취약점 분석 보고서’
보안 솔루션 우회 취약점 분석 취약점 및 연구내용 발표
대응 방안 연구
취약점 제보
4. 4 프로젝트결과 4. 보안 솔루션 보안성 강화 방안
37 / 54
보안 솔루션 개발 프레임워크 취약점 보고서 작성, 특허 출원, 프로토타입 구현
보안솔루션 개발프레임워크
▪ 개선방안 도출 및 특허 출원
▪ 현 보안 솔루션 문제점 도출
▪ 보안 솔루션 개발 프레임워크프로토타입 구현
현 보안 솔루션의 문제점 도출 변리사님과의 만남 프로토타입 구현문서 작성
프로토타입 구현문서 작성 개선방안 특허 출원 심사 중(10-2017-0175594)
4. 4 프로젝트결과 4. 보안 솔루션 보안성 강화 방안
38 / 54
Q&A감사합니다
Best of the Best 6기프로젝트 1차보고