보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

모바일 보안위협과 대응방안

2019.04.03

11,007

 

 

 

 

1. 개요

 

알람 소리에 눈을 뜨고, 출근길에 뉴스기사를 보고, 잠들기 전에 SNS를 하는 행동들은 우리가 흔히 하는 행동패턴들이다. 아침에 눈뜨면서 저녁에 잠들기까지 하루의 모든 활동이 모바일 기기를 중심으로 이뤄지고 있다고 해도 과언이 아니다. 이동통신업체 SKT가 ‘바른ICT연구소’의 연구자료를 재구성한 내용에 따르면 2017년 6월 27일부터 일주일간 6천여 명의 인터넷 사용량의 분석결과는 이러한 내용을 뒷받침 해주고 있다.

 

연령별 인터넷 주당 사용시간을 분석한 결과 20대를 제외한 전 연령층에서 여전히 모바일 보다는 PC사용량이 높았으나 주 연령대인 20대에서는 평균 모바일 사용시간이 4시간 인 것으로 확인되었다. 직장인이 대부분인 30~40대에서도 20대에 비해서는 낮지만 주간 평균 2~3시간의 모바일 사용량을 보이고 있었다.

 

‘가장 밝은 빛은 가장 어두운 그림자를 만들어 낸다’는 말처럼 모바일 기반의 사용량 증가는 새로운 보안위협의 문제를 야기시키고 있다. 개인 모바일 기기를 이용해 기업데이터 접근을 통한 데이터 유출, 소셜 엔지니어링, Wi-Fi로 인한 사고, 업데이트 되지 않은 디바이스로 인한 문제, 물리적 기기의 분실 등 다양한 보안문제들이 발생되고 있다. 

이에 따라 이번 호에서는 모바일 보안위협과 대응방안에 대해서 살펴보고자 한다.

 

 

2. 모바일 운영체제의 양대산맥 : Android와 iOS

 

글로벌 통계기업인 Statcounter의 ‘2018년 Mobile Operating System Market Share Worldwide’수치를 통해서 모바일 운영체제는 Android(74.45%)와 iOS(22.85%)로 나뉠 수 있다.

 

 

 

모바일 운영체제는 제조사에 따라 플랫폼 운영 방식부터 권한 관리까지 상반되는 운영방침을 가지고 있다. Android가 개방형 플랫폼 환경을 통해 자유로운 개발환경을 보장하는 한편, iOS는 폐쇄적인 플랫폼 환경을 통해 사용자의 권한을 최소화하여 상대적으로 보안성 강화에 초점을 맞추고 있다.

 

 

구분

Android

iOS

Openness

개방형 소스 플랫폼

비 개방형 소스 플랫폼

Trusted Computing System

Linux Kernel Core Libraries

XUN Kernel Core Libraries

Trusted Programming Language Used

Java

Objective-C

Core Applications

루트 권한으로 실행

Application Process

Sandbox식 격리, 자신의 메모리 영역에서 실행

Application Permissions

서명 확인 및 사용자 승인

서명 확인

File Data Protection

암호화 키 사용

File Sharing(Default)

권한 부여 하에 가능

할 수 없음

Device Security

사용자 비밀번호 및 원격조정 삭제 가능

 

[표 1] Android와 iOS의 특징 비교 (출처 : KISA)

 

 

3. 모바일 보안위협

 

보안위협이 발생하는 주요 원인은 휴대성에 비해 모바일 기기 내에서 접근 및 사용되는 데이터의 범위가 확장 되었다는데 기인할 수 있다. 모든 보안위협의 가치를 수치로 표현할 수는 없으나 취약점의 구매 단가를 통해서 일부 유추가 가능하다. RCE(Remote Code Execution)나 RJB(Remote Jailbreak with Persistence)와 같은 하이퀄리티 취약점이나 익스플로잇의 구매 및 판매를 하는 ZERODIUM을 통해서 이러한 수치가 제공될 수 있다.

 

