LINE and Intertrust Security Summit 2017 Spring, Tokyo 개최 후기 1

안녕하세요? LINE 보안실의 Ichihara라고 합니다.

LINE이 제공하는 서비스의 보안 컨설팅, 계정 도용 및 어뷰징 대책, 인증 기술에 관한 조사/연구, 표준화 활동 등의 업무를 담당하고 있습니다. 오늘은 5월 17일에 LINE과 Intertrust사의 공동 주최로 열린 ‘LINE and Intertrust Security Summit 2017 Spring, Tokyo’ 행사 후기를 전해드리겠습니다.

이 포스팅은 후기 1편입니다. 2편은 여기에서 보실 수 있습니다.

들어가며

이번 컨퍼런스의 화두는 ‘엔드포인트 보안(end point security)’이었습니다. 여기서 말하는 ‘엔드포인트 보안’이란 PC나 모바일, IoT 기기 같은 디바이스와 그 디바이스에서 실행되는 애플리케이션의 보안을 가리킵니다. 예를 들어 결제 앱, 게임, 음악/영화, 교육 콘텐츠 등 ‘보호해야 할 중요 정보’를 취급하는 서비스 제공 회사는 비용 등을 생각했을 때 신경 쓰이는 문제가 한두 가지가 아닙니다. LINE에서도 다양한 사용자 정보 및 개인 정보, LINE Pay 같은 결제 관련 정보 등 보호해야 할 정보가 많습니다.

그렇다면 이런 엔드포인트 보안이라는 과제에는 어떤 솔루션이 있을까요? 가령 키(key), 개인 정보, 서명 생성 등의 중요한 정보 처리를 하드웨어 레벨에서 보호하기 위한 ‘IC 카드 등 tamper-resistant 하드웨어 디바이스 사용하기’ 같은 아이디어가 금방 떠오를 텐데요. 하지만 편의성과 기술 호환성, 필요한 하드웨어의 지원 여부, 디바이스의 커버율, 운영 비용 등을 고려하면 기업이 이를 도입하기로 결단을 내리는 데에는 상당한 시간이 걸리기 때문에 단순한 문제는 아닙니다.

한편, 이를 소프트웨어 레벨에서 보호하기 위한 수단으로 DRM, 소프트웨어 난독화, whitebox 암호화 같은 기술과 제품이 있습니다. 이러한 것들은 특정 단말기 모델이나 하드웨어와 상관 없이 소프트웨어에만 구현하면 된다는 장점은 있으나, 앞서 언급한 tamper-resistant 하드웨어 디바이스와 비교했을 때 물리적인 강도가 얼마나 될 지 알 수 없다는 문제가 있습니다. 가령, IC 카드의 Common Criteria AVA_VAN.5나 HSM의 FIPS 140-2처럼 객관적으로 판단할 수 있는 인증 제도나 평가 기준이 없다는 것이 문제지요. 게다가 이들 제품은 고가인 경우가 많아 도입하기가 쉽지 않습니다.

기업 입장에서는 애플리케이션의 엔드포인트 보안이란 것이 하드웨어 차원에서 구현해야 되는 것인지, 아니면 소프트웨어 차원에서 하면 되는 것인지 늘 고민되는 문제라 할 수 있습니다. 또한, 보안 대책이 필요한 곳(=점검 대상)은 애플리케이션의 수만큼 즉, ‘x N(곱하기 N)’만큼이라고 할 수 있기 때문에 더더욱 골치 아픈 문제입니다. 엔드포인트와 관련된 이러한 ‘답 안 나오는 문제, 즉 보안 문제’는 IT 분야 초창기부터 현재에 이르기까지 지속적으로 이어져 왔습니다.

그럼에도 whitebox 암호화, tamper-resistant 소프트웨어, 난독화 기술 분야 등의 연구 활동은 지금도 활발히 이루어지고 있으며, 전세계의 수많은 연구원과 엔지니어들이 신종 해킹 수법을 공유하며 새로운 대책 기술을 내놓고 있습니다.

이에 따라 엔드 유저 대상 기업, 학계, 솔루션 기업의 전문가들이 모여 ‘엔드포인트 보안’이라는 주제를 놓고 최신 동향을 소개하며 토론할 수 있는 자리를 마련해 보는 것도 흥미롭겠다는 생각이 들었습니다. 실제 이런 주제에 초점을 맞춘 컨퍼런스는 일본에서는 많지 않았고 이상이 LINE and Intertrust Security Summit 컨퍼런스를 개최하게 된 동기입니다.

