SlideShare a Scribd company logo
1 of 6
안드로이드 기반 SNS게임의 데이터 통신 보안 위협에
대한 연구
이상호*
연세대학교 글로벌융합공학부*
sangholee@yonsei.ac.kr*
Sang Ho Lee*
School of Integrated Technology, Yonsei University*
요 약
안드로이드를 기반으로 한 게임에 대한 통신 보안 위협은 오래전부터 꾸준히 제기되어 왔지
만, 최근 카카오톡을 기반으로 한 새로운 형태의 소셜 네트워킹 게임 서비스의 등장은 새로운
형태의 네트워크 보안 기법을 필요로 하고 있다. 이러한 변화에도 불구하고 실제 서비스되고
있는 SNS 게임에는 패킷 보안이 거의 적용되어 있지 않은 실정이다. 이에 SNS 게임에 대한
데이터 패킷의 보안 취약성 및 영향력을 분석하고 이러한 문제점을 해결할 수 있는 방안에 대
해 알아보고자 한다.
ABSTRACT
Security threats on Android game has been discussed for a sufficient amount of
period. However, there are new game platform with Social Networking service in these
days, and therefore new security techniques are required. Despite of these trends, there
are limited games in the market which security module has been adapted. For this
reason, I would like to provide an analysis of security threats on Social Networking
Games, and propose the methods to improve security level in their game.
Keywords : Social Networking Service, Packet data, Data encryption, Android
1. 서 론
최근 스마트폰 게임의 숫자가 폭발적으로 증
가함에 따라 이에 따른 어플리케이션의 데이
터 통신에 대한 보안 위협도 급속도로 증가
하고 있다. 하지만, 아직 스마트폰 기반의 게
임에 대한 보안의식은 상당히 낮은 상태이
며, 안드로이드 기반의 스마트폰은 오픈소스
기반 운영체제라는 특성으로 인해 더더욱 패
킷 스니핑과 같은 취약점에 많이 노출되어
있는 상황이다. 이렇듯 안드로이드 기반의
스마트폰 게임은 통신 보안에 취약함에도 불
구하고 실제 이에 대한 연구는 거의 다루어
지지 않고 있다. 네트워크 패킷을 변조시키
는 작업에 대해서 적극적인 대처가 필요했지
만 크게 고려되지 않음으로서 이에 대한 보
안 취약점으로 인해 공격자는 원하는 대로
게임에 대한 정보를 조작할 수 있게 되었다.
따라서 본 논문에서는 스마트폰 게임에서의
데이터 통신 보안 위협에 대해 소개하고 이
러한 보안 위협을 최소화 할 수 있는 여러
가지 방법을 제안하고자 한다. 이를 위해 2
장에서는 관련 연구로서 스마트폰 게임의 보
안에 대한 동향 조사를 실시하고, 3장에서는
스마트폰 게임에 대한 공격 패턴을 알아본
후 4장에서 실제 어플리케이션을 통해 간단
한 취약점 분석을 시연한다. 5장에서는 안전
하게 게임을 제작하기 위해 쓰이는 기법들을
제안하고, 마지막으로 6장에서는 향후 연구
에 대해 논의한다.
2. 관련 연구
안드로이드 기반의 서버와 클라이언트가 통
신하는 패킷 변조에 대한 취약점에 대해서
는, 스마트폰의 독립된 하드웨어 구조상 분
석이 용이하지 않았으며, 이전에 존재하던
게임에서는 악의적인 목적을 지닌 플레이어
가 패킷을 분석 및 변조했다 하더라도 이를
통해 게임에서 목적을 달성할 만한 요소가
존재하지 않았기 때문에 이에 대한 연구의
필요성이 중요시되지 않았다. 하지만 내
SNS 게임에서 일어난 점수와 같은 이벤트가
상대방과 공유되기 시작하면서 게임 데이터
에 대한 보안에도 신경을 써야 했지만 아직
까지 대부분의 SNS 게임은 패킷 데이터 보
안에 대해 중요성을 인지하지 못하고 있다.
따라서 본 논문에서는 실제 SNS 게임에서
서버와 클라이언트간의 패킷 스니핑을 통해
실제 암호화 되지 않은 정보가 네트워크 레
이어를 통해 오가는 것을 시연한다.
3. 패킷 스니핑을 통한 게임 공격 패턴
안드로이드는 운영체제는 오픈소스 기반으로
되어 있으며, 이를 만드는 모든 소스코드 및
기법 또한 공개되어 있다. 따라서, PC에서
개발자를 위해 제공되는 안드로이드 에뮬레
이터(AVD)를 조금만 변형하면 실제 스마트
폰과 비슷한 성능을 낼 수 있도록 되어 있으
며, 많은 사람들이 실제로 에뮬레이터를 커
스터마이즈 시켜 자기만의 안드로이드 시스
템을 구축하곤 한다. 이와 비슷한 종류의 어
플리케이션 중 하나인 Bluestack[1]을 사용
하게 되면 현재 사용중인 대부분의 SNS 게
임 뿐만 아니라 모든 안드로이드용 어플리케
이션을 컴퓨터에서 에뮬레이션 시킬 수 있게
되며, 이는 컴퓨터에서 Wireshark[2]과 같은
패킷 스니퍼를 이용하게 되면 스마트폰과 서
버가 통신하는 모든 패킷을 수집 및 분석 가
능하게 만들어 주기 때문에 SNS 게임의 특
성상 분석 및 변조의 위험이 있는 송수신 패
킷에 대해서 모두 암호화 했어야 했지만 이
러한 부분에 대해서는 SNS 게임 뿐만 아니
라 실시간 멀티플레이 게임에서도 대부분 신
경 쓰지 않는 경우가 많았다. 그나마 다행인
것은 결제과정이 포함되어 있는 게임의 경우
결제 과정에서는 대부분 패킷 암호화가 적용
되어 있었는데, 이는 결제 과정에서는 전용
결제 모듈을 사용해 진행되는 경우가 많고
이러한 경우 보안이 뒤어 있는 모듈을 결제
를 담당하는 기관에서 제공하기 때문이다.
이와 같이 SNS 게임의 특성상 암호화되지
않은 패킷은 그대로 분석 및 변조가 가능하
고, 변조된 패킷은 그대로 서버에 반영되어
상대방에게 퍼져나가기 때문에 간단한 방법
을 통해 암호화를 진행했어야 함에도 불구하
고 이러한 작업은 현재 시판되고 있는 SNS
게임에서 대부분 적용되지 않고 있다. 이 장
에서 언급한 취약점들에 대해서는 본 논문의
다음 장에서 시연하도록 한다.
4. 실제 예를 중심으로 - 애니팡
이번 장에서는 네트워크 영역에서 암호화되
지 않은 패킷을 수신하면 그것을 패킷 스니
핑을 이용해 가로챈 후 분석할 수 있음을 시
시연하도록 한다.
4.1 패킷 스니핑을 이용한
네트워크상에서의 패킷 분석
네트워크 영역에서 패킷을 분석하기 위해서
는 우선 패킷 정보를 볼 수 있게 변형된 플
랫폼 위에서의 안드로이드 어플리케이션 실
행이 필수적이다. 따라서, 이를 위해 취할 수
있는 방법은 두가지가 있는데, 첫 번째는 관
리자 권한을 취득한 안드로이드 운영체제를
이용해 libpcap[3]을 이용하여 만들어진 패
킷 분석 소프트웨어를 이용하여 분석하는 방
법이 있으며, 두 번째 방법으로는 가상화 기
술을 이용하여 현재 존재하는 운영체제 위에
안드로이드 에뮬레이터(AVD)를 실행시킨 후
브릿지를 이용해 현재의 운영체제에서 쓰이
는 네트워크 영역을 공유하게 만들고 이 부
분에 대한 네트워크 트래픽을 winpcap[4]과
같은 라이브러리를 이용하여 만들어진 패킷
분석 소프트웨어를 통해 캡쳐하는 방법이 있
다. 일반적으로 패킷 분석과 같은 작업에서
는 방대한 양의 패킷 데이터가 감지되기 때
문에 원하는 패킷만을 감지해 내기 위해서
필터링 기능을 자주 이용한다. 이와 같은 이
유로 인해 공격자들은 Bluestack과 같은 안
드로이드 에뮬레이터에서 게임을 실행한 후
이를 Wireshark과 같은 패킷 캡쳐 유틸리티
를 이용하여 분석하게 되며, 이는 전자의 경
우에 해당하는 루팅 폰을 이용하는 경우보다
빠른 처리속도와 직관적인 인터페이스를 통
한 효율적인 분석이 가능하게 만들어 준다.
이러한 방법을 이용하여 실제로 진행된 SNS
게임 중 하나인 애니팡에 대한 패킷 분석 결
과를 보면[그림1], 게임에 표시되는 모든 데
이터가 암호화되지 않고 전송되는 것을 볼
수 있다. 특히, 게임에 대한 민감한 정보인
레벨, 코인, 게임머니, 최고성적 등과 같은
정보가 level, game_cash, real_cash 라는
알아보기 쉬운 attribute로 들어오는 것을
볼 수 있으며, 이에 매핑되어 수신된 데이터
들이 실제로 게임 화면상에서 그대로 표시되
는 것을 알 수 있다. 또한, rank_modified
와 같은 실제 게임에서 보이지 않는 민감한
정보들도 같이 수신되고 있음을 알 수 있다.
[그림 2] Reply attack 모식도
[그림1] 암호화되지 않은 채 수신 된
패킷(아래)과 실제 게임에서의 정보(위)
공격자는 이렇게 암호화 되지 않은 정보로
개인정보 획득 뿐만 아니라 패킷 변조를 통
해 인위적으로 조작된 정보를 서버에 등록하
도록 하는 데 응용 할 수 있다.
5. 보안 기법
위의 시연에서 보듯이, 네트워크 패킷 데이
터의 분석 후 변조과정을 통하게 되면 복잡
한 작업 없이도 변조된 패킷을 송신함으로서
공격자의 목적을 달성할 수 있게 되음을 보
았다. 따라서, 서버와 주고받는 패킷을 암호
화하여 분석을 불가능하게 만드는 방법이 필
요하며, 이번 장에서는 널리 알려진 SSL 기
법을 이용하여 코드 및 게임 데이터를 서버
와 통신할 때 최대한 안전할 수 있는 방법을
제안하고자 한다.
5.1 네트워크 패킷 암호화 -
SSL(Secured Socket Layer)
간단한 네트워크상에서 데이터 혹은 신원
에 대한 정보를 보호하기 위해서는 하나의
키값을 이용한 간단한 암호화 방식을 사용하
는 경우가 있다. 하지만, 단순 암호화만을 통
해 잘못 설계된 프로토콜의 경우는, 스니핑
된 패킷을 동일하게 재생하면 동일한 결과를
얻을 수 있다는 것을 이용한 Replay attack
기법[그림 2]을 통해 공격당할 수 있다. 따라
서 단순한 암호화 외에 암호화 통신을 할 때
여러 가지 정보를 포함하여 암호화하는 것이
안전한 패킷 통신 방법이며, 이러한 요구를
충족시키는 방법 중 하나로 현재 웹에서 많
이 사용되고 있는 SSL(Secured Socket
Layer)방식을 이용해 암호화된 패킷을 전송
하는 방법을 제안한다.[4][5] SSL방식은
TCP/IP를 사용하는 두 개의 통신 애플리케
이션 간 프라이버시와 무결성을 제공하는 프
로토콜로써, 클라이언트와 서버를 오고 가는
데이터는 Symmetric 알고리즘을 사용하여
암호화 된다. 동작 원리는 [그림 3]과 같다.
[그림 3] SSL 동작 원리
․클라이언트는 자신이 사용할 수 있는 암호
화 방식과 시도를 서버에게 전송하고, 서버
는 전송 받은 내용 중 자신이 사용할 수 있
는 방식을 선택한 정보와 ID 데이터 인증서
를 전송한다.
․클라이언트는 서버가 전송해 준 방식으로
세션키를 생성하고 이를 서버의 인증서에서
알아낸 공개키로 암호화한 마스터키를 서버
에 전송한다.
․클라이언트는 서버로 부터 전송되어온 ID
데이터를 세션키로 암호화한 데이터를 서버
로 전송하여 검증을 받는다.
․서버는 자신의 비밀키로 마스터키를 해독하
여 세션키를 알아낸 후, 클라이언트로부터
받은 시도를 세션키로 암호화한 후 클라이언
트로 전송하여 검증을 받는다.
․클라이언트와 서버는 전송하고자 하는 데이
터를 세션키로 암호화 후 전송한다.
SSL은 TCP/IP 등의 네트워크 전송 서비스
위에 하나의 Layer로 따로 구현하며, Layer
를 하나 더 올리는 대신 API를 기존의
Socket과 유사하게 유지함으로써 텔넷이나
FTP와 같은 기존의 모든 TCP/IP 응용프로
그램들을 SSL로 포팅하기 쉽게 만들었다.
암호화된 패킷은 Key파일이 없으면 복호화되
지 않으므로 안전하며, 이는 SNS 게임에서
쓰이고 있던 분석 및 변조가 가능한 패킷을
안전한 형태로 암호화하여 전송할 수 있기
때문에 적은 비용으로 최대의 보안 효과를
볼 수 있다. 실제로 4장에서 시연한 애니팡
의 패킷 스니핑의 경우에도 만약 통신하는
모든 패킷에 SSL이 적용되었다면 복호화를
위한 키를 알지 못하기 때문에 분석 자체가
불가능했을 것이며, 따라서 SSL을 이용하면
현재 많이 사용되고 있는 웹에서 뿐만 아니
라 SNS 게임에서도 충분히 보안 측면에서의
가치가 있는 기술이라고 판단된다.
5. 결론
본 논문에서 제안하는 안드로이드 기반
SNS 게임에 대한 네트워크 패킷의 보안 기
법은 패킷 데이터 암호화를 이용하여 데이터
도청의 성공 확률을 현저하게 낮춤으로서 악
의적인 목적의 공격 시도를 방어할 수 있다.
SSL을 이용한 네트워크 패킷 암호화 기법의
경우에는 만약 적은 bit 수의 인증서를 채택
하게 되면 무차별 대입 공격으로 빠른 시간
안에 키값을 찾아낼 수 있다는 것이 단점이
다. 이러한 경우에는 암호화된 데이터에 대
한 기밀성 보장을 받을 수 없으며, 따라서
1024bit 이상의 보안을 지원하는 것이 보안
을 유지할 수 있는 방법이다. 또한, 공개키
값은 서로 공유하고 있기 때문에 유출되어도
큰 피해는 없지만, 공개키가 유출되면 이를
이용해 바로 무차별 대입 공격을 통한 비밀
키 추측에 나설 수 있으므로 이러한 공격 시
도 자체를 무산시키기 위해서는 공개키 값을
시저의 암호화 알고리즘과 같은 간단한 연산
을 이용하여 shift 시키고 특정 바이트 단위
로 여러 개로 분리시킨 후 난독화를 진행시
켜 저장하게 되면 훨씬 효율적이라고 할 수
있겠다.
안드로이드 플랫폼을 이용하는 SNS 게임은
어플리케이션 영역 및 네트워크 영역에서의
보안이 되어 있지 않은 경우가 대부분이다.
따라서 본 논문에서는 SSL을 이용한 패킷
데이터 암호화를 통하여 악의적인 목적으로
네트워크 패킷 데이터를 분석한 후 변조된
패킷을 통해 공격자의 목적을 달성하고자 하
는 시도를 무산시키는 기술로서 활용할 수
있을 것으로 기대한다.
참고문헌
[1] 심원태, 김종명, 류재철, 노봉남, “안드로이드 앱
악성행위 탐지를 위한 분석 기법 연구,” 정보보
호학회논문지, 21(1), pp. 213-219, 2011년 2월.
[2] 김윤영, “국내 소셜 게임 시장 전망”, 한국컴퓨터
게임학회논문지,24(1),pp.113- 123, 2011년
[3] 이병용, 최용수, “Obfuscation 기술의 현황 및
분석과 향후 개발 방향”, 보안공학연구논문지
5(3),pp.219-228,2008년
[4] 최영철, S-HTTP 와 SSL에 대한 고찰, 한국통
신학회논문지 16권 11호 pp.64-70, 1999
[5] 최성, SSL(Secure Socket Layer) 기반에서 향상
된 정보보호 메커니즘의 설계, 한국정보처리학
회 2000년도 제13회 춘계학술대회 및 임시총회
학술발표 논문집, 2000 Apr. 14, 2000년,
pp.318-323
[4] Bluestack, http://bluestacks.com/
[5] Wireshark, http://www.wireshark.org/
[6] libpcap, http://www.tcpdump.org/
[7] winpcap, http://www.winpcap.org/
[8] Proguard, http://proguard.sourceforge.net/
[9] 애니팡, http://web-m-anipang.sundaytoz.com/
[10] Nomair A.Naeem, Laurie Hendren,
"Programmer-friendly Decompiled Java",
Proceedings of the 14th IEEE International
Conference on Program Comprehension,
2006
[11] Jerome Miecznikowski, Laurie Hendren,
"Decompiling Java Byte code:Problems,
Traps and Pitfalls" ,Proceedings of the 11th
Inter national Conference on Compiler
Construction, pp 111- 127, 2002
이 상 호(Lee, Sang Ho)
약 력 :
2007년 2월: 한국게임과학고등학교 졸업
2012년 4월: Digipen Institute of Technology 컴퓨터
공학과 학사
2012년 8월~현재: 연세대학교 글로벌융합공학부 석박통
합과정
관심분야 : 코드보안, 소프트웨어 아키텍쳐, 게임엔진, 컴
퓨터그래픽스