Desktop이나 Server 취약점의 최고 매입가는 100만 달러(한화 약 11억)정도인 것에 반해 Mobile 취약점의 최고 매입가는 이보다 2배인 200만 달러(한화 약 22억)정도로 나타났다. 결국 취약점의 매입가를 통해서 모바일 환경에서 얻을 수 있는 이득이 기존의 Desktop이나 Server에 비해서 좀 더 중요도가 높아졌다는 것을 수치적으로 확인할 수 있다. 

 

그렇다면 모바일 환경에서 발생할 수 있는 위험도와 가치에 대해서 살펴보았으니 본격적으로 모바일 보안위협에 대해서 살펴보자.

 

 

[그림 2] 환경 별 취약점 매입 가격 비교 (좌) Desktops/Server (우) Mobile (출처 : ZERODIUM)

 

 

모바일 환경에서 발생할 수 있는 보안위협은 크게 4가지로 분류 할 수 있다. General Cyber Security Threats, Network Security Threats의 경우 Desktop이나 Server 환경에서도 자주 볼 수 있는 보안위협이지만 Device Arbitrary Modification의 Rooting, Jailbreak나 단말기 분실로 인해 야기되는 보안위협 등은 소형화, 경량화된 모바일 환경에서 볼 수 있는 새로운 보안위협의 종류이다.

 

 

구분

공격유형

공격 시나리오

General Cyber Security Threats

Social Engineering

DBD(Drive By Download)

Browser/OS Flaws

Social Engineering(Phishing, 악성메일 등)을 통해 악성코드 유포 시도
Browser/OS Flaws와 같이 일반적인 소프트웨어 취약점을 이용한 공격 시도

Device Arbitrary Modification

Rooting, Jailbreak

APK Decompile

Recompile

Rooting, Jailbreak등 정상적인 사용자 권한 이상의 권한을 이용하여 모바일 디바이스의 무결성 훼손
단말 내 인증 및 암호화 키 노출
APP의 위·변조를 통해서 APP기능 분석 및 중요정보 유출

Network Security Threats

Network Exploits

Wi-fi Sniffing

Cross-platform Attacks

중간자 공격(MITM)을 통해서 서버와 단말기 상에서 주고 받는 중요정보 변조 및 유출
인증 정보 및 서비스 범주 이외의 정보 수집

Physical Threats

Loss / Theft

단말기 분실로 인한 정보 유출

 

[표 2] 모바일 환경의 보안위협 분류

 

 

‘무결성(Integrity)’은 적절한 권한을 가진 사용자에 의해 인가된 방법으로만 정보를 변경 할 수 있는 것을 의미하기 때문에 모바일 환경에서도 중요한 항목이다. 애플이나 앱 스토어는 디바이스의 보호를 위해 제한된 컨텐츠만 접근할 수 있지만 루팅(Rooting)이나 탈옥(Jailbreak)된 환경에서는 접근 가능한 권한 범위가 확대되게 된다. 그렇기 때문에 모바일 앱에서는 루팅이나 탈옥여부를 검사하는 기능을 통해서 정상적이지 않은 디바이스환경에서 앱이 실행되지 않도록 제어하고 있다.

 

 

 

[그림 3] Android환경에서 설치된 앱에서 루팅 탐지기능이 실행된 화면

 

 

루팅이나 탈옥으로 임의 개조된 디바이스는 정보탈취용 악성 앱이나 분실로 인해 Android Intent, Platform Permission, 메모리 덤프, 백도어 등을 통해서 의도하지 않은 데이터 유출로 이어질 수 있다.

 

 

[그림 4] 임의 개조된 디바이스

 

 

다음으로 많이 발생하는 보안위협은 앱 접근권한 동의여부에 따른 문제이다. Android 6.0이상, iOS에서는 접근권한이 설정된 정보가 앱 설치를 위해 최초 접근 시에 동의화면이 나오도록 설정되게 된다.(Android 6.0미만인 경우 개별적 선택이 불가하기 때문에 개발 시에 필수적 접근권한만 설정 필요)

 

