들어가며
안녕하 세요. Security R&D 팀의 김도연, 김영현, 박경준, 후바인 찰스, 안상환입니다. Security R&D 팀은 LY 그룹 서비스의 전반적인 보안을 강화하기 위해 보안 기술 연구 및 모듈 개발, 컨설팅 업무를 담당하고 있습니다. 이번 글에서는 사용자의 서비스 요청이 위변조되지 않은 기기와 앱에서 전송됐다는 것을 증명할 수 있는 기기 증명(device attestation) 서비스를 소개하고자 합니다.
기기 증명 서비스 개발 배경
LY의 서비스가 사회의 핵심 인프라가 되면서 이를 악용해 부정한 목적을 달성하려는 남용 사례도 함께 증가했습니다. 공격자들은 계정 탈취나 스패밍(spamming), 피싱(phishing), 사기 등을 목적으로 서비스를 이용하며, 이를 위해 자동화된 프로그램을 사용해 대량의 서비스 요청을 보내거나 앱을 변조해 악의적인 작업을 수행하기도 합니다.
그런데 기존의 소프트웨어 기반 보안 대책에는 허점이 있습니다. 우선 공격자가 루트 권한을 얻었다고 가정한 위협 모델에서는 공격자가 앱의 실행 결과를 얼마든지 조작할 수 있기 때문에 이를 보호하기 위한 자체 보안 검사를 올바르게 수행할 수 없습니다. 또한 공격자는 앱의 바이너리를 분석해 가짜 클라이언트를 만들어 서비스를 남용하기도 하는데요. 이런 가짜 클라이언트에서 발생한 요청은 정상적인 서비스 요청과 구별하기가 매우 어렵습니다. 게다가 최근 사용자 제작 콘텐츠의 양과 그 다양성이 폭발적으로 증가하면서, 이에 대응하기 위해서 대량의 다양한 콘텐츠와 광범위한 공격을 처리할 수 있는 포괄적이고 확장 가능한 남용 방지 대책이 필요해졌습니다.
이런 상황에서 각 서비스별로 개별적으로 대응하는 것에는 한계가 있기 때문에 근본적으로 어떤 기점에서 서비스 남용이 발생하는지에 집중할 필요가 있는데요. 저희는 비정상적인 요청의 대부분이 합법적인 기기 및 앱에서 생성된 것이 아니라는 점에 착안해 하드웨어 기반의 증명 방식을 도입, 신뢰할 수 없는 출처에서 발생한 서비스 요청을 근본적으로 차단하면서 기존의 남용 방지 대책과 조합해 그 효용성을 개선할 수 있는 기기 증명 서비스를 개발했습니다.
기기 증명 서비스는 Auth & Account Dev 팀과 Account Product App Dev 1 팀, Platform Product Management 팀과 협업해 2023년 12월에 LINE 서비스에 성공적으로 적용했으며, 다양한 형태의 서비스 요청 검증 및 모니터링에 활용하고 있습니다. 또한 금융 서비스와 같이 높은 보안 수준이 요구되는 서비스에 기기 증명 서비스를 통합하는 작업도 함께 진행하고 있습니다.
이제 기기 증명 서비스가 구체적으로 어떤 방식으로 작동하는지 자세히 살펴보겠습니다.
기기 증명 서비스의 목표 및 구조
기기 증명 서비스는 서버가 받는 사용자의 서비스 요청이 아래와 같다는 것을 증명하는 기능을 제공합니다.
- 위변조되지 않은 기기와 앱에서 생성됨
- 서비스 요청 또한 변조되거나 조작되지 않음
구체적으로, 기기 증명 서비스는 다음과 같은 사례에 해당하는 서비스 요청을 '잠재적으로 위험성이 높은 요청'으로 간주하고 모니터링해서 서비스 남용을 방지하는 것을 목표로 합니다.