2009/11/26

게임 해킹과 방어 Agenda


오늘 진행한 게임 해킹과 방어 교육 자료에 쓴 Agenda이다.
실제 교육 자료에는 google 웹 검색을 통해서 얻은 수많은 그림 파일들과, 게임 해킹툴 스샷 화면, 게임 해킹 동영상 스샷 화면 등이 들어가져 있는데... 저작권 문제가 생길까봐 차마 공개적인 블로그에 -_- 올릴 수가 없다.
(내 교육 이전 교육 내용이 저작권 위반에 대한 이해 였어서.. 더더욱 신경이 쓰이고 있음.)
여하튼 교육은 일반 게임 이용자들을 대상으로 해서,
게임이 발전함에 따라서 게임 해킹이 얼마나 발전하고 있는지,
게임사와 게임 이용자들 간의 게임 해킹을 바라보는 시각 차이가 무엇이 있고, (그래서 무엇이 문제가 되었고)
게임 해킹들은 어떤 식으로 발전되어 왔으며,
게임사는 게임해킹을 막기위해 어떠한 노력들을 하고 있고,
마지막으로 그러한 노력들이 있음에도 불구하고 게임 해킹을 당하지 않기 위해서는 게임 이용자들이 어떤 점에 주의해야 하는가에 대해서 이야기를 했다.

1. 게임 시장과 게임 해킹
- 온라인 게임 시장의 발전
1994년 머드 게임 등장, 1990년대 후반 스타크래프트를 시작으로 2000년대 초반 포트리스 등 국민적 놀이문화로 발전
2000년대 중반 이후부터 온라인 게임시장 전성기를 맞이하면서, 온라인 게임에 대한 사회문제도 함께 대두됨.
- 게임 해킹의 성장
: 해킹툴 08년에 비해 6배 증가
'09년 들어 웹 게임 해킹 및 SNS를 통한 게임 해킹 시도 다양화
중국 등의 게임 해킹 시도가 꾸준히 늘고 있음.

2. 게임 해킹을 바라보는 세 가지 관점
2.1 게임 이용자가 생각하는 게임 해킹
- 내가 게임을 하는데 있어서 당하는 불이익(계정 도용, 아이템 사기, ...)
2.2 게임 개발자/운영자가 생각하는 게임 해킹
- 개발/운영중인 게임 서버/클라이언트에 가해지는 공격
2.3 게임 해킹을 시도하는 사람이 생각하는 게임 해킹
- 새로운 밥벌이? vs 게임 이용자에게 게임을 쉽게 할 수 있는 요술지팡이와 같은 유혹적인 물건
=> 게임 해킹이 일어날 때 게임 서버/클라이언트를 통한 해킹이 아닌 게임 이용자 PC의 취약점을 통해 계정해킹이 일어날 경우, 이 책임이 누구에게 있는가에 대한 책임소재 여부가 아직도 이슈거리로 남고 있음.