디바이스가 임의 개조 되지 않은 상태에서 악의적인 행위가 수행되기 위해서는 정보유출에 필요한 권한에 접근하기 위해 사용자가 권한을 선택할 수 있도록 MDM 등으로 위장하여 유포되는 악성 앱 들이 대표적인 사례라고 볼 수 있다.

 

 

4. 모바일 보안위협 대응방안

 

모바일 보안위협을 대응하기 위해서 △모바일 보안위협을 위한 컴플라이언스 준수, △모바일 보안솔루션을 통한 보안 강화, △소스코드 난독화를 통한 보안 강화, △사용자 보안의식 함양 등이 있다.

 

1) 모바일 보안위협을 위한 컴플라이언스 준수

 

먼저 ‘모바일 보안위협을 위한 컴플라이언스 준수’다. 모바일 보호를 위해서 행정안전부, 방송통신위원회, 국정원, 금융감독원, 과학기술정보통신부 등 다수의 기관에서는 다양한 정부 정책을 통해서 보안강화 방안을 수립하고 있다. 스마트워크 활성화 추진전략, 국가-공공기관 업무용 스마트 폰 보안 규격 제정, 분실 및 도난 피해 방지를 위한 국내 제조 스마트 폰 킬 스위치(Kill Switch) 의무 탑재 정책, MDM 솔루션의 CC인증 의무화 등이 대표적인 예라고 할 수 있다.

 

정부기관에서는 정책 수립 뿐만 아니라 ‘스마트워크 정보보호 가이드라인’, ‘모바일 전자정부 보안 가이드라인’등을 통해서 이용자 단말보안, 네트워크 보안, 업무시스템 보안, 정보처리시스템 보안, 관리적 보안 등에 대한 보다 구체적인 적용방안 등의 가이드 라인을 제공하고 있다.

 

 

2) 모바일 보안솔루션을 통한 보안 강화

 

정책과 가이드라인을 실제 모바일 환경에 적용하고 대응절차를 구현하기 위해서 가장 많이 사용되고 있는 방식이 바로 ‘모바일 보안솔루션을 통한 보안강화’방안이다. 이를 위해서는 MDM(Mobile Device Management)에 대한 이해가 필요하다.

 

MDM이란 기업 업무환경에서 스마트 폰, 태블릿, 휴대용 컴퓨터 등 모바일 기기를 보호하고 관리, 감시하는 솔루션을 의미한다. 일반적으로 모바일 기기에 사용자를 등록하여 사용자 인증 후에 해당 기기를 사용할 수 있도록 하거나 특정 서비스를 활성화시켜 안전하게 모바일 기기를 사용할 수 있는 보안기능을 제공하는 용도로 사용된다.

 

IT환경의 복잡성으로 인해 모바일 환경이 다양한 컴플라이언스의 요구를 수용하면서 소프트웨어 배포, 정책관리, 자산관리, 보안 관리, 서비스 관리 등의 기능을 제공하던 MDM은 EMM(Enterprise Mobility Management), UEM(Unified Endpoint Management) 형태로 발전되어 왔다. 

 

MDM의 기능을 바탕으로 모바일의 어플리케이션, 신원관리, 컨텐츠 관리, 비용관리 등 목적에 따라서 MAM(Mobile Application Management), MCM(Mobile Content Management), MIM(Mobile Identity Management), MIM(Mobile Information Management), MEM(Mobile Expense Management)등으로 세분화된 기능이 선택적으로 사용되고 있다.

 

 

 

 

[그림 5] 모바일 보안솔루션의 기능별 구조 (출처 : 42 Gears Mobility Systems)

 

 

3) 소스코드 난독화를 통한 보안 강화

 

