[소고] 게임 보안: 특허와 보고서에 숨겨진 진실

@codemaru · October 30, 2012 · 13 min read

요즘 신규 업체 미팅을 하면 항상 단골 손님으로 특허와 보고서 친구들이 등장합니다. 관련 업체 분들께서 여기에 엄청난 환상을 가지고 계신 것 같아서 오늘은 그 이야기를 좀 해볼까 합니다.

#0

특허부터 시작해 볼까요? 일단 전 기본적으로 소프트웨어 특허 자체가 좀 코메디라고 생각합니다. 욱기잖아요 이건 ㅋ~ 그래도 어쨌든 고매하신 분들께서 관련 법안을 만드셨으니 특허 시스템은 존재하고 사람들은 자신의 권리 보호를 위해서 특허를 출원합니다. 게임 보안 업체도 너도나도 할 것 없이 특허를 많이 출원하고 있습니다. 물론 큰 업체같은 경우는 특허 지원 시스템이 있어서 — 특허를 출원하는 경우에 포상금이 주어지는 — 더 많은 특허를 내기 위해서 직원들이 매일같이 고민하고 있습니다.

이렇게 많은 업체들이 경쟁적으로 특허를 출원하는 만큼 특허에 관한 오해도 심각한 수준입니다. 가장 큰 오해는 이런 겁니다. 와 A라는 업체에서 이런 해킹툴을 막는 희깔난 특허를 등록했다는 신문 기사를 보니 해당 업체 솔루션을 사용하면 그런 종류의 해킹툴은 다 차단되겠구나, 라는 정말 순.진.한 생각입니다. 차단 될까요? 전 차단 안 된다에 올인 하겠습니다. 왜냐구요? 현실 세계에 존재하는 초딩이 만드는 해킹툴도 그런 몇 페이지짜리 말장난으로는 절대 차단을 할 수 없기 때문입니다. 하물며 그들이 말하는 그 엄청난 범위의 해킹툴을 그 몇 페이지짜리로 다 차단한다구요. 네. 맞습니다. 어림도 없습니다.

두 번째 오해는 이런 겁니다. 특허가 등록 됐으니 해당 기능이 솔루션에 탑재됐을 거라는 생각입니다. 뭐 첫 번째 생각도 이 두 번째 생각의 근간에서 출발한다고 볼 수 있습니다. 그런데 말이죠. 소프트웨어 특허란 건 그 사람의 생각에 대한 권리를 인정해 주는 것이지 그 사람이 그걸 만들었는지 안 만들었는지를 검증하는 것이 아닙니다. 즉, 임플멘테이션이 존재하지 않더라도 특허 등록이 가능합니다. 그러니 특허가 등록 됐다고 그 기술이 탑재 됐다고 생각하는 오해는 이제 여기까지만 해주시면 되겠습니다. 특허는 말 그대로 특.허. 일 뿐 아무거도 아닙니다.

끝으로 게임 보안 솔루션의 특허에 관해서 좀 더 재미난 부분을 살펴보면 이렇습니다. 일반적으로 게임 보안 특허는 연립 방정식과 유사한 구성을 가집니다. 해킹툴을 잡기위한 가설들을 세우고, 그 가설들을 이렇게 저렇게 연결해서 이런 조건을 만족하다면 그 놈은 해킹툴로 간주할 수 있다, 라는 방식을 따르게 됩니다. 결국 따지고보면 여러 개의 방정식을 사용해서 미지수들을 소거해 가면서 해를 구하는 연립 방정식인 셈이죠. 그런데 이 연립 방정식이란게 중학교 정도의 수학 지식을 가지고도 알 수 있겠지만 미지수 개수만큼 방정식이 있어야 해를 구할 수 있습니다. 즉, 미지수가 x, y, z 세 개라면 방정식이 세 개가 있어야 한다는 말이죠. 정수론 따위에서 말하는 브루트포스의 접근을 한다면 방정식이 모자라도 풀 수 있는 경우가 있긴 하지만 어쨌든 일반적이지는 않습니다. 그런데 여러분이 게임 보안 특허에 관심이 많다면 이제부터 그걸 잘 살펴보십시오. 놀라운 발견을 하게 될 겁니다. 상당히 많은 특허에 방정식이 모자라는 경우가 많다는 사실입니다. 어 이렇게 해서는 연립 방정식을 풀수가 없는데, 라는 생각이 드는 경우가 대부분입니다.

왜 방정식이 모자랄까요? 중요해서 숨겼을 수도 있고, 나머지 방정식을 모르지만 과시용 특허를 등록하기 위해서 출원했을 수도 있습니다. 제가 살펴본 특허 중에 일부는 그 숨겨진 나머지 방정식에 구현이 까다로운 부분이 많이 있었습니다. 어 이걸 구현하려면 뭔가 굉장히 복잡할 텐데 진짜 구현했을까, 라고 생각해서 들춰보면 없는 경우가 많았습니다. 제가 게임 보안 일을 하면서 지난 시간 동안 느낀 것은 거의 모든 경우에 생각이 어려운 부분은 없다는 점입니다. 사실 말로 하면 이 세상에 못 잡을 해킹툴이 없습니다. 어렵지도 않아요. 그거 뭐 게임에 접근 좀 못하게 하고 변조하면 차단하고 그러면 되는 거죠 ㅋ~ 문제는 구현입니다. 제대로 동작하는 코드를 만드는 일은 그 어떤 일보다도 어렵습니다. 특히나 해커를 상대로 싸울 수 있을 만큼 쓸모 있는 코드를 만드는 일은 더욱 어렵습니다. 특허는 특허일 뿐입니다. 그러니 특허가 해킹툴을 차단해 준다는 순진한 생각은 이제 과감하게 버리도록 합시다.