More Related Content

Similar to 안드로이드 기반 SNS게임의 데이터 통신 보안 위협에 대한 연구

Network programming report
Network programming reportNetwork programming report
Network programming reportJongwon
 
Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fSeungmin Shin
 
IoT 공통 보안가이드
IoT 공통 보안가이드IoT 공통 보안가이드
IoT 공통 보안가이드봉조 김
 
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview병준 김
 
SafeTicket final presentation
SafeTicket final presentationSafeTicket final presentation
SafeTicket final presentationWonJongOh1
 
Mobile app security nov 2015
Mobile app security nov 2015 Mobile app security nov 2015
Mobile app security nov 2015 Chanjin Park
 
모바일 게임 보안
모바일 게임 보안모바일 게임 보안
모바일 게임 보안TOAST_NHNent
 
Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20Wonil Seo
 
너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무 블록체인
 
『데이터 분석을 통한 네트워크 보안』 - 맛보기
『데이터 분석을 통한 네트워크 보안』 - 맛보기『데이터 분석을 통한 네트워크 보안』 - 맛보기
『데이터 분석을 통한 네트워크 보안』 - 맛보기복연 이
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해InGuen Hwang
 
[백서] 개인정보관리의 안전방안으로서 NAC
[백서] 개인정보관리의 안전방안으로서 NAC [백서] 개인정보관리의 안전방안으로서 NAC
[백서] 개인정보관리의 안전방안으로서 NAC 지니네트웍스
 
