본문 바로가기

안랩人side/안랩팀워크

온라인 게임 보안 개발자가 말하는 안전한 게임

* 아래는 게임 웹진 인벤의 기사이며 기자의 허락을 받아 게재합니다.

뚫리지 않는 방패를 향한 1%의 도전, 안철수연구소 핵쉴드팀

지난 달 30일. 인벤 기자들은 한 보도자료를 보고 깜짝 놀라고 말았습니다. 컴퓨터 바이러스 백신 V3로 잘 알려진 안철수연구소의 핵쉴드가 오토플레이를 감지하는 특허를 획득했다는 내용이었습니다. 특히 프로그램 오토뿐 아니라 하드웨어 방식의 오토까지도 적발할 수 있다는 문구는 환상적이었습니다. 오토가 아예 사라지는 것은 아닐까 하는 생각이 들 정도였습니다. 도대체 어떤 특허인지, 어떤 기술인지 궁금해서 당장 인터뷰 약속을 잡았습니다.

하지만 이런 생각이 순진한 것이었음을 깨닫는 데는 얼마 걸리지 않았습니다. 뚫리지 않는 방패는 존재하지 않는 것이니까요. 반대편에는 새롭게 등장한 보안 기술을 뚫기 위해 노력하는 해커들이 늘 도사리고 있는 곳이 게임계입니다. 아마 지금은 새롭고 혁신적으로 보이는 감지기술도 시간이 지나면 해커들에 의해 공략될 것입니다.

오토 기술 발전의 역사를 돌이켜봐도 늘 그래왔습니다. 오토 프로그램은 직접 키보드를 입력하는 대신 OS가 지원하는 함수를 이용해 키를 입력했습니다. 보안 프로그램은 이를 차단했습니다. 그러자 오토는 키보드나 마우스 드라이버 단계에서 키를 입력했습니다. 이마저도 막아냈습니다. 그러자 아예 오토 기능이 내장된 ‘하드웨어’ 기기들이 생겨났습니다.
끝이 없었던, 앞으로도 영원히 끝나지 않을 오토와의 전쟁. 많은 분들의 노력에도 불구하고 여전히 오토는 온라인 게임에서 기승을 부리며 게이머들을 괴롭히고 있습니다.

▲ 안철수연구소 게임보안 솔루션 '핵쉴드'


실은 인터뷰가 끝나고 돌아오면서 살짝 걱정이 들었습니다. 안철수연구소가 발표한 이번 특허 기술이 ‘오토의 씨를 말릴 정도로 혁명적인 것’은 아니었기 때문입니다. ‘오토를 막고 있다’라는 문장은 일반 게이머들에게 거부감을 일으키곤 합니다. ‘막고 있다는 게 이 모양이냐’라는 대답이 바로 튀어 나오니까요. 어쩌면 이번 인터뷰에도 그런 반응이 나오지 않을까 하는 생각이 들었습니다.

하지만 생각해보니, 인벤 기자를 맞이한 보안기술팀의 선임연구원 남성일씨의 표정은 담담했습니다. 그에게는 이번에 개발한 새로운 기술이 어제도 오늘도 계속해서 벌어지고 있는 오토와의 전쟁이라는 ‘일상’이었기 때문입니다. 이번 특허는 그러니까 오토와의 전쟁에서 새로운 고지 하나를 먼저 점령했다는 그런 정도의 의미였습니다.

그리고 내일이 되면 해커들은 그 고지를 탈환하기 위한 공격을 시작하겠죠. 이미 그것까지도 예상되었을 겁니다. 그러니 남성일씨를 기다리고 있는 오늘 밤은 승리를 기념하는 축하파티가 아니라, 내일의 전투를 준비하는 담담한 훈련인 것입니다.

아주 조금은, 정말로 혁신적인 새로운 기법이 나와 오토가 박멸되지 않을까 하는 기대를 갖고 인터뷰를 시작했습니다. 그렇지 않아서 실망했냐고요? 이 끝없는 전쟁이 언젠가 끝이 난다면, 그리고 결국 어느 한 편이 승리해야 한다면, ‘우리편’으로 생각해야 할 쪽은 어디일까 생각해보았습니다.
그리고 저는 실망하는 대신, 응원하기로 했습니다.

▲ 안철수연구소 보안기술팀 남성일 선임연구원


= 안철수연구소는 컴퓨터 바이러스 백신 회사로 유명합니다. 핵쉴드라는 게임 보안 솔루션을 개발하게 된 계기가 있었나요.
2003년도에 게임사에서 연락이 왔어요. 보안 문제로 고생을 많이 하고 있다고, 보안 솔루션을 만들어 줄 수 없겠냐하고요. 검토를 해보니 할 만하다는 결론이 나와서 그 때부터 시작하게 되었습니다. 당시에는 가지고 있던 백신 엔진을 활용해서 만들었는데 2005년부터 정식으로 핵쉴드가 출시하게 되었죠.