3. 게임 해킹의 발전
3.1 원시시대 [해커는 자기 과시를 위해 해킹을 시도,]
- 게임 속 버그 찾기
: 서든어택 핑버그, SQL injection, buffer overflow...
버그 못잡아 망한 게임들
- 게임 중 사회공학적인 해킹 시도
: 짖소 캐릭터 이용한 사기,
아이템 판매 중 0하나 더 붙여 판매,
게임 속 꽃뱀?
게임 피싱(친구 캐릭터로 접속해서 아이템 사기)
3.2 중세시대
[ 해커는 금전적인 이득, 남들보다 빨리 내 캐릭터를 성장하기 위해 해킹을 시도]
- 게임 서버 해킹 시도
: 게임 서버 바이너리를 해킹해서 사설 서버 운영...
Emulator를 이용한 서버 프로그램 제조
- 게임 클라이언트 해킹 시도
: 스피드핵, 메모리 변조, 패킷핵,파일 변조, 매크로/오토 플레이, 게임별 전용 핵...
게임 클라이언트에 대해 리버스 엔지니어링을 통해 게임 분석
이후 이를 다 합쳐 Non-client BOT 를 개발함. 유료 BOT. 업데이트 속도도 가공할 만함
- 게임 해킹을 위한 우회 해킹 (해킹을 위한 다른 시도? )
: 게임사에서 게임 서버/클라이언트에 대한 직접적인 공격 대응을 잘 하자,
상대적으로 더 쉽게 목적(아이템 갈취)을 얻을 수 있는 취약한 PC를 이용하는 이용자를 목표로 삼음.
피싱, 다른 취약한 웹 사이트를 통해 일반 사용자 PC에 백도어를 설치해서 계정 해킹 등
3.3 현대 시대
[ 해커도 일종의 직업, 먹고 살기 위해 조직적으로 행동!]
- 자동사냥 프로그램 제조, BOT 제조 판매
: BOT 제작자와 BOT 사용자(작업장)과의 관계
BOT 탐지 개발 vs BOT 탐지 우회 개발... 게임사와 BOT 개발사 사이의 시간 소모성 전쟁
Global 게임 위에 Global BOT
- DDoS 공격을 통한 금전 요구
: 정상적인 게임 서버, 아이템 판매 사이트, 사설서버까지...
프로그램 bug를 이용한 DDos, 혹은 허위 사실로 협박...
- 게임 보안 솔루션 패턴 탐지 우회 및 공격 시도
<2009>
프리서버 폭파 까페 - 프리서버를 조직적으로 DDoS 공격하는 까페, (네이버 다움 등.)
초/중학생이 주로 많이 가입.
최근 DDoS공격 유형의 57%가 프리서버에 대한 DDoS 공격
BOT 프로그램 내 Rootkit과 DDos Agent를 함께 넣어서, BOT 이용자 PC를 NETBOT으로 이용.

4. 게임 해킹 방어: 게임 개발자/운영자 관점
4.1 게임 운영의 변화 [게임사에서 게임 해킹 방어를 위해 시행하는 일들]
- 꼼꼼한 QA, 게임 속 대법관 GM의 등장
- BOT 탐지를 위한 눈물겨운 노력
: 안보이는 아이템 투여,
Gm의 의심스러운 BOT 말시키기, 게임 내 BOT 신고,
Captcha 등장,
BOT 설치 후 패턴을 분석해서 차단...
- 게임 로그 분석
: 정상적이지 않은 패턴이 있는지 데이터 마이닝 시도
BOT 패턴에 대한 여러가지 질문을 통해서 점수를 매겨서 특정 점수 이상이 되면 BOT로 간주하고 계정 제재.
(이동 경로, 주요 체류 맵, 주요 행위, 게임 지속 시간, 채팅 횟수, ... 등)
- 새로운 게임 오픈 전 취약점 점검은 필수! 게임 해커에게 쉽게 reversing이 되는지 체크도..!
4.2 게임 보안 솔루션의 등장
[게임 해킹 방어를 위한 기술적인 발전]
- 게임 클라이언트 보안 프로그램
: 패턴 기반 탐지 vs 로직 기반 탐지
최근 게임 클라이언트 보안 프로그램이 하는 일
* 해킹툴 및 시스템 바이러스 진단 및 차단
* 오토 마우스 매크로 차단
* 메모리 디버깅 방지
* 서버 인증 기능 - 게임 서버와의 통신을 지속적으로 확인하여, 보안 솔루션 구동이 없는 경우 연결을 끊음
* 게임 클라이언트 암호화 툴 제공
* 게임 클라이언트와 서버 사이의 암호화 통신 (패킷 암호화)
* 프록시 서버 방지 기능(중국 등 우회 접속 차단)
* 로그 서버
- 키보드 보안 솔루션,
- OTP, 접속 SMS 알림, PC 등록, 전화 인증 등 인증 강화 (계정도용 방지를 위해)
- 프로그램 패킹/코드 사이닝/유효기간 설정
: 패킹툴의 이용에 따른 또 다른 문제 ( 백신 프로그램 의 packing 된 클라이언트의 heuristics 오탐)
- 패킷 암호화(클라이언트와 서버 간의 통신 암호화)
- 게임 서버 바이너리에 대한 보안 설정
: 허가된 아이피, Mac/Disk SN, .. 등이 아니면 바이러니 실행이 안되도록 설정
인가되지 않은 곳에서 바이너리 실행시 게임 개발자에게 알림 메일 전송
- 빠른 BOT 패턴 차단을 위한 네트워크 기반 탐지 서버
- IPS/Web Firewall/Anti-DDoS 장비 구축
- 사용자들의 해킹 방지를 위한 강제 보안 패치 서비스[ocp]
4.3 게임 디자인 변경
[게임 해킹/BOT가 필요없는 게임? 게임 보안과 게임을 한 몸으로!!]
- 피로도 시스템
: 정상적인 사람이라면 게임을 오래 할 수는 없으니, 게임을 오래 할 수록 아이템 및 경험치를 낮게 주는 것은 어떨까?
- 게임성 자체의 변화
: 반복 작업이 없어서, BOT가 필요 없는 게임을 만들자?
- 게임 클라이언트에 자체적인 보안 솔루션 기능을 탑재
: 게임 보안 솔루션 업체를 통한 대응은 늦다. 우리가 직접~