#1

다음으로 보고서를 좀 살펴봅시다. 정말 웃기게도 요즘 보고서를 잘 쓴다는 광고를 하면서 다니는 업체가 있는 것 같습니다. 이 이야기를 들었을 때 전 참 아이돌스러운 광고가 아닐 수 없다는 생각을 했습니다. 가수는 노래를 부르는 게 주업입니다. 당연히 노래를 잘 부른다는 이야기가 먼저 나와야 합니다. 하지만 아이돌들은 그렇지는 않죠 ㅋ~ 전 춤을 잘춰요, 내지는 전 얼굴이 이뻐요, 라는 이야기로 들이 댑니다. 보고서를 잘 쓴다는 게 아이돌의 그것과 별반 다를바가 없는 이야기라는 생각입니다.

이 바닥에서 6년 정도 일하다 보니 해킹툴을 막을 수 있다는 방법이란 방법은 다 찾아서 해 본 것 같습니다. 절에 가서 기도도 했으니 말이죠 ㅋ~ 당연히 보고서를 만들었던 시절도 있었습니다. 이뿌게 포맷도 정해서 워드 문서로 차곡차곡 정리해서 저장소의 문서 폴더에 하나하나 올렸드랬죠. 나중에 살펴보면서 뿌듯해 하면서 말이죠. 그런데 그런 보고서가 하나 둘 모여감에도 해킹툴 차단은 나날이 구려지는 안습한 시츄에이션이 발생했습니다. 고민했습니다. 우리가 이.렇.게.나 열심히 분석하고 정리하는데 왜 해킹툴은 더 못 막는 걸까, 라는 생각이 저의 뇌를 후벼팠습니다. 결론은 단순했습니다. 보고서 포맷 맞추고, 캡처하고, 코드 붙여넣느라 시간 다 보내고 있으니 정작 차단 코드를 만들 시간이 없었던 겁니다. 해킹툴은 누가 막나요? 패턴이랑 차단 코드가 막습니다. 그걸 업데이트는 안 하고 허구헌날 보고서만 쓰고 있으니 우리는 점점 더 구려졌던 것이죠. 그래서 과감하게 보고서 따위 개나주자. 쓰지 말자는 선택을 했습니다. 그러자 마법처럼 해킹툴이 차곡차곡 막히는 기적을 경험하게 되었습니다. 보고서가 해킹툴을 막아주진 않습니다. 또한 디테일하게 분석할수록 더 원천적으로 차단 억제력이 높은 코드를 만들 수 있다는 것도 진짜 도시전설과 같은 생각입니다. 전혀 그렇지가 않아요. 그 이야기는 다음에 기회가 된다면 자세히 하도록 하겠습니다 ㅋ~

돌려서 생각해 봅시다. 왜 게임 보안 업체가 보고서를 써야 할까요? 언제 분석 보고서를 쓸까요? 당연합니다. 지독하게 그 해킹툴이 안 막힐 때 쓰는 겁니다. 이게 도저히 안 막히니까 우리가 이렇게 고생해서 분석한 거라도 보여드립니다, 라고는 제품을 구매한 업체에게 전달하는 것이죠. 막히면요? 보고서를 쓸 일도 없습니다. 그러니 다시 생각해보면 보고서를 잘 씁니다. 많이 씁니다, 라고 광고하는 건 우린 해킹툴을 겁나 못 막습니다, 라고 광고하는 것과 다를바가 없는 이야깁니다.

주간 회의가 있었습니다. 정말 한참만에 보고서를 쓰라는 이야기를 했습니다. 왜 했을까요? 지독하게 안 막히고 계속 꾸역꾸역 업데이트되는 해킹툴이기에 쓰자는 이야기를 한 것이지요. 2개를 이야기 했는데 하나는 벌써 GG를 쳤다는군요. 그래서 하나만 쓰기로 했습니다. 통상 일주일에 4,000개에서 10,000개 정도의 신규 해킹툴이 수집됩니다. 실행해 본다는 게 가능할 것 같나요? 테스트 하는 건요? 보고서는 당.연.히 못 씁니다. 왜냐하면 우리는 패턴 추가하고, 차단 코드 만들고, 취약점 수정하기에도 충분히 바쁘거든요.

꼭 기억하세요.

분석 보고서는 지.독.하.게 해킹툴이 안 막힐 때 쓴다는 거.

그리고 보고서가 해킹툴을 막아주진 않는다는 거.

특허도 보고서도 해킹툴을 막아주진 않습니다.

특허도 보고서도 해킹툴을 막아주진 않습니다.

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