softcon hack your_service

35
Hack Your Service

Upload: heogyu

Post on 14-Apr-2017

2.757 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Softcon hack your_service

Hack Your Service

허 규

Page 2: Softcon hack your_service

Hacking?

Page 3: Softcon hack your_service

Security Area

많은 영역이 존재함 .

Infra Policy Analysis Develop-ment

Software/Service 취약점 분석

사고분석 및 대응 디지털 포렌식

악성코드 분석

데이터 분석(BIG DATA)

Page 4: Softcon hack your_service

Why Application Security?

취약한 소프트웨어의 경제적 손실

점검한 소프트웨어와 애플리케이션의 76% 가 디자인과 실행에 심각한 결함을 가지고 있었다 . Foundstone( 미국 보안 컨설팅 회사 ) 조사

미국 경제에 600 억 달러의 손실이 조잡한 소프트웨어의 품질로 인해 발생하고 있다 . 미국 상무부 (US Department of Commerce)

제품 단계에서 버그를 수정하는 것은 디자인 단계에서 수정하는 것보다 100x100 배의 비용이

소비된다 . IBM System Sciences Institute

애플리케이션 코드 1,000 라인에는 평균 15 개의 보안 취약점이 존재한다 . 미국 국방성 자료

1 개의 취약점을 추적하는데 평균 75 분이 소요되며 , 이를 해결하는데 2 시간 내지 9 시간이 소요

미국 국방성 5 년간 연구 자료

Page 5: Softcon hack your_service

어떤 일을 하실지는 모르지만 .

개발자 ?

기획자 ?

CEO?

Page 6: Softcon hack your_service

어떤 웹서비스를 만들었는데

Page 7: Softcon hack your_service

내가 만든 서비스

이 서비스는 이런 기능이 있습니다 .

Page 8: Softcon hack your_service

공격자의 입장

여기서 여러분이 공격자라면 ?

(1) 서버를 직접 침투해서 , Web 서버를 장악한 다음에 Database 서버를 찾아서 DB 내용을 다

뒤져내어 대화 목록을 찾아낸다 .

(2) 채팅방 이용자로 하여금 나에게 채팅 내용을 전송하도록 만들어놓는다 .

Page 9: Softcon hack your_service

4. Web Application Hacking

OWASP TOP 10 (2013)

* 출처 :OWASP 2013 TOP 10 번역 문서

Page 10: Softcon hack your_service

XSS

XSS (Cross Site Scripting)

클라이언트 ( 브라우저 ) 에서 공격자가 의도한 스크립트를 실행시키는 기법

Page 11: Softcon hack your_service

XSS

XSS (Cross Site Scripting)

아래와 같은 원인으로 발생

http://www.naver.com/search.php?date=20151121 이라는 URL 이 있을 때 ,

서버쪽의 코드가 아래처럼 구성되어 있다면 ,

생성된 HTML 코드는 아래와 같음 .

만약 http://www.naver.com/search.php?date=20151121’><script>alert(1)</script> 를 입력한다면 ,

생성된 HTML 코드는 아래와 같음 .

* 즉 사용자가 입력한 값을 아무런 필터 처리를 하지 않고 , 그대로 응답에 포함시켜 발생

<?php$date = $_GET[‘date’];echo “<a href=‘http://xxx.com/$date’>GO!</a>”

?>

<a href=‘http://xxx.com/20151121’>GO!</a>

<a href=‘http://xxx.com/20151121’><script>alert(1)</script>’>GO!</a>

Page 12: Softcon hack your_service

XSS

XSS (Cross Site Scripting)

활용 방안

Page 13: Softcon hack your_service

XSS

XSS (Cross Site Scripting)

Javascript 로 할 수 있는 것은 모두 가능

키 입력 기록 ( 키로깅 )

클립보드 컨텐츠 수집

사용자를 악성코드 유포지로 이동시키는 등

<script>document.onkeypress = function(){window.status += String.fromCharCode(window.event.keycode);

}</script>

<script> alert(window.clipboardData.getData(‘Text’)); </script>

Page 14: Softcon hack your_service

Fiddler / Local Proxy

Local Web Proxy 를 이용하여 URL 을 파악

- Fiddler, BurpSuite, Paros 등

Page 15: Softcon hack your_service

취약점의 발견

Proxy 에서 확보한 URL 의 Parameter 에 “ ><script>alert(‘hi’)</script> 를 넣어본다 .

예 ) http://band.us/#!/57513443 이라는 URL 이 있을 때 , http://band.us/124125”><script>alert(‘hi’)</script> 로 입력해보면서 ...

Page 16: Softcon hack your_service

이런 결과가 가능할까 ?

공격자가 내가 만든 서비스에서의 XSS 를 포함한 다수의 취약점을 찾았고 ,

공격자는 이 취약점을 이용하여 다른 사람의 대화내용을 엿보다가 제보자에 의해 경찰 수사에 걸렸다 .

내가 만든 서비스의 보안 취약점이 언론화 되었고 사람들이 점점 이용하지 않게 되었다 .

Page 17: Softcon hack your_service

실전 !

XSS 를 이용한 채팅 내용 Hooking.

BeEF XSS Framework 를 이용하여 손쉽게 XSS 취약점을 이용하여 취약점에 노출된 사용자들을

공략할 수 있음

- http://beefproject.com

