Contents I. 취약점점검소개 II. III. IV. 점검프로세스분석 취약점점검방법 기타
. 취약점점검소개 Ⅲ 취약점점검소개 각기관에서제시한취약점분석항목비교 국내 / 국외 기관명 KISA 안전행정부 국내 금융보안연구원 국정원 안철수연구소 ( 민간기업 ) SK 인포섹 ( 민간기업 ) OWASP (Open-source application security project) 국외 SANS / OWE 3
. 취약점점검소개 Ⅲ 2014 최신점검항목 국내모바일점검항목 (KISA/ 안행부 ) - 2014 년 10 월 KISA/ 안행부 모바일대민서비스보안취약점점검가이드 국외모바일점검항목 (OWASP) - 2014 년초홈페이지에릴리즈 OWASP Mobilie Top 10 4
. 취약점점검소개 Ⅲ 국내모바일점검항목 (KISA/ 안행부 ) 모바일전자정부서비스관리지침 ( 안전행정부예규, 2014.9.30) 의모바일앱대상보안취약점점검기준을참고 번호점검항목비고 1 2 반복설치시오류발생 앱설치전후비정상적인파일및디렉토리설치 설치 설치 3 불필요한권한존재설치 4 앱삭제후안전성삭제 5 기능의정상동작동작 6 임의기능등악성행위기능존재 동작 7 정보외부유출동작 번호점검항목비고 8 자원고갈동작 9 루팅및탈옥기기에서의정상동작 플랫폼 10 ID 값의변경플랫폼 11 동일키로서명된서로다른앱간의 UID 공유 플랫폼 12 인텐트권한의올바른설정플랫폼 13 인증정보생성강도적절성 14 중요정보의평문저장및전송 식별및인증 암호 5
. 취약점점검소개 Ⅲ 국내모바일점검항목 (KISA/ 안행부 ) 모바일전자정부서비스관리지침 ( 안전행정부예규, 2014.9.30) 의모바일앱대상보안취약점점검기준을참고 번호점검항목비고 15 중요정보저장및전송시취약한암호알고리즘적용 암호 16 기타중요정보의평문저장및전송암호 모바일 WEB 은일반홈페이지와유사하여 보안취약점진단방법도동일 17 18 19 기타중요정보저장및전송시취약한암호알고리즘적용 파일다운로드시외부주소및파일무결성회의 개인정보및개인위치정보수집및활용에대한동의 암호 암호 수집활용 20 난독화배포 6
. 취약점점검소개 Ⅲ 국외모바일점검항목 (OWASP) OWASP Mobile TOP 10 List (2014) 번호 TOP 10 Mobile Risks 비고 M1 Weak Server Side Controls 번호점검항목비고 M8 Security Decisions Via Untrusted Inputs M2 Insecure Data Storage M9 Improper Session Handling M3 Insufficient Transport Layer Protection M10 Lack of Binary Protections M4 Unintended Data Leakage M5 Poor Authorization and Authentication M6 Brkoen Crytography M7 Client Side Injection 7
. 점검프로세스 Ⅲ 점검프로세스 취약점점검프로세스는? 도둑 한몫챙긴도둑 1 2 3 집주변탐색 내부로접근하기위한방법강구 작업시간과목표물품정하기 8
. 점검프로세스 Ⅲ 취약점점검방법론 미국표준기술연구소 (NIST) 제시한모의해킹방법의절차참고하여, 기본적인모바일취약점점검프로세스구현 1. 사전업무협의단계 2. 정보수집단계 3. 취약점분석단계 4. 취약성분석및 Exploit 단계 수행방안수립 대상목록화 수집된정보목록화 취약점분석결과목록화 담당자미팅 ( 유선 / 오프라인 ) 시나리오선정 모바일장치정보수집 모바일 APP 정보수집 네트워크정보수집 모바일장치취약점분석 모바일 APP 취약점분석 네트워크취약점분석 취약점테스트 중요정보획득 / 취약점획득 대상 / 기간선정 모바일서버정보수집 모바일서버취약점분석 미션완료 9
취약점점검방법 (Android) 안드로이드취약점점검방법 환경구축 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 안드로이드구조 10
1. 이클립스환경구성 -1 이클립스환경구성 DDMS 를이용한메모리덤프, 프로세스및 스레드정보, 이벤트로그확인 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 1 4 PC 에서제어 2 JAVA JDK 설치 3 Eclipse 설치 Android SDK 설치 11
1. 이클립스환경구성 -2 이클립스환경구성 DDMS 를이용한메모리덤프, 프로세스및 스레드정보, 이벤트로그확인 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 4 PC 에서제어 5 ADT Plugin 설치 6 SDK 위치지정 DDMS 추가 12
2. ADB Shell 환경구성 -1 ADB Shell 환경구성 스마트폰접속가능인터페이스 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 1 JAVA SDK 설치 2 Adb Shell 실행 13
2. ADB Shell 환경구성 -2 ADB Shell 환경구성 스마트폰접속가능인터페이스 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 명령어 설명 Devices ADB Shell adb shell push adb shell chmod 777 adb pull adb install adb reboot adb 서버와연결된폰의디바이스와에뮬레이터목록을확인 여러단말기중하나를선택해서접속 adb -s emulator-5554 shell 파일복사 파일권한 파일추출 apk 파일설치 시스템재부팅 Adb Shell 기본명령어 14
3. 루팅 루팅 스마트폰의슈퍼권한획득 ( 진단시점검프로그램을구동시키기위한필수기능 ) 1 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 2 다운로드모드진입 3 다운로드모드진입 루팅프로그램구동 Root 확인 15
4. PC 에서제어 -1 PC 에서스마트폰제어 스마트폰의작은크기를극복하기 위한필수도구 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 Androidscreencast 를통한화면제어 Mobizen 프로그램을통해스마트폰제어 16
4. PC 에서제어 -2 스마트폰에뮬레이터 PC 에서안드로이드앱구동프로그램 1 이클립스환경구성 2 ADB Shell 3 안드로이드루팅 4 PC 에서제어 블루스택앱플레이어 Genymotion 에뮬레이터 17
취약점점검방법 (Android) 안드로이드취약점점검시기본적인점검방식에대하여소개 점검방법 1 어플리케이션변조 2 메모리정보확인 3 데이터베이스정보확인 4 전송정보확인 18
1. 어플리케이션변조 -1 어플케이션변조 Smali Code 수정 1 어플리케이션변조 2 메모리정보확인 3 데이터베이스정보확인 1 4 전송정보확인 APK 파일 Decoding 2 3 Smali Code 수정 4 APK 재컴파일 APK Sign 19
1. 어플리케이션변조 -2 어플케이션변조 JAVA 디컴파일소스확인 1 1 어플리케이션변조 2 메모리정보확인 3 데이터베이스정보확인 4 전송정보확인 2 컴파일 / 디컴파일순서 Undx.jar APK 압축해제 (classes.dex) 3 Jad 4 Dex 압축해제 Classes.dex.jar 확인 소스파일확인 20
2. 메모리정보확인 -1 Adb Shell 을통한메모리정보획득 1 어플리케이션변조 2 메모리정보확인 3 데이터베이스정보확인 1 4 전송정보확인 덤프파일생성폴더퍼미션변경 2 3 Process ID 체크 4 메모리덤프 메모리정보확인 21
2. 메모리정보확인 -2 GDB 실행중인어플리케이션메모리덤프 1 어플리케이션변조 2 메모리정보확인 1 3 데이터베이스정보확인 4 전송정보확인 2 Process ID Check 3 Process 메모리공간확인 4 GDB 를통한메모리덤프 22 메모리확인
3. 데이터베이스정보확인 SQLiteSpy 툴을통한 DB 내부구조확인 안드로이드데이터베이스 SQLite3 (sqlite3, db3, db) 1 어플리케이션변조 2 메모리정보확인 3 데이터베이스정보확인 4 전송정보확인 SQLite3 파일확인 DB 정보확인 23
4. 전송정보확인 스니핑및패킷변조 1 어플리케이션변조 2 메모리정보확인 1 3 데이터베이스정보확인 4 전송정보확인 2 ARP 스푸핑시작 3 패킷변조 변조된값확인 24
취약점점검방법 (ios) ios 취약점점검방법 환경구축 1 itunes 다운로드 2 Jailbreak 다운 3 ios 탈옥 4 Cydia ios 구조 25
ios 환경구성 ios 환경구축 itunes ( 스마트폰과 PC 동기화 ), Jailbreak ( 탈옥툴 ) ios 5.x(redsn0w), ios6.x 이상 (evasi0n), Cydia( 앱다운로드 ) 1 itunes 다운로드 2 Jailbreak 다운 3 ios 탈옥 1 4 Cydia 설치 Itunes 다운로드 (PC 에설치 ) 2 3 Jailbreak Tool Download 4 Evasi0n 을통한탈옥 Cydia 설치확인 26
취약점점검방법 (ios) ios 취약점점검방법 환경구축 1 탈옥탐지우회 2 메모리덤프 3 데이터베이스정보확인 4 전송정보확인 27
1. 탈옥탐지우회 GDB 를통한탈옥탐지우회 1 탈옥탐지우회 2 메모리덤프 3 데이터베이스정보확인 1 4 전송정보확인 APP 탈옥탐지확인 2 3 Class dump 분석 GDB Attach 28
1. 탈옥탐지우회 GDB 를통한탈옥탐지우회 breakpoint 4 1 탈옥탐지우회 2 메모리덤프 3 데이터베이스정보확인 4 전송정보확인 5 리턴값변경 6 7 변수명 Check 탈옥우회 29
2. 메모리덤프 GDB 를통한메모리덤프 1 탈옥탐지우회 2 메모리덤프 1 3 데이터베이스정보확인 4 전송정보확인 2 프로세스 Attach 메모리덤프 7 메모리정보확인 30
3. 데이터베이스정보확인 데이터베이스정보획득 Find 이용 (sqlite, db) 1 탈옥탐지우회 2 메모리덤프 1 3 데이터베이스정보확인 4 전송정보확인 데이터베이스사용자정보확인 SQLiteSpy 로도확인가능 31
4. 전송정보확인 ARP 스푸핑을통한패킷정보획득 1 탈옥탐지우회 2 메모리덤프 1 3 데이터베이스정보확인 4 전송정보확인 2 ARP 스푸핑공격시도 데이터정보확인 32
Ⅲ. 기타 기타 1. 해킹의구분 취약점점검 악성코드 (Exploit, Payload) 사회공학 2. 취약점진단과모의해킹차이점 취약점진단은검증된체크리스트항목을기준으로취약여부를판단하고, 조치하는것 모의해킹은검증된체크리스트이외에도다양한기술적해킹기법을통해보안을우회하여취약한 Hole 을 찾는것 ( 기술적, 관리적, 물리적보안 Hole 발견 ) 33