TIPN(Trusted IP Network) 솔루션 적용 모델
TIPN(Trusted IP Network) 솔루션 적용 모델TIPN(Trusted IP Network) 솔루션 적용 모델
TIPN(Trusted IP Network) 솔루션 적용 모델모바일 컨버전스
 
Wearable FINtech :Banking App. UI Design for Smart Watches
Wearable FINtech :Banking App. UI Design for Smart WatchesWearable FINtech :Banking App. UI Design for Smart Watches
Wearable FINtech :Banking App. UI Design for Smart WatchesSeunghun Yoo
 
사물인터넷 보안 사례 및 대응 방안 2016.11.09
사물인터넷 보안 사례 및 대응 방안   2016.11.09사물인터넷 보안 사례 및 대응 방안   2016.11.09
사물인터넷 보안 사례 및 대응 방안 2016.11.09Hakyong Kim
 
『안드로이드 시큐리티 인터널』 - 미리보기
『안드로이드 시큐리티 인터널』 - 미리보기『안드로이드 시큐리티 인터널』 - 미리보기
『안드로이드 시큐리티 인터널』 - 미리보기복연 이
 
홈가전io t보안가이드-최종본
홈가전io t보안가이드-최종본홈가전io t보안가이드-최종본
홈가전io t보안가이드-최종본남억 김
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdfTae wook kang
 

