평소에 안드로이드 또는 IOS 모바일 프로그래밍에 관심을 갖은면서
자연스레 보안쪽도 궁금했었는데 지금까지 접하지 못했던
깊이있는 안드로이드 관련 보안안내서를 접하게되어
그동안 안드로이드 보안에 대해 부족했던 부분을 어느정도 해소시킬 수 있었다.
이 책은 가장 밑바닥에서부터 보안 아키텍처를 설명하고
디바이스 및 데이터 보안에 관련된 안드로이드 주요 서브시스템과 컴포넌트들이
어떻게 구현되어 있는지 깊숙이 파고들어 안드로이드가
어떻게 작동하는지 알아보기 때문에
그 동안 안드로이드 내부가 궁금했던 독자라면 안성맞춤의 책이 되지 않을까 생각된다.
또한 패키지 및 사용자관리, 앱 권한 및 디바이스 정책 등
모든 애플리케이션에 영향을 미치는 주제는 물론이고
암호 제공자, 자격증명 저장소, 보안 요소 지원 등
특정 애플리케이션에 영향을 미치는 주제도 다루고 있어
안드로이드 관련 보안에 취약한 사람들에게 맞춤형 안드로이드 보안 지침서가 되어줄 것이다.
비록, 이 책이 유닉스나 리눅스 운영체제 등에 대해 어느 정도 친숙한 사용자를 위주로 다루고 있기는 하지만
기술적 배경이 없는 독자들도 어느정도 이해할 수 있다는 점에서 이 책의 또 다른 매력을 느낄 수 있었다.
하지만 이 책 대부분의 내용이 안드로이드 소스 코드나 시스템 파일에 밀접히 연관되어 있기때문에
유닉스 환경에서의 소프트웨어 개발에 대한 기본적인 개념을 갖고 있는
독자라면 이 책을 이해하는데 더 큰 도움이 될 수 있을 것이라 생각된다.
나의 경우 지금까지 유닉스 및 리눅스 운영을 통해 어느정도 친숙함을 유지하고 있었기에
이책을 학습하는데 큰 어려움은 없었다. 다만 군데군데 자바관련 이야기가 나올때만 쿨럭쿨럭~~~ ^^ㆀ
이 책에서 다루고 있는 안드로이드는 전 세계 스마트폰 시장의 80% 점유율을
차지하고 있고 태블릿에 이어 웨어러블과 임베디드까지 점점 그 범위를 넓혀가고 있다.
이러한 점은 오픈소스이기에 가능했다라는 장점이 있지만 그와 더불어
해커들의 최우선 공격 대상이 되고 있다는 단점도 배제할 수는 없다.
그렇기에 이책에서 다루는 안드로이드 보안에 대한 깊이있는 내용을 학습한다면
앞으로의 안드로이드 위협에 대한 적극적인 방어태세가 되어줄 것이다.
그 동안 모바일 관련 개발자가 아닌 클라이언트로써 안드로이드를 사용해왔는데
이번기회에 안드로이드 내부를 두루 탐험하면서
안드로이드 작동원리에 대해 이해할 수 있었다는 점에서 내가 이 책을 통해 얻은 이점은
크다고 볼 수 있다.
안드로이드 보안을 생각하는 모든 안드로이드 개발자 또는
안드로이드에 모바일에 관심갖고 있는 독자들이
이 책을 통해 안드로이드에 대해 한층 더 깊이있는 지식을 쌓음으로써 그 활용가치를 높여나갔으면
하는 바램이다. ^^
안드로이드 앱/플랫폼 개발자가 알아야 할 종합 보안 안내서
전 세계에서 가장 영향력 있는 모바일 OS인 안드로이드에 대한 관심이 많은 반면, 안드로이드에 대한 보안을 구체적이고 심도있게 다룬 책은 드물었다. 모바일과 보안, 두마리 토끼를 잡기 위한 첫걸음으로서 학습해야 할 MAP을 제시하고 있는 이 책은 리눅스와 프로그래밍 언어를 어느정도 이해해야 읽을 수 있는 수준의 장벽이 존재하지만 그러한 "고귀함"이 책의 가치를 높여주고 있는 듯 하다.
누구나 쓸 수 있고, 누구나 읽을 수 있는 그런 책이 아니다.
안드로이드에 정통하고, 보안을 깊숙히 이해하고 있는 니콜라이 옐렌코프라는 사람을 통해 비로소 쓰여질 수 있었고, 읽을 수 있는 자격을 갖춘 사람만이 제대로 이해할 수 있는 "안드로이드 시큐리티 인터널"을 통해 고귀한 안드로이드 보안에 대한 귀중한 지식을 학습하도록 한다. 하지만, 안드로이드를 모른다고 보안에 대해 아는 게 없다고 걱정할 필요는 없다.
이 책을 통해 안드로이드와 보안에 대해 관심을 가지게 되면 그걸로 충분히 가치가 있으며, 이 책은 안드로이드 보안을 이해하기 위해 공부해야 할 학습목표들을 충분하고 효율적으로 제안하고 있기 때문이다. 의심하지 말고, 주저하지 말고 이 책의 학습목표대로 공부해 나가면 된다.
이 책은 13개의 장으로 이루어져 있으며, 크게는 2개의 부분으로 나누어 볼 수 있겠다.
1장 안드로이드 보안 모델, 2장 권한, 3장 패키지 관리는 안드로이드 아키텍처 및 보안 모델에 대해 소개하고 있으며, 이 책을 읽기 위한 토대가 된다. 4장 사용자 관리는 안드로이드의 다중 사용자 기원을 알아보고, 다중 사용자 디바이스에서 데이터 격리를 어떻게 구현하는지 설명하고 있다. 5장 암호 제공자에서는 자바 암호화 아키텍처를 살펴보고 안드로이드의 JCA 암호화 제공자에 대해 설명하고 있다.
6장 네트워크 보안과 PKI 에서는 자바 보안 소켓 활장 프레임워키의 구조를 소개하고 안드로이드에서 구현한 방식에 대해 자세히 설명하고 있다. 7장 자격증명 저장소는 안드로이드의 자격증명 저장소에 대해 알아보고 암호 키를 안전하게 저장해야 하는 앱에 제공하는 API를 소개하고 있다. 8장 온라인 계정 관리는 안드로이드의 온라인 계정 관리 프레임워크를 설명하고 구글 계정 지원이 어떻게 안드로이드에 통합되어 있는지 보여준다.
9장 기업 보안에서는 안드로이드의 디바이스 관리 프레임워크를 설명하고 VPN 지원 기능이 어떻게 구현되어 있는지 안드로이드에서 확장 가능 인증 프로토콜을 어떻게 지원하는지 설명하고 있다. 10장 디바이스 보안은 검증된 루트, 디스크 암호화, 안드로이드 잠금 화면 구현에 관해 설명하고 안전한 USB 디버깅과 암호화된 디바이스 백업을 어떻게 구현했는지 보여준다. 11장 NFC와 보안요소는 안드로이드의 NFC 스텍의 전반적인 구조를 알아보고, 보안 요소의 통합과 관련 API에 대해 자세히 알아본 후 호스트 기반 카드 에뮬레이션에 대해 간략히 소개하고 있다. 12장 SELinux는 SELinux의 아키텍처와 정책 언어에 대해 간략히 소개하고, 안드로이드에 통합하기 위해 SELinux를 변경한 부분을 자세히 설명한 후, 안드로이드의 기반 SELinux 정책을 살펴본다.
끝으로, 13장 시스템 업데이트와 루트 접근에서는 전체 시스템을 업데이트하기 위해 안드로이드에서 부트로더와 복구 OS를 어떻게 사용하는지 설명하고 안드로이드의 엔지니어링 빌드와 프로덕션 빌드에서 어떻게 루트에 접근하는지 자세히 설명하고 있다.
이 책이 안드로이드 보안 아키텍처에 대해 배우고자 하는 누구에게나 도움이 될 것이며, 각 보안 기능에 대한 개념적인 설명과 구현 수준의 설명은 보안을 연구하는 연구원과 개발자 모두에게 소스코드의 깊은 이해와 아키텍처를 조망해볼 수 있는 식견을 갖추도록 기틀을 마련해 줄 것으로 생각된다.
안드로이드와 소스코드를 이해하고, 시스템 파일의 구현을 이해하기 위해서는 유닉스 환경에서의 소프트웨어 개발 지식이 필요하지만...
뭐 어떠랴? 기본적인 개념을 이 기회에 갖춰서 안드로이드에 대해 공부하면 될 것이다.
초심자라고 생각하는 사람들은 1장~3장에서 안드로이드 앱의 기본 구조와 핵심 컴포넌트에 대해 설명하고 있으므로 이 부분에 집중해서 더 읽어보도록 한다.
PC도 잘 모르는데 모바일에 대해 공부하는 건 더욱 어렵고 소원한 일이 아닐까 겁부터 먹는 사람이 많고 나도 그 중에 하나였다.
하지만 IoE의 시대에 살며 셀 수도 없이 많은 디바이스와 소프트웨어를 사용하며 사는 우리에게 모바일은 그저 소형화된 PC 일 뿐이다.
PC에서 재공했던 많은 서비스와 오프라인으로 향유하던 많은 가치들은 모바일 영역으로 옮겨지며 가상화된 공간에서 우리에게 새로운 가치를 제공할 것이다.
시간이 없다면 차라리 모바일을 공부하자.
내 손안의 작은 세상에서 이제 모든 중대한 선택이 결정될 것이며, 내 가장 중요한 정보는 이제 PC가 아니라 모바일에 담겨 있을 것이다.
안전한 PC관리도 중요하지만 안전한 핸드폰 관리가 더 중요한 세상이 오고 있다.
근래 보이스피싱 스미싱 등 금융사기에 당하는 사람들을 "어휴, 세상 물정 모르는 사람이라 그래" 라고 치부하며 핀잔을 주는 사람도 있다.
하지만. 몰라서 당하는 걸까? 아니다. 금융사기를 당할 수 밖에 없는 환경에서 "설마 내가.."라는 안이함을 가진 사람을 사기범이 파고들어 생기는 범죄이다.
안전하지 않은 모바일 환경에서 "설마 내 폰이..."라는 안이함은 먹잇감을 노리는 해커의 악성코드가 파고들기에 안성맞춤인 환경이다.
우리는 언제나 어디에서든 표적이 될 수 있다. 아직 안전할 수 있는 해결책이 없는 환경에서 진짜 해결책을 찾기 위해 우리는 공부해야 한다.