Page 18: Softcon hack your_service

방어 기법은 대부분 단순

Secure Coding for prevent XSS.

아까의 서버코드를 다시 끄집어보면 ,

다시 http://www.naver.com/search.php?date=20151121’><script>alert(1)</script> 를 입력한다면 ,

사용자가 입력한 값을 확실히 통제하고 있어서 XSS 의 발생을 막을 수 있음 .

<?php$date = htmlspecialchars($_GET[‘date’]);echo “<a href=‘http://xxx.com/$date’>GO!</a>”

?>

<a href=‘http://xxx.com/20151121&#39&gt;&lt;script&gt;alert(1)&lt;/

script&gt;’>GO!</a>

Page 19: Softcon hack your_service

Mobile Security

Page 20: Softcon hack your_service

Mobile Security

공격자는 또다시 취약점을 찾기 시작한다 .

게임의 특성 상 유닛의 쿨타임이 존재하고 , 유닛 생성 시에 미네랄을 소비한다면 ,

별다른 보안 조치를 하지 않았다면 이 녀석을 Decompile 해보자 !

Page 21: Softcon hack your_service

Mobile Security

Class.dex 파일을 디컴파일 하여 JAVA 소스를 전체 분석해보니 ,

게임 내 쿨타임이나 공격 거리 등의 룰이 정의되어 있는 클래스가 없다 .

Page 22: Softcon hack your_service

Mobile Security

그렇다면 , cocos2d-x 라이브러리가 있는 것으로 보아 , 당연히 NDK 를 이용하는 것이니 ,

내부 lib 폴더 내에 있는 So 파일을 살펴본다 .

Page 23: Softcon hack your_service

Mobile Security

Libgame.so 를 Disassemble 하여 분석한다 .

Page 24: Softcon hack your_service

Mobile Security

Android 에서의 Reversing 방지 대책

Code obfuscation 적용

- Proguard

주요 기능들은 Native 로 .

모바일보안 Solution 적용

- APKProtect

- 메두사 등

게임과 같은 경우는 서버단에서의 로직을 강화

Page 25: Softcon hack your_service

스미싱

네이버 고객센터를 사칭하여 스미싱 SMS 가 발송됨

Page 26: Softcon hack your_service

스미싱

‘Google Play’ 라는 이름으로 설치되며 , 최초 아이콘 클릭하여 실행 시 기기 관리자 화면 출력 이후

아이콘 사라짐 .

구글 플레이에서 ‘카카오톡 친구찾기 – 카카오 n 동창 외‘ 라는 앱을 설치하도록 유도

Page 27: Softcon hack your_service

스미싱

다운로드 받은 파일 분석

파일헤더 : PK 이니 APK 로 변경 (suspicious.apk)

cmd> JAVA –jar apktool.jar suspicious.apk

Page 28: Softcon hack your_service

스미싱

Manifest 파일 분석

AndroidManifest.xml // 문자 메시지 수신 확인

<uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECEIVE_MMS" />

// 문자 메시지 읽기

<uses-permission android:name="android.permission.READ_SMS" /> // 전화기 상태 확인 , 부팅완료되면 자동 실행

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

// 서버에서 보내는 푸쉬메시지 수신

<permission android:name="com.googleprojects.mmsp.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.googleprojects.mmsp.permission.C2D_MESSAGE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> // 인터넷 접속 - 네트워크 접속을 통한 정보 전송이 예상됨

<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Page 29: Softcon hack your_service

스미싱

기기관리자로 등록되어 악성 행위 수행함을 예측 가능

AndroidManifest.xml// Device Administration API 는 system 레벨에서의 기기 관리<receiver android:label="google_service_admin" android:name="com.googleprojects.mm.DevAdReceiver" android:permission="android.permission.BIND_SERVICE_ADMIN"> <meta-data android:name="android.app.device_admin" android:resource="@xml/lock_screen" /> <intent-filter> <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> </intent-filter></receiver>

lock_screen.xml// 화면을 잠기는 방법과 시기를 제어할 수 있는 기능 설정<?xml version="1.0" encoding="utf-8"?><device-admin xmlns:android="http://schemas.android.com/apk/res/android"> <uses-policies> <force-lock /> </uses-policies></device-admin>

Page 30: Softcon hack your_service

스미싱

Decompile! - Using Dex2jar

Page 31: Softcon hack your_service

스미싱

Decompile! - Using Dex2jar

Page 32: Softcon hack your_service

Library

잘 사용하고 있던 최신의 라이브러리도 시간이 지나면 취약점이 드러난다 .

Page 33: Softcon hack your_service

Heartbleed

서버의 메모리를 확인 가능

Page 34: Softcon hack your_service

Conclusion

모두가 함께 하는 보안 !

1. 개발자가 분들에게1. Secure Coding 을 반드시 적용

2. 관련 문서

2013 년 행안부 배포 자료 : http://www.securitya.kr/eduwiz/bb/bbs/board.php?bo_table=c403&wr_id=12 (JAVA, C, Android 코딩 가이드 )

2. 당신이 기획 / 개발한 서비스를 반드시 Hacking 시도

1. 비즈니스적인 로직의 Abusing 여부 점검

2. 실제 모의해킹을 진행함으로써 공격자가 공격할 수 있는 Point 를 감소 시킴

Page 35: Softcon hack your_service

-Thank You.

[email protected]