5. 게임 해킹 방어 : 게임 이용자 관점
1. 돈의 유혹이 나를 꼬시더라도, 계정 거래를 자제하자
2. 백도어가 숨겨져 있을 수 있는 해킹툴/BOT 프로그램을 쓰지 말자.
3. 남들과 함께 쓰는 계정은 해킹의 위험을 급증시킨다.
4. PC에서의 백신 설치는 이제 필수다. 자주 full scan 하자.
5. 보안 패치를 하지 않으면, 단순 웹서핑 중에도 백도어에 감염될 수 있다.
6. 게임방은 해킹 위험지대다. 이용시 주의하고, 이용 후 비밀번호를 변경하자.
7. 중요한 게임 로그인 시, 돈 아까워 말고 추가 인증(OTP, PC등록,..등)을 이용하자.
8. 다른 곳과 동일한 계정/패스워드 사용을 자제하자.
9. Active X 설치, 이상한 메일 열람, 수상한 웹 페이지 접속을 자제하자.
10. 보안에 항상 관심을 갖고, 해킹 징후가 있다면 바로 신고하자.

2009/11/22

너무 풍요로운 SN 툴들

요즘들어서 좋은 인터넷 SN시스템[?]들이 너무 많다.
실제로 예전에는 홈페이지 하나만 잘 관리하면 되었었는데,
요즘엔 트위터, 페이스북, 블로그(만도 몇개인지..;; ), 싸이월드(안간지 몇년은 되었지만). 거기에다가 며칠 전부터 사용하기 시작한 구글 웨이브까지....
관리하고 있는 통로들이 너무 많기 때문에, 그 무엇도 제대로 관리되는게 없다.

메신저도 마찬가지.
MSN뿐 아니라, 구글톡, 네이트온, FB, 게다가 회사 메신저까지 포함하면...
도대체 몇개의 메신저에 로그인을 해야 하는건지...

(뭐 그런 이유로 통합 메신저 Digsby를 써서 3개 메신저와, 2개의 SN, 1개의 메일을 동시에 관리하고 있는 건지도)

인간관계를 생각하지 않고 어느 한 곳에 올인해서 하나만 쓰고 싶지만,
쓰다보면 더 좋은 새로운 SN들이 나오고,
그렇다고 예전에 써놨었던 나의 삶의 로그들을 버릴 수도 없고,
친구들과의 연결고리를 끊을 수도 없고...
그러면서 점점 더 개인적인 시간은 나지를 않고...;;;

그러다보니 무엇에도 제대로 하지 못하는 어정쩡한 상태가 지속되는 것 같다.
(이 블로그에 글 쓰는 것도 참 오래간만인듯.)

원래 게임 해킹과 방어 강의자료 만들면서 모아놓은 자료들을 블로깅하려고 했는데,
마침 구글 웨이브 테스트 하는김에 거기에다가 자료들을 다 모아놓아버렸다.
그러다 다시 블로그에 정리해서 옮기려니 귀찮아 지네...;;

뭐.. 그냥 나중에 Agenda 정도만 정리해서 블로깅 해야 겠다.