LINE의 CISO Nakayama씨의 기조강연 외에도 보안 엔지니어인 Elenkov Nikolay씨가 ‘Implementing trusted endpoints in the mobile world’라는 제목으로 모바일 분야의 엔드포인트 보안에 대해 발표하였습니다. 역시 보안 엔지니어인 안상환씨가 ‘Practical attacks on commercial whitebox cryptography solutions’라는 제목의 최신 whitebox 암호화 제품을 타깃으로 한 해킹 수법에 대해 강연하였습니다. 이러한 다양한 발표를 통해 LINE의 엔드포인트 보안 관련 활동을 소개하는 기회로 삼을 수 있었습니다.

또한 이 날은 LINE이 일본에서는 두 번째로 FIDO Alliance의 board member로 가입한 사실도 발표를 했습니다. 이 역시 엔드포인트 보안 강화를 위한 LINE의 노력의 일환이라 하겠습니다. FIDO에 대해서는 다음 기회에 자세히 소개하도록 하겠습니다.

Keynote Speech

오전 세션에서는 다음의 키노트 스피치가 있었습니다.

LINE’s Security: Now and Future

먼저 LINE의 보안 기술의 현재와 미래에 관한 CISO인 Nakayama씨의 기조강연이 있었습니다.

2011년 6월에 메신저 앱으로 탄생한 LINE은 2017년 현재, 단순한 메신저 앱을 넘어 LINE Manga, LINE MUSIC, LINE LIVE, LINE Pay 등 다양한 서비스와 연동된 ‘플랫폼 앱’으로 성장하여 세계 여러 나라, 특히 아시아 4개국(일본, 대만, 태국, 인도네시아)에서 많은 사용자를 확보하고 있습니다. 이처럼 서비스 종류와 구현 형태의 다양성, 그리고 LINE의 애플리케이션/서비스가 글로벌하게 사용되고 있다는 점을 감안하여 LINE은 보안 확보를 위해 여러 방면으로 노력을 기울여 왔습니다.

가령 LINE의 보안 엔지니어들은 개발 라이프사이클의 모든 단계에서 보안 컨설팅, 코드 체크, 보안 진단 등을 실시하고 있습니다. 또 릴리스 후에는 모니터링뿐 아니라 LINE Security Bug Bounty Program을 통해 미처 발견하지 못했던 취약점 정보를 적극적으로 수집하여 보안 품질을 관리하고 있습니다. 그리고 스팸이나 계정 도용 등 어뷰징 대책에 있어서도 계정 사양 개선뿐 아니라 머신러닝을 이용한 자동 감지 및 차단 시스템을 개발/도입하는 등 개선을 위해 노력하고 있습니다. 현재 AI나 IoT를 접목시킨 미래형 서비스 개발이 진행 중인만큼, LINE은 앞으로도 계속해서 새로운 유형의 앱과 서비스를 제공해 나갈 것입니다.

이와 같은 미래형 서비스에서 보안 문제는 과거보다 한층 중요해질 것이며 따라서 우리는 더욱 진지한 자세로 문제 해결에 임해야 할 것입니다.

강연 마지막 부분에 LINE이 FIDO Alliance*에 board member로 가입했다는 발표가 있었습니다.
*: FIDO Alliance는 비밀번호가 필요 없는 간편한 사용자 인증 기술의 국제 표준을 정하기 위해 설립된 비영리단체를 말한다.

Drawing the Line Correctly: Enough Security, Everywhere

Intertrust사의 CEO인 Talal G. Shamoon씨께서도 기조강연을 맡아주셨습니다.


인터넷 접속 시스템이 오늘날 다양하고도 어려운 문제에 직면해 있습니다. 하지만 처음부터 이 시스템 자체가 확고한 보안 개념 하에 설계된 것은 아니었습니다. ‘악당은 내부가 아니라 외부에 있다’는 전제 하에, 유연하고도 강력한, 그러면서도 침투하기 쉬운 형태로, 정부를 위해 혹은 군사적인 목적으로 인터넷이 고안되었기 때문입니다.

