책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > OS/Networking > 네트워크 보안/해킹
· ISBN : 9788960775640
· 쪽수 : 532쪽
책 소개
목차
1장 안드로이드의 기본 개념
1.1 안드로이드 아키텍처
___1.1.1 리눅스 커널
___1.1.2 라이브러리
___1.1.3 안드로이드 런타임
___1.1.4 애플리케이션과 프레임워크
___1.1.5 디바이스 파일 디렉터리 구조
1.2 안드로이드 필수 구성 요소
___1.2.1 액티비티
___1.2.2 서비스
___1.2.3 콘텐트 프로파이더
1.3 안드로이드 앱의 기본 구조
1.4 정리
2장 안드로이드 앱 진단 환경
2.1 안드로이드 환경 구축
___2.1.1 안드로이드 SDK설치
___2.1.2 ADK 설치
___2.1.3 안드로이드 개발 환경 테스트
___2.1.4 리눅스에 안드로이드 환경 구축
2.2 패킷 분석 점검 환경 구축
___2.2.1 무선 공유기(무선AP)를 이용한 정보 수집
___2.2.2 USB 타입 지원 AP(게이트웨이 지원)를 이용한 정보 수집
___2.2.3 애드혹 설정을 이용한 정보 수집
___2.2.4 tcpdump 바이너리를 이용한 정보 수집
2.3 디바이스 플랫폼 변경
___2.3.1 공격 코드를 통해 알아보는 루팅
___2.3.2 테그라크 커널 이용
___2.3.3 CF-Auto-Root 이용
2.4 안드로이드 진단 도구 설명
___2.4.1 ADB 기본 명령
___2.4.2 디바이스에서 apk 파일 보내기/가져오기
______2.4.2.1 adb shell을 이용해 가져오기
______2.4.2.2 탐색기를 통해 가져오기
___2.4.3 로그캣을 이용한 분석
______2.4.4 pm 명령을 이용한 디바이스 정보 획득
______2.4.5 Busybox를 이용한 안드로이드 명령 확장
2.5 에디터를 이용한 파일 포맷 분석
2.6 정리
3장 안드로이드 앱 분석 방법
3.1 디컴파일을 이용한 정적 분석
3.2 동적 디버깅을 통한 분석
3.3 코드 패칭을 이용한 apk 파일 우회
3.4 안드로가드를 이용한 분석
___3.4.1 Androapkinfo를 이용한 정보 확인
___3.4.2 Androxml을 이용한 바이너리 XML 확인
___3.4.3 Androlyze를 이용한 분석
___3.4.4 Androdd를 이용한 apk 파일 구조 확인
___3.4.5 Androdiff와 Androsim을 이용한 파일 비교
3.5 DroidBox를 이용한 자동 분석
___3.5.1 adb 명령을 path로 설정
___3.5.2 안드로이드 SDK Manager를 이용해 Packages 업데이트
3.6 Sublime 플러그인을 이용한 분석
3.7 APKInspector를 이용한 분석
3.8 dexplorer와 dexdump를 이용한 분석
3.9 Santoku를 활용한 모바일 앱 분석
___3.9.1 산토쿠 진단 도구
___3.9.2 산토쿠 실행과 설치 방법
___3.9.3 산토쿠에서 모바일 앱 리버싱
3.10 정리
4장 악성코드 분석
4.1 온라인 분석 서비스 활용
___4.1.1 Anubis를 이용한 악성 앱 분석
___4.1.2 바이러스토탈 서비스를 이용한 악성 앱 분석
___4.1.3 바이러스토탈 앱을 이용한 진단
___4.1.4 andrototal을 이용한 진단
___4.1.5 apkscan 앱을 이용한 진단
___4.1.6 Dexter를 이용한 진단
___4.1.7 APK Analyzer를 이용한 진단
4.2 악성코드 앱 수동 분석
___4.2.1 smartbilling.apk 악성코드 분석(디바이스 정보 획득)
___4.2.2 alayac.apk 악성코드 분석(백신 앱 변조)
___4.2.3 miracle.apk 악성코드 분석(디바이스 정보 전송)
___4.2.4 phone.apk 악성코드 분석(금융 앱 변조)
___4.2.5 apk-locker를 이용한 사례
4.3 악성코드 위협 사용자 대응
___4.3.1 의심스러운 URL 클릭과 다운로드 금지
______4.3.1.1 스미싱 차단 앱 설치
___4.3.2 모바일 백신 설치와 최신 업데이트 유지
___4.3.3 불필요한 무선 인터페이스 사용 중지
___4.3.4 플랫폼 구조 임의 변경 금지
___4.3.5 삼성 녹스(SE Android 기반) 이용한 보안
4.4 정리
5장 안드로이드 모바일 서비스 진단
5.1 가상 취약점 진단 테스트 환경 구성
5.2 OWASP TOP 10 기준 모바일 보안 위협
5.3 안전하지 않은 데이터 저장
___5.3.1 가상 애플리케이션 실습
___5.3.2 /data/data/ 디렉터리 확인
___5.3.3 대응 방안
5.4 취약한 서버 측 제어
___5.4.1 가상 애플리케이션 실습
5.5 취약한 암호 사용
5.6 불충분한 전송 계층 보호(비암호화 통신)
___5.6.1 SSL/TLS을 이용한 암호화
5.7 소스코드 내의 정보 노출
5.8 중요한 정보 노출
___5.8.1 메모리 내의 중요 정보 노출
___5.8.2 가상 애플리케이션 실습
5.9 로그 정보 노출
5.10 웹 서비스 취약점 항목 진단
5.11 앱 대응 방안: 소스코드 난독화
___5.11.1 프로가드
___5.11.2 프로가드에서 키 생성
___5.11.3 프로가드 설정
___5.11.4 프로가드로 생성된 파일 설명
___5.11.5 프로가드의 결과물
5.12 정리
6장 안드로이드 진단 도구 활용
6.1 PacketShark: 네트워크 패킷 캡처 앱
6.2 Drozer 모바일 진단 프레임워크
6.3 ASEF - 모바일 취약점 도구
___6.3.1 apk 파일 설치를 통한 점검
6.3.2 디바이스 apk 파일 점검
6.4 Droidsheep: 웹 세션 하이재킹 도구
6.5 dSploit: 네트워크 진단 도구
___6.5.1 포트 스캔 작업
___6.5.2 정보 획득
___6.5.3 로그인 체크
___6.5.4 중간자 정보 획득(MITM) 공격
6.6 AFLogical: 모바일 포렌식 도구
6.7 정리
7장 안드로이드 해킹대회 앱 문제 풀이
7.1 안드로이드 앱 문제 1
___7.1.1 문제 제시와 의도
___7.1.2 문제 풀이
7.2 안드로이드 앱 문제 2
___7.2.1 문제 제시와 의도
___7.2.2 문제 풀이
7.3 안드로이드 앱 문제 3
___7.3.1 문제 제시와 의도
___7.3.2 문제 풀이
7.4 안드로이드 앱 문제 4
7.5 정리
책속에서
★ 저자 서문 ★
어느덧 모바일이 없으면 어색한 세상이 됐다. 나도 업무를 할 때나 집에서 문서 작업을 할 때 외에는 모바일로 정보를 검색하고, 커뮤니티를 관리하고, 소셜 네트워크를 이용해 사람들과 대화한다. 오늘날 모바일 서비스의 사용 시간은 PC 데스크탑 사용 시간을 앞선다. 출퇴근 시간이나, 사람들을 만나기 위해 기다리는 시간 등, 사람들을 만나는 중에도 모바일 기기를 손에 놓지 않는 것이니 어찌 보면 이전보다 배 이상 인터넷을 사용하는 것이라 할 수 있다.
PC 데스크탑을 대상으로, 특히 윈도우 사용자를 대상으로 악성코드를 이용한 해킹 공격은 꾸준히 증가 중이다. 우리가 평상시에도 방문하는 사이트가 어느 날 갑자기 악성코드 유포지로 바뀌어 감염 당하기도 한다. 사용자들은 이런 현상들을 눈치 채지 못할 뿐이다. 오직 데스크탑에 설치돼 있는 백신만 믿을 뿐이다. 모바일도 동일한 위험에 노출되고 있다. 오히려 사용자들의 개인정보(공인인증서, 사진, 기기에 저장된 서비스 계정 정보 등)가 데스크탑보다 모바일 기기에 더 많이 들어있다는 것은 누구나 아는 사실이다. 그래서 범죄자는 모바일 사용자를 대상으로 수많은 악성코드를 배포한다. 사회적으로 중대한 사건이 발생하면 이를 악용하는 파렴치한 일도 서슴지 않는다.
국내 모바일 기기 사용자의 90% 이상은 안드로이드 사용자이기 때문에 이들을 대상으로 어떤 정보든 획득하기 위해 범죄자는 지금도 밤낮을 가리지 않고 열심히 연구한다. 우리는 이런 범죄자 이상으로 더 많이 연구해 대응 방법을 강구해야 한다.
이 책은 이런 악성코드가 어떻게 배포되고 구성돼 있는지, 사용자, 개발자 입장에서 어떻게 대응해야 하는지 상세히 다룬다. 또한 진단자 입장에서 어떻게 앱을 우회해 민감한 정보를 사용할 수 있는지 모의 해킹 점검 방법에 맞춰 다룬다. 보안 컨설턴트나 담당자라면 바로 활용할 수 있는 진단 방법들이다.
조정원
안드로이드 악성코드 분석과 진단에 관심을 갖게 된 계기는 많은 사람이 안드로이드 스마트폰을 사용하면서 악의적인 생각으로 일반 사용자들에게 피해를 주는 스미싱 공격 기법이 기승을 부리기 시작한 때부터다. 나 또한 현재도 스미싱 관련 메시지를 종종 받는다. 스미싱 관련 메시지를 받고 바로 삭제하지 않고 안드로이드 악성 드가 어떻게 동작하고, 어떻게 사용자에게 피해를 주는지 알아보기 위해 안드로이드 악성코드 분석 연구를 시작했다. 처음에는 많이 힘들었지만, 안드로이드 악성코드를 분석하면서 악성코드의 동작 원리와 사용자에게 끼치는 피해 사항들을 하나하나 알아가는 것이 마치 퍼즐을 푸는 과정처럼 매우 즐거웠다.
안드로이드 악성코드 분석과 진단에 대해 지금도 많은 사람이 궁금해 하며, 도전하고 있을 것이라 생각한다. 독자들도 나와 같은 즐거움을 느낄 수 있게 많은 내용을 이 책에 담았다.
이 책에 수록된 내용들이 안드로이드 악성코드 분석과 진단의 전부는 아니다. 하지만 가급적 중요한 내용을 많이 수록하려고 노력했으니, 책을 읽는 독자들에게 안드로이드 악성코드 분석과 진단에 대한 하나의 가이드가 되었으면 한다.
박병욱
처음 써보는 지은이의 말이 낯설다. 기술장이라(기술 잡지에 기고는 여러 번 해봤지만) 누군가에게 읽힐 글쓰기의 어려움을 느끼는 시점이다.
이 글을 쓸 때쯤 "내가 썼던 내용들이 독자들에게 쉽게 다가갈 수 있는 내용들이었나?"라고 되짚어본다. 어디에서 읽은 말인지 누군가에게 들었던 말인지 확실하지는 않지만 "설명하고자 하는 것을 한 줄로 쓸 수 없다면 그것에 대해 아는 게 아니다."라는 말이 머릿속을 맴돈다. 설명을 더 많이 필요로 하는 부분에서는 누구나 이해할 수 있게 풀어 쓰려 노력했으나, "이 정도는 알겠지"라는 생각에 넘어간 부분도 더러 있다. 하지만 모든 내용이 모든 사람에게 쉽게 다가가지는 않을 것이다. 모바일 환경은 우리 생활의 많은 부분을 차지하고, 중요한 부분으로 자리 잡았다.
아무쪼록 내가 집필한 내용이 모바일 악성코드, 모바일 보안을 연구하는 이들에게 도움이 되었으면 하는 바람이다.
남대현
2009년도 말, 국내에 아이폰이 도입된 이후 우리나라의 모바일 시장은 급성장하기 시작했으며, 이제는 남녀노소 누구나 활용하고, 지하철, 버스, 화장실, 사무실 등 장소와 관계없이 언제 어디서나 무선을 통해 네트워크로 접속할 수 있는 환경이 갖춰졌다. 또한 오늘날의 현대인들은 모바일을 통해 은행, 쇼핑몰 등 각종 편리한 서비스를 제공받거나, 회사의 비즈니스를 처리하는 BYOD(Bring Your Own Device)족이 급증하고 있다.
이런 편리성과 효율성으로 인해 짧은 시간 안에 모바일 관련 시장이 급성장했지만, 그만큼 많은 보안 취약점을 드러내고 있다. 특히 안드로이드는 개방형 OS라는 특성으로 인해 해커들의 좋은(?) 놀이터가 되었으며, 이에 따라 국내외에서는 보안 대책을 강구했고 OWASP(국제 웹 표준 기구)에서도 'OWASP Mobile Top 10' 보안 위협을 발표했다.
이처럼 점점 이슈가 뜨거워지는 시점에 많은 흥미를 느껴 모바일 진단에 대한 관련 자료들을 검색해 공부했고, 이제는 그 당시의 열정을 담아 팀원들과 한 권의 책을 집필하게 됐다. 이 책을 통해 많은 사람이 좀 더 쉽게 모바일 분석과 진단 분야에 접근할 수 있기를 바란다.
이 책의 주요 부분인 악성코드 분석을 통해 이 분야에 관심이 많은 독자들의 열정을 채워줄 뿐만 아니라, OS에 대한 높은 이해도를 증진시켜줄 것이다. 또한 모의 침투를 시도해봄으로써 안드로이드 취약점 진단에 대한 개념을 잡아줄 것이라 생각한다.
악성코드 분석과 진단을 시작하려는 독자들에게 흥미와 재미뿐만 아니라 열정을 불러일으킬 수 있는 좋은 입문서가 될 것이라 자부한다.
김형범