모바일폰은 현대를 살아가는 우리에게 없어서는 안 되는 것으로 대다수의 사람이 일상생활을 모바일폰에 완전히 의존하고 있다.
대부분의 모바일폰은 안드로이드 OS에서 실행되는데, 이는 안드로이드 OS에서 배포되는 수많은 애플리케...
더보기
모바일폰은 현대를 살아가는 우리에게 없어서는 안 되는 것으로 대다수의 사람이 일상생활을 모바일폰에 완전히 의존하고 있다.
대부분의 모바일폰은 안드로이드 OS에서 실행되는데, 이는 안드로이드 OS에서 배포되는 수많은 애플리케이션과 개발자 커뮤니티의 증가 덕분이다.
모바일 기기에서만 안드로이드를 사용한다는 생각은 착각이다. 안드로이드 운영체제는 자동차, 카메라, 냉장고, 텔레비전, 게임기, 스마트 워치, 스마트 유리 등 많은 기기에서 일반적으로 사용된다.
이런 무분별한 사용은 위험에서 자유로울 수 없으므로 주요 관심사는 보안이다. 안드로이드 운영체제를 기반으로 하는 애플리케이션이 안전하다고 말할 수 없다. 일반 사용자가 자신이 사용하는 애플리케이션이 악성 프로그램이 아닌지 어떻게 알 수 있겠는가? 또 해커들이 악용할 수 있도록 개발됐는지 알 수 있겠는가? 이것은 해결해야 할 중요한 문제다.
정보보안의 관점에서 99.9%의 안전은 100%의 취약함을 의미한다.
지식은 힘이다. 우리는 보안 연구자 및 개발자로서 최신 공격 방식과 동향을 파악하기 위해 지속적으로 학습하고 연구해야 하며, 이 분야의 미래를 가능한 한 많이 예측해야 한다.
이는 귀중한 리소스와 자료를 더 효율적으로 만들어 내야 하는 끝없는 과정이다.
2011년에 클럽핵(ClubHack) 컨퍼런스에서 이 책의 저자인 아디트야를 처음 만났고, 그곳에서 우리 둘 다 모바일 보안에 관한 발표를 했다. 나는 그가 모바일 보안 분야에서, 실직적으로는 모바일 애플리케이션 평가 분야의 자산임을 얼마 지나지 않아 깨달았다.
이 책은 안드로이드의 기본 정보, 보안 모델, 아키텍처, 권한 모델 및 OS 동작 방식 등 모바일 보안 분야를 입문하는 보안 연구자와 개발자들이 반드시 알아야 할 중요한 정보를 쉽게 읽을 수 있게 집필했다고 생각한다.
이 책에서 언급된 툴은 모바일 보안 커뮤니티와 모바일 보안 연구 업계에서 사용하는 것들이다.
개인적으로 내가 가장 좋아하는 장은 안드로이드 포렌식이 기술된 부분이며 다음과 같다.
● 5장, ‘안드로이드 포렌식’에서 안드로이드 파일시스템에 대해 깊게 살펴보고, 어떻게 파일시스템에서 데이터를 추출하는지 배운다.
● 7장, ‘알려지지 않는 안드로이드 공격’에서 감염 경로와 웹뷰 컴포넌트에 대해 다룬다.
● 8장, ‘RM 익스플로테이션’에서 안드로이드 플랫폼의 ARM 기반 익스플로테이션에 대해 상세히 다룬다.
연구 및 교육 학습 과정을 즐기길 바랍니다!
출판사 서평
★ 이 책에서 다루는 내용 ★
■ 기본적인 안드로이드 보안 구조와 권한 모델
■ 안드로이드 디버그 브리지(adb) 사용법
■ 보안 관점에서의 내부 안드로이드 애플리케이션
■ 안드로이드 애플리케이션 리버싱
■ 안드로이드 기기의 트래픽 분석
■ 안드로이드 포렌식과 데이터 획득 개념
■ OWASP 모바일 탑 10과 콘텐츠 제공자 유출, SQLite 인젝션, 안전하지 않는 데이터 저장, 웹뷰(WebView) 취약점을 포함한 애플리케이션 레벨의 취약점과 익스플로테이션
■ 안드로이드 애플리케이션 감사 프로젝트를 위한 침투 테스팅 보고서 작성
★ 이 책의 대상 독자 ★
안드로이드 보안이나 안드로이드 애플리케이션 감사에 입문하려는 독자를 위한 책이다. 안드로이드 애플리케이션 보안의 가장 기본적인 수준부터 고급 수준까지 다루기 때문에 안드로이드 개발자가 아니어도 괜찮다. 만약 독자가 개발자라면 이 책에서 배운 기술을 이용해 안드로이드 애플리케이션의 취약점을 피하고 보안 코드 작성법을 배울 수 있다.
★ 이 책의 구성 ★
1장, ‘안드로이드 보안 시작’에서는 기본적인 안드로이드 보안 구조에 대해 설명한다. 권한 모델과 애플리케이션의 권한이 적용되는 방법을 다룬다. 또한, 달빅(Dalvik) 가상 환경과 애플리케이션 APK 기본 사항에 대해서도 알아본다.
2장, ‘침투 환경 구성’에서는 안드로이드 침투 테스팅을 위한 환경 구축 과정을 자세히 제공한다. 안드로이드 디버그 브리지와 안드로이드 침투 테스팅에 필요한 중요 툴을 다룬다.
3장, ‘리버싱과 안드로이드 앱 감사’에서는 안드로이드 애플리케이션을 리버싱하는 데에 사용되는 방법과 기술을 다룬다. 안드로이드 애플리케이션 감사를 위해 침투 테스터들에게 도움이 되는 툴을 설명하고 안드로이드 애플리케이션에 존재하는 다양한 종류의 취약점(사용자의 데이터를 위험하게 만드는 것들)을 알아본다.
4장, ‘안드로이드 기기의 트래픽 분석’에서는 안드로이드 기기 애플리케이션의 트래픽 차단을 다룬다. 트래픽을 가로채는 능동적/수동적인 방법과 HTTP/HTTPS 네트워크 트래픽도 알아본다. 안드로이드 플랫폼에서 애플리케이션 감사를 위한 유용한 과정 중 하나인 트래픽 캡처와 서비스 분석 방법도 살펴본다.
5장, ‘안드로이드 포렌식’에서는 안드로이드 포렌식에 대한 기본적인 설명을 시작으로 안드로이드 기반 스마트폰에서 데이터 추출에 대한 다양한 기술을 제공한다. 논리적/물리적인 포렌식 데이터 수집과 데이터 추출 과정을 쉽게 하는 툴도 다룬다.
6장, ‘SQLite 사용’에서는 데이터를 저장하기 위해 안드로이드가 사용하는 SQLite 데이터 베이스에 대해 깊이 있는 지식을 얻을 수 있다. 종종 개발자의 실수로 인해 SQLite 쿼리가 처리되지 않은 입력 값을 받아들이거나 적절한 권한 없이 사용될 경우 인젝션 공격에 이르게 한다.
7장, ‘알려지지 않은 안드로이드 공격’에서는 안드로이드 침투 테스팅에 도움이 되는 알려지지 않은 다양한 기술을 알아본다. 웹뷰(WebView) 취약점과 익스플로테이션(exploitation), 정상적인 애플리케이션의 감염, 크로스 애플리케이션 스크립팅과 같은 주제를 포함한다.
8장, ‘ARM 익스플로테이션’에서는 요즘 대부분의 스마트폰에서 사용 중인 ARM 플랫폼에 대한 익스플로테이션 지식을 소개한다. ARM 어셈블리와 버퍼 오버플로우, Ret2Libc, ROP에 대해서도 배운다.
9장, ‘침투 테스트 보고서 작성’에서는 안드로이드 애플리케이션 감사를 위한 보고서 작성 방법에 대해 간단히 설명한다. 침투 테스팅 보고서의 다양한 요소들을 하나씩 설명하며 직접 침투 테스팅 보고서를 작성할 수 있게 돕는다.