Similar to 안드로이드 기반 SNS게임의 데이터 통신 보안 위협에 대한 연구 (20)

Network programming report
Network programming reportNetwork programming report
Network programming report
 
Kgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-fKgc2014 one daylearnunitycryptography-f
Kgc2014 one daylearnunitycryptography-f
 
IoT 공통 보안가이드
IoT 공통 보안가이드IoT 공통 보안가이드
IoT 공통 보안가이드
 
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KR
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
 
SafeTicket final presentation
SafeTicket final presentationSafeTicket final presentation
SafeTicket final presentation
 
Mobile app security nov 2015
Mobile app security nov 2015 Mobile app security nov 2015
Mobile app security nov 2015
 
모바일 게임 보안
모바일 게임 보안모바일 게임 보안
모바일 게임 보안
 
Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20Trusted pass 소개서 2016 12_20
Trusted pass 소개서 2016 12_20
 
너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf너무블록체인 - 5분만에 블록체인 이해하기.pdf
너무블록체인 - 5분만에 블록체인 이해하기.pdf
 
『데이터 분석을 통한 네트워크 보안』 - 맛보기
『데이터 분석을 통한 네트워크 보안』 - 맛보기『데이터 분석을 통한 네트워크 보안』 - 맛보기
『데이터 분석을 통한 네트워크 보안』 - 맛보기
 
Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해Sha 2 기반 인증서 업그레이드 이해
Sha 2 기반 인증서 업그레이드 이해
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
[백서] 개인정보관리의 안전방안으로서 NAC
[백서] 개인정보관리의 안전방안으로서 NAC [백서] 개인정보관리의 안전방안으로서 NAC
[백서] 개인정보관리의 안전방안으로서 NAC
 