= 아무래도 백신이 주력 사업일텐데, 안철수연구소에서 게임 보안을 생각하는 비중은 어느 정도인가요.

V3는 핵심엔진이 있어서 다양한 곳에 활용될 수 있어요. 그런데 핵쉴드는 게임 해킹 분야에만 사용되고, 다양한 해킹툴에 일일이 대응해야 되다보니 리소스가 큰 편입니다. 그에 비해 매출은 상대적으로 크지 않고요. 그래서 한때는 사업을 접어야 되나 고민한 적도 있어요. 하지만 글로벌 사업을 진행하면서 해외에서 요청이 많이 들어오기 시작했습니다. 지금은 모바일 통합 보안, 인터넷 뱅킹과 함께 안철수연구소의 3대 전략제품군으로 육성되고 있습니다.

= 핵쉴드는 어떤 프로그램인지 간단하게 소개해주세요.

게임 보안 솔루션인데, 전체를 다 보호하는 건 아닙니다. 주로 클라이언트를 보호합니다. 오토 매크로, 스피드 핵, 메모리를 조작해서 돈이나 경험치를 늘인다거나 하는 클라이언트에서 일어날 수 있는 해킹을 막는 역할을 합니다.

= 게이머보다는 게임사의 필요에 더 초점이 맞춰진 것이네요.

사실 V3 같은 백신은 이용자 입장에서 필요를 느껴서 설치하게 되는데, 핵쉴드는 강제로 설치되는 거라서 이용자 입장에서는 불편하게 느낄 수도 있을 겁니다. 그래서 서비스 호환이나 사용 편의를 고려하지 않을 수 없죠. 일반 이용자 입장에서는 별로 필요하지 않다고 느낄 수도 있겠지만, 전체적으로 보면 안정적인 게임 서비스를 위해 필요한 것이겠죠.

= 그렇다면 게임을 개발할 때부터 이런 보안이 함께 진행되어야 되겠네요.

아무래도 그러면 좋습니다. 하지만 게임 개발과 게임 보안은 서로 다른 분야입니다. 큰 개발사는 처음부터 보안을 생각하면서 설계하겠지만, 보통은 게임 개발 그 자체에 좀 더 신경을 쓰게 되죠. 규모 있는 보안팀을 갖고 있는 게임사가 국내에 많은 것도 아니고요. 가끔은 게임이 출시된 이후에 해킹 문제를 겪고 나서야 보안 솔루션을 찾는 경우도 있는데, 보안 없이 출시하면 게임이 분석되어버리기 때문에 되도록 게임 출시 전에는 보안 부분을 체크했으면 하는 바람이 있습니다.

= 전세계 20여개 국에 공급 중이라고 하던데, 해외에서도 요구가 많은가요.

우리나라 온라인 게임이 해외 진출을 많이 하다보니까요. 핵쉴드를 사용하는 게임이 해외로 나가면 핵쉴드도 함께 나가거든요. 그럼 그 쪽 퍼블리셔가 핵쉴드를 써보고 괜찮으니까 자국 게임을 서비스할 때도 핵쉴드를 쓰는 식으로 점점 퍼져나가고 있습니다.

= 그럼 세계적으로 게임 보안 분야는 우리나라가 발달해있다고 볼 수도 있을까요.

제가 알기로는 그렇습니다. 온라인 게임 보안에 있어서는 자부심을 가져도 좋지 않을까 싶습니다.

▲ 3차의 QA를 거치는 핵쉴드. 사진은 테스트를 위해 구현된 가상 게임 환경


= 최근에 오토플레이 감지 관련 특허를 획득했습니다. 이전에도 게임 보안과 관련해 몇 가지 특허를 취득하셨다고 하는데 어떤 것들인가요.
오토를 방어하는 기능은 여러 가지입니다. 이중 삼중으로 방어하거든요. 지금은 입력이 되면 차단을 하는데, 해킹 툴이 이 차단을 우회합니다. 그럴 때 입력 카운트를 비교하는 특허도 있고요. 메모리 조작을 방지하는 특허도 있습니다. 또 클라이언트를 해커들이 조작하면 서버와 연동해서 이를 방어하는 기술도 있고요.

= 그렇게 특허를 획득하면 경쟁업체에서는 그 기술을 사용하지 못하는 건가요.

비슷한데 조금 다른 기술을 사용해서 특허를 피할 수 있더라고요. 아니면 로열티를 지불하고 기술을 사용해도 되고요. 그런데 특허는 다 볼 수 있거든요. 해커들까지도. 그러면 해커들이 그 기술을 피하는 방법을 연구하겠죠. 그래서 보안 쪽은 특허를 내는 것이 과연 맞는 것인지 고민도 있습니다. 하지만 특허를 내지 않으면 로열티를 내고 써야 할 수도 있으니까, 이런 딜레마가 있습니다.

