Top

안드로이드 모바일 앱 모의해킹 [가상 뱅킹 앱 인시큐어뱅크를 활용한 모바일 취약점 진단과 대응 방안]

  • 지은이조정원, 김명근, 조승현, 류진영, 김광수
  • ISBN : 9788960779310
  • 40,000원
  • 2017년 01월 20일 펴냄
  • 페이퍼백 | 512쪽 | 188*250mm
  • 시리즈 : 해킹과 보안

책 소개

2017년 세종도서 학술부문 선정도서
요약

금융권 앱을 모델로 가상으로 제작된 ‘인시큐어뱅크’ 앱에서 제공되는 20가지 이상의 진단 방법과 취약점 대응 방안을 제시했다. 안드로이드 보안에 관심 갖고 있던 독자라면 누구나 쉽게 실습할 수 있도록 구성했다. 취약점 항목별로 도출된 취약점을 소스 코드 레벨로 설명하고, 자동화 분석 진단 환경을 제시해 효율적으로 진단할 수 있는 방안을 제시했다. 단계별로 실습하며 익힌다면, 실무에서 진단할 안드로이드 앱 서비스의 취약점을 손쉽게 진단하고 고객에게 대응 방안을 제시할 수 있다.

이 책의 특징

■ 실무와 동일하게 구성된 가상 뱅킹 앱 23가지의 취약점 항목을 단계별로 완벽하게 실습
■ 취약점 항목 분석에 필요한 주요 도구 설명 및 완벽한 활용 방법 제시
■ 실무에 바로 적용할 수 있는 안드로이드 앱 자동화 분석 도구 활용 방법 제시
■ 안드로이드 앱 취약점과 항목별 소스 코드 레벨을 포함한 대응 방안 제시

이 책의 대상 독자

■ 모의해킹 컨설팅/실무자를 꿈꾸는 독자
■ 안드로이드 분석가를 꿈꾸는 독자
■ 안드로이드 분석에 관심이 있는 독자
■ 입문 과정을 넘어 중급 이상의 심화 과정을 원하는 독자

이 책의 구성

안드로이드 앱 취약점 분석에 관심 있거나 앞으로 모의해킹 분야에 종사하고자 하는 입문자들을 대상으로 구성했다.
1장에서는 안드로이드 취약점 분석 실습을 하기 위한 환경 구성을 다룬다. 취약점을 진단하려면 안드로이드 개발 환경이 필요하며, 주요 항목을 모두 점검할 테스트 앱도 필요하다. 이 책에서는 인시큐어뱅크라는 취약 앱을 선택했다. 실습 환경을 단계별로 잘 구성하여 실습을 완벽하게 따라 하기 바란다.
2장에서는 안드로이드 앱 진단에 많이 사용되는 도구와 기본 명령어를 다룬다. Android debug bridge, Drozer 등은 4장에서 상세 진단을 할 때 계속 사용할 예정이다. 이 장에서 설명하는 명령어의 쓰임과 결과에 익숙해져야만 진단 실습을 하는 데 어려움이 없다.
3장에서는 인시큐어뱅크에서 실습할 항목을 한 단계씩 상세하게 다룬다. 국내에서 발표한 항목과 해외에서 발표한 항목들을 잘 조합한 형태를 인시큐어뱅크에서 실습할 수 있다. 이 항목들만 이해하고 국내 금융권을 포함해 실무에서 사용되는 취약점 항목을 이해한다면 어떤 앱이라도 어렵지 않게 다룰 수 있을 것이다.
4장에서는 안드로이드 모바일 앱을 자동으로 분석할 수 있는 환경과 이를 활용하는 방법을 소개한다. 3장에서 다룬 ‘항목별 상세 분석’을 바탕으로 앱이 동적으로 어떤 행위를 하고 있는지, 정적 권한 설정이란 무엇인지, 소스 코드 내 중요한 정보들은 어떻게 저장하는지 등을 빠르게 확인할 수 있다. 수동 진단에서 놓칠 수 있는 부분은 자동 분석을 이용하면 보안 위협을 감소시킬 수 있다.
5장에서는 개발자 측면에서 사용할 수 있는 오픈소스 소프트웨어 및 개발자가 참고할 수 있는 가이드를 소개한다. 안드로이드 취약점 진단 항목에 맞는 시큐어코딩 분석 도구는 존재하지 않으며, 자바 프로그래밍의 코드 품질 및 취약점을 분석하는 플러그인 형태 도구들이 많이 있다. 실무에서는 형상 관리 시스템과 연동하여 서비스 오픈 전에 보안성 검토의 한 과정으로 진행한다. 이 책에서는 FindBugs와 PMD를 다룬다.

