[소고] 게임 보안: 스프레드, 스프레드, 스프레드

@codemaru · April 24, 2014 · 16 min read

#0

서울에서는 삼성전자 주식이 5만원에 거래되고, 부산에서는 삼성전자 주식이 8만원에 유통된다면 우리는 무엇을 할 수 있을까? 맞다. 채소 가게를 하는 아저씨도 서울에서 삼성전자 주식을 사서는 부산에서 그 주식을 모조리 팔아 버릴 것이다. 한 주를 팔 때마다 3만원의 차익이 생기기 때문이다. 말도 안되는 이야기 같지만 통신이 발달하지 않은 예전에는 흔하게 있었던 일이다. 말 그대로 정보가 돈이던 시절이었다.

하지만 통신이 발달했고 이제 더 이상 이런 말도 안되는 일은 벌어지지 않는다. 머나먼 미쿡 땅의 주식 가격도 소말리아나 대한민쿡이나 그놈이 그놈이다. 물론 요즘이라고 이런 일들이 아예 없는 것은 아니다. 우리가 인지하지 못하는 찰나의 순간을 컴퓨터가 포착해서는 이런 거래들을 성사시키곤 한다. 어쨌든 이렇게 차이가 발생하는 것을 두고 우리는 스프레드가 존재한다는 표현을 쓰곤 한다.

그런데 이 스프레드가 타이밍 만큼이나 게임 보안에서는 아주 중요한 이슈 중에 하나다. 솔루션 업체 입장에서는 스프레드를 제로에 가깝게 만드는 것이 중요하다. 어떻게 이것을 줄일 것이냐를 고민해야 하고, 이 스프레드를 적게 만드는 제품이 좋은 제품이라고 할 수 있다. 기술력이 유사한 제품이라면 이 스프레드 관리가 그 제품 평판의 전부라고 할 수 있을 정도로 굉장히 중요한 요소다.

#1

지금 밤 하늘에 찬란하게 빛나는 것 갈지만 600만년 전의 모습일수도 있다.

지금 밤 하늘에 찬란하게 빛나는 것 갈지만 600만년 전의 모습일수도 있다.

우라가 겪는 첫번째 스프레드는 시간 스프레드다. 무슨 이야기냐면 우리가 수집해서 관찰하는 해킹툴과 실제 게임에서 사용되는 해킹툴 사이에 존재하는 시간 차이를 의미한다. 안타깝게도 대부분의 게임 보안 업체는 게임사에서 수집한 내지는 신고 받은 해킹툴을 차단하는 패치를 만들어서 게임사에 전달하는 과정을 따른다. 별 문제 없어 보이는 이 과정속에 엄청난 함정이 숨어있다. 바로 시간이다. 왜냐하면 게임사에서 수집을 해서 게임 보안 업체에 전달을 할 정도면 사실 그 해킹툴은 버얼써 구석기시대 해킹툴일 가능성이 높기 때문이다.

이 정도로 느린 속도로 해킹툴을 추적해서는 답이 없다. 그래서 조금 똑똑한 게임 보안 업체들은 사람들을 고용해서 직접 해킹툴을 찾아 나선다. 처음에는 국내 해킹툴을 수집하기 위한 아르바이트생들을 고용한다. 그러다 사이트가 늘어나면서 어라 중국에서 해킹툴이 제조되는 경우가 많네 라는 생각과 함께 중국어를 하는 친구들을 채용한다. 그런데 중국이 전부가 아니다. 태국 해킹툴을 찾기 위해서 태국어를 하는 사람을, 히브리어 해킹툴을 찾기 위해서 히브리어를 하는 사람을 고용해야 한다는 사실을 깨닫게 된다. 물론 이 모든 것이 안 하는 것보다는 좋겠지만 사실상 이런 방식을 통해서 실질적인 효과를 보기란 쉽지 않다. 더욱이 현재 게임 보안 업체가 벌어들이는 수익으로 이런 짓을 했다가는 단언컨대 곧 망한다. 물론 우리 아빠가 빌게이츤데요 하는 친구들은 예외다.