= 이번에 취득한 특허의 내용은 어떤 것인지 알기 쉽게 설명해주세요.

오토가 사용하는 방식은 크게 세 가지가 있습니다. 윈도우 같은 OS가 제공하는 함수를 이용해서 키가 입력된 것처럼 처리하는 응용 레벨 오토가 있고, 키보드나 마우스 입력을 처리하는 드라이버를 통해 특정 값을 넣는 커널 레벨 오토가 있습니다. 또 하나가 하드웨어 오토마우스고요.
응용 레벨 오토는 sendinput 같은 API를 사용하지 못하게 하는 방법으로 차단할 수 있고, 커널 레벨도 방어할 수 있는 방법이 있습니다. 그런데 이런 방어를 우회하는 경우가 있어요. 이번 특허는 기존 감지 방법을 우회하는 경우에 응용과 커널의 두 이벤트를 비교해서 비정상적인 입력을 감지하는 내용입니다.

= 최근에 가장 막기 어려운 것은 하드웨어 오토가 아닐까 싶습니다. 막는 방법은 없나요.

처음에 나왔을 때는 게임사나 보안업계나 막을 방법이 없다고 했어요. 이를테면 마우스 버튼을 테이프로 붙여 놓으면 그걸 프로그램으로 어떻게 감지해내겠냐는 것이죠. 키보드에 동전 꽂아둔 것도 마찬가지고요. 하지만 실제로 사람이 입력하는 것과 기계가 입력하는 것에는 패턴의 차이가 있습니다. 클릭 속도나 반복적인 입력을 감지해서 구분할 수는 있어요.
또 최근 기계식 오토마우스는 하드웨어만 있는 게 아니라 딸려있는 소프트웨어가 있습니다. 그런 소프트웨어의 UI나 입력방식, 화면을 감지해 차단하기도 하죠. 물론 보안이라는 것은 완벽하다는 게 없기 때문에 뚫리면 또 새로운 방법을 찾아내야 합니다.

= 그렇게 막아도 또 다른 방법으로 해킹을 시도하나요.

예를 들어 최근에는 이런 패턴이 발견되었어요. 게임에서 원래 제공하는 게임 내 함수가 있거든요. 앞으로 가라. 슛을 쏴라. 하는 것들이 함수로 만들어져 있는데, 게임이 제공하는 함수를 바로 사용하는 오토가 생겨났어요. 그래서 게임 내 함수를 외부에서 호출하는 걸 방어하는 기능이 들어가게 되었습니다.

= 최악의 경우로 아예 클라이언트를 필요로 하지 않는 오토 프로그램도 있지 않습니까.

논클라이언트 봇은 아예 클라이언트가 쓰는 기능을 코드로 떠다가 새롭게 만듭니다. 그래서 게임 클라이언트가 없이도 플레이를 할 수 있게 됩니다. 하지만 그렇기 때문에 상당히 제작기간이 깁니다. 만약에 뭐 하나가 수정되면 다시 상당한 기간을 들여서 또 만들어야 하죠. 실제로 최근에 자체 보안을 하다가 논클라이언트 봇 때문에 의뢰가 들어온 게임이 있어요. 저희가 컨설팅을 하고 핵쉴드가 들어가니까, 논클라이언트 봇이 사라진 사례가 있습니다.
또 핵쉴드는 클라이언트 분석이 되지 않도록 하는 안티디버깅 기능을 갖고 있어서 분석이 시도되면 바로 종료가 되도록 하는 기능도 갖고 있고요.

▲ 오토마우스 기기가 그야말로 굴러다니고 있는 게임 보안팀


= 오토나 해킹툴은 어떻게 인지하고 있습니까.
게임사에서 정보를 주는 경우도 많고요. 또 그 쪽으로 유명한 포럼이나 게시판이 있습니다. 거기서 몰래 활동하면서 모니터링을 합니다. 그래서 업데이트 되었다고 하면 미리 방어하기도 하고요.
 
= 오토를 막기 위해서 게임사들도 노력하고 있습니다. 또 이 같은 보안 솔루션도 작동되고 있고요. 그런데도 게임 내에서는 오토 캐릭터를 만나는 것이 어렵지 않은 게 현실이거든요.
열심히 하고는 있는데 보안이라는 게 99%를 막아도 1개가 뚫리면 그걸 여러 명이 쓰니까, 힘든 것 같아요. 그럴 때는 결국 ‘못 막았다’는 평가를 받아야 하니까요. 지금도 저희는 다 막고 있다고 생각하는데, 아직 보고되지 않았거나 노출되지 않은 해킹 툴이 있을 수 있겠죠. 막는 데 시간이 걸리는 경우도 있고, 저희한테 보고되기까지 시간이 걸리는 경우도 있고요. 간혹 가다 막기 힘든 경우도 있습니다. 정말 잘 만들어서 대응방법을 찾아야 할 때는 연구할 시간이 필요한 게 사실입니다.
 
