24
일 서울 삼성동 코엑스에서 열린 넥슨 개발자 컨퍼런스(NDC)에서 네오플 연구소 보안팀 박인신 팀장은 ‘개발 단계별 게임 보안성 검토 기법’이라는 주제로 강연을 진행했다.
강연에서 그는 게임 개발이 어느 정도 진행된 후에는 보안을 강화하기 힘들기 때문에, 개발 단계부터 보안을 고려해야 한다고 말했다.
이어서 베타테스트, 오픈 베타 등 게임 개발 단계별로 발생할 수 있는 보안 문제와 이 문제를 방지할 수 있는 방법을 소개했다.
■ 보안은 개발 초기부터 고려해야 한다
박인신 팀장은 개발 초기부터 작업장이나 불법 프로그램 등을 대비하라고 강조했다. 기획 단계에서부터 작업장을 대비해 아이템의 획득이나 귀속 방식을 잘 설정해 놓아야 한다는 설명이다.
또, 불법 프로그램에 의한 비정상적인 플레이를 막기 위해 기획 단계에서 대미지 검증 프로세스를 검토할 것을 강조했다. 오픈 베타 이후에는 게임에 대미지 검증 프로세스를 넣기 힘들기 때문이다.
프로토 타입 단계에서는 데이터 유출을 주의하라고 당부했다. 그는 <리니지 3> 영업비밀 유출 관련 기사를 언급하며, 실제로 이런 일이 있기 때문에 개발자들이 개발 중인 게임의 데이터를 유출시키지 못하도록 하드디스크를 암호화할 것을 추천했다.
그리고 클라이언트 해킹을 막기 위한 세부적인 보안 방법으로 ▲랜덤 오브젝트 로딩, ▲패킷 암호화, 문자열 정보 관리, ▲변수 이름을 알아보기 어렵게 만들기를 조언했다.
■ 이제 OTP도 100% 안전하지 않다
박인신 팀장은 “이제 OTP(일회용 암호)를 설정한 계정도 해킹할 수 있는 방법이 나왔다”며 OTP만을 믿고 계정 정보를 맡길 수 없다고 말했다. 이미 게임 계정의 90% 정도는 계정과 비밀번호가 유출된 상태기 때문에 2차 계정 보안 대책이 꼭 필요한데, 널리 쓰이는 PC용 OTP는 해커들의 공격 대상이 되기 때문에 안전하지만은 않다는 것이다.
그는 2차 계정 보안 대책을 게임의 특성에 맞게 직접 설계할 것을 추천했다. 더불어 좋은 사례로 엔씨소프트의 휴대폰을 활용한 방식을 꼽았다. 다만, 이것은 성인을 대상으로 하는 게임이기에 가능했던 방법이라며 <던전앤파이터> 같이 휴대폰 없는 유저가 많은 게임은 적용하기 힘들다고 덧붙였다.
같은 맥락에서 해커들이 이미 유출된 계정과 비밀번호를 활용해 다른 포털 등에서 접속을 시도하는 경우도 많다. 이런 접속 시도는 패턴이 있기 때문에 툴이 있으면 감시를 통해 잡아낼 수 있다. 박인신 팀장은 “조금 더 쉽게 모니터링하기 위해 상용화 단계에서는 감시 툴을 만들라”고 당부했다.
■ 해커들은 CBT부터 클라이언트 해킹을 시도한다
박인신 팀장은 클로즈 베타테스트(CBT) 단계에서부터 해커들의 공격이 시작된다며 CBT 이전부터 보안을 준비하라고 강조했다. CBT를 진행하려고 게임 클라이언트를 배포하면, 이 때부터 해커들이 클라이언트의 스크립트를 분해해 어떤 데이터가 있는지 알아내기 시작한다는 것이다. 심지어 GM(게임운영자)들이 게임 내 공지를 위해 사용하는 명령어까지 알아내는 경우도 있다.
해커들은 클라이언트와 서버가 주고받는 패킷을 분석해 서버 구조를 예측하기도 한다. 박인신 팀장은 “오히려 서버 구조가 좋은 게임일수록 프리 서버를 구축하기 쉽다”고 말했다. 그는 “이 문제를 방지하기 위해 게임 서버에 들어갈 미들웨어를 복잡하게 짜는 것이 좋다”고 조언했다.
아울러 그는 해커들이 집중적으로 공격하는 테스트 서버 관리의 중요성을 강조했다. 개발자들이 테스트 서버에 데이터를 추가하면 해커들이 그 정보를 노린다는 이야기다. 박인신 팀장은 지능성 지속 위협(APT, Advanced persistent threat) 공격을 가장 많이 받는 곳 또한 테스트 서버라고 덧붙였다.
테스트 서버와 본 게임 서버는 같은 회원 DB를 참조하기 때문에 여기서도 회원 계정 유출 사고가 일어날 수 있다. 이에 대해서 박인신 팀장은 “넥슨이 미러 테스트 서버를 가장 잘 구축한 사례”라며 비슷한 대책을 세우라고 조언했다.