저자/역자 소개

지은이의 말

우리는 집에서, 회사에서, 출⦁퇴근 길에 모바일 기기를 보고 있다. 1인당 1개의 모바일 시대가 열린 것이다. 회사에서는 PC 단말의 사용량이 많지만 집에서의 PC 단말 사용 비율은 점차 줄어들고 있다. 모바일로 인터넷 접속 사용 비율이 PC 단말을 초과한 것은 벌써 오래전 일이다. 모바일 앱 서비스 진단이 왜 중요한지를 알 수 있는 대목이다.
모의해킹 업무 시, 진단 대상은 ‘사람들이 많이 사용하고 있는 서비스’이다. 다시 말해, PC 단말로 접속하는 홈페이지와 모바일에서 접속하는 앱 그리고 그와 연결된 서비스이다. 그렇다면 안드로이드와 iOS 중에서는 어떤 것을 더 신경 써야 할까? 국내에서는 당연히 안드로이드 앱이다. 국내에서는 안드로이드 단말 사용자가 iOS 단말 사용자보다 월등히 많다. 서비스를 제공하는 업체에서도 사용자가 많은 안드로이드 앱의 개발 주기와 보안에 더 신경을 쓴다. iOS는 폐쇄적이지만, 안드로이드 프레임워크는 모두 공개되어 있으므로 많은 공격자의 대상이 된다.
신경을 써서 보안을 하더라도 공격자는 새로운 기법을 이용하여 우회하고 있다. 그리고 이에 대응하여 새로운 보안 솔루션들이 개발되고 있다. 보안 솔루션이 적용된 앱은 모의해킹 진단자에게 매우 골치 아픈 대상이다. 빠르게 변화하고 있고, 잠시라도 관심을 가지지 않으면 금세 진단을 하는 데 어려움을 느낀다. 따라서 모의해킹 컨설턴트뿐만 아니라 실무 담당자도 취약점 진단 방법을 익히고 자사의 앱 서비스 대상으로 보안 방법론을 적용해야 한다.
이 책은 금융권 앱을 모델로 하여 가상으로 제작된 ‘인시큐어뱅크’앱에서 제공하는 20가지 이상의 진단 방법과 취약점 대응 방안을 제시하고 있다. 안드로이드 보안에 관심이 있는 독자라면 누구나 쉽게 실습할 수 있도록 구성하였다. 단계별로 진행하면서 해당 취약점이 앞으로 진단할 안드로이드 앱 서비스의 취약점을 도출할 수 있는지 끊임없이 시도해보길 바란다.

지은이 소개

조정원

‘보안프로젝트(www.boanproject.com)’ 대표로 활동하고 있다. 에이쓰리시큐리티에서 5년 동안 모의해킹 컨설턴트를 담당했고, 모의해킹 프로젝트 매니저, 웹 애플리케이션, 소스코드 진단 등 다양한 영역에서 취약점 진단을 수행했다. 이후 KTH 보안 팀에서 모바일 서비스, 클라우드 서비스 보안, 침해 사고 대응 업무를 수행했고, KB투자증권에서 보안 업무를 담당했다.

김명근

동국대 일반대학원 컴퓨터공학과 석사 과정에 재학하며, 보안 프로젝트 연구원 및 스태프로 활동하고 있다. 주요 연구 분야로는 웹 및 모바일 애플리케이션 취약점 진단과 소스 코드 분석이며, 저서로는 『버프스위트를 활용한 웹 모의해킹』(한빛미디어, 2016)이 있다.

조승현

에스알센터 선임 연구원으로 재직 중이다. 모의해킹, 웹 보안 실무 과정 등, 이에 관한 전문 강사 활동과 웹 취약점 점검, 모바일 애플리케이션 취약점 점검 등의 업무를 병행한다. 저서로는 『버프스위트를 활용한 웹 모의해킹』(한빛미디어, 2016)이 있으며, 보안 프로젝트에서 스태프로 활동하면서 웹 애플리케이션 취약점 진단을 중심으로 연구를 진행한다.

류진영

보안 프로젝트에서 강사 및 연구원으로 활동하고 있다. 주요 연구 분야로는 시스템 모의해킹, 모바일 애플리케이션 진단 및 시큐어 코딩이며, 현재는 모바일 애플리케이션 취약점 분석 업무와 취약점 대응 방안 연구를 병행한다.

김광수

MG손해보험에서 정보 보안 업무를 담당하고 있으며, 보안 프로젝트 연구원으로 활동하고 있다. 주요 관심 분야인 취약점 점검 및 리버싱에 대한 연구를 한다.

