[강연] 끝이 없는 해커와의 전쟁, NHN은 이렇게 이겨냈다

게임뉴스 | 박광석 기자 |


[▲ 김성준/NHN/수석 팀장 ]

  • 주제: 모바일 게임 해킹 사례와 방어기술 - 끝없는 전쟁의 시작 -
  • 강연자 : 김성준 - NHN / 수석 팀장
  • 발표분야 : 게임 개발사
  • 강연시간 : 2019.11.14(목) 11:50 ~ 12:30


  • [강연 주제] NHN 김성준 수석은 '모바일 게임 해킹 사례와 방어기술 - 끝없는 전쟁의 시작 -'이라는 주제로 14일 오전, G-CON 트랙에서 강연을 진행했습니다. NHN은 현재 글로벌 시장에서 약 31개의 모바일 게임을 운영 중이며, 이 과정에서 발생했던 다양한 해킹 유형들과 실제 방어 사례를 강연을 통해 소개했습니다.

    해커와 게임 개발자들은 지금 이 순간에도 '끝나지 않는 전쟁'을 계속하고 있다. 다른 이들보다 더 우월한 위치에서 남들보다 편하게 플레이하고 싶어하는 유저들의 수요를 충족시키기 위해 해커들은 항상 새롭게 출시되는 인기 게임들을 해킹하고, 반대로 게임 개발자들은 정직하게 게임을 즐기는 유저들이 상대적 박탈감을 느끼지 않도록 항상 방어책을 강구하고 있다.

    NHN에서 어플리케이션 보안 업무를 맡은 김성준 수석 팀장은 실제로 해커들이 만든 불법 변조 앱으로 한동안 골치를 겪기도 했지만, 현재는 5년의 개발 기간을 거쳐 만든 자체 모바일앱 보안 솔루션으로 '해커들과의 싸움에서 일차적인 승리를 거둔 상태'라고 자신 있게 선언했다. 글로벌 모바일 시장에서 30개가 넘는 모바일 게임을 동시에 운영하고 있는 NHN이 계속되는 해커들의 공세를 이겨내기까지 어떤 과정을 거쳐왔는지 강연을 통해 들을 수 있었다.



    ■ 해커들의 공세에 시달리게 되는 이유 - 쉽고, 자주 이루어지는 모바일 게임 해킹

    김성준 수석은 본격적인 해킹 사례 소개에 앞서 모바일 게임이 보안 위협을 받게 되는 주요 원인을 소개했다. 첫 번째 이유는 거대한 시장 규모다. 구글 플레이에서 게임은 전체 다운로드의 41%를 차지하고, 매출은 88%에 육박한다. 2017년 전체 매출은 220억 달러였는데, 그중 게임 매출은 190달러, 한화로 환산하면 약 21조 원에 달한다.

    시장의 규모가 크기 때문에 금전적 이득을 얻기도 쉽고, 이 부분을 파고드는 해커들의 활동이 활발해질 수밖에 없는 상황이다. 그는 인기 게임 앱의 경우 리버스 엔지니어링을 통해 소스코드를 탈취하는 경우도 자주 발생한다며, 실제로 '클래시로얄'이 출시됐을 때 한 달 만에 중국에 복제 게임이 등장했던 사례를 이야기했다.




    두 번째 원인은 게임 엔진에 있다. 대부분의 모바일 게임은 유니티 3D로 개발되고 있는데, 직관적인 통합 개발 환경과 사용하기 쉬운 C# 언어, 그리고 멀티 플랫폼 빌드가 가능한 점 때문에 해커들의 표적이 되기 쉽다. 또한 주요 실행 모듈은 mono와 il2cpp 코드가 오픈 소스 형태로 공개되기 때문에 게임 해킹에 필요한 주요 유니티 게임 API 내부 동작 원리 파악이 쉽다. 실제로 게임 코드의 CurrentHP() 함수를 변조하여 자신의 체력은 항상 최대치로 값을 리턴하고, 적의 체력에 0을 곱한 값을 리턴하게 만드는 사례가 있었고, 이렇게 하면 흔히 말하는 '무적 핵'이 발생하게 된다.

    이렇게 변조된 앱들은 불법 변조앱 마켓을 통해 유통되고 있다. 가장 대표적인 것이 '안드로이드 리퍼블릭'이며, 이외에도 PLATINMODS, BLACKMOD.NET 등이 존재한다. 해당 사이트에서는 지금도 NHN의 대표 타이틀 중 하나인 '크루세이더 퀘스트'를 해킹에 달라는 요청 등을 쉽게 발견할 수 있다.





    ■ 실제 해커들의 해킹 사례와 방어 기술 - 코드 패치와 무적핵, 스피드핵에 자동 플레이까지

    이어서 그는 실제 NHN 서비스 게임들에서 발생했던 해킹 사례들을 소개했다. 대표적인 것이 함수 후킹을 통한 무적핵과 시나리오별 키 이벤트를 강제로 발생시키는 무한 반복 플레이, 그리고 에뮬레이터 매크로를 활용한 자동 플레이다. 그중에서도 에뮬레이터를 활용한 매크로의 경우, 에뮬레이터가 자체적으로 제공하는 스크립팅을 이용하기에 게임 코드나 메모리 변조 없이 자동 플레이를 할 수 있는 것이 특징이다. 기존 앱보안 제품에서는 검출되지 않는 특수한 케이스라고 할 수 있다.

    NHN에서는 이처럼 다양한 해킹 유형들을 분류했고, 각각의 유형에 대처할 수 있는 로직을 만들어나갔다. 가장 첫 번째로 마련했던 대처법은 코드 변조에 대해 Assembly-CSharp.dll을 자체 암호화하는 방식이었다. 하지만 게임이 암호화되어도 게임을 실행하면 원본 코드가 노출되는 문제와 원본 코드 추출이 어려워지는 문제가 발생했고, 이를 해결하기 위해 도입된 것이 3세대 암호화 방식이다.

    김성준 수석은 함수 단위로 메모리에 암호화 코드를 로딩하고 실행되는 시점에 동적으로 코드를 복호화하기에 메모리 덤프를 하더라도 암호화된 코드 획득이 가능하게 됐지만, 성능 및 최적화 이슈가 있기에 꼭 보호해야 하는 주요 대상 함수에만 이를 적용했다고 소개했다. 대표적인 것이 캐릭터의 HP, 그리고 공격치 계산 등에 관련된 함수다.




    이어서 그는 동적 디버깅 차단 방식인 ptrace 활용과 패키지명 변경 여부 체크, 그리고 행위기반 매크로 사용자 탐지를 소개했는데, 특히 에뮬레이터를 활용한 매크로의 경우, 정상 유저와 매크로 유저의 터치 좌표 수를 기계 학습으로 분석해서 매크로 사용자를 분류하는 것이 가능하다고 강조했다. 실제로 정상 유저와 매크로 유저의 터치 좌표값을 보면, 화면을 전체적으로 터치한 정상 유저와 한 곳에 집중되어 있는 매크로 유저의 차이를 쉽게 구분할 수 있다.

    그는 다양한 방어 기술을 적용하다보니 공격자들이 방어 로직을 분석하여 새로운 해킹을 시도하기 시작했고, 이렇게 막고 뚫리는 과정을 지속하다가 새로운 대안으로 떠올린 것이 '코드 난독화 방식'이라고 이야기했다. 코드 난독화는 원본 코드와 같은 페이크 코드를 중간에 삽입하여 분석하기 어렵게 하는 방식으로, Fake 제어흐름, 문자열 난독화, 제어흐름 평탄화, 명령어 치환 방식 등이 있다.



    ▲ 정상 유저와 매크로 유저의 차이는 좌표 값 수집 정보를 보면 분명히 드러난다

    하지만 난독화는 코드를 이해하기가 어려울 뿐, 시간을 들여 분석을 마친 해커라면 충분히 공격할 수 있는 방식이었다. 김성준 수석은 자체 방어기술이 적용된 코드를 직접 만든 가상 명령어 해석기를 통해 실행하는 '코드 가상화'로 난독화의 부족한 부분도 보완할 수 있게 되었으며, 앞으로도 공격자들이 쉽게 해킹할 수 없는 보안을 완성하기 위해 지속적인 연구와 개선을 계속할 것이라고 이야기했다.

    끝으로 그는 강연을 통해 이야기한 모바일 게임 해킹 방어 기술 적용 시 필수로 고려해야하는 10가지 조건을 정리하여 소개한 뒤, 자신의 발표를 마무리했다.



    ◆ 모바일 게임 해킹 방어 기술 적용 시 필수 조건 10가지

    1. 최신 게임 변조 기법 및 방어 기술에 대한 '지속적인 연구와 개선 등의 고도화' 필요
    2. 유니티 3D뿐만 아니라 다른 게임 엔진들의 동작 원리를 깊게 이해해야 함
    3. 파편화된 안드로이드 호환성 이슈, 최신 게임 엔진 업데이트 등 지속적으로 성능 안정성 검증 필요
    4. 게임 내 중요 함수의 코드 난독화 및 안티 디버깅 기능은 필수로 적용해야 한다.
    5. 공격자들이 주로 사용하는 API에 대해서 HOOK 및 코드 무결성 체크는 주기적으로 동작할 것
    6. 메모리 치팅툴이나 자동 플레이 매크로 모듈에 대해 실시간 패턴 업데이트로 즉각 대응할 것
    7. 모바일 운영 체제 특성상 메모리 덤프를 통한 원본 코드 추출은 원천적으로 차단할 수 없다.
    8. 게임이 실행된 상태에서 메모리 덤프가 되더라도 원천적으로 해독할 수 없게 '코드 가상화' 필요
    9. 클라이언트 단계뿐만 아니라 게임 서버 단에서도 방어 기술 정상 동작 여부 체크 기능 필요
    10. 게임 서비스에 해킹 방어 기술 적용 시 용량 및 성능, 안정성에 영향이 적고 쉽게 연동 가능해야함




    11월 14일부터 11월 15일까지 벡스코 제2전시장에서 진행되는 인벤게임컨퍼런스(IGC X G-CON) 취재 기사는 아래 링크에서 확인할 수 있습니다. ▶ IGC X G-CON 2019 뉴스센터: http://bit.ly/33N9vYU

    댓글

    새로고침
    새로고침

    기사 목록

    1 2 3 4 5