온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안...

27
온라인 게임보안 대응 사례 넥슨코리아 게임보안팀 이홍선

Upload: dothien

Post on 06-Mar-2018

224 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

온라인 게임보안 대응 사례

넥슨코리아 게임보안팀

이홍선

Page 2: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

This talk is about

•게임 서비스사 입장에서 관심 있는 게임 해킹에 대해 소개 합니다.

• IN-GAME 에서 발생하는 해킹에만 초점을 맞춥니다.

Page 3: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 해킹의 유형

•익스플로잇(Exploit)

•계정 도용

•치팅(Cheating)

•매크로(봇)

•어뷰징

•게임 서버 공격(DDoS, 패킷 공격 등)

•사설 서버

Page 4: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

익스플로잇(Exploit)

Page 5: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

7000만 유저

300만 동접

Page 6: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

유저 INPUT

전세계 수억명의 유저가 온라인 게임을 즐기기 때문에 상당히 매력적인 타깃. 그리고 일반 프로그램의 취약점을 찾는 것과 별반 다르지 않음.

• 세이브 데이터

• 네트워크 패킷

• 리소스 파일 • Models and items • Levels and maps • Movies and sounds • And so on …

Page 7: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

치팅(Cheating)

Page 8: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

What is 치팅?

부도도적인 방법으로 목표를 달성하는 것. 쉽게 말해 남보다 유리한 조건을 가지기 위해 게임의 규칙을 깨트리는 것.

• 카드 게임에서 상대방의 패를 본다던가

• 벽 뒤에 있는 유저를 본다던가

• 때렸는데 맞지도 않고

• 총을 쏘는데 총알은 떨어지질 않고

• 등등

Page 9: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

코드 변조

공격 포인트?

Page 10: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

코드 변조

대응방안?

가장 기본적인 방법은 코드 영역에 대한 CRC 검사. 하지만 우회가 쉬움.

• API 나 외부 모듈(D3D 등)을 후킹

• CRC 체크 주기에 맞춰 원본 코드로 복원

• CRC 체크 영역 변경

추가적인 대안

• 코드 영역에 대한 페이지 속성 검사

Page 11: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

데이터 변조

공격 포인트?

Page 12: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

데이터 변조

대응방안?

가장 좋은 방법은 모든 데이터를 서버에서 검증하는 방법. 하지만 현실적으론 어려움.

• 반응속도가 느림(랙 발생)

그렇다면?

• 데이터 저장 위치를 랜덤하게 변경

• 데이터 암호화

Page 13: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 함수 호출

공격 포인트?

Page 14: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 함수 호출

대응방안? 해당 함수의 리턴 주소 체크

• 해당 함수 전의 함수를 호출한다면?

• call 이 아니라 jmp 로 온다면?

Page 15: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 함수 호출

대부분의 해킹툴은 게임 내에 인젝션 되어 동작하며, 해킹툴 코드는 별도의 스레드로 동작.

스레드 ID 체크

Page 16: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

리소스 파일 변조

게임은 수많은 리소스 파일을 사용. 상당히 고용량이기 때문에 클라이언트에 미리 다운로드함. 여기에는 이미지 파일을 비롯하여 영상, 사운드 파일

그리고 캐릭터의 능력치나 스킬에 대한 내용도 포함.

Page 17: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)
Page 18: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

리소스 파일 변조

대응방안?

• 리소스 파일에도 무결성 검사가 필요

• 개발 단계의 리소스는 포함하지 말자

Page 19: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 서버 공격

Page 20: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

게임 서버 공격

게임 서버가 정상적인 서비스를 못하게 하는 공격으로 주로 다음의 방식을 이용.

• DDoS 를 이용한 DoS 어택

• 이상 패킷 전송을 통한 게임 서버 크래쉬

Page 21: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

대응방안

게임 서버 포트를 타고 들어오는 경우가 대부분이기 때문에 장비에서 무작정 막을 수는 없으며, 게임 서버에서 예외처리를 잘하는 수 밖에 없음.

Page 22: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

사설 서버(Private Server)

Page 23: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

What is 사설 서버?

Pirate Server, Free Server 라고도 불리며, 온라인 게임 업체의 허가 없이 사용자가 게임을 즐길 수 있도록 자체의 별도 서버를 운영해 서비스를 제공하는 짝퉁 온라인 게임사이트나 서버 또는 그러한 서비스를 제공하는 행위 등을 지칭.

Page 24: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

어떻게 발생할까?

발생원인

• 서버 바이너리 또는 게임 소스 유출

• 패킷 분석을 통한 구현

Page 25: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

그럼 어떻게 차단할까?

사실 사설 서버가 만들어진 상태라면 기술적으로 차단하는 것은 불가능

• 기술적인 코드는 클라이언트에 들어갈 수 밖에 없고

• 시간은 걸릴지 모르겠지만 어쨌든 클라이언트는 분석이 되기 때문

Page 26: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

대응방안

현실은 이래도 뭔가 대응은 해야 합니다.

• 서버 바이너리가 특정 서버에서만 구동되도록(WinLicense, VMProtect 등 이용할 수 있음)

• 게임 클라이언트에도 대비 코드를 넣자(접속하는 서버 IP 체크, 루프벡 어뎁터 체크)

• 패킷 암호화는 필수! 추가적으로 암호화 방식도 주기적으로 변경

• 법적 대응

Page 27: 온라인 게안 사례 - myucc.cafe24.commyucc.cafe24.com/pdf/세션3/(1)_온라인 게임보안 대응... · 게임 해킹의 유형 •익스플로 (Exploit) •계정 도용 •치팅(Cheating)

감사합니다!