돌이켜 보면 1965~1975년에 만들어진 ‘Multics’라는 OS에는 보안 개념이 탑재되어 있었습니다. 그러나 이것이 실패하면서 이후 보안에 대해서는 거의 신경쓰지 않은 OS인 ‘UNIX’가 등장하게 되었습니다. 그 후 기업용뿐 아니라 개인용 OS로 Microsoft사의 Windows가 각광을 받기 시작했는데, 이 역시 설계 당시에는 보안에 대해 충분히 고려되지 않았습니다. 그리고 Windows에서 실행되는 Internet Explorer의 경우, 당시로서는 생각할 수 없을 만큼 많은 사람들에게 인터넷에 접속하는 기회를 제공하게 된 동시에 취약점도 대규모로 노출되게 되었습니다. 이어서 Sun은 UNIX, Windows, 인터넷 세상을 연결하는 매개체로 Java를 탄생시켰습니다. 여기에는 몇 가지 보안 기능이 탑재되었지만 현재 알려져 있다시피 많은 취약점이 있는 것도 사실입니다. 그리고 Android, iOS의 등장과 함께 이러한 ‘Security Circus’는 오늘날에도 여전히 반복되고 있는 실정입니다.

Google의 모기업 Alphabet의 Chairman인 Eric Schmidt조차도 RSA Conference 2017강연에서 이렇게 말한 바 있습니다.

– 보안 문제 때문에 인터넷에는 수 없이 많은 업데이트가 이루어져 왔습니다. 그 이유를 물으면 ‘범죄자가 있을 줄 미처 몰랐으니까’라는 답변이 돌아옵니다.

오늘날의 인터넷과 OS에 적절한 보안 기술을 overlay하면 안전해지기는 합니다. 다만 그러기 위해서는 강력한 암호에 요구되는 것 이상으로 안전하고 철통 같은 솔루션이 있어야 합니다. 그리고 이는 secure한 런타임을 deploy하고 인증 메커니즘 및 강력한 하드웨어/소프트웨어 tamper-resistance를 적절히 build/deploy하는 것으로 귀결됩니다. 이러한 방식이 오늘날 갑자기 만들어진 것은 아닙니다. 가령 교토의 니조성을 예로 들면, 이 성 곳곳에는 ‘인증 메커니즘’과 ‘난독화(Obfuscation)’가 적용되어 있고, ‘안전 구역’이 존재하며, ‘울림 바닥’과 같은 조기 경보 시스템이 갖추어져 있습니다.

보안 분야 업무에서는 적절한 툴, 즉 쓸데 없이 복잡하거나 사용성 및 비용 상의 문제를 야기하지 않으면서도 충분히 안전한 보안 솔루션을 선택하는 것이 중요합니다. LINE과 Intertrust사는 ‘안전하고 비즈니스하기 좋은 인터넷 구축을 위한 연구 및 논의’라는 공동의 목표를 내걸고, 안전하고 사용자 친화적인 인터넷 환경을 조성하기 위해 앞으로도 지속적으로 보안 컨퍼런스를 개최해 나갈 것입니다.

이야기는 인터넷의 역사, 보안의 역사를 함께 짚어가면서 Multics → UNIX → Windows → Java의 순서로 진행되었습니다. 모두 앞선 시스템에 대한 과제 해결형 솔루션으로 등장했지만 결국 새로운 보안 문제를 야기하게 되었고, 그 보급 규모에 비례해서 취약점도 널리 알려지게 되었다는 사실이 떠올랐습니다. 후반부는 ‘어떻게 하면 철통 같이 안전한 시스템을 구축할 수 있을까’라는 물음에 대한 Intertrust사 나름의 대답이자 메시지로 받아들일 수 있을 것입니다.

Frontiers of Cryptography

Intertrust사의 Chief Scientist이자 1986년 튜링상수상자인 Robert Tarjan씨의 기조강연에서는 ‘Frontiers of Cryptography’라는 내용으로 다음과 같은 강연이 이어졌습니다.


세계적으로 많은 시스템에 Blackbox형 암호화가 사용되고 있는데, 여기에는 하드웨어 보안 등 다양한 문제가 뒤따릅니다.

스마트폰이나 IoT 기기 등이 보급됨에 따라, 무방비 상태의 환경에서 돌아가는 비관리 디바이스 모델이 점점 많아지고 있습니다. 이에 따라 현실성 있는 암호화 솔루션으로 검토되고 있는 것이 whitebox 암호화입니다. 그런데 이 whitebox 암호화는 이론과 실제 사이에 큰 차이가 존재합니다. 이론적으로는 보안을 보장할 수 있지만, 일반적으로 계산과 공간의 오버헤드가 비실용적으로 커지게 됩니다. 난독화의 경우에는 사실상 reverse engineering을 어렵게 하기 위해 사용됩니다.