그럼 어떻게 해야 할까? 백엔드 시스템을 강화해야 한다. “Writing Solid Code”란 책을 보면 저자는 그렇게 이야기한다. 버그를 찾아 나서서는 곤란하다고, 버그가 있는 즉시 우리에게 다가와서는 깜찍하게 저 여기 버그 있어요. 좀 봐주세요. 이렇게 인사를 하도록 만들어야 한다는 것이다. 시간 스프레드를 제어하기 위해서 게임 보안 업체에서 해야 하는 일도 이와 동일하다. 누군가 해킹툴을 제작하면 제가 지금 해킹툴을 제작하고 있거든요. 관심 좀 가져주세요. 이렇게 자동으로 보고가 되는 시스템을 만들어야 한다. 누군가 취약점을 공격하고 있으면 제가 지금 이 취약점을 발견해서 꿀을 빨고 있어요. 이렇게 자동으로 보고가 되고 솔루션 개발자가 적절한 조치를 취할 수 있도록 만들어져야 한다.

물론 이상계에서는 이런 형태의 보고가 아닌 시스템이 자동으로 학습해서 사이트에 대한 제어 수준을 적당히 조절하는 형태로 동작하긴 할 것이다. 하지만 현실 세계에서 그 정도 수준까지 바라기는 힘들다. 그저 자동으로 문제가 있다는 사실이나 해킹툴이 어떤 방식을 통해서 제작되고 있는지만 보고 되어도 시간 스프레드를 줄일 수 있는 유용한 시스템이 된다.

#2

우리는 매 순간 모든 사이트의 보안 수준을 체크한다. 모두 AWESOME이길 바라면서…

우리는 매 순간 모든 사이트의 보안 수준을 체크한다. 모두 AWESOME이길 바라면서…

게임 보안 업체에서 겪는 두번째 스프레드는 보안 수준 스프레드다. 이는 비단 게임 보안에서만 문제되는 이야기는 아니다. 모든 보안 관련 요소의 가장 중요한 부분 중에 하나다. 윈도우가 왜 보안 업데이트의 디폴트 옵션을 강제 설치로 해 두었는지를 보면 알 수 있다. 허구헌날 보안 패치를 해도 사용자가 설치해서 적용하지 않으니 윈도우는 취약한 운영체제라는 오명을 쓰게 된 것이다. 게임 보안 솔루션도 이와 마찬가지다. 제 아무리 좋은 대응 좋은 기능을 만들어도 고객에게 적절한 속도로 공급되지 않으면 무용지물이다.

이런 이야기를 하면 으레 듣는 소리가 그게 뭐가 힘든가요, 기능 만들기가 어려워서 그렇지 고객에게 공급하는거야 그냥 뿌리면 되는 거 아닌가요, 라는 이야기들이다. 한번도 B2B로 뭔가를 해본 적이 없는 사람들이 하는 소리다. 이게 생각보다 쉽지 않다. 특히나 사이트가 한두군데일때야 쉽겠지만 100개, 200개, 1000개, 2000개가 되면 전혀 다른 문제가 된다. 우선은 그 많은 사이트에 동일하게 기능을 제공하는 것도 어려울 뿐더러 보안 패치를 업데이트 하지 않는 사용자처럼 적용하지 않는 업체들도 많기 때문이다. 이는 정말 어떤 기술적인 문제가 아니라 전적으로 해당 업체를 지원하는 지원 담당자의 역량에 따른다.

그럼 지원 담당자들을 쪼으면 되지 않냐는 이야기도 할 법한데 이게 전혀 다른 문제다. 패치를 전달하는 것과 고객이 그 패치를 적용하게 만드는 것에는 하늘과 땅 만큼의 차이가 있기 때문이다. 패치를 전달하는 거야 누구나 할 수 있지만, 고객이 적용하게 만드는 것은 누구나 할 수 있는 문제가 이니다. 볼펜 하나를 던져주고 그것을 팔아보라는 문제와 동일하다. 팔 수 있는 사람과 그렇지 않은 사람이 있는 것이다. 여튼 이 문제에 있어서는 전적으로 훌륭한 지원 담당자를 채용하는 것 외에는 답이 없다.

