[정보] XIGNCODE 요구 권한에 관한 오해

@codemaru · March 26, 2016 · 9 min read

권한에 관해서 궁금해 하시는 분들이 많이 계신 것 같습니다. 도대체 왜 일게 서드파티 보안 프로그램이 그것도 시스템의 모든 곳에 접근할 수 있는 "관리자 권한"을 요구하는지에 대해서 의문이 없다면 그게 더 이상한 일일 겁니다. 저라도 당연히 의문을 가졌을 것 같습니다. 그래서 오늘은 그런 권한에 얽힌 오해를 조금 풀어보려고 합니다.

권한이란 무엇이고 왜 필요할까?

이 글을 컴퓨터에 관한 전문 지식이 없는 분들도 보실 수 있기에 권한 이라는 것이 정확하게 어떤 것이고 왜 필요한지에 대해서 먼저 설명을 드려야겠습니다. 권한은 쉽게 말하면 방문을 여는 키와 같다고 보시면 됩니다. 집에 방이 세 개 있다고 가정해 봅시다. A, B, C라는 방이죠. 여기에서 아빠는 A, B, C에 모두 들어갈 수 있는 키를 가지고 있고, 아들은 C 방에 들어가는 키만 가지고 있습니다. 이 상황에서 모든 방을 다 들어가 볼 수 있는 사람(여기에서는 아빠)를 관리자 권한이라고 부르며, 일부 제한된 자신의 접근 구역에만 접근할 수 있는 사람(여기에서는 아들)을 사용자 권한이라고 통상적으로 부릅니다. 집에서는 아빠는 잠겨 있는 모든 방에 접근할 수 있지만, 아들은 C에만 접근할 수 있습니다. A, B가 궁금해도 키가 없으니 접근을 하지 못하는 것이죠. 컴퓨터에서도 마찬 가지입니다. 어떤 파일을 읽기 위해서는 권한이 필요합니다. 거의 대부분의 파일을 읽을 수 있는 권한이 관리자 권한, 자신의 파일만 읽을 수 있는 것이 사용자 권한이죠.

자 이제 앞의 상황에서 도둑이 들어서 어떤 방에 숨어있다는 다소 엉뚱하면서도 황당한 상상을 해 봅시다. 도둑이 A나 B 방에 숨고, 문을 잠궈버렸다면 아들은 도둑을 발견할 수 있을까요? 없을까요? 당연히 없을 겁니다. 반대로 C 방에 숨었다면 아들도 발견할 수 있습니다. 하지만 아빠의 입장은 다릅니다. 도둑이 어디에 숨어있든지 방문을 열고 볼 수 있기 때문에 도둑을 찾을 수 있습니다. 결국 권한이 높다는 것은 더 많은 것을 찾고 발견할 수 있다는 것을 의미합니다.

게임 보안 솔루션이 권한을 요구하는 것도 동일합니다. 매크로나 해킹툴을 사용하여 게임 경험을 해치는 불법 사용자를 가려내는 것이 저희의 임무입니다. 권한이 낮다면 앞에서 아들과 같이 불법 사용자가 C방에 숨은 경우만 찾아낼 수 있습니다. 반대로 관리자 권한을 가졌다면 어디에 숨어있든지 찾아낼 수 있을 겁니다.

빈대 잡으려다 초가삼간 태우는게 아닌가?

이런 권한의 메커니즘을 이해한 다음의 문제는 조금 철학적입니다. 높은 권한이 있다면 더 많은 부분을 검사해서 발견해 낼 수 있다는 건 알겠지만 그게 과연 옳은 결정이냐는 것입니다. 여기에 대한 가치 판단은 저마다 다르고 상황마다 다를 수 있습니다.

일반적으로 해킹툴이 별로 없고 거의 대다수 사용자가 정상 플레이를 하고 있는 게임이라면 당연히 권한을 최소한으로 요구하는 것이 맞을 겁니다. 왜냐하면 게임 플레이를 하면서 해킹툴 사용자를 만날 일도 별로 없는데 높은 권한으로 많은 검사를 할 필요가 없기 때문입니다. 반면에 해킹툴이 너무 많고 거의 대부분의 사용자가 어떻게든 불을 켜고 해킹툴을 사용하려는 게임이라면 관리자 권한을 요구할 수도 있을 겁니다. 물론 관리자 권한을 요구한다고 그런 모든 것을 발견하고 막을 수는 없겠지만 어쨌든 발견할 수 있는 확률은 높아지니까요.

결국 요약하면 이런 겁니다. 높은 권한은 해킹툴을 발견할 가능성이 높아지지만 사용성이 떨어지고, 낮은 권한은 해킹툴을 발견할 가능성은 낮아지지만 사용성은 높아지는 겁니다. 즉, 이는 어떤 한 가지를 일방적으로 고수할 문제가 아니라 그 사이에서 게임 운영자가 자신들의 게임에 맞게 적당히 절충하면 되는 문제입니다. 음, 우리 게임은 해킹툴 사용자가 너무 많으니까 지금 당장은 높은 권한을 유지해서 발견 가능성을 높이자라던지, 아니면 우리 게임은 거의 대부분이 선량한 사용자니까 낮은 권한으로 하돼 추후 문제가 생기면 다시 조정하겠다는 것과 같이 말이죠. 결국 여기에는 절대적으로 옳은 정답은 없으며 각각의 상황에 맞춰서 해킹툴 발견 가능성과 사용성 중에서 어느 것을 더 중시할지를 고르면 되는 문제입니다.

옵션

결국 앞의 절충의 문제라는 것 까지 이해했으면 솔루션 개발자 입장에서의 정답은 무엇일까요? 옵션입니다. 게임 운영자가 자신의 게임 특성에 맞춰서 적절하게 설정해서 사용할 수 있도록 만들어 주는 것이죠. 고정해 놓는 것이 아니라 변동 가능하도록 구성하는 겁니다. XIGNCODE3도 마찬가지 입니다. 다양한 고객사들의 입맞에 맞추기 위해서 권한 레벨을 아래와 같이 세 분류로 조정해서 적절하게 설정해서 사용할 수 있도록 가이드를 해드리고 있습니다. 낮음으로 사용하시길 원하는 경우에는 게임 권한 설정에 따라서는 아예 "관리자 권한"을 요구하지도 않으며 "커널 모드 드라이버"를 설치 및 로드하지도 않습니다. 보통 단계는 얻을 수 있는 상황인데 얻지 못하면 페널티가 주어지는 것이며, 높음 단계는 항상 "관리자 권한"을 요청하는 단계입니다. 그러니 저희가 무조건적으로 "관리자 권한"을 요구한다는 것은 정확한 사실이 아니라는 점 꼭 기억해 주셨으면 좋겠습니다.

XIGNCODE3 권한 범위

XIGNCODE3 권한 범위

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