이 발표는 Indistinguishability Obfuscation에 중점이 놓여 있습니다. whitebox 암호화는 일방향 함수와 함께 사용하면 가상 Blackbox를 구현할 수 있습니다. 가상 Blackbox는 현재로서는 이론적인 성과일 뿐 실제 구현할 수는 없지만, 애플리케이션의 안전성 향상을 위해 현재 많은 연구가 이루어지고 있는 분야 중 하나입니다. 위협 모델이 끊임없이 진화하고 있는 오늘날, whitebox 보안 솔루션은 모바일 결제 시스템, 또는 인터넷에 상시 접속되어 있는 커넥티드 카(Connected Car)나 의료기기, 엔터테인먼트 등의 분야에서 유용한 툴이 될 수 있습니다.

Your Security, More Simple — Utilizing FIDO Authentication

NTT docomo의 Moriyama씨께서 NTT docomo의 FIDO 도입 및 FIDO Alliance 활동에 대한 기조강연을 진행해 주셨습니다.

FIDO(=Fast IDentity Online) Alliance는 약 250개 회사로 구성되어 기술 사양, 프로그램 운영 등을 추진하는 표준화 단체로서, 비밀번호가 안고 있는 문제(복잡함, 쉽게 잊어버림, 갱신 필요, 서버 공격으로 유출될 수 있음 등)를 근본적으로 해결하기 위해 공개 키 암호화 방식의 온라인 인증 기술 사양을 책정했습니다. FIDO의 개인 정보 정책으로는 다음과 같은 세 가지를 들 수 있습니다.

  • 인증 프로토콜은 제3자가 개입하지 않는 end to end protocol로 구현함
  • 서버 측에 비밀 정보가 생성, 저장되지 않음
  • 각 서비스별로 FIDO 인증 키쌍(key pair)은 독립적으로 존재함

FIDO 사양은 아래와 같이 네 종류로 제공되고 있습니다.

  • FIDO 1.1: 비밀번호 없는 인증, 2단계 인증
  • CTAP(Client to Authenticator Protocol) : WebAuthn을 지원하는 클라이언트 단말과 Authenticator 사이의 프로토콜
  • WebAuthn (FIDO+W3C) : 웹 서비스에서 FIDO 인증을 구현하기 위한 기술 사양
  • UVC (FIDO-EMVco) : FIDO를 이용한 모바일 결제 관련 사양

NTT docomo는 2015년 5월에 ‘d ACCOUNT(역주 : NTT docomo가 제공하는 각종 스마트폰, PC 서비스를 이용할 수 있는 고객 ID)’의 FIDO 지원을 시작해서 2015년부터 2016 겨울, 2017년 봄 시즌에 걸쳐 출시된 모델 총 20기종이 FIDO를 지원하고 있습니다.

FIDO를 도입하게 된 동기는 다음과 같습니다.

  • 생체 인증 활용 온라인 인증을 통한 UX 향상
  • 보안에 대한 충분한 고려
  • 향후 상호 운용성

실제 Deployment에 즈음해서는 d ACCOUNT 인증 기반인 d ACCOUNT 인증 서버와 클라이언트에 FIDO Certified 제품을 도입했으며, 단말기 업체의 생체 인증 장치도 FIDO 지원형으로 공급받았습니다. Android와 iOS 양쪽 모두를 지원하고 있습니다.

특히 보안면에서는 FIDO 사양에서 중요한 다음 사양을 모두 TEE(Trusted Execution Environment) 내에 탑재했습니다.

  • 개인 키(private key) 생성 처리
  • 생체 정보 매칭 처리
  • 서명 처리
  • 개인 키와 생체 정보의 보관 관리

또한 FIDO의 상호 운용성도 감안하였으므로 앞으로는 다양한 FIDO 제품 및 서버, 서비스 제공자가 이용할 수 있게 됩니다. 그리고 2017년 2월부터는 PC에서도 생체 정보로 인증할 수 있는 ‘스마트폰 인증’을 시작하여, PC에서 로그인할 때 FIDO 지원 스마트폰으로 생체 인증을 하면 인증을 통과할 수 있게 되었습니다.