목차

목차
  • 1장 안드로이드 취약점 분석 및 환경 소개
  • 1.1 안드로이드 아키텍처 이해
  • 1.1.1 리눅스 커널
  • 1.1.2 라이브러리
  • 1.1.3 안드로이드 런타임
  • 1.1.4 안드로이드 필수 구성 요소
  • 1.2 인시큐어뱅크 가상 금융 앱 소개
  • 1.3 안드로이드 앱 진단 환경 구성
  • 1.3.1 자바 설치 및 환경 구성
  • 1.3.2 안드로이드 스튜디오 설치
  • 1.3.3 가상 디바이스 소개 및 설치
  • 1.3.4 ADB 환경 변수 설정
  • 1.4 녹스 환경 설치 및 인시큐어뱅크 서버 구축
  • 1.5 인시큐어뱅크 설치 및 코드 수정 방법
  • 1.6 모바일 애플리케이션 디컴파일 방법
  • BytecodeViewer를 이용한 APK 파일 분석
  • 1.7 마무리하며

  • 2장 취약점 진단 및 분석 도구
  • 2.1 ADB(Android Debug Bridge) 살펴보기
  • 2.1.1 디바이스 장치 선택
  • 2.1.2 일반 기능
  • 2.1.3 디버그 기능
  • 2.1.4 데이터 기능
  • 2.1.5 포트와 네트워킹 기능
  • 2.1.6 스크립팅 기능
  • 2.1.7 서버 기능
  • 2.1.8 쉘 기능
  • 2.2 드로저를 활용한 취약점 진단
  • 2.2.1 드로저란 무엇인가?
  • 2.2.2 드로저를 활용한 앱 패키지 정보 확인
  • 2.2.3 드로저를 활용한 취약점 분석
  • 2.2.4 모듈 관리
  • 2.2.5 모듈 설치
  • 2.2.6 저장소 관리
  • 2.3 칼리리눅스 설치
  • 2.3.1 가상 이미지 다운로드 및 설정
  • 2.3.2 칼리리눅스 설치
  • 2.3.3 VMware Tools 및 한글 설치
  • 2.3.4 참고문헌
  • 2.4 마무리하며

  • 3장 취약점 항목별 상세 실습
  • 3.1 브로드캐스트 리시버 결함
  • 3.1.1 취약점 소개
  • 3.1.2 취약점 진단 과정
  • 3.1.3 취약점 대응 방안
  • 3.2 취약한 인증 매커니즘
  • 3.2.1 취약점 소개
  • 3.2.2 취약점 진단 과정
  • 3.2.3 취약점 대응 방안
  • 3.2.4 참고문헌
  • 3.3 로컬 암호화 이슈
  • 3.4.1 취약점 소개
  • 3.4.2 취약점 진단 과정
  • 3.4.3 취약점 대응 방안
  • 3.4.4 참고문헌
  • 3.4 액티비티 컴포넌트 취약점
  • 3.4.1 취약점 소개
  • 3.4.2 취약점 진단 과정
  • 3.4.3 취약점 대응 방안
  • 3.5 루팅 탐지 및 우회
  • 3.5.1 취약점 소개
  • 3.5.2 취약점 진단 과정
  • 3.5.3 취약점 대응 방안
  • 3.6 안전하지 않은 콘텐츠 프로바이더 접근
  • 3.6.1 취약점 소개
  • 3.6.2 취약점 진단 과정
  • 3.6.3 취약점 대응 방안
  • 3.7 안전하지 않은 웹 뷰 실행
  • 3.7.1 취약점 소개
  • 3.7.2 취약점 진단 과정
  • 3.7.3 취약점 대응 방안
  • 3.7.4 참고문헌
  • 3.8 취약한 암호화 실행
  • 3.8.1 취약점 소개
  • 3.8.2 취약점 진단 과정
  • 3.8.3 취약점 대응 방안
  • 3.8.4 참고문헌
  • 3.9 애플리케이션 패칭
  • 3.9.1 취약점 소개
  • 3.8.2 취약점 진단 과정
  • 3.8.3 취약점 대응 방안
  • 3.8.4 참고문헌
  • 3.10 메모리 내 민감한 정보 저장
  • 3.10.1 취약점 소개
  • 3.10.2 취약점 진단 과정
  • 3.10.3 취약점 대응 방안
  • 3.11 안전하지 않은 로깅 매커니즘
  • 3.11.1 취약점 소개
  • 3.11.2 취약점 진단 과정
  • 3.11.3 취약점 대응 방안
  • 3.12 안드로이드 키보드 캐시 이슈
  • 3.12.1 취약점 소개
  • 3.12.2 취약점 진단 과정
  • 3.12.3 취약점 대응 방안
  • 3.13 애플리케이션 디버깅 기능
  • 3.13.1 취약점 소개
  • 3.13.2 취약점 진단 과정
  • 3.13.3 취약점 대응 방안
  • 3.13.4 참고 문헌
  • 3.14 안드로이드 복사/붙여넣기 취약점
  • 3.14.1 취약점 소개
  • 3.14.2 취약점 진단 과정
  • 3.14.3 취약점 대응 방안
  • 3.15 안드로이드 백업 취약점
  • 3.15.1 취약점 소개
  • 3.15.2 취약점 진단 과정
  • 3.15.2 취약점 대응 방안
  • 3.16 런타임 조작
  • 3.16.1 취약점 소개
  • 3.16.2 취약점 진단 과정
  • 3.16.3 취약점 대응 방안
  • 3.17 안전하지 않은 SDCard 저장소
  • 3.17.1 취약점 소개
  • 3.17.2 취약점 진단 과정
  • 3.17.3 취약점 대응 방안
  • 3.17.4 참고문헌
  • 3.18 안전하지 않은 HTTP 통신
  • 3.18.1 취약점 소개
  • 3.18.2 취약점 진단 과정
  • 3.18.3 취약점 대응 방안
  • 3.18.4 참고문헌
  • 3.19 인자 전달값 조작
  • 3.19.1 취약점 소개
  • 3.19.2 취약점 진단 과정
  • 3.19.3 취약점 대응 방안
  • 3.19.4 참고문헌
  • 3.20 하드코딩 보안
  • 3.20.1 취약점 소개
  • 3.20.2 취약점 진단 과정
  • 3.20.4 취약점 대응 방안
  • 3.21 사용자 정보 목록화 이슈
  • 3.21.1 취약점 소개
  • 3.21.2 취약점 진단 과정
  • 3.21.3 취약점 대응 방안
  • 3.21.4 참고문헌
  • 3.22 개발자 백도어
  • 3.22.1 취약점 소개
  • 3.22.2 취약점 진단 과정
  • 3.22.3 취약점 대응 방안
  • 3.23 취약한 패스워드 변경 실행
  • 3.23.1 취약점 소개
  • 3.23.2 취약점 진단 과정
  • 3.23.3 취약점 대응 방안
  • 3.23.4 마무리하며

  • 4장 앱 자동 분석 시스템
  • 4.1 샌드드로이드
  • 4.2 QARK(Quick Android Review Kit)
  • 4.2.1 QARK란 무엇인가?
  • 4.2.2 QARK 설치 및 실행
  • 4.2.3 QARK를 이용한 앱 분석
  • 4.2.4 분석 결과 확인
  • 4.3 Mobile Security Framework를 활용한 자동분석
  • 4.3.1 MobSF란 무엇인가?
  • 4.3.2 MobSF 설치 및 분석 환경 구축
  • 4.2 앱유즈(AppUse) 테스팅 도구 활용법
  • 4.4.1 앱 유즈란 무엇인가?
  • 4.4.2 에뮬레이터 실행 및 앱 설치
  • 4.4.3 지원 도구
  • 4.4.4 앱 리버싱 도구 및 과정 설명
  • 4.4.5 애플리케이션 도구
  • 4.4.6 프록시 설정
  • 4.5 기타 자동 분석 도구 활용
  • 4.5.1 Inspeckage를 활용한 앱 분석
  • 4.5.2 Androbus를 활용한 앱 분석
  • 4.6 마무리하며

  • 5장 모바일 앱 보안 강화
  • 5.1 시큐어 코딩 개요6
  • 5.2 PMD(Programming Mistake Detector) 활용
  • 5.2.1 PMD란?..468
  • 5.2.2 PMD 설치
  • 5.2.3 인시큐어뱅크 소스 코드 PMD 활용
  • 5.3 FindBugs/FindSecurityBugs
  • 5.3.1 FindBugs란?
  • 5.3.2 FindSecurityBugs란?
  • 5.3.3 FindBugs/FindSecurityBugs 활용
  • 5.4 코드 난독화 적용
  • 5.4.1. 프로가드 난독화 적용 방법
  • 5.4.2 프로가드 난독화 활용 방법
  • 5.4.3 인시큐어 뱅크에 적용한 사례
  • 5.5 마무리하며

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p.290 : 아래에서 5행]
AndroidManifest.xm
->
AndroidManifest.xml