= 일단 파악되면 막는 데까지 시간은 어느 정도 걸리나요.
보통 시그니처 엔진 대응은 하루 정도, 휴리스틱 엔진 대응은 2~3일 정도 걸립니다. 모듈 대응이라고 해서 근본적인 부분은 시간이 좀 더 걸리고요. 일반적인 건 하루나 이틀 안에 처리가 됩니다.
 
= 실제로 오토나 해킹 툴을 사용해보기도 하시겠네요. 오토를 구입도 하셔야겠고요.
정말로 막히는지 항상 확인해야죠. 사용은 늘 합니다. 오토는 돈 주고 구입하고요. 관련된 게시판이나 포럼에 가입해서 회원활동도 하고 있습니다.

= 게임사는 또 게임사 나름의 오토 대응을 하고 있습니다. 운영자들이 직접 체크를 한다거나 게임 시스템으로 퀴즈를 낸다거나 하는 방법들이 사용되고 있습니다.
게임사에서 할 수 있는 방법과 저희가 할 수 있는 방법은 다르다고 생각합니다. 게임사에서 사용하는 방법이 효과적인 경우가 있고요. 저희는 저희가 할 수 있는 한도 내에서 활동하는 거죠.

= 한 쪽은 막고, 한 쪽은 뚫고. 해킹툴도 보안툴도 서로 발전(?)하는 것 같네요.

게임 보안 쪽은 굉장히 빨리 변하고 있습니다. 최신 기술이 집약되었다고 할까요. 해킹 시도도 금융도 있고 뭐도 있고 많은데 게임 해킹 시도가 가장 많고, 신기술도 빨리 적용되고 있습니다. 실제로 게임 보안 쪽에서 쓰인 기능이 나중에 다른 솔루션에 쓰이는 경우도 있습니다.

= 현재 연구중인 것들을 간단히 소개해주실 수 있을까요.

예를 들어 해킹행위가 일어났다. 그러면 '해킹행위가 일어났다'고 뜨거든요. 그러면 해커들이 그 문구가 뜬 시점부터 되짚어가면서 어디서 문제가 발생했는지 찾아내요. 그래서 최근에는 그걸 클라이언트에서 처리하지 않고 시간의 여유를 좀 둬서 서버에서 끊어버려요. 한참 뒤에 차단이 되니까 해커 입장에서는 해킹툴이 제대로 작동하는지 아닌지 알기가 어렵죠.
또 이제는 64비트도 많이 쓰잖아요. 64비트를 지원하기는 하는데 API 후킹이 되지 않아서 그 부분을 연구하고 있어요. 내년부터는 64비트 지원하는 온라인 게임들이 나오는데, 거기에 맞게 핵쉴드도 64비트로 컴파일된 것을 출시할 계획입니다.

= 최근 중국발 게임들은 아예 오토 기능을 게임사가 만들어 제공하는 경우가 있습니다. 이런 오토에 대해서는 어떻게 생각하세요.
게임이 자체적으로 유저들의 편의를 위해서 기능을 제공하는 것은 일반 유저들도 다 이용할 수 있으니까 별로 문제가 되지 않을 것 같습니다. 그런데 오토가 너무 많아서, 다 막기는 힘드니까 그냥 우리가 비슷한 걸 만들자 하는 건 아닌 것 같아요. 왜냐하면 그렇게 되었을 때 게임이 허용하는 부분을 악용해서 더 심각한 해킹툴을 만들 수 있게 되거든요. 그런 위험에 대해서도 생각을 조금 해야 하지 않을까 싶습니다.

= 99개를 막고 1개가 뚫려 막지 못했다는 평가를 늘 받으면 우울할 것 같기도 합니다. 이 일을 하면서 보람을 느낄 때는 언제인가요.

열심히 하고 있는데 뚫리면, 쓸모가 없다는 이야기를 들을 때 가슴이 아파요. 또 가끔 ‘뭐가 된다더라’하고 글이 올라오는데 아무리 찾아봐도 해킹툴이 없는 경우가 있습니다. 분석해서 막으려면 해킹툴이 있어야 하는데 없어요. 이런 경우에 80~90%는 실체가 없습니다. 불필요한 리소스가 들어가는 거죠.
그래도 해킹툴 포럼에 ‘포기한다’는 글이 올라올 때, 또 상당히 활발하던 포럼이 ‘서비스를 중지합니다’라고 할 때 희열을 느낍니다. 최선을 다해서 막고있으니까 격려해 주셨으면 좋겠습니다. Ahn

▲ 안철수연구소 게임보안기술팀