NTT docomo는 ‘언젠가 당연해질 무언가를(The new of today, the norm of tomorrow)’이라는 슬로건에 따라 비밀번호 없는 세상을 지향하며, FIDO Alliance와도 연계하여 ‘안심 보안, 더욱 편리하게’를 실현해 나갈 것입니다. 다음은 FIDO Alliance / FIDO Alliance Japan Working Group의 활동에 대한 설명이 되겠습니다(FIDO Japan Working Group 좌장의 입장에서). FIDO Japan Working Group은 일본에서 번역, 마케팅, deployment 등의 하위 Working Group을 통해 다양한 활동을 펼치고 있습니다. LINE을 포함해 일본 내 18개 기업이 FIDO Japan Working Group에 참여하고 있으며 FIDO Alliance 전체로 보면 250개 이상의 기업이 멤버로 참여한 가운데 글로벌하게 운영되고 있습니다(2017년 5월 17일 현재).

Session 1: Technology Trends in End Point security

첫 번째 세션에서는 엔드포인트 보안(end point security)에 대해 다음과 같은 스피치가 진행되었습니다.

Application security as crucial to the modern distributed trust model

Intertrust사의 CTO인 David Maher씨께서 앞으로의 모바일/IoT 분야에 있어서 앱 보안의 신뢰 모델에 대해 강연해 주셨습니다.

IoT 및 모바일 시대의 분산 신뢰 모델(Distributed trust model), 가령 애플리케이션의 공격 내성이나 소프트웨어 방어 기제에 대해 말씀드리겠습니다.

우선 분산 신뢰 모델을 추진할 때 고려할 Trends and Drivers로 다음과 같은 세 가지를 들 수 있습니다.

  • Scale: 가까운 미래에 수백억 개에 달하는 온갖 디바이스가 연결되어 대량의 애플리케이션이 실행되고 있는 가운데, 1조 개의 센서와 1000억 개의 디바이스가 존재하게 될 것임
  • Hyper-connectivity: 각양각색의 수많은 네트워크를 통해 접속하게 됨. 네트워크는 신형 저전력 네트워크부터 SDN에 이르기까지 다양할 것임
  • Implication of Merger of the cyber world and physical world: 단순히 컴퓨터 리소스에만 접속하는 것이 아니라, 온갖 종류의 물리적 리소스에도 접속이 가능해짐