TIPN(Trusted IP Network) 솔루션 적용 모델
TIPN(Trusted IP Network) 솔루션 적용 모델TIPN(Trusted IP Network) 솔루션 적용 모델
TIPN(Trusted IP Network) 솔루션 적용 모델
 
Wearable FINtech :Banking App. UI Design for Smart Watches
Wearable FINtech :Banking App. UI Design for Smart WatchesWearable FINtech :Banking App. UI Design for Smart Watches
Wearable FINtech :Banking App. UI Design for Smart Watches
 
사물인터넷 보안 사례 및 대응 방안 2016.11.09
사물인터넷 보안 사례 및 대응 방안   2016.11.09사물인터넷 보안 사례 및 대응 방안   2016.11.09
사물인터넷 보안 사례 및 대응 방안 2016.11.09
 
『안드로이드 시큐리티 인터널』 - 미리보기
『안드로이드 시큐리티 인터널』 - 미리보기『안드로이드 시큐리티 인터널』 - 미리보기
『안드로이드 시큐리티 인터널』 - 미리보기
 
홈가전io t보안가이드-최종본
홈가전io t보안가이드-최종본홈가전io t보안가이드-최종본
홈가전io t보안가이드-최종본
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
 

Recently uploaded

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Recently uploaded (6)

캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

