Chapter 13 모바일 보안.

Slides:



Advertisements
Similar presentations
Chapter 07. 모바일 보안 : 유비쿼터스 (Ubiquitous) 의 진입과 위협.
Advertisements

비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
자기소개서 만들기. 2 4) 자기소개서 작성방법 [ 데이터 수집 ] - 지원하는 업무는 어떤 업무인가 ? - 그 일을 왜 하고 싶은가 ? - 그 업무는 나의 전공과 관련이 있는 업무인가 ? - 그 업무를 수행하기 위해 미리 알아야 할 사항은 무엇인가 ? - 필요한 직무능력을.
개인의견 차가있을수있음 훈훈한남자 배우 TOP 5. 5 위는 박보검 웃을때보이는 치명적인 미소 꺄 ~~~ 5위5위.
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
플레이스토어가 아닌 곳에서 다운받은 스마트폰 어플리케이션 설치방법 1. 스마트폰에 있는 환경설정 어플리케이션을 찾은후에 실행 시킨다.( 본 기종은 갤럭시노트 2)
2 Ⅰ 2016 수출연계형 기술사업화 프로그 램 사업설명회 3 4 구 분지원분야비고 시각디자인 외국어 종이 카탈로그, 외국어 포장디자인 멀티미디어 외국어 전자 카탈로그, 외국어 동영상, 외국어 모바일용 앱, 외국어 홈페이지 디자인 제품디자인 종합디자인 해당분야 모든.
NH커뮤니티 서비스 내가 총무다 소개자료. 2 /15 Contents  서비스 개요  서비스 구성  서비스 구축 전략  UI/UX전략  주요화면  화면 구축 방법  시스템 구축 방법.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
목 차 Ⅰ 제도 도입 배경 및 개요 내일채움공제 사업 안내 내일채움공제 연계 지원 사업 Ⅲ Ⅱ.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
협회 회원주소록 앱 사용방법 ( 회원용 ). 1. 로그인 메뉴 아이디 : 본인이름, 비밀번호 : 본인휴대폰번호 2. 메뉴화면 - 지회 연락처 선택 후 우측의 전화버튼을 누를 시 전화 연결 - 페이스북 버튼을 누를 시 여성경제인협회 페이스북 으로 연결 4.
명지대학교 클라우드 컴퓨팅 강의 2. 클라우드 컴퓨팅의 주요 사안 2011 년 04 월 02 일 (2 주차 )
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
스마트폰의 불편한 진실 영동중학교 1학년 [엘리트] 최성환 김경민 서규민.
기업복지컨설팅 전산 교육
안드로이드 악성코드 분석론 및 리버싱 27th OCTOBER 2013.
국가기술 자격증 사이버강좌 운영 제안 ㈜유엠투엠.
암호학 응용 Applied cryptography
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
스마트일보W 매뉴얼 근로자용 I 안드로이드폰 II 아이폰 III PC (컴퓨터) IV FAQ (자주묻는질문)
시스템 접근 제어의 모든 것.
통합 접근 권한 관리의 모든 것.
Chapter 03 웹 해킹의 기초.
모바일 소프트웨어 표준화 표준화강좌 2012년 10얼 30일 한국교통대학교 컴퓨터정보공학과 조 수 선.
전자책도서관 스마트폰 및 태블릿 PC 이용 안내.
고교평준화의 득과 실 김영주 이지영 최윤영.
효과적인 DB암호화 구축을 위한 애슬론 v1.5 제안
OWASP Mobile TOP 10 학번 : 이름 : 공 우 진 발표일 :
안드로이드 개요 2005년 휴대폰 소프트웨어 개발사인 Android를 구글이 인수 2007년 11월 오픈소스로 공개
그린 마일리지(상벌점제) 디지털시스템 활용 방안 광주광역시 교육청.
통합 계정 관리의 모든 것.
3주차 Android Application ANDROID App..
가속도 감지센서를 이용한 안드로이드 게임 지도교수님 : 전진우 이동훈.
Edus 충남 통합인증을 위한 교과부 표준보안 모듈 설치 안내 (smart.edus.or.kr)
CRM개발팀 CRM개발팀 구성 CRM 개발팀 구성원 CRM 개발팀 담당 업무 제품 구성 - 팀장 1명, 팀원 5명으로 총 6명
04장 웹 보안: 웹, 그 무한한 가능성과 함께 성장한 해킹
Devkit API 가이드.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
[Homework #2] Chapter 5 Chapter 6 Page 110, 문제 13 – 피라미드 높이 구하는 문제
Virginia Satir의 경험적 가족치료
Project apk 디컴파일과 난독화(with Proguard)
사회복지 법제론 /노인장기요양보험법 문은홍 조소라.
타대학 학점인정 신청 매뉴얼 ○포털시스템에 접속하여 로그인.
웹 다이어리 완료보고서 이상제 정영석.
정보보호 신규 업무담당자 교육. 정보보호 신규 업무담당자 교육 시 간 교육내용 비 고 ~ 13:00 ■ 교육 등록 13:00 ~ 13:10 ■ 개회 및 인사 말씀 13:10 ~ 14:40 ■ 개인정보보호 ‧ 개인정보보호 유‧노출 사례 ‧ 개인정보보호 기본 개념 및.
모바일 운영 체제 (mobile operating system)
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
Introduction to Smart Phone Security
국제의료관광 관련 법, 제도.
Hadoop Chapter 2. 맵리듀스 김영지.
좋은징조 담당교수 : 조성제 김도엽 김현일 이상훈.
가계부 자동작성 APP Ucloud를 이용한 카드 내역 자동 작성 정보통신공학과 김대웅
나는 땅에서 키는 작지만 하늘로부터 재는 키는 이 세상 어느 누구보다도 크다
사업계획서.
전자구매시스템 IE 호환설정.
중등교원 전보시스템 로그인 오류시 해결 해결방안 * 작성일 2016 년 12 월 15일 * 작성자 광주광역시교육청.
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
스미싱 피해 업무처리 매뉴얼 구분 주요 내용 개요 피해 유형 사전 피해 예방법
양궁게임 게임기획서 1차안 2011/01/17 최가운.
2015년 2학년 1반.
안드로이드 앱 분석 팀 기반의 설계 프로젝트 박민재
센터 코칭 결과 소 속 제천센터 코칭대상 엔지니어, 상담사 코칭일시
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
코로케이션 서비스 안내 정보화본부 정보화지원과.
운영체제보안 3번 과제 설명 팀 기반의 설계 프로젝트 박민재
Software Engineering Project
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
Java의 정석 제 7 장 객체지향개념 II-3 Java 정석 남궁성 강의
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
Presentation transcript:

Chapter 13 모바일 보안

01 모바일 보안의 개요 02 모바일 보안 위협 요소 03 모바일 보안 대응 방안

모바일 보안에 대한 기본적인 내용을 이해한다. 모바일 보안의 위협 요소와 이에 대한 대응 방안을 학습한다.

1.1 모바일 환경의 성장 모바일 환경의 성장 모바일 보안의 중요성은 아이폰이 세상에 나온 후 스마트폰 열풍이 불기 시작 하면서부터 시작

1.1 모바일 환경의 성장 모바일 환경의 성장 현재 모바일 앱을 다운로드할 수 있는 곳은 애플 앱 스토어와 구글 플레이로 양분되어 있음.

1.2 모바일 보안의 생성 배경 안드로이드와 iOS의 보안

1.2 모바일 보안의 생성 배경 안드로이드와 iOS의 보안 안드로이드의 개방적인 특성을 이용한 리패키징 기법이 알려지면서 모바일 악 성 앱이 증가하는 추세

2.1 모바일 보안 위협의 유형 모바일 보안 위협의 유형

2.1 모바일 보안 위협의 유형 모바일 보안 위협의 유형

2.1 모바일 보안 위협의 유형 모바일 보안 위협의 유형 스마트폰 탈옥(jailbreak) 및 루팅(rooting)에 관련된 정보가 인터넷을 통해 공 유되면서 많은 사람이 자신의 취향에 맞게 스마트폰을 변경하여 이로 인한 악 성 코드 감염도 급증 탈옥 : 애플의 통제를 벗어나 임의의 소프트웨어를 설치할 수 있도록 하는 것 루팅 : 안드로이드 운영체제를 사용하는 스마트폰에서 시스템 잠금장치를 해 체하여 운영체제 관리자의 권한을 얻는 것

2.2 모바일 환경의 위협 요소 모바일 환경에서 주의해야 할 위협 요소 10가지

2.2 모바일 환경의 위협 요소 M1. 적절하지 않은 플랫폼 사용 위협 대상 : 안드로이드 인텐트, 플랫폼 퍼미션, TouchID, 그 외 모바일 운영체 제의 한 부분인 보안 통제가 해당 공격 요인 : 공격 벡터 보안 취약성 : 모바일 앱에서 제공하는 API 또는 웹 서비스가 노출되어 있어야 함. 기술적 영향 : 모바일 장치에 대한 공격으로 기존 ‘OWASP Top 10’ 취약점과 같은 기술적 영향이 발생 비즈니스 영향 : 기술적 영향과 동일한 영향이 발생하지만 비즈니스 측면에서 고려할 수 있음.

2.2 모바일 환경의 위협 요소 M2. 안전하지 않은 데이터 저장 위협 대상 : 분실하거나 도난당한 모바일 장치를 습득하여 공격하는 경우 공격 요인 : 개인정보가 포함된 파일이나 민감한 정보가 포함된 파일, 제삼자의 디렉터리 내용 등을 볼 수 있고, 정보 자산을 훔치지 위해 등록된 앱을 수정하 거나 악성 코드를 만들 수 있음. 보안 취약성 : 루팅이나 탈옥 상태에서는 암호화된 보호가 무력화될 수 있음. 기술적 영향 : 데이터를 잃어버릴 수 있을 뿐만 아니라 수많은 사용자의 데이 터가 삭제될 수 있음. 비즈니스 영향 : 조직에서는 신원 도용, 부정, 브랜드 손상, 외부 정책 위반(PCI 등), 자료 손실 등의 리스크가 발생할 수 있음.

2.2 모바일 환경의 위협 요소 M3. 안전하지 않은 통신 위협 대상 : 로컬 네트워크를 공유하는 악의적인 공격자, 통신 제공사, 네트워 크 장치 제공자, 모바일 장치에 있는 악성 코드 등 공격 요인 : 안전하지 않은 통신 범위를 모니터링할 수 있는 부분 보안 취약성 : 모바일 애플리케이션은 인증이 필요할 때만 SSL/TLS를 사용하기 때문에 중요한 데이터나 세션 아이디와 같은 정보가 노출될 수 있음. 기술적 영향 : 개인 사용자의 데이터와 계정 정보가 노출될 수 있음. 비즈니스 영향 : 사용자의 개인 정보 유출이 기업의 신원 도용, 부정, 브랜드 손 상으로 이어질 수 있음.

2.2 모바일 환경의 위협 요소 M4. 안전하지 않은 인증 위협 대상 : 전형적으로 자동화된 툴을 이용하여 공격 수행 공격 요인 : 모바일 악성 코드나 봇넷으로 인증 체계의 취약점을 발견하면 모 바일 앱 백 엔드 서버에게 서비스 요청을 전달하여 인증 또는 모바일 앱의 특 정 요청을 우회 보안 취약성 : 보통 모바일 장치의 입력폼에서 발생 기술적 영향 : 공격자가 다른 사용자에게 특정 행위를 할 수 있음. 비즈니스 영향 : 브랜드 손상, 정보 유출, 데이터에 대한 불법적인 접근 등의 결 과 초래

2.2 모바일 환경의 위협 요소 M5. 불충분한 암호화 위협 대상 : 부적절하게 암호화된 데이터에 물리적으로 접근할 수 있는 모든 행위자 또는 모바일에 설치된 악성 코드 공격 요인 : 장치에 물리적으로 접근하여 데이터를 복호화하거나 네트워크 트 래픽을 캡처하거나 암호화된 데이터에 접근할 수 있는 악성코드 보안 취약성 : 암호화된 코드를 복호화하거나 암호화 절차의 결함이나 취약한 암호화 알고리즘으로 원본 데이터를 복호화 기술적 영향 : 민감한 데이터가 유출될 수 있음. 비즈니스 영향 : 프라이버시 침해, 정보 유출, 코드 유출, 지식재산권 유출, 브 랜드 손상과 같은 결과를 초래

2.2 모바일 환경의 위협 요소 M6. 안전하지 않은 권한 위협 대상 : 자동화된 툴을 이용하여 공격 수행 공격 요인 : 권한 체계가 취약하다는 것을 공격자가 파악하면 합법적인 사용자 로 애플리케이션에 로그인하여 성공적으로 권한 통제를 우회 보안 취약성 : 낮은 권한을 가진 사용자가 높은 권한을 가진 사용자만이 실행 가능한 기능을 실행할 수 있는지 확인 기술적 영향 : 관리자 권한으로 특정 명령어를 실행하거나 시스템을 파괴하거 나 민감한 데이터가 유출될 수 있음. 비즈니스 영향 : 브랜드 손상, 부정, 정보 유출과 같은 다양한 비즈니스 영향이 발생

2.2 모바일 환경의 위협 요소 M7. 클라이언트 코드 품질 위협 대상 : 모바일 코드에 의도치 않은 입력을 전달 공격 요인 : 공격 대상 앱에 조작된 입력값을 전달하여 공격을 수행 보안 취약성 : 정적 분석 도구 또는 퍼저를 이용하여 모바일 코드의 취약점을 발견 기술적 영향 : 공격자가 원하는 특정 코드를 실행하거나 모바일 장치에 대한 서비스 거부 공격을 원격으로 수행할 수 있음. 비즈니스 영향 : 브랜드 손상, 지식재산권 유출, 정보 유출 등의 결과를 초래

2.2 모바일 환경의 위협 요소 M8. 코드 변조 위협 대상 : 앱스토어에 조작된 앱을 올리거나 피싱 공격을 통해 코드가 변조 된 악의적인 앱을 설치하도록 유도 공격 요인 : ‘애플리케이션 패키지의 핵심 바이너리에 대한 바이너리 변경’, ‘애플리케이션 패키지에 있는 리소스 파일에 대한 바이너리 변경’, ‘악의적 인 목적의 코드를 실행하거나 데이터를 캡처하는 시스템 API 변경’ 등 보안 취약성 : 애플리케이션의 형태를 변경(바이너리 패치, 로컬 자원 변경, 메 소드 후킹 포함) 기술적 영향 : 일반적으로 새로운 기능을 추가하거나 정보를 유출 비즈니스 영향 : 저작권 침해로 인한 수익 감소, 브랜드 손상 등의 결과를 초래

2.2 모바일 환경의 위협 요소 M9. 역공학 위협 대상 : 앱스토어에서 공격 대상 앱을 내려받아 로컬 환경에서 분석 공격 요인 : IDA Pro, Hopper, otool, strings와 같은 바이너리 검사 툴을 이용하 여 핵심 바이너리 파일 분석 보안 취약성 : 일반적으로 모바일 코드는 역공학에 취약 기술적 영향 : 백 엔드 서버 정보 추출, 암호화된 문자열 또는 암호화 키 추출, 지식재산권 정보 추출, 백 엔드 시스템에 대한 공격 수행과 같은 목적을 달성할 수 있음. 비즈니스 영향 : 지식재산권 유출, 브랜드 손상, 신원 도용, 백 엔드 시스템에 대한 침해 등의 결과를 초래

2.2 모바일 환경의 위협 요소 M10. 관련 없는 기능 위협 대상 : 일반적으로 백 엔드 시스템에서 숨겨진 기능을 찾기 위해 모바일 앱의 기능을 분석 공격 요인 : 로그 파일과 설정 파일을 살펴보거나 때로는 개발자가 실수나 고 의로 특정 기능을 숨겨 놓기도 함. 보안 취약성 : 백 엔드 테스트 환경에 대한 정보나 사용자 환경 테스트 정보, API 관련 정보를 포함하는 기능 등은 공격자에게 유리하게 사용될 수 있음. 기술적 영향 : 백 엔드 시스템의 동작 내용 노출, 비인가자가 높은 권한을 가지 고 특정 기능을 수 행하는 것 등 비즈니스 영향 : 민감한 기능에 대한 불법적인 접근, 브랜드 손상, 지식재산권 노출 등

2.3 안드로이드 앱 분석 안드로이드 앱 분석 과정

2.3 안드로이드 앱 분석 안드로이드 앱 분석 과정

2.3 안드로이드 앱 분석 안드로이드 앱 분석 과정

2.3 안드로이드 앱 분석 apk 파일 구하기 다음 사이트에서 검색하여 특정 apk 파일을 내려받음. https://apkpure.com/

2.3 안드로이드 앱 분석 아스트로 파일 관리자 앱으로 apk 파일 추출 안드로이드 기반 스마트폰에서 아스트로 파일 관리자 앱을 이용하여 스마트폰 에 설치된 앱을 apk 확장자로 백업

2.3 안드로이드 앱 분석 아스트로 파일 관리자 앱으로 apk 파일 추출 설정에서 앱의 백업 경로를 지정하고, [어플리케이션 관리자]를 클릭 원하는 앱을 선택하고 <백업>을 클릭하여 파일 복사 시작

2.3 안드로이드 앱 분석 아스트로 파일 관리자 앱으로 apk 파일 추출 을 확인

2.3 안드로이드 앱 분석 압축 풀기로 dex 파일 추출 7-zip을 설치한 뒤 apk 파일을 선택하고 마우스 오른쪽 버튼을 눌러 7-zip으로 압축 풀기 다운로드 : http://www.7-zip.org/download.html

2.3 안드로이드 앱 분석 압축 풀기로 dex 파일 추출

2.3 안드로이드 앱 분석 apktool로 스마일리 파일 추출 apk 파일로 패키징되어 있는 앱을 언패키징하여 내부 파일을 보기 위해 apktool 을 사용 다운로드 : https://ibotpeaches.github.io/Apktool/

2.3 안드로이드 앱 분석 apktool로 스마일리 파일 추출 apktool의 다운로드 및 설치(윈도우를 예로 살펴봄) ① wrapper script 링크를 마우스 오른쪽 버튼으로 눌러 나타나는 메뉴에서 [다른 이름으 로 대상(링크) 저장]을 선택, 해당 파일을 특정 폴더에 apktool.bat로 저장 ② find newest here 링크를 클릭하면 나타나는 사이트에서 최신 버전의 apktool을 다운 로드하여 apktool.bat 파일이 있는 폴더로 복사 ③ 다운로드한 jar 파일의 이름을 apktool.jar로 변경 ④ apktool.jar와 apktool.bat 파일을 윈도우 디렉터리(C:\Windows\)로 복사 ⑤ C:\Windows\ 폴더에 복사할 권한이 없다면 특정 폴더에 복사하고, 시스템 환경 변수 에 해당 경로를 등록 ⑥ 윈도우의 커맨드 창(cmd.exe)을 띄워서 apktool을 실행

2.3 안드로이드 앱 분석 apktool로 스마일리 파일 추출 apktool을 통해 분석을 원하는 앱(apk 파일)의 압축 풀기 apktool d [압축을 풀려는 apk 파일]

2.3 안드로이드 앱 분석 apktool로 스마일리 파일 추출

2.3 안드로이드 앱 분석 dex 파일에서 jar 파일 추출 dex 파일에서 jar 파일을 만들려면 dex2jar 프로그램이 필요 다운로드 : https://sourceforge.net/projects/dex2jar/files/

2.3 안드로이드 앱 분석 dex 파일에서 jar 파일 추출 dex2jar-2.0.zip 파일을 내려받아 zip 파일의 압축을 풀고 해당 폴더를 임의의 폴 더에 복사 ‘3 압축 풀기로 dex 파일 추출’에서 얻은 classes.dex 파일을 해당 폴더에 복사

2.3 안드로이드 앱 분석 dex 파일에서 jar 파일 추출 classes.dex 파일을 풀면 같은 폴더에 classes-dex2jar.jar 파일이 생성 jd-gui와 같은 프로그램을 이용하면 내용을 살펴볼 수 있음. 다운로드 : http://jd.benow.ca/ 압축을 풀고 jdgui.exe 파일을 실행하여 classes-dex2jar.jar 파일을 불러오면 디 컴파일된 class 파일을 살펴볼 수 있음. C:\dex2jar>d2j-dex2jar.bat classes.dex dex2jar classes.dex -> .\classes-dex2jar.jar

2.3 안드로이드 앱 분석 dex 파일에서 jar 파일 추출 압축을 풀고 jdgui.exe 파일을 실행하여 classes-dex2jar.jar 파일을 불러오면 디 컴파일된 class 파일을 살펴볼 수 있음.

2.3 안드로이드 앱 분석 jar 파일 압축 풀기로 class 파일 만들기 7-zip으로 jar 파일을 풀면 class 파일이 생성

2.3 안드로이드 앱 분석 class 파일을 디컴파일하여 java 파일 만들기 class 파일을 원래 소스코드인 java 파일로 바꾸기 위해 jad를 사용 다운로드 : http://www.javadecompilers.com/jad 내려받은 jad.exe 파일을 class 파일이 있는 상위 디렉터리로 복사

2.3 안드로이드 앱 분석 class 파일을 디컴파일하여 java 파일 만들기 Sublime Text 프로그램으로 보면 보다 정교하게 디컴파일된 java 코드 확인 다운로드 : https://www.sublimetext.com/3 jad -r -sjava -d classes-dex2jar **/*.class

3.1 모바일 위협 요소에 대한 대응 방안 ‘안전하지 않은 데이터 저장’에 대한 대응 방안 iOS 환경에서의 대응 방안 모바일 기기의 파일 시스템에 중요한 개인 식별 정보를 저장하지 않는다. 불가피하게 사용자 인증 정보를 제공해야 한다면 반드시 표준 웹 또는 API 로그인 스키마(HTTPS 등)를 사용한다. 정보를 저장하는 곳이나 캐시는 CommonCrypto와 같은 표준 iOS 암호화 라이브러리 사용을 고려한다. 데이터가 적다면 애플에서 제공하는 keychain API 사용을 권장한다. 데이터베이스에 대해서는 SQLite 데이터를 보호하기 위해 SQLcipher 사용을 권장한다. 민감한 데이터를 plist 파일에 저장할 때는 가급적 NSUserDefaults를 사용하지 않는다. NSManagedObjects를 이용한 모든 데이터/엔티티는 보호되지 않는 데이터베이스 파 일에 저장된다는 것을 인지해야 한다.

3.1 모바일 위협 요소에 대한 대응 방안 ‘안전하지 않은 데이터 저장’에 대한 대응 방안 안드로이드 환경에서의 대응 방안 로컬 저장소에 대한 엔터프라이즈 안드로이드 장치 관리 API는 ‘setStorageEncryption’ 을 통해 로컬 파일 저장소를 강제로 암호화하는 데 사용할 수 있다. SD 카드 저장소에 대한 보안은 ‘javax.crypto’ 라이브러리를 통해 부분적으로 해결할 수 있다. (가장 쉬운 것은 마스터 패스워드와 AES128로 평문 데이터를 암호화하는 것) 응용 프로그램 간의 정보 공유를 위해 반드시 필요한 경우가 아니면 모든 공유 환경 설 정에 MODE_WORLD_READABLE이 되지 않도록 한다.

3.1 모바일 위협 요소에 대한 대응 방안 ‘충분하지 않은 전송 계층 보호’에 대한 대응 방안 일반적인 고려 사항 네트워크 계층은 안전하지 않기 때문에 잠재적으로 도청이 가능하다는 사실을 항상 염 두에 두어야 한다. 민감한 정보, 세션 토큰, 그 외 중요한 데이터를 백 엔드 API 또는 웹 서비스와 주고받 을 때는 모든 전송 채널에 대해 SSL/TLS를 사용한다. 산업 표준 암호 알고리즘을 사용하고, 키의 길이는 짧지 않게 적절히 설정한다. 신뢰할 수 있는 CA 제공자가 서명한 인증서를 사용한다. 자체 서명한 인증서는 절대 받아들이지 않는다. SSL chain 검증을 무시하거나 비활성화시키지 않는다. 유효하지 않은 인증서가 탐지되면 경고를 보낸다.

3.1 모바일 위협 요소에 대한 대응 방안 ‘충분하지 않은 전송 계층 보호’에 대한 대응 방안 iOS 환경에서의 대응 방안 CFNetwork를 사용할 때 신뢰할 수 있는 클라이언트 인증서를 지정하기 위해 안전한 전송 API를 사용하는지 확인한다. 대부분의 경우 NSStreamSocketSecurityLevelSSLv3 또는 NSStreamSocketSecurityLevelTLSv1은 매우 높은 암호화 표준 길이를 사용한다. 개발 후 NSURL 콜(또는 NSURL의 래핑)은 자체 서명된 것이나 NSURL 클래스 메소드 인 setAllowsAnyHTTPSCertification과 같은 유효하지 않은 인증서를 받아들여서는 안 된다. 안드로이드 환경에서의 대응 방안 애플리케이션에서 org.apache.http.conn.ssl.AllowAllHostnameVerifier 또는 SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER와 같은 모든 인증서를 받아들이 지 않도록 개발 사이클이 끝나면 해당 부분을 모두 제거해야 한다.

3.2 모바일 통제와 설계 원칙 모바일 장치에 있는 민감한 데이터를 식별하고 보호 설계 단계에서 데이터의 중요도와 통제 적용을 고려하여 데이터 저장 방식을 분류한다(예를 들어 패스워드, 개인 데이터, 위치 정보, 에러 로그 등). 데이터의 처리와 저장, 사용은 이 분류 기준에 따라 수행되어야 한다. 또한 API 함수에 대 한 보안 검증은 민감한 데이터에 적용되어야 한다. 민감하고 중요한 데이터는 클라이언트 측 장치가 아닌 서버에 저장한다. 이는 안전한 네트워크 연결이 보장되고, 서버 측에 적용된 보호 메커니즘이 높은 수 준이라는 것을 전제로 한다. 장치에 데이터를 저장할 때 OS에서 제공하는 파일 암호화 API를 사용한다. 애플리케이션을 개발할 때 데이터를 최초 생성할 때부터 저장, 이용, 삭제할 때 까지 유출되지 않도록 안전한 방법을 고려한다.

3.2 모바일 통제와 설계 원칙 장치에 있는 패스워드 식별 정보를 안전하게 처리 패스워드 대신 장치에 안전하게 저장할 수 있는 긴 문자열의 인증 토큰 사용을 고려한다. 해당 토큰이 전송될 때 SSL/TLS를 이용하여 안전하게 교환되도록 한 다. 패스워드를 장치에 저장해야 할 경우 모바일 OS에서 제공하는 암호화와 키 저 장 메커니즘을 이 용한다. 모든 패스워드의 복잡도를 테스트한다. 패스워드와 키가 캐시 또는 로그에 보이지 않도록 한다. 패스워드 또는 비밀 정보가 애플리케이션 바이너리에 포함되지 않도록 한다.

3.2 모바일 통제와 설계 원칙 전송 시 민감한 데이터가 보호되는지 확인 전송되는 네트워크가 안전하지 않다고 가정한다. 애플리케이션에서 네트워크를 통해 민감한 데이터를 전송할 때 SSL/TLS와 같 은 end-to-end 시큐어 채널을 사용한다. AES와 같은 검증된 암호화 알고리즘을 사용하고 적절한 키 길이를 적용한다. 신뢰된 CA 제공자에 의해 서명된 인증서를 사용한다. 자체 서명된 인증서는 허 용하지 않는다. 민감한 데이터에 대한 Man-in-middle 공격(SSL proxy, SSL strip)의 위험을 줄 이기 위해 원 격 엔드-포인트(서버) 식별을 검증한 후 안전한 채널을 연결한다. 민감한 데이터를 전달할 때는 SMS, MMS 또는 공지 문자 등을 사용하지 않는 다.

3.2 모바일 통제와 설계 원칙 사용자 인증, 권한, 세션 관리를 올바르게 구현 애플리케이션에 적절한 길이의 사용자 인증값을 요청한다. 초기 인증 이후 세션 관리는 안전한 프로토콜을 통해 처리한다. 매우 복잡하고 예측하기 어려운 세션 식별자를 사용한다. 인증할 때 IP 주소와 같은 추가 보안 요소를 사용한다. 백 엔드 API(서비스)와 플랫폼(서버)을 안전하게 유지 모바일 장치와 웹 서버 백 엔드 또는 다른 외부 인터페이스 간에 민감한 데이 터가 의도치 않은 상태로 전송되는 경우가 있는지 코드를 면밀히 확인한다. 모바일 앱에 대한 모든 백 엔드 서비스(REST/Web 서비스)는 주기적으로 취약 점을 검토한다. OS, 웹 서버, 다른 애플리케이션 컴포넌트 등에 적용된 최신 보안 패치가 백 엔 드 플랫폼(서버)에 적용되어 있는지 확인한다. 사용자/IP별 Rate 최솟값을 적용하여 DDoS 공격의 위험을 줄인다.

3.2 모바일 통제와 설계 원칙 서드 파티 서비스와 애플리케이션의 데이터 통합을 안전하게 수행 모바일 애플리케이션에서 사용되는 서드 파티 코드/라이브러리에 대한 보안과 인증이 안전하게 되어 있는지 확인한다. 보안 패치를 위해 모바일 애플리케이션에서 사용되고 있는 서드 파티 프레임워 크/API를 조사한다. 신뢰할 수 없는 서드 파티 앱으로부터 전달받는 모든 데이터를 유심히 살펴본다. 사용자 데이터의 수집과 사용 동의를 구할 때는 신중히 대처 개인 정보를 보호할 수 있는 정책을 수립하고, 개인 정보 및 데이터를 사용할 경 우 사용자의 동의를 받는 채널을 만든다. 앱을 만들 때 사용자 개인 정보를 수집하는지 확인한다. 의도치 않은 노출을 확인하기 위해 커뮤니케이션 메커니즘을 살펴본다. 개인 식별 정보 전송에 대한 동의 기록을 보관한다.

3.2 모바일 통제와 설계 원칙 금융 지불 자원에 불법으로 접근하지 못하게 통제 모바일 애플리케이션을 안전하게 배포 금융 지불 자원에 접근한 로그를 모두 기록한다. 금융 지불 자원에 익명으로 접근이 가능한지, 재인증을 실행하는지 검사한다. 금융 지불 자원 주소에 대해 기본적으로 화이트리스트 모델을 사용한다. 금융 지불 자원에 대한 모든 API 호출을 인증한다 wallet API 콜백에서 계정/금액/청구/항목 정보를 평문으로 전송하지 않는다. 모바일 애플리케이션을 안전하게 배포 애플리케이션은 보안 패치를 적용시키도록 설계하고, 앱 스토어에서 승인되기 위한 모든 요건을 충족해야 한다. 앱 스토어는 안전하지 않은 코드를 포함한 앱을 지속적으로 모니터링하고, 사 고가 발생하면 즉시 공지하고 원격에서 바로 삭제한다. 공식적인 앱 스토어를 통해 배포되는 앱은 취약점이 발생할 경우를 대비해 안전장치를 제공한다. 앱에서 보안 문제가 발견되었을 때 보고할 수 있는 피드백 채널을 제공한다.

3.2 모바일 통제와 설계 원칙 에러에 대한 실시간 코드 해석기(인터프리터)를 면밀히 확인 실시간 코드 해석기를 최소화하고 필요할 때는 최소한의 권한으로 실행한다. 실시간 코드 해석기의 퍼지 테스트를 한다. 샌드박스로 실시간 코드 해석기를 보호한다 ※ 안전한 앱 코딩 방법 • 정상적인 방법뿐만 아니라 비정상적인 방법으로도 앱을 테스트한다. • 모든 입력값을 검증한다. • 프로그래밍 코드를 최소화한다. • 안전한 언어를 사용한다(예를 들어 버퍼 오버플로가 안 되는 함수 사용 등). • 보안 결함을 찾기 위해 정적 분석과 동적 분석을 수행하고 퍼지 테스트를 한다. • 버퍼, 정수 오버플로를 피하기 위해 안전한 문자열 함수를 사용한다. • 애플리케이션이 요구하는 최소한의 권한으로 앱을 구동한다. • API에서 기본적으로 부여하는 권한을 인지하고 필요하지 않다면 제거한다. • 루트나 시스템 관리자 권한으로 코드나 앱을 실행하지 않는다. • 권한을 가진 사용자뿐만 아니라 표준 권한으로도 테스트를 수행한다. • OS에서 제공하는 통신 메커니즘을 사용한다. • 앱을 배포하기 전에 테스트한 모든 코드를 제거한다. • 로깅이 적절하게 기록되는지 확인한다. 단, 민감한 정보까지 불필요하게 로그에 보 관하지 않도록 한다.