솔루션을 이용한 방법 이외에 모바일 보안의 컴플라이언스를 준수할 수 있는 방법은 모바일 디바이스에서 실행되는 모바일 앱의 소스코드를 난독화하여 앱 자체의 보안성을 강화하는 방식이다. 난독화 되지 않은 앱의 경우 Decompile이나 Reverse Engineering 등 역분석 기술을 통해 앱의 로직 분석이나 정보 유출이 될 수 있기 때문에 난독화 기법은 반드시 수행해야 하는 기능 중 하나다.

 

소스코드 난독화는 크게 정적 난독화와 동적 난독화로 구분된다. 정적 난독화는 클래스명, 함수명, 변수명 등을 난독화 하여 코드분석을 어렵게 하는 방식이고 동적 난독화는 코드가 암호화되어 저장되어 정적분석이 제한되며 암호화된 코드는 앱 실행 시에 메모리에 의미한다.

 

 

정적 난독화

동적 난독화

 
​(좌) 난독화 전, (우) 난독화 후

 

 ​(좌) 난독화 전, (우) 난독화 후

 

 

[표 3] 정적 난독화와 동적 난독화 비교

 

 

소스코드 정적 난독화 도구는 aliprotect, apkprotect, appguard, dexguard, dxshield, tencentpacker 등이 있다. 정적 난독화 도구의 난독화 기술을 분석한 ‘Tackling runtime-based obfuscation in Android with TIRO’에 따르면 이들 도구는 Reflection, Dynamic hooking, Native code, DEX file hooking, Class data Overwriting, ArtMethod hooking, Instruction hooking, Instruction overwriting의 8가지 기능들로 분류되고 있다. 

 

Android 정적 소스코드 난독화 도구 중 하나인 ProGuard와 DexGuard를 비교하면 이러한 차이를 쉽게 알 수 있다. ProGuard에서는 클래스나 함수의 이름 난독화 수준 정보만 지원하지만 유료버전인 DexGuard에서는 Dex파일 분할이나 클래스 암호화, Native Code 난독화 등의 다양한 난독화 기술을 지원하는 것을 알 수 있다.

 


 

[그림 6] Deobfuscation results (출처 : Tackling runtime-based obfuscation in Android with TIRO)

 

 

따라서 ProGuard를 적용하였다고 하더라고 분석의 시작점이 될 수 있는 MainActivity()의 노출이나 APK파일 내의 리소스 파일들을 볼 수 있기 때문에 일부에서는 ProGuard를 적용한 경우에는 소스코드 난독화라고 보지 않는 경우도 있다. 결국 소스코드 정적 난독화 도구라고 해서 다수의 난독화 기법들이 지원되는 것이 아니기 때문에 모바일 앱의 민감도나 중요도에 따라서 적절한 난독화 도구 선택이 중요하다.

 


 

[그림 7] ProGuard(무료버전), DexGuard(유료버전) 지원기술 비교

 

 

4) 사용자 보안의식 함양

 

마지막으로 중요한 것은 모바일 디바이스를 사용하는 사용자의 보안의식 함양에 있다. 모바일 보안위협에 대응하기 위한 보안 컴플라이언스, 솔루션, 난독화 기술을 사용하더라도 사용자의 보안의식이 뒷받침 되지 않는다면 무용지물이 되기 때문이다.

 

기본적인 보안이 지켜지지 않을 경우, 결국 더 큰 사고로 이어질 수 있기 때문에 모바일 보안을 위해 아래 5가지의 사용자 지침 준수가 반드시 필요하다.

 

 


 

 

 

 

5. 참고자료

 

[1] Advanced Mobile Malware Campaign in India uses Malicious MDM

https://blog.talosintelligence.com/2018/07/Mobile-Malware-Campaign-uses-Malicious-MDM.html

[2] Tackling runtime-based obfuscation in Android with TIRO

https://security.csl.toronto.edu/wp-content/uploads/2018/06/mwong-usenixsec2018-tiro.pdf