한국어
    • 한국어
    • ENGLISH
    • 日本語
    • 中文-繁體

    2023.10.13 Technology: Push the Boundaries

    즐거움을 지키는 기술, 엔씨 게임보안 솔루션 개발기

    엔씨는 게임에 특화된 보안환경을 구축하기 위해 자체 보안 솔루션을 개발했습니다. MMORPG 장르 맞춤형 보안 기술과 전략을 공유합니다.


    New Craving: 플레이어에게 가장 안전한 보안환경을 구축하려면 어떤 솔루션이 필요할까?

    완벽한 보안망이란 존재하지 않는다. 게임이 지속적으로 콘텐츠를 업데이트하여 플레이어에게 새로운 재미를 제공하듯 게임보안 또한 지능적으로 고도화하는 공격에 대응하면서 끊임없이 보안 체계를 보완해야 한다. 이 과정이 게임 서비스 기간 동안 지속되므로 게임보안 솔루션은 무엇보다 ‘연속성’과 ‘안정성’을 유지하는 것이 중요하다.

    예를 들어 보안 솔루션이 운영체제와 충돌해 플레이어가 게임에 접속하지 못하거나, 보안망을 우회해 침략하는 새로운 해킹 툴이 발견되는 경우 빠르게 솔루션을 유지∙보수하며 업데이트할 필요가 있다. 하지만 상용 보안 솔루션은 개발 주체가 회사 외부에 있기 때문에 이러한 문제가 발생할 때 기민하게 대응하기 어려웠고, 엔씨의 게임 서비스에 특화된 보안 기능을 구축하는 데도 한계가 있었다.

    이에 엔씨 정보보안센터는 산하 조직인 보안개발실을 중심으로 자체 게임보안 솔루션을 개발하여 플레이어가 지속적으로 안전하게 게임을 즐길 수 있는 환경을 마련하고자 했다.

    Never-ending Challenge: 장기전에 최적화된 솔루션을 개발하라

    정보보안센터는 게임보안의 범위를 게임을 실행하기 전 단계인 ① 정적 시간(Static time), 그리고 게임이 실행되는 단계인 ② 실행 시간(Runtime)으로 분류하고 각 파트에 필요한 최적의 솔루션을 개발, 적용해 견고한 보안망을 구축하고 있다.

    엔씨 게임보안 프로세스

    Part.1 게임을 전천후로 보호하는 보안전략을 수립하다

    게임은 실행되고 있을 때는 물론 실행 이전 단계에도 공격 대상이 될 수 있다. 게임을 분석해 클라이언트를 자신에게 유리한 방향으로 위변조하거나, 악성코드를 심어 재배포하는 사례가 대표적이다. 이를 방어하기 위해서는 외부에서 게임 리소스를 분석하지 못하도록 보호하는 ‘분석 방지(Anti-tamper) 솔루션’을 마련해야 한다.

    보안개발실은 패커(Packer) 그리고 난독화(Obfuscator) 솔루션을 개발해왔다. 두 솔루션의 목적은 동일하지만 패커가 게임 코드, 리소스를 암호화(Packing)해 원복 전까지 읽을 수 없도록 한다면 난독화는 게임 코드 자체를 읽기 어렵도록 만드는 기술이라는 점이 다르다.

    정보보안센터의 목표는 다양한 보안 위협에 선제적으로 대응하고 안티 치트(Anti-cheat) 솔루션인 엔씨가드(NCGuard)와 연계해 게임이 실행되는 시점을 전후로 빈틈없는 보안망을 구축하는 것이었다.

    먼저 안드로이드 운영체제(AOS)에 최적화된 솔루션인 엔씨가드 APK 패커를 개발했다. APK 패커는 안드로이드 배포 파일인 APK(AAB)의 재배포를 방지하고 외부에서 리소스를 분석하기 어렵도록 Java 코드와 Native 라이브러리를 보호하는 역할을 수행한다. 윈도우 운영체제(Windows)에서는 엔씨가드 PE 패커를 개발했다. PE 패커는 윈도우 실행 파일인 PE(Portable Executable) 파일을 보호하기 위해 난독화 기능을 제공한다.

    그리고 iOS 운영체제에서는 자체 개발 도구로 iOS, macOS의 실행 파일인 MachO 파일의 난독화 기능을 제공하고 있다. 보안개발실은 나아가 AOS, iOS를 타깃으로 다양한 난독화 기능을 제공하는 MAZE 솔루션을 개발하고 있다.

    정보보안센터 보안개발실에서 자체 개발한 분석 방지(Anti-tamper) 솔루션

    게임 실행 이전 단계에 분석 방지 솔루션이 중요했다면, 게임 실행 단계에서는 실제 외부에서 시도되는 다양한 공격을 감지하고 방어하는 보안 솔루션이 필요하다.

    보안개발실은 비인가 프로그램을 차단하고 클라이언트를 보호하기 위해 ‘안티 치트 솔루션’을 자체 개발했다. 안티 치트 솔루션은 게임 실행 단계에 부적절하게 클라이언트에 접근, 간섭하려 하는 프로그램을 적발하여 해당 도구가 정상적으로 동작하지 않거나 게임이 강제 종료되도록 만든다.

    엔씨가드는 안티 치트 기능을 위해 자체 개발한 솔루션이다. 현재 윈도우와 AOS 운영체제에서 보호 기능을 수행하고 있고 iOS에서도 동일한 수준의 보호 기능을 제공하기 위해서 추가 개발을 진행하고 있다.

    Part.2 MMORPG에 특화된 보안 솔루션을 개발하다

    클라이언트에서 동작하는 보안 모듈이 아무리 강력해도 게임 안에서 일어나는 모든 부정행위를 차단하는 것은 불가능하다. 특히 엔씨에서 큰 비중을 차지하는 MMORPG 장르에서는 다수의 클라이언트를 자동화하여 게임 내 재화를 수집, 판매하여 이득을 얻는 ‘작업장’ 유형의 부정행위가 자주 발생한다. 작업장은 게임 내 시장의 균형을 무너뜨릴 뿐 아니라 플레이어 간의 공정성을 훼손한다는 점에서 강력한 제재가 필요하다.

    이에 엔씨 정보보안센터는 안티 치트 프로그램 외에도 자사 게임에서 일어나는 부정행위를 적발하고 제재하기 위해 증거를 수집하는 ‘부정 사용 탐지(Fraud-detection) 솔루션’ 개발에 초점을 맞추었다.

    엔씨가드는 안티 치트뿐 아니라 부정 사용 탐지 기능도 수행할 수 있도록 개발되었다. 현재 모든 운영체제(윈도우, AOS, iOS)에서 부정 사용 탐지 기능을 수행한다. 정보보안센터는 엔씨가드를 기반으로 사전/사후 대응 차원에서 게임보안에 만전을 기하고 있다.

    엔씨가드(NCGuard) 솔루션은 안티 치트(Anti-tamper) 및 부정 사용 탐지(Fraud-detection) 기능을 제공한다.

    Next Change: 안전을 넘어 편리한 보안 서비스를 제공하는 것

    정보보안센터가 지향하는 또 하나의 목표는 개발자들이 보안 기능을 더욱 편리하게 게임에 연동할 수 있도록 서비스를 개선하는 것이다.

    정적 시간 도구는 플랫폼과 상관없이 ‘NCPacker’라는 하나의 명령어 도구로 난독화 작업이 가능하도록 만들고, 실행 시간 도구에서는 게임 엔진 플러그인 모듈을 통해 모든 플랫폼이 한 번에 연동될 수 있도록 서비스를 개발하고 있다. 해당 서비스에서는 PE 패커를 통해 별도의 연동 과정 없이 *바이올렛 안티 치트도 적용할 수 있다. 이를 통해 보다 편리하고 효율적인 게임 개발 환경에 기여할 수 있을 것이다.

    *바이올렛 안티 치트: 엔씨 게임의 크로스 플레이를 지원하는 ‘퍼플(Purple)’에서 서비스되는 게임을 보호하기 위한 안티 치트 솔루션

    엔씨의 자체 게임보안 솔루션은 ‘플레이어가 오랫동안 안전하게 게임을 즐길 수 있는 환경, 플레이어 간 공정한 경쟁이 이뤄지는 기반을 마련하기 위해서는 무엇이 필요할까?’라는 질문에서 시작되었다. 앞으로도 정보보안센터는 대내외적으로 신뢰받는 보안체계를 구축하기 위해 끝없는 고민과 노력을 이어갈 것이다.