안드로이드 기반 SNS게임의 데이터 통신 보안 위협에 대한 연구

  • 1. 안드로이드 기반 SNS게임의 데이터 통신 보안 위협에 대한 연구 이상호* 연세대학교 글로벌융합공학부* sangholee@yonsei.ac.kr* Sang Ho Lee* School of Integrated Technology, Yonsei University* 요 약 안드로이드를 기반으로 한 게임에 대한 통신 보안 위협은 오래전부터 꾸준히 제기되어 왔지 만, 최근 카카오톡을 기반으로 한 새로운 형태의 소셜 네트워킹 게임 서비스의 등장은 새로운 형태의 네트워크 보안 기법을 필요로 하고 있다. 이러한 변화에도 불구하고 실제 서비스되고 있는 SNS 게임에는 패킷 보안이 거의 적용되어 있지 않은 실정이다. 이에 SNS 게임에 대한 데이터 패킷의 보안 취약성 및 영향력을 분석하고 이러한 문제점을 해결할 수 있는 방안에 대 해 알아보고자 한다. ABSTRACT Security threats on Android game has been discussed for a sufficient amount of period. However, there are new game platform with Social Networking service in these days, and therefore new security techniques are required. Despite of these trends, there are limited games in the market which security module has been adapted. For this reason, I would like to provide an analysis of security threats on Social Networking Games, and propose the methods to improve security level in their game. Keywords : Social Networking Service, Packet data, Data encryption, Android
  • 2. 1. 서 론 최근 스마트폰 게임의 숫자가 폭발적으로 증 가함에 따라 이에 따른 어플리케이션의 데이 터 통신에 대한 보안 위협도 급속도로 증가 하고 있다. 하지만, 아직 스마트폰 기반의 게 임에 대한 보안의식은 상당히 낮은 상태이 며, 안드로이드 기반의 스마트폰은 오픈소스 기반 운영체제라는 특성으로 인해 더더욱 패 킷 스니핑과 같은 취약점에 많이 노출되어 있는 상황이다. 이렇듯 안드로이드 기반의 스마트폰 게임은 통신 보안에 취약함에도 불 구하고 실제 이에 대한 연구는 거의 다루어 지지 않고 있다. 네트워크 패킷을 변조시키 는 작업에 대해서 적극적인 대처가 필요했지 만 크게 고려되지 않음으로서 이에 대한 보 안 취약점으로 인해 공격자는 원하는 대로 게임에 대한 정보를 조작할 수 있게 되었다. 따라서 본 논문에서는 스마트폰 게임에서의 데이터 통신 보안 위협에 대해 소개하고 이 러한 보안 위협을 최소화 할 수 있는 여러 가지 방법을 제안하고자 한다. 이를 위해 2 장에서는 관련 연구로서 스마트폰 게임의 보 안에 대한 동향 조사를 실시하고, 3장에서는 스마트폰 게임에 대한 공격 패턴을 알아본 후 4장에서 실제 어플리케이션을 통해 간단 한 취약점 분석을 시연한다. 5장에서는 안전 하게 게임을 제작하기 위해 쓰이는 기법들을 제안하고, 마지막으로 6장에서는 향후 연구 에 대해 논의한다. 2. 관련 연구 안드로이드 기반의 서버와 클라이언트가 통 신하는 패킷 변조에 대한 취약점에 대해서 는, 스마트폰의 독립된 하드웨어 구조상 분 석이 용이하지 않았으며, 이전에 존재하던 게임에서는 악의적인 목적을 지닌 플레이어 가 패킷을 분석 및 변조했다 하더라도 이를 통해 게임에서 목적을 달성할 만한 요소가 존재하지 않았기 때문에 이에 대한 연구의 필요성이 중요시되지 않았다. 하지만 내 SNS 게임에서 일어난 점수와 같은 이벤트가 상대방과 공유되기 시작하면서 게임 데이터 에 대한 보안에도 신경을 써야 했지만 아직 까지 대부분의 SNS 게임은 패킷 데이터 보 안에 대해 중요성을 인지하지 못하고 있다. 따라서 본 논문에서는 실제 SNS 게임에서 서버와 클라이언트간의 패킷 스니핑을 통해 실제 암호화 되지 않은 정보가 네트워크 레 이어를 통해 오가는 것을 시연한다. 3. 패킷 스니핑을 통한 게임 공격 패턴 안드로이드는 운영체제는 오픈소스 기반으로 되어 있으며, 이를 만드는 모든 소스코드 및 기법 또한 공개되어 있다. 따라서, PC에서 개발자를 위해 제공되는 안드로이드 에뮬레 이터(AVD)를 조금만 변형하면 실제 스마트 폰과 비슷한 성능을 낼 수 있도록 되어 있으 며, 많은 사람들이 실제로 에뮬레이터를 커 스터마이즈 시켜 자기만의 안드로이드 시스 템을 구축하곤 한다. 이와 비슷한 종류의 어 플리케이션 중 하나인 Bluestack[1]을 사용 하게 되면 현재 사용중인 대부분의 SNS 게 임 뿐만 아니라 모든 안드로이드용 어플리케 이션을 컴퓨터에서 에뮬레이션 시킬 수 있게 되며, 이는 컴퓨터에서 Wireshark[2]과 같은 패킷 스니퍼를 이용하게 되면 스마트폰과 서 버가 통신하는 모든 패킷을 수집 및 분석 가 능하게 만들어 주기 때문에 SNS 게임의 특
  • 3. 성상 분석 및 변조의 위험이 있는 송수신 패 킷에 대해서 모두 암호화 했어야 했지만 이 러한 부분에 대해서는 SNS 게임 뿐만 아니 라 실시간 멀티플레이 게임에서도 대부분 신 경 쓰지 않는 경우가 많았다. 그나마 다행인 것은 결제과정이 포함되어 있는 게임의 경우 결제 과정에서는 대부분 패킷 암호화가 적용 되어 있었는데, 이는 결제 과정에서는 전용 결제 모듈을 사용해 진행되는 경우가 많고 이러한 경우 보안이 뒤어 있는 모듈을 결제 를 담당하는 기관에서 제공하기 때문이다. 이와 같이 SNS 게임의 특성상 암호화되지 않은 패킷은 그대로 분석 및 변조가 가능하 고, 변조된 패킷은 그대로 서버에 반영되어 상대방에게 퍼져나가기 때문에 간단한 방법 을 통해 암호화를 진행했어야 함에도 불구하 고 이러한 작업은 현재 시판되고 있는 SNS 게임에서 대부분 적용되지 않고 있다. 이 장 에서 언급한 취약점들에 대해서는 본 논문의 다음 장에서 시연하도록 한다. 4. 실제 예를 중심으로 - 애니팡 이번 장에서는 네트워크 영역에서 암호화되 지 않은 패킷을 수신하면 그것을 패킷 스니 핑을 이용해 가로챈 후 분석할 수 있음을 시 시연하도록 한다. 4.1 패킷 스니핑을 이용한 네트워크상에서의 패킷 분석 네트워크 영역에서 패킷을 분석하기 위해서 는 우선 패킷 정보를 볼 수 있게 변형된 플 랫폼 위에서의 안드로이드 어플리케이션 실 행이 필수적이다. 따라서, 이를 위해 취할 수 있는 방법은 두가지가 있는데, 첫 번째는 관 리자 권한을 취득한 안드로이드 운영체제를 이용해 libpcap[3]을 이용하여 만들어진 패 킷 분석 소프트웨어를 이용하여 분석하는 방 법이 있으며, 두 번째 방법으로는 가상화 기 술을 이용하여 현재 존재하는 운영체제 위에 안드로이드 에뮬레이터(AVD)를 실행시킨 후 브릿지를 이용해 현재의 운영체제에서 쓰이 는 네트워크 영역을 공유하게 만들고 이 부 분에 대한 네트워크 트래픽을 winpcap[4]과 같은 라이브러리를 이용하여 만들어진 패킷 분석 소프트웨어를 통해 캡쳐하는 방법이 있 다. 일반적으로 패킷 분석과 같은 작업에서 는 방대한 양의 패킷 데이터가 감지되기 때 문에 원하는 패킷만을 감지해 내기 위해서 필터링 기능을 자주 이용한다. 이와 같은 이 유로 인해 공격자들은 Bluestack과 같은 안 드로이드 에뮬레이터에서 게임을 실행한 후 이를 Wireshark과 같은 패킷 캡쳐 유틸리티 를 이용하여 분석하게 되며, 이는 전자의 경 우에 해당하는 루팅 폰을 이용하는 경우보다 빠른 처리속도와 직관적인 인터페이스를 통 한 효율적인 분석이 가능하게 만들어 준다. 이러한 방법을 이용하여 실제로 진행된 SNS 게임 중 하나인 애니팡에 대한 패킷 분석 결 과를 보면[그림1], 게임에 표시되는 모든 데 이터가 암호화되지 않고 전송되는 것을 볼 수 있다. 특히, 게임에 대한 민감한 정보인 레벨, 코인, 게임머니, 최고성적 등과 같은 정보가 level, game_cash, real_cash 라는 알아보기 쉬운 attribute로 들어오는 것을 볼 수 있으며, 이에 매핑되어 수신된 데이터 들이 실제로 게임 화면상에서 그대로 표시되 는 것을 알 수 있다. 또한, rank_modified 와 같은 실제 게임에서 보이지 않는 민감한 정보들도 같이 수신되고 있음을 알 수 있다.
  • 4. [그림 2] Reply attack 모식도 [그림1] 암호화되지 않은 채 수신 된 패킷(아래)과 실제 게임에서의 정보(위) 공격자는 이렇게 암호화 되지 않은 정보로 개인정보 획득 뿐만 아니라 패킷 변조를 통 해 인위적으로 조작된 정보를 서버에 등록하 도록 하는 데 응용 할 수 있다. 5. 보안 기법 위의 시연에서 보듯이, 네트워크 패킷 데이 터의 분석 후 변조과정을 통하게 되면 복잡 한 작업 없이도 변조된 패킷을 송신함으로서 공격자의 목적을 달성할 수 있게 되음을 보 았다. 따라서, 서버와 주고받는 패킷을 암호 화하여 분석을 불가능하게 만드는 방법이 필 요하며, 이번 장에서는 널리 알려진 SSL 기 법을 이용하여 코드 및 게임 데이터를 서버 와 통신할 때 최대한 안전할 수 있는 방법을 제안하고자 한다. 5.1 네트워크 패킷 암호화 - SSL(Secured Socket Layer) 간단한 네트워크상에서 데이터 혹은 신원 에 대한 정보를 보호하기 위해서는 하나의 키값을 이용한 간단한 암호화 방식을 사용하 는 경우가 있다. 하지만, 단순 암호화만을 통 해 잘못 설계된 프로토콜의 경우는, 스니핑 된 패킷을 동일하게 재생하면 동일한 결과를 얻을 수 있다는 것을 이용한 Replay attack 기법[그림 2]을 통해 공격당할 수 있다. 따라 서 단순한 암호화 외에 암호화 통신을 할 때 여러 가지 정보를 포함하여 암호화하는 것이 안전한 패킷 통신 방법이며, 이러한 요구를 충족시키는 방법 중 하나로 현재 웹에서 많 이 사용되고 있는 SSL(Secured Socket Layer)방식을 이용해 암호화된 패킷을 전송 하는 방법을 제안한다.[4][5] SSL방식은 TCP/IP를 사용하는 두 개의 통신 애플리케 이션 간 프라이버시와 무결성을 제공하는 프 로토콜로써, 클라이언트와 서버를 오고 가는 데이터는 Symmetric 알고리즘을 사용하여 암호화 된다. 동작 원리는 [그림 3]과 같다.
  • 5. [그림 3] SSL 동작 원리 ․클라이언트는 자신이 사용할 수 있는 암호 화 방식과 시도를 서버에게 전송하고, 서버 는 전송 받은 내용 중 자신이 사용할 수 있 는 방식을 선택한 정보와 ID 데이터 인증서 를 전송한다. ․클라이언트는 서버가 전송해 준 방식으로 세션키를 생성하고 이를 서버의 인증서에서 알아낸 공개키로 암호화한 마스터키를 서버 에 전송한다. ․클라이언트는 서버로 부터 전송되어온 ID 데이터를 세션키로 암호화한 데이터를 서버 로 전송하여 검증을 받는다. ․서버는 자신의 비밀키로 마스터키를 해독하 여 세션키를 알아낸 후, 클라이언트로부터 받은 시도를 세션키로 암호화한 후 클라이언 트로 전송하여 검증을 받는다. ․클라이언트와 서버는 전송하고자 하는 데이 터를 세션키로 암호화 후 전송한다. SSL은 TCP/IP 등의 네트워크 전송 서비스 위에 하나의 Layer로 따로 구현하며, Layer 를 하나 더 올리는 대신 API를 기존의 Socket과 유사하게 유지함으로써 텔넷이나 FTP와 같은 기존의 모든 TCP/IP 응용프로 그램들을 SSL로 포팅하기 쉽게 만들었다. 암호화된 패킷은 Key파일이 없으면 복호화되 지 않으므로 안전하며, 이는 SNS 게임에서 쓰이고 있던 분석 및 변조가 가능한 패킷을 안전한 형태로 암호화하여 전송할 수 있기 때문에 적은 비용으로 최대의 보안 효과를 볼 수 있다. 실제로 4장에서 시연한 애니팡 의 패킷 스니핑의 경우에도 만약 통신하는 모든 패킷에 SSL이 적용되었다면 복호화를 위한 키를 알지 못하기 때문에 분석 자체가 불가능했을 것이며, 따라서 SSL을 이용하면 현재 많이 사용되고 있는 웹에서 뿐만 아니 라 SNS 게임에서도 충분히 보안 측면에서의 가치가 있는 기술이라고 판단된다. 5. 결론 본 논문에서 제안하는 안드로이드 기반 SNS 게임에 대한 네트워크 패킷의 보안 기 법은 패킷 데이터 암호화를 이용하여 데이터 도청의 성공 확률을 현저하게 낮춤으로서 악 의적인 목적의 공격 시도를 방어할 수 있다. SSL을 이용한 네트워크 패킷 암호화 기법의 경우에는 만약 적은 bit 수의 인증서를 채택 하게 되면 무차별 대입 공격으로 빠른 시간 안에 키값을 찾아낼 수 있다는 것이 단점이 다. 이러한 경우에는 암호화된 데이터에 대 한 기밀성 보장을 받을 수 없으며, 따라서 1024bit 이상의 보안을 지원하는 것이 보안 을 유지할 수 있는 방법이다. 또한, 공개키 값은 서로 공유하고 있기 때문에 유출되어도 큰 피해는 없지만, 공개키가 유출되면 이를 이용해 바로 무차별 대입 공격을 통한 비밀 키 추측에 나설 수 있으므로 이러한 공격 시 도 자체를 무산시키기 위해서는 공개키 값을 시저의 암호화 알고리즘과 같은 간단한 연산 을 이용하여 shift 시키고 특정 바이트 단위
  • 6. 로 여러 개로 분리시킨 후 난독화를 진행시 켜 저장하게 되면 훨씬 효율적이라고 할 수 있겠다. 안드로이드 플랫폼을 이용하는 SNS 게임은 어플리케이션 영역 및 네트워크 영역에서의 보안이 되어 있지 않은 경우가 대부분이다. 따라서 본 논문에서는 SSL을 이용한 패킷 데이터 암호화를 통하여 악의적인 목적으로 네트워크 패킷 데이터를 분석한 후 변조된 패킷을 통해 공격자의 목적을 달성하고자 하 는 시도를 무산시키는 기술로서 활용할 수 있을 것으로 기대한다. 참고문헌 [1] 심원태, 김종명, 류재철, 노봉남, “안드로이드 앱 악성행위 탐지를 위한 분석 기법 연구,” 정보보 호학회논문지, 21(1), pp. 213-219, 2011년 2월. [2] 김윤영, “국내 소셜 게임 시장 전망”, 한국컴퓨터 게임학회논문지,24(1),pp.113- 123, 2011년 [3] 이병용, 최용수, “Obfuscation 기술의 현황 및 분석과 향후 개발 방향”, 보안공학연구논문지 5(3),pp.219-228,2008년 [4] 최영철, S-HTTP 와 SSL에 대한 고찰, 한국통 신학회논문지 16권 11호 pp.64-70, 1999 [5] 최성, SSL(Secure Socket Layer) 기반에서 향상 된 정보보호 메커니즘의 설계, 한국정보처리학 회 2000년도 제13회 춘계학술대회 및 임시총회 학술발표 논문집, 2000 Apr. 14, 2000년, pp.318-323 [4] Bluestack, http://bluestacks.com/ [5] Wireshark, http://www.wireshark.org/ [6] libpcap, http://www.tcpdump.org/ [7] winpcap, http://www.winpcap.org/ [8] Proguard, http://proguard.sourceforge.net/ [9] 애니팡, http://web-m-anipang.sundaytoz.com/ [10] Nomair A.Naeem, Laurie Hendren, "Programmer-friendly Decompiled Java", Proceedings of the 14th IEEE International Conference on Program Comprehension, 2006 [11] Jerome Miecznikowski, Laurie Hendren, "Decompiling Java Byte code:Problems, Traps and Pitfalls" ,Proceedings of the 11th Inter national Conference on Compiler Construction, pp 111- 127, 2002 이 상 호(Lee, Sang Ho) 약 력 : 2007년 2월: 한국게임과학고등학교 졸업 2012년 4월: Digipen Institute of Technology 컴퓨터 공학과 학사 2012년 8월~현재: 연세대학교 글로벌융합공학부 석박통 합과정 관심분야 : 코드보안, 소프트웨어 아키텍쳐, 게임엔진, 컴 퓨터그래픽스