안드로이드 보안과 침투 테스팅 [안드로이드 공격 요소 실습부터 침투 보고서 작성법까지]
- 원서명Learning Pentesting for Android Devices (ISBN 9781783288984)
- 지은이아디트야 굽타(Aditya Gupta)
- 옮긴이김예솔
- ISBN : 9788960778269
- 15,000원
- 2016년 02월 19일 펴냄 (절판)
- 페이퍼백 | 160쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 해킹과 보안
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
이 책은 기본적인 안드로이드 보안 개념부터 침투 테스팅과 안드로이드 감사까지 다루는 실용적인 실무 가이드다. 기본적인 안드로이드 보안을 시작으로 권한 모델과 리눅스 샌드박싱, DVM을 다룬다. 보안 취약점을 찾기 위해 수동 분석과 자동화된 툴을 사용해 보안관점에서의 내부 안드로이드 애플리케이션과 리버싱, 보안 감사도 함께 다룬다. 또한, 안드로이드 애플리케이션의 동적 분석과 더불어 기기와 애플리케이션의 익스플로테이션, 감사 프로젝트를 위한 침투 테스팅 보고서 작성도 배운다.
추천의 글
모바일폰은 현대를 살아가는 우리에게 없어서는 안 되는 것으로 대다수의 사람이 일상생활을 모바일폰에 완전히 의존하고 있다.
대부분의 모바일폰은 안드로이드 OS에서 실행되는데, 이는 안드로이드 OS에서 배포되는 수많은 애플리케이션과 개발자 커뮤니티의 증가 덕분이다.
모바일 기기에서만 안드로이드를 사용한다는 생각은 착각이다. 안드로이드 운영체제는 자동차, 카메라, 냉장고, 텔레비전, 게임기, 스마트 워치, 스마트 유리 등 많은 기기에서 일반적으로 사용된다.
이런 무분별한 사용은 위험에서 자유로울 수 없으므로 주요 관심사는 보안이다. 안드로이드 운영체제를 기반으로 하는 애플리케이션이 안전하다고 말할 수 없다. 일반 사용자가 자신이 사용하는 애플리케이션이 악성 프로그램이 아닌지 어떻게 알 수 있겠는가? 또 해커들이 악용할 수 있도록 개발됐는지 알 수 있겠는가? 이것은 해결해야 할 중요한 문제다.
정보보안의 관점에서 99.9%의 안전은 100%의 취약함을 의미한다.
지식은 힘이다. 우리는 보안 연구자 및 개발자로서 최신 공격 방식과 동향을 파악하기 위해 지속적으로 학습하고 연구해야 하며, 이 분야의 미래를 가능한 한 많이 예측해야 한다.
이는 귀중한 리소스와 자료를 더 효율적으로 만들어 내야 하는 끝없는 과정이다.
2011년에 클럽핵(ClubHack) 컨퍼런스에서 이 책의 저자인 아디트야를 처음 만났고, 그곳에서 우리 둘 다 모바일 보안에 관한 발표를 했다. 나는 그가 모바일 보안 분야에서, 실직적으로는 모바일 애플리케이션 평가 분야의 자산임을 얼마 지나지 않아 깨달았다.
이 책은 안드로이드의 기본 정보, 보안 모델, 아키텍처, 권한 모델 및 OS 동작 방식 등 모바일 보안 분야를 입문하는 보안 연구자와 개발자들이 반드시 알아야 할 중요한 정보를 쉽게 읽을 수 있게 집필했다고 생각한다.
이 책에서 언급된 툴은 모바일 보안 커뮤니티와 모바일 보안 연구 업계에서 사용하는 것들이다.
개인적으로 내가 가장 좋아하는 장은 안드로이드 포렌식이 기술된 부분이며 다음과 같다.
● 5장, ‘안드로이드 포렌식’에서 안드로이드 파일시스템에 대해 깊게 살펴보고, 어떻게 파일시스템에서 데이터를 추출하는지 배운다.
● 7장, ‘알려지지 않는 안드로이드 공격’에서 감염 경로와 웹뷰 컴포넌트에 대해 다룬다.
● 8장, ‘RM 익스플로테이션’에서 안드로이드 플랫폼의 ARM 기반 익스플로테이션에 대해 상세히 다룬다.
연구 및 교육 학습 과정을 즐기길 바랍니다!
-엘라드 샤피라(Elad Shapira) / 모바일 보안 연구원
이 책에서 다루는 내용
■ 기본적인 안드로이드 보안 구조와 권한 모델
■ 안드로이드 디버그 브리지(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장, ‘침투 테스트 보고서 작성’에서는 안드로이드 애플리케이션 감사를 위한 보고서 작성 방법에 대해 간단히 설명한다. 침투 테스팅 보고서의 다양한 요소들을 하나씩 설명하며 직접 침투 테스팅 보고서를 작성할 수 있게 돕는다.
목차
목차
- 1장 안드로이드 보안 시작
- 안드로이드 개론
- 안드로이드 자세히 알아보기
- 샌드박스와 권한 모델
- 애플리케이션 서명
- 안드로이드 시작 프로세스
- 요약
- 2장 침투 환경 구성
- 개발 환경 구성
- 안드로이드 가상 기기 만들기
- 안드로이드 침투 테스팅에 유용한 유틸리티
- 안드로이드 디버그 브리지
- Burp Suite
- APKTool
- 요약
- 개발 환경 구성
- 3장 리버싱과 안드로이드 앱 감사
- 안드로이드 애플리케이션의 APK 구성 요소
- 안드로이드 애플리케이션 리버싱
- Apktool을 이용한 안드로이드 애플리케이션 리버싱
- 안드로이드 애플리케이션 감사
- 콘텐츠 제공자 유출
- 취약한 파일 저장 장치
- 경로 탐색 취약점 또는 로컬 파일 포함
- 클라이언트 측의 인젝션 공격
- 모바일 OWASP 탑 10 취약점
- 요약
- 4장 안드로이드 기기의 트래픽 분석
- 안드로이드 트래픽 가로채기
- 안드로이드 트래픽을 분석하는 방법
- 수동 분석
- 능동 분석
- HTTPS 프록시 가로채기
- SSL 트래픽을 가로채는 또 다른 방법
- 패킷 캡처로 민감한 파일 추출
- 요약
- 5장 안드로이드 포렌식
- 포렌식의 종류
- 파일시스템
- 안드로이드 파일시스템 파티션
- 데이터 추출을 위한 dd 툴 사용하기
- 사용자 정의 복구 이미지 사용하기
- Andriller를 이용한 애플리케이션의 데이터 추출
- AFLogical을 이용한 연락처와 통화 내역, 문자 메시지 추출
- 수동으로 애플리케이션 데이터베이스를 덤프하기
- Logcat 로깅
- Backup을 이용한 애플리케이션의 데이터 추출
- 요약
- 6장 SQLite 사용
- SQLite 자세히 알기
- SQLite를 이용한 간단한 애플리케이션 분석
- 보안 취약점
- 요약
- SQLite 자세히 알기
- 7장 알려지지 않은 안드로이드 공격
- 안드로이드 웹뷰 취약점
- 애플리케이션에서 웹뷰 사용
- 취약점 식별
- 합법적인 APK 감염시키기
- 광고 라이브러리 취약점
- 안드로이드 크로스 애플리케이션 스크립팅
- 요약
- 안드로이드 웹뷰 취약점
- 8장 ARM 익스플로테이션
- ARM 구조 소개
- 실행 모드
- 환경 설정
- 스택 기반의 버퍼 오버플로우
- 리턴 지향 프로그래밍
- 안드로이드 루팅 익스플로잇
- 요약
- ARM 구조 소개
- 9장 침투 테스트 보고서 작성
- 침투 테스팅 보고서의 기본 사항
- 침투 테스팅 보고서 작성
- 내용 요약
- 취약점
- 작업 범위
- 사용된 툴
- 테스팅 방법론
- 해결 방안
- 결론
- 부록
- 요약