모바일 악성코드, 그것이 알고싶다

Post on 14-Nov-2014

710 views 3 download

description

호서대학교 벤처전문대학원 Security2U 내부 세미나

Transcript of 모바일 악성코드, 그것이 알고싶다

모바일 악성코드 , 그것이 알고싶다

Tokensoft 개발팀NTMA Lab 모바일팀Team CM0S

안양부흥고등학교 1학년 김남준 ( 착한아이 )

Index

1. 모바일 악성코드의 최근 동향 2. 모바일 악성코드 분석을 위한 준비 3. 모바일 악성코드 분석 4. 모바일 악성코드 치료법 5. 질의응답

START. 과거의 모바일 악성코드

1. 모바일 악성코드의 최근 동향

1. 모바일 악성코드의 최근 동향

1. 모바일 악성코드의 최근 동향

SMS 과금Premium

Call배경화면 변경주민등록번호 유출

원격 조종 위치정보

1. 모바일 악성코드의 최근 동향

모바일 악성코드를 방지하기 위해 구글은 멀웨어 방지 프로그램인 바운서를 구글 플레이에 적용하였으나 우회가 가능하다 .

악성 App 업로드

바운서 ( 멀웨어 검사 시스템 )

바운서 테스트 환경 정보를 받음

테스트 환경에서는 작동 못하게 변경 , 업로드

등록 성공

2. 모바일 악성코드 분석을 위한 준비

정적 분석 (Static Analysis) 애플리케이션을 직접 실행하지 않고 소스코드 만으로 분석하는

방법 . 애플리케이션의 요구권한과 악성코드 은닉여부 , 악성행위

검증이 가능하다 . 유지비용이 낮고 프로그램 전체를 분석할 수 있지만 , 코드

난독화나 허위탐지의 위험성이 있다 .

동적 분석 (Dynamic Analysis) 정적 분석과 달리 실제로 애플리케이션을 실행시켜 로그를

추출한 내용을 토대로 악성행위를 감시하는 분석 실제로 실행해봄에 따라 악성행위를 정확하게 탐지할 수 있다 . 그러나 시간이 오래 걸리며 유지비용이 많이 든다 .

2. 모바일 악성코드 분석을 위한 준비

apktool .apk 파일 속에 들어있는 xml 파일을 복원하기 위해 사용하는

툴 복원 결과 이미지와 xml 파일 , 각종 리소스 , smali code 가

복원된다 . Command>apktool d virus.apk virus

2. 모바일 악성코드 분석을 위한 준비

dex2jar 안드로이드 애플리케이션 내 .dex 파일을 jar 파일로 변환시켜주는 툴

Command>dex2jar class-es.dex

2. 모바일 악성코드 분석을 위한 준비

jd-gui 변환된 .jar 파일을 .class 로 볼 수 있게 하는 툴 위 툴을 사용하면 Java 소스코드를 볼 수 있다 .

3. 모바일 악성코드 분석 실습

분석 실습에 사용될 악성코드는 실제 Play Store 에서 유포되었던 Zitmo 계열의 악성코드 C 형 변형 악성코드입니다 .

http://goodboy2.dothome.co.kr/seminar.html 에 접속하셔서 악성코드 분석 툴과 악성코드 샘플을 다운받으시면 됩니다 .

4. 모바일 악성코드 치료법

4. 모바일 악성코드 치료법

안드로이드는 리눅스를 기반으로 한 Operating System 이다 .

= Linux 는 설정을 변경하려면 root 패스워드가 필요하다 . = Application 삭제만으로도 악성코드를 제거할 수 있다 . = 다른 Application 을 Default 로 설치한 경우에도

삭제로도 제거할 수 있다 .

4. 모바일 악성코드 치료법

애플리케이션 시작

버튼 클릭

Package Name 검색

애플리케이션 삭제Activity 실행

애플리케이션 삭제Activity 실행

애플리케이션 삭제

애플리케이션 종료

4. 모바일 악성코드 치료법

VaccineProgram.java

Button btn01 = (Button) findViewById(R.id.button01);

btn01.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

//TODO Auto-generated method stub

Intent intent = new Intent(Intent.ACTION_DELETE);

intent.setData(Uri.parse(“package:com.android.security”));

startActivity(intent);

}

});

5. 질의응답

질문하세요마음껏

감사합니다THANK YOU!