그렇다고 결국 지원 담당자의 역량이니 손놓고 있으면 된다는 생각은 곤란하다. 모든 세부 사항이 다 그렇겠지만 추적 관찰 가능한 상태에 있는 것과 그렇지 않은 것에는 천지 차이가 있기 때문이다. 그렇다고 이걸 일일이 사람한테 시켜서 수동으로 만드는 것도 문제가 있다. 백방 오류가 발생하고 수집 시간이 더디기 때문이다. 모든 사항이 자동으로 추적 관찰 되도록 만들어야 한다. 그래야 모두가 현재 우리 서비스 품질 수준에 대해서 정확하게 인지할 수 있고 어떤 곳을 어떻게 더 강화해야 하는지를 판단할 수 있다.

#3

160개가 넘는 옵션들. 이 값들에 따라 깡통이 되기도 하고, 이지스함이 되기도 한다.

160개가 넘는 옵션들. 이 값들에 따라 깡통이 되기도 하고, 이지스함이 되기도 한다.

마지막 스프레드는 옵션 스프레드다. 우리는 프로그래머가 많지 않고, 코드를 매번 새롭게 컴파일하는 것에는 위험 부담이 따른다는 것을 일찍이 알고 있었기에 대부분의 기능들에 대해서 옵션 처리가 되도록 만들었다. 요즘은 그 정도가 더 심해져서 기능이 있는 곳에 옵션이 있어야 한다는 주의로 만들고 있다. 어쨌든 풍부한 옵션은 프로그래머가 직접 개입하지 않아도 특정 문제들을 빠르게 해결할 수 있는 가능성을 제공한다는 장점이 있다.

하지만 항상 포스의 어두운 면과 밝은 면이 공종하는 것처럼 이 또한 장점만 있는 것은 아니다. 옵션을 제어하는 사람이 충분히 숙련된 엔지니어라면 문제가 없겠지만 옵션 사항의 정확한 동작 구조에 대해서 잘 모르는 담당자라면 문제가 심각해진다. 왜냐하면 그 친구가 패치 생성 시에 옵션을 어떻게 지정했는지에 따라 제품이 깡통이 되기도 하고 이지스함이 될 수도 있기 때문이다. 더욱이 자동화된 추적 장치가 없다면 담당자 입장에서는 자신이 옵션을 변경했었다는 사실을 까먹는 경우도 많다.

옵션 사항에 대해서도 스프레드가 자동으로 관리될 수 있도록 담당자가 패치 빌드를 생성하면 매번 어떤 옵션 설정이 잘못되어 있음을 자동으로 노티해 주는 장치가 필요하다. 더불어 모든 사이트의 옵션 사항들에 대해서 일괄되게 추적할 수 있는 시스템을 가지는 것이 중요하다.

#4

맥도날드가 전 세계에서 가장 유명한 햄버거 가게가 된 비결은 딱 두 가지라고 한다. 하나는 서울의 빅맥과 뉴욕의 빅맥의 맛이 납득할 수 있는 범위 내에서 동일하다는 것, 다른 하나는 어떤 바보가 오더라도 맥도날드의 프로시저대로만 하면 유사한 품질의 빅맥을 만들어 낼 수 있다는 점이다. 분야는 다르지만 맥도날드는 스프레드를 잘 제어해서 균등한 품질의 제품을 생산했기 때문에 성공했다고 할 수 있다. 게임 보안도 다르지 않다.

해킹툴을 어떻게 숨기나요?<br><br>해킹툴을 실행하고 XIGNCODE3가 못보게 종이로 가리세요 ㅋㅋ

해킹툴을 어떻게 숨기나요?

해킹툴을 실행하고 XIGNCODE3가 못보게 종이로 가리세요 ㅋㅋ

온라인과 모바일 환경에서 모두 효과성이 검증된 게임 보안 솔루션은 XIGNCODE3가 유일합니다.

온라인과 모바일 환경에서 모두 효과성이 검증된 게임 보안 솔루션은 XIGNCODE3가 유일합니다.

@codemaru
돌아보니 좋은 날도 있었고, 나쁜 날도 있었다. 그런 나의 모든 소소한 일상과 배움을 기록한다. 여기에 기록된 모든 내용은 한 개인의 관점이고 의견이다. 내가 속한 조직과는 1도 상관이 없다.
(C) 2001 YoungJin Shin, 0일째 운영 중