고급 아이템이 생명인 모바일 게임에서 ‘무한 뽑기’가 가능하다면 눈을 돌리지 않을 이들이 많지 않을 테다. 슈팅 게임에서 총알이 무한대라면 무적이 될 수 있다. 해커들도 이를 잘 알고 있다.  이에 각종 해킹 수법을 통해 시스템을 변조하고 불법 애플리케이션을 만들고 있는 상황. 반대로 과금 수익에 의존하는 앱 제작사 입장에서는 이 같은 시도를 반드시 막아내야 한다.

NHN클라우드는 모바일 앱 해킹이나 코드 변조 등을 탐지하는 솔루션 ‘앱가드(Appguard)’를 활용한 대응 전략을 소개했다. 안드로이드와 iOS 환경의 최신 해킹 기법을 비롯해 사용자들의 어뷰징도 막아낼 수 있다는 설명이다.

NHN은 24일 그랜드 인터컨티넨탈 서울 파르나스에서 기술 콘퍼런스 ‘NHN 포워드 2022’를 개최했다. NHN클라우드는 ‘모바일 해킹 사례와 앱가드를 활용한 대응 방안’ 세션을 열고 위변조 방지를 비롯해 ▲코드 난독화 ▲게임엔진보호 ▲실시간 설정 ▲해킹툴 차단 기능 등을 제공하는 모바일 보안 솔루션 앱가드를 소개했다.

이범수 NHN클라우드 전임은 안드로이드 앱 해킹 유형을 설명하며 앱가드의 필요성을 역설했다.

안드로이드 환경에서의 앱 해킹은 ‘정적 분석’과 ‘동적 분석’으로 나뉜다. 정적 분석은 실행하지 않은 프로그램 소스코드를 분석해 취약점을 찾는 방식이고, 동적 분석은 실제로 프로그램을 실행해 분석하는 방법이다. 특히 동적 분석의 경우 디버깅이 대표적인 방법이었지만 최근에는 프리다(Frida)를 활용하는 ‘후킹(Hooking) ’스크립트 방식도 널리 쓰인다는 게 이범수 전임의 설명이다.

이범수 NHN클라우드 전임이 모바일 보안 솔루션 ‘앱가드’를 소개하고 있다.(사진=NHN)

이범수 전임에 따르면, 모든 로직을 서버에 두고 랜더링과 사용자 입력만 클라이언트가 담당하는 것이 보안 측면에서는 유리하다. 하지만 시간 지연이나 대량 패킷 처리의 문제가 있어 통상의 앱들은 대부분의 로직이 클라이언트단에 존재하고 서버단에서는 재화나 아이템 같은 민감 요소만 검증하는 구조가 일반적이다.

이렇게 클라이언트 보안의 중요성이 큰 상황에서 라이브러리 코드 변조를 반드시 확인하라는 조언이다. 이범수 전임은 “라이브러리 코드의 해시값과 런타임 메모리의 해시값을 비교해 코드 변조 여부를 알 수 있다”고 설명했다.

그는 실제 전투 게임 앱의 코드를 고쳐 총알이 무한대로 나가는 상황을 시연했다. 간단히 몇 가지 툴만 사용해 앱의 코드값을 만졌는데, 실제 모바일 앱에서 이런 일이 빈번하다면 게임의 재미는 떨어질 수 밖에 없다.

이범수 전임은 “캐릭터의 체력을 변조하는 사례나 원본 앱을 그대로 복제해 출시하는 방식이 성행하고 있다”며 “(앱 해킹이 일어나면) 매출 하락이나 결국은 기업 신뢰도가 하락하는 결과를 낳을 수 있다”며 앱가드를 통한 앱 보안 강화를 당부했다.


이준영 NHN클라우드 전임은 ‘탈옥’ 방식을 통한 iOS 환경의 앱 해킹 유형을 설명했다.

최근 iOS 앱은 탈옥 후 사용할 수 있는 일종의 앱스토어인 시디아(Cydia) 앱에서 구할 수 있는 트윅(Tweak) 도구를 통해 해킹하는 방식이 활용된다. 또 디버깅을 통해 특정 앱프로그래밍인터페이스(API)를 통해 브레이크 포인트를 설정, 보안 모듈을 우회할 수도 있다.

앱가드를 활용하면 이 같은 방안을 막아낼 수 있다는 게 이준영 전임의 말이다. 그는 “탈옥, 디버깅, 트윗 탐지는 물론 보안 로직을 우회하는 메소드 스위즐링 설치 여부도 판단할 수 있다”고 말했다.

앱가드는 보호하고자 하는 앱에 웹 콘솔을 통해 적용하면 된다. 소프트웨어도구키트(SDK)를 연동하는 것도 가능하다. 세팅한 보안 정책에 따라 해킹 행위를 탐지하고 차단한다. 코드를 난독화 해 해커가 쉽게 소스코드를 알아보지 못하게 하는 기능도 제공한다. 치팅툴이나 에뮬레이터 탐지는 물론, 루팅 및 탈옥 등을 탐지하고, 자바 코드(DEX)파일 변조여부도 구분해낸다.

인증서 조작이나 원격제어 앱을 탐지 기능도 제공한다. 운영자는 대시보드에서 손쉽게 로그를 조회하거나 위협 횟수 등 현재 해킹 시도 상태를 확인할 수 있다.

글. 바이라인네트워크
<이진호 기자>jhlee26@byline.network