softcon hack your_service
TRANSCRIPT
![Page 1: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/1.jpg)
Hack Your Service
허 규
![Page 2: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/2.jpg)
Hacking?
![Page 3: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/3.jpg)
Security Area
많은 영역이 존재함 .
Infra Policy Analysis Develop-ment
Software/Service 취약점 분석
사고분석 및 대응 디지털 포렌식
악성코드 분석
데이터 분석(BIG DATA)
![Page 4: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/5.jpg)
어떤 일을 하실지는 모르지만 .
개발자 ?
기획자 ?
CEO?
![Page 6: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/6.jpg)
어떤 웹서비스를 만들었는데
![Page 7: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/7.jpg)
내가 만든 서비스
이 서비스는 이런 기능이 있습니다 .
![Page 8: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/8.jpg)
공격자의 입장
여기서 여러분이 공격자라면 ?
(1) 서버를 직접 침투해서 , Web 서버를 장악한 다음에 Database 서버를 찾아서 DB 내용을 다
뒤져내어 대화 목록을 찾아낸다 .
(2) 채팅방 이용자로 하여금 나에게 채팅 내용을 전송하도록 만들어놓는다 .
![Page 9: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/9.jpg)
4. Web Application Hacking
OWASP TOP 10 (2013)
* 출처 :OWASP 2013 TOP 10 번역 문서
![Page 10: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/10.jpg)
XSS
XSS (Cross Site Scripting)
클라이언트 ( 브라우저 ) 에서 공격자가 의도한 스크립트를 실행시키는 기법
![Page 11: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/12.jpg)
XSS
XSS (Cross Site Scripting)
활용 방안
![Page 13: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/14.jpg)
Fiddler / Local Proxy
Local Web Proxy 를 이용하여 URL 을 파악
- Fiddler, BurpSuite, Paros 등
![Page 15: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/15.jpg)
취약점의 발견
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/16.jpg)
이런 결과가 가능할까 ?
공격자가 내가 만든 서비스에서의 XSS 를 포함한 다수의 취약점을 찾았고 ,
공격자는 이 취약점을 이용하여 다른 사람의 대화내용을 엿보다가 제보자에 의해 경찰 수사에 걸렸다 .
내가 만든 서비스의 보안 취약점이 언론화 되었고 사람들이 점점 이용하지 않게 되었다 .
![Page 17: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/17.jpg)
실전 !
XSS 를 이용한 채팅 내용 Hooking.
BeEF XSS Framework 를 이용하여 손쉽게 XSS 취약점을 이용하여 취약점에 노출된 사용자들을
공략할 수 있음
- http://beefproject.com
![Page 18: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/18.jpg)
방어 기법은 대부분 단순
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'><script>alert(1)</
script>’>GO!</a>
![Page 19: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/19.jpg)
Mobile Security
![Page 20: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/20.jpg)
Mobile Security
공격자는 또다시 취약점을 찾기 시작한다 .
게임의 특성 상 유닛의 쿨타임이 존재하고 , 유닛 생성 시에 미네랄을 소비한다면 ,
별다른 보안 조치를 하지 않았다면 이 녀석을 Decompile 해보자 !
![Page 21: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/21.jpg)
Mobile Security
Class.dex 파일을 디컴파일 하여 JAVA 소스를 전체 분석해보니 ,
게임 내 쿨타임이나 공격 거리 등의 룰이 정의되어 있는 클래스가 없다 .
![Page 22: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/22.jpg)
Mobile Security
그렇다면 , cocos2d-x 라이브러리가 있는 것으로 보아 , 당연히 NDK 를 이용하는 것이니 ,
내부 lib 폴더 내에 있는 So 파일을 살펴본다 .
![Page 23: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/23.jpg)
Mobile Security
Libgame.so 를 Disassemble 하여 분석한다 .
![Page 24: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/24.jpg)
Mobile Security
Android 에서의 Reversing 방지 대책
Code obfuscation 적용
- Proguard
주요 기능들은 Native 로 .
모바일보안 Solution 적용
- APKProtect
- 메두사 등
게임과 같은 경우는 서버단에서의 로직을 강화
![Page 25: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/25.jpg)
스미싱
네이버 고객센터를 사칭하여 스미싱 SMS 가 발송됨
![Page 26: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/26.jpg)
스미싱
‘Google Play’ 라는 이름으로 설치되며 , 최초 아이콘 클릭하여 실행 시 기기 관리자 화면 출력 이후
아이콘 사라짐 .
구글 플레이에서 ‘카카오톡 친구찾기 – 카카오 n 동창 외‘ 라는 앱을 설치하도록 유도
![Page 27: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/27.jpg)
스미싱
다운로드 받은 파일 분석
파일헤더 : PK 이니 APK 로 변경 (suspicious.apk)
cmd> JAVA –jar apktool.jar suspicious.apk
![Page 28: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/28.jpg)
스미싱
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/29.jpg)
스미싱
기기관리자로 등록되어 악성 행위 수행함을 예측 가능
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](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/30.jpg)
스미싱
Decompile! - Using Dex2jar
![Page 31: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/31.jpg)
스미싱
Decompile! - Using Dex2jar
![Page 32: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/32.jpg)
Library
잘 사용하고 있던 최신의 라이브러리도 시간이 지나면 취약점이 드러난다 .
![Page 33: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/33.jpg)
Heartbleed
서버의 메모리를 확인 가능
![Page 34: Softcon hack your_service](https://reader034.vdocuments.pub/reader034/viewer/2022051502/58f05bd61a28ab717f8b462f/html5/thumbnails/34.jpg)
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 를 감소 시킴