여하튼 무언가 좀 획기적으로 종합 관리를 잘 할 수 있는 방법이 오기를 바라며...

+. 구글 웨이브를 쓰다보니 장점과 단점이 보이는데...
뭐 단점들은 시간이 지나면 점점 개선되어질 것이라고 보여진다.
내가 발견한 단점들.
(1) 한글 지원이 완전하지 않다
(2) 실시간성 때문에 무겁고, 랙이 발생한다. (특히 유저가 동시에 많이 몰리는 경우)
(3) 업데이트 사항에 대해 바로 알려줄 수 있는 도구의 부재.
(예를들어 메일 알림, SMS 알림 등으로 소통을 실시간으로 할 수 있는 방법 마련이 필요)
(4) 아직 쓸 수 있는/ 구글 웨이브에서 지원해주는 App가 많지 않아 재미가 없다.

종합적인 느낌은, FB와 트위터, 블로그와 메일을 적당히 섞어놓은듯한 느낌.... + 실시간성으로 인한 신기함과 반면 퍼포먼스 저하로 인한 짜증.
예전 구글docs에서 클라우드 컴퓨팅 보안 문제로 인해서, 보안 설정이 된 문서가 anonymous에게공개되는 등의 보안 문제가 있었던 것을 인터넷 뉴스에서 봤던것 같은데.. 왠지 구글 웨이브도 이와 같은 보안 설정이 큰 이슈가 될 수 있을 듯 하다.
(무엇보다도 문서를 비롯 모든 로그가 구글 서버들에만 저장되어 있기 때문에,
보안 문제가 생기면 엄청나게 큰 이슈가 될 수도 있을 거라는 생각.)

구글 웨이브가 성공하기 위해서는, 실시간성을 살리면서 퍼포먼스를 높일 수 있는 기술적인 개선과, 구글 웨이브를 즐겁게 사용할 수 있는 추가 App 개발이 시급할듯. (더불어서 privacy에 대해서도 충분히 기술적인 검토를 해야 할듯.)

2009/11/19

보안 교육의 필요성?

전사 보안 교육을 실시하고 난 이후에, 교육 완료보고를 위한 보고서를 작성하다 보니...
보안 교육의 필요성에 대해서 고민을 하게 되는데...

교육의 필요성에 대해서 두 가지 견해 중 무엇이 맞는지 고민을 해 보게 되었다.

(1) 보안은 기술력으로 지키는 것이 아니라 사람이 지키는 것이다.
- 기술력을 높이고 막기 위해서 돈을 투자하는 것보다, 그걸 이용하고 사용하는 사람들의 인식을 바꾸는게 효과적이다.
- 기술로 모든 것을 다 막을 수 없다. 따라서 사람들이 책임감을 가지고 보안을 지켜야 한다.

(2) 보안 교육의 효과가 낮다. 기술로서 막아야 한다.
- 아무리 교육을 한다고 해도, 사람이 할 수 있는 일에는 한계가 있다.
- 결국은 하지 말아야 하는 것은 아예 할 수 없게 기술적으로 막는 것이 효과가 있지, 사람에게 아무리 말로 해 보아야 어길 사람은 모두 어긴다.


보안 교육이 필요하다는 것은 사실 이번 보안 교육을 하면서도 많이 느꼈다.
구성원들이 무엇을 해야 하고, 무엇을 하면 안되는지 알고 있는것과 모르고 있는 것 중,
알고 있는 경우에는 하지 말아야 하는 행동은 확실히 하지 않고 해야 하는 행동은 확실히 하는 것을 보았다.
(그동안은 인식을 못해 몰라서 못하고 있었다고들...)

보안 일을 하는 사람들은 모두 다 비슷한 고민을 하고 있을지 모르겠다.
당장 눈에 보이는 공격이 들어올 때에는 보안 업무의 필요성에 대해서 그 어느 누구도 반박하지 않는다.
하지만 당장 눈에 보이는 공격이 없을 때의 보안이란...
그저 "내가 업무를 하는데 불편하게 하는 귀찮은 잔소리"정도로 구성원들이 인식을 하는 경우가 많다.