다음으로, 분산 신뢰 모델의 Goal에 대해서 설명하겠습니다.

  • Application level Security that scales: 애플리케이션 레벨에서 보안이 보장되어 애플리케이션을 통한 자가 보호 및 안전 유지가 가능할 것
  • Security without expensive resources and complexity: 손쉽게 사용할 수 있고 안전성이 유지되며 프라이버시를 침해하지 않는 심플한 디바이스일 것
  • Defense-in-depth: 여러 단계의 다층적인 메커니즘을 제공할 것
  • Protection of sensor data: 디바이스는 허가된 entity에만 센서 데이터가 전달되도록 하는 수단이 될 것
  • Secure delegation: 일반인이 이용하는 신뢰할 수 있는 접속 관리(위임) 수단이 제공될 것
  • Defense against distributed attacks: 컴퓨터 및 네트워크의 리소스와 기능이 랜섬웨어나 멀웨어와 같은 시스템 공격으로부터 어떻게 보호되는지 보여줄 수 있을 것
  • 이어서, 위의 Goal을 달성하기 위해 디바이스 및 애플리케이션이 지향해야 할 Model에 대해 설명하겠습니다. 이들 커넥티드 디바이스/애플리케이션은 다음 항목을 보유/탑재하고 있어야 합니다.

    • 자체적인 제어 메커니즘
    • 내부 상태를 나타내는 정보
    • 센서 데이터

    그리고 다음과 같은 Protection Approaches 기법을 채택할 것입니다.

    • Incremental Discovery: 네트워크 상에서 디바이스/애플리케이션을 쉽게 식별할 수 없기 때문에 membership credential과 관련된 명령이나 요청을 통해서만 대화할 수 있음
    • Reference monitor for API calls and remote commands: 디바이스/애플리케이션에 대한 원격 명령 요구나 접속 요구가 있을 때 인증에 사용되는 키는, 그러한 요구를 하는 쪽이 신뢰할 수 있는 소스와 관련되어 있음을 보여줌. 참조 모니터가 이 키를 통해 모든 상호 작용(원격 명령 요구나 접속 요구)을 필터링할 수 있음
    • Security associations (SA) and SA management: A라는 하나의 디바이스 위에서, 두 개의 디바이스(A, B) 각각의 고유한 암호화 키(보통은 shared secret)와 퍼미션 리스트의 형태로 Security Association(SA)이 관리됨. 각 디바이스는 초기값 SA으로 boot strap한 후 다른 SA를 결정함
    • Secure Key Vaults: 위의 SA 및 애플리케이션 고유의 키는 하드웨어 또는 whitebox 암호 등 안전한 키 보관 영역에 보관해야 함. 모든 디바이스/애플리케이션에 secure한 업데이트를 적용해야 함. 어떤 기능이 디바이스에 새로운 코드를 설치하거나 애플리케이션의 동작을 변경하려 할 경우, 특별한 권한을 통해 해당 기능을 제한해야 함
    • Secure telemetry: Secure telemetry(안전한 원격 측정)은 비정상적인 동작을 식별하고 entity가 공격받고 있는지 여부를 판단하기 위해 제공되는 기능. 해커가 원격 측정(telemetry)을 악용해 알람이 울리지 않게 되는 사태가 발생하지 않도록 안전성이 확보되어야 함
    • Web based performance aids: Web based performance aids를 통해 앞서 언급한 Secure telemetry를 사용할 수 있게 하고, 위험 분석, 이상 감지, 머신러닝 기반 실시간 위협 평가 등을 통해 공격 조기 경보가 가능한 감시 시스템을 제공함
    • Virtualization and visualization: 확장된 유저 인터페이스를 제공할 수 있는 웹 기반 프록시를 통해 디바이스/애플리케이션의 내부 상태 표시뿐 아니라 디바이스 그룹 관리도 가능해짐

    개별 디바이스 및 관련 애플리케이션에 설치되는 소프트웨어의 자체 방어 시스템은 대단히 중요하며, 디바이스에 적절한 보안 기능이 설치되어 있다면 신뢰할 수 있는 외부 리소스를 활용해서 암호화, 감시, 기타 보안 대책 등 해당 디바이스의 복합적인 문제를 대부분 해결할 수 있습니다.

    Implementing trusted endpoints in the mobile world

    LINE 앱보안팀 Nikolay씨는 ‘모바일 환경에서 신뢰할 수 있는 엔드포인트 구현하기’라는 제목으로 강연을 진행하였습니다.

    모바일 분야에서 중요시되는 엔드포인트 보안 기술에 대해 다음 내용들을 살펴보겠습니다.

    • 데스크톱에서 모바일 디바이스로 옮겨오면서 엔드포인트 보안이 어떤 식으로 변화했는지, 모바일 기기를 보호하기 위한 핵심 기술로는 어떤 것이 있는지 확인
    • iOS와 Android의 안전 부팅(Secure boot)의 개요 설명. 두 모바일 플랫폼에서 앱과 데이터의 안전성을 보장하기 위해 코드 서명과 애플리케이션 샌드박스가 사용됨
    • 각 애플리케이션, 프로세스의 권한이 미리 설정된 보안 정책에 따라 관리될 수 있도록 두 플랫폼은 Mandatory Access Control(MAC) 프레임워크를 채택하고 있음
    • 뿐만 아니라 MAC를 우회할 수 없도록 OS의 핵심인 커널을 실시간으로 감시하는 기술인 KPP(Apple)와 TIMA(Samsung Knox)도 적극적으로 도입한 상태
    • 사용자 데이터를 암호화하기 위한 주요 방법으로는 ‘파일 기반 디스크 암호화(FBE)’와 ‘풀디스크 암호화(FDE)’가 있음
    • 암호화 키나 생체 인증 템플릿과 같은 비밀 정보를 지키기 위해 메인 OS와는 별도의 secure한 실행 환경이 존재함
    • Apple의 경우 ‘Secure Enclave Processor(SEP)’, Android의 경우는 ‘Trusted execution environment(TEE)’이 적용된 상태
    • LINE의 사용자 기반과 애플리케이션 생태계의 보안 니즈
    • LINE에서 현재 검토 중인 엔드포인트 보안 기술(TEE 기반 및 하이브리드의 신뢰할 수 있는 애플리케이션, whitebox 암호화, FIDO 등의 생체 인증 기술)

    Client Security for Accelerating Game Development

    일본의 대표적 게임회사인 DeNA의 보안팀 소속 Shiota씨께서는 ‘게임 개발과 클라이언트 보안’을 주제로 강연해 주셨습니다.


    게임의 클라이언트 보안이라고 하면 치팅(데이터 조작을 통해 게임을 유리하게 진행시키는 행위) 방지 대책을 가리킵니다.

    DeNA에서 이러한 대책을 고려하는 데 있어 중요한 세 종류의 아키텍처로는 다음과 같은 것들이 있습니다.

    • Browser type: 브라우저에서 실행되는 게임. 이 경우 게임 로직은 대부분 서버에 존재하며 클라이언트는 연출 등 UI 구현에 특화됨. 서버에 로직의 상당수가 있다 보니 클라이언트에 치팅을 한다 해도 한계가 있음
    • Application type: 모바일 앱형 게임으로, 최근 일반적인 구현 방식. 일부 로직 및 사용자의 조작에 인터랙티브하게 반응하며 게임 로직을 계산하는 부분이 클라이언트에 존재하는 타입이라 손쉽게 치팅이 가능할 때가 있음. 가령 사용자의 조작에 맞추어 인터랙티브하게 점수를 계산하는 리듬게임 같은 경우, 클라이언트에 로직이 존재함
    • Baas-Application type: 여러 게임이 하나의 게임 서버를 공동으로 이용하는 타입. 여러 명이 서버를 공유하는 만큼 개발 비용을 낮출 수 있지만, 클라이언트에서 여러 가지 처리를 해야 하므로 클라이언트 해킹 가능성이 있음을 고려하면 치팅 내성이 떨어진다 할 수 있음

    게임 로직이 클라이언트에 존재하는 경우가 있는 이상 치팅을 줄이려면 클라이언트 보안 기술이 필요한데, 여기에는 다양한 과제가 뒤따릅니다. 가령 조작 방지 솔루션을 도입하는 것이 가장 이상적이겠지만, 개발 현장에 이를 도입하려면 build 환경 제한이나 OS별 보안 수준의 차이, 퍼포먼스 문제 등이 장애물이 됩니다.

    정리하자면 다음과 같습니다.
    클라이언트 보안 기술을 도입하면 게임 개발에 속도를 더욱 낼 수 있을 것입니다. 개발 효율이 뛰어난 아키텍처를 적용할 수도 있고, 치팅 사후 대응에 들어가는 공수를 줄일 수도 있으며, 그 결과 개발자가 더욱 더 개발에 집중할 수 있게 되기 때문입니다. 특히 BaaS 이용 타입의 아키텍처를 적용하면 클라이언트가 보유하는 로직의 비율이 높아지므로 그러한 경향은 뚜렷해집니다. 따라서 개발 효율에 미칠 영향, 비용, 견고함을 골고루 갖춘 솔루션이 앞으로도 필요할 것입니다.

    후반부에서는 프록시 툴과 바이너리 분석을 이용한(의도적으로 취약하게 구현된) 샘플 게임의 치팅 행위를 데모 영상을 통해 소개하고자 하였습니다. 간단히 소개하면, 우선 프록시 툴로 게임의 통신 내용을 열람한 뒤 어떤 파라미터에 Base64 인코딩 같은 문자열이 포함되어 있는 것을 발견합니다. 이어지는 바이너리 분석에서 ‘base64’를 포함하는 이름의 함수를 찾아보니 base64Decode라는 함수가 있고, 이 함수 안에는 xorDecode라는 이상한 명칭의 함수명이 있습니다. 그리고 그 내부에서는 마스킹한 것 같은 고정 문자열 리터럴을 발견했습니다. 이때 프록시 툴로 돌아온 뒤, 조금 전의 고정 문자열을 통해 자동으로 파라미터 마스킹을 해제하는 프로그램을 적용하여 네트워크 상의 데이터(점수 등)를 부풀려 보니 서버에서는 이 조작을 걸러내지 못했고, 부풀려진 점수로 순위에서 1등이 될 수 있었습니다. 이처럼 안일하게 구현된 케이스를 상상하기는 어렵지 않습니다. 이렇게 해서 게임은 손쉽게 치팅당하고 마는 것이죠.

    이 포스팅은 1편입니다. 이어지는 2편은 여기에서 보실 수 있습니다.

    Related Post