하지만, 보안은 "장마철 맑은 날에 들고 나간 우산"과 같은 존재라서,
우산 없이 나가서 비를 맞는 것을 대비하기 위한 일종의 보험과도 같은 것이라는 것을
지금 당장은 비가 오지 않아 우산을 들고 있는 것이 불편한 사람들에게 알려줘야 하는게 아닐까?
우산이 없으면 잠시 후에 비가 왔을때 크게 불편을 겪을 수 있다는 사실을 주기적으로 인식해 줘야 하는게 아닐까?

2009/11/12

게임 해킹과 방어..? -_-;

회사에서 진행하는 봉사활동의 일환으로 갑자기 느닷없이...
2주 후에 (11월 26일)나에게 경기상고 학생들을 대상으로 게임해킹과 방어에 관련된 교육을..
자그만치 2시간이나 진행하도록 요청이 들어왔다.
뭐 좋은 일이라고는 하지만, 정말 참 느닷없고... 이미 하기로 공문이 날라온 상태라.. 어쨌거나 자료를 만들어야 한다.

그런데 게임해킹과 관련해서 만들어 놓은 자료도 없고, 가지고 있는 자료도 없고...
(이전 회사에서 나올때 문서 하나 들고 나온게 없다는 것이 이렇게 막막할 수가..;;; )
또, 듣는 사람들의 컴퓨터 이해 수준이 어느 정도인지도 모르는데... (학생과 선생님..들)
도대체 어느 정도 깊이로 강의 자료를 만들어야 하는 걸까나?
아...............................;;;;;;;; 전혀 감이 안온다..

완전 골치가 아프다..

혹시 일반인들 (단, 컴퓨터나 게임은 좀 하고, 아는 사람들)이 궁금해 하는 게임해킹 및 보안에 대해서
아시는 바가 있는 분? 혹은... 이 글을 읽는 사람 중에서 이런게 궁금하다.. 그런거 있으신분?

설마.. '요즘 제일 인기있는 게임 내 눈앞에서 해킹 시연 해 봐..' 이런거 -_- 는 아니겠지.

여하튼, 자료를 정리해서 강의 자료를 만들어 보는 차원에서,
블로그에 게임보안과 관련된 내용들을 좀 정리해 볼까 한다.

2009/11/10

Bravo Generation

BRAVO Generation이라는 말을 들은 적이 있는지?

어제 회사 내 한 매니저님이 나까지 포함해서 (80년대 생들과 함께) 브라보 제너레이션 멤버라고 칭해 주셨다.
그리고 삼성경제 연구소에서 작성한 문서("Bravo Generation, 신세대 직장인을 말하다")를 같이 보내주셨는데.. 기존 세대와 신세대와의 가치관 차이점에 대해서 잘 나와 있었다.

(그래도 나는 애매하게 걸친 X-Y 세대쯤일까나.)


BRAVO Generation의 특징.

B(Broad network) : 업무 외에도 다양한 관심사를 가지며 폭넓은 네트워크를 형성하고 있다.
R(Reward-sensitive) : 평가결과와 보상에 대해 민감하게 반응한다.
A(Adaptable) : 글로벌 환경과 IT 등 새로운 것에 강한 적응력을 보인다.
V(Voice) : 자신의 감정과 생각을 솔직하게 표현하며, 상대방도 명확하게 의사 표현해 주기를 기대한다.
O(Oriented to myself) : 회사보다 개인생활을 중시하며, 특히 '일과 생활의 균형'을 추구한다.


무엇보다 관리자라면, 자신들만의 가치관만을 고집할 것이 아니라
자신과 다른 환경에서 태어나서 자라와서 독특한 세대관을 갖게 된 BRAVO 세대에 대해서도
왜 저들이 저런 생각과 행동을 하게 되었는지를 이해하고, 그들을 관리하는 방법을 바꿔 보는 것이 좋을 것이라는 생각이 들었다.

물론 시간이 흐르면, 이후에 또 다른 신세대가 오고, 나도 기성세대가 곧 되겠지만..
서로간의 소통과 이해는... 함께 사는 사회에서는 매우 중요한 것이 아닐까?

..