시중의 다양한 앱 실딩 솔루션을 어떻게 평가해야 하는지, 그리고 모바일 앱을 제대로 보호하려면 무엇이 필요한지 알아보세요.

이제 침투 테스트를 마쳤고, 모바일 애플리케이션 보안 테스트(MAST)까지 진행했을 수도 있습니다. 그렇다면 이제는 모바일 앱 보안 솔루션을 검토할 차례입니다. 하지만 내 애플리케이션에 가장 적합한 솔루션은 어떻게 가려낼 수 있을까요?

가장 먼저 살펴볼 수 있는 것은 주요 애널리스트들의 평가입니다.

Gartner 는 개발자가 선호하는 도구와 워크플로에서 애플리케이션을 구축하고, 보안 및 개인정보 보호 취약점을 신속하게 테스트하며, 출시 일정에 차질을 주지 않으면서 보안 문제를 손쉽게 해결할 수 있도록 지원하는 애플리케이션 보안 기술의 도입을 권장합니다. Forrester 역시 애플리케이션 보안은 강력하고, 지속적으로 경계를 유지하며, 민첩해야 한다고 강조합니다.

물론 개발자와 보안 담당자가 고려해야 할 사항은 여기서 그치지 않습니다. 다양한 모바일 앱 보안 솔루션을 보다 체계적으로 평가할 수 있도록, 이 글에서는 꼭 확인해야 할 10가지 핵심 기준을 정리했습니다.

보안 위험을 평가하고 앱 실딩(app shielding)을 시작해 보세요.
OWASP Mobile Top 10 및 앱 실딩(app shielding)에 관한 가이드를 다운로드하세요.
다운로드 하기

 

 

1. 런타임 애플리케이션 자체 보호(RASP)

간단히 말해 런타임 보호는 앱이 실제로 실행되는 동안 보안 침해를 막는 데 도움을 줍니다. 앱이 동작하는 순간 의심스러운 활동을 지속적으로 모니터링해 잠재적인 위협을 실시간으로 탐지하고 대응할 수 있도록 하기 때문입니다.

런타임 보호 도구는 애플리케이션의 동작을 계속 분석하면서 이상 징후를 찾아냅니다. 평소와 다른 행위가 감지되면 악의적인 동작을 차단하거나 보안 팀에 경고를 보내는 등 즉각적인 조치를 취할 수 있습니다.

다만 RASP는 애플리케이션이 실행되는 대상 기기에서 직접 동작해야 하며, 일부 솔루션은 앱 성능에 영향을 줄 수 있다는 점도 함께 고려해야 합니다.

 

2. 코드 난독화

코드 난독화는 거의 모든 앱 보안 및 복제 방지 도구의 핵심 요소입니다. 이 기능이 없다면 애플리케이션 코드나 보안 코드는 그대로 드러나 이해하기 쉬워지고, 그만큼 수정이나 변조도 쉬워질 수 있습니다.

난독화는 애플리케이션 코드의 비일반적 요소를 숨기거나 복잡하게 만들어 공격자가 코드의 구조와 동작 방식을 이해하는 데 더 많은 시간과 노력이 들도록 만듭니다. 쉽게 말해, 코드를 분석하고 리버스 엔지니어링하기 어렵게 만들어 앱 보안을 한층 강화하는 방식입니다.

여기서 중요한 점은 코드 난독화에도 여러 수준이 있다는 것입니다. 따라서 앱의 구조와 보안 요구사항에 맞는 수준을 선택해야 합니다.

 

3. 암호화

암호화는 민감한 정보와 사용자 데이터를 무단 접근으로부터 보호하는 기본 수단입니다. 평문 데이터를 암호문으로 변환해 원래 내용을 알아볼 수 없도록 만듦으로써 기밀성을 지켜줍니다.

데이터는 적절한 복호화 키가 있어야만 해독할 수 있는 형태로 변환됩니다. 이를 통해 권한이 없는 사용자가 데이터를 열람하거나 변조하는 것을 막고, 데이터의 기밀성과 무결성을 보호할 수 있습니다.

암호화는 네트워크 계층, 전송 계층, 애플리케이션 계층, 데이터 계층 등 다양한 수준에서 적용할 수 있습니다. 이를 위해서는 AES, RSA, ECC와 같은 적절한 알고리즘과 CBC, CTR, GCM 같은 운영 모드를 선택해야 합니다.

또한 암호화는 대칭키 방식과 비대칭키 방식으로 나뉩니다. 대칭키 암호화는 동일한 비밀 키로 암호화와 복호화를 모두 수행하는 방식이고, 비대칭키 암호화는 공개키와 개인키 한 쌍을 사용하는 방식입니다.

대칭키 암호화는 속도가 빠르기 때문에 대용량 데이터 처리에 적합합니다. 하지만 키를 가진 누구나 복호화할 수 있으므로, 키 배포와 관리 체계를 엄격하게 운영해야 합니다.

비대칭키 암호화는 공개키를 자유롭게 배포할 수 있는 반면 개인키는 안전하게 보호해야 합니다. 일반적으로 대칭키 방식보다 훨씬 느리기 때문에, 소량의 데이터나 키 교환과 같은 용도로 주로 사용됩니다.

The difference between encrypted data and obfuscated code.

화이트박스 암호화

화이트박스 암호화는 암호화와 난독화 기법을 결합해 비밀 키를 애플리케이션 코드 안에 내장하는 방식입니다. 핵심은 코드와 키를 분리해 식별하기 어렵게 만들어, 신뢰할 수 없는 환경에서도 보다 안전하게 프로그램이 동작하도록 하는 데 있습니다.

이 방식은 알고리즘의 내부 데이터와 실행 흐름을 복잡하게 섞어 공격자가 암호화 키를 분리하거나 식별하기 어렵게 만듭니다. 그 결과 키를 앱에서 찾아내거나 추출하기가 훨씬 어려워집니다.

화이트박스 구현은 정적 분석, 런타임 코드 변조, 타이밍 공격, 결함 주입 공격 등에 대한 방어 기능을 포함할 수 있습니다. 따라서 조직은 중요한 프로그램 영역을 암호화하고, 복호화 키를 사실상 변조가 어려운 형태로 보호할 수 있습니다.

 

4. 정기 업데이트와 CI/CD 지원

끊임없이 변화하는 위협 환경에서는 정기 업데이트의 중요성을 아무리 강조해도 지나치지 않습니다. 모바일 앱 보안 공급업체는 알려진 취약점을 패치하고 새롭게 등장하는 위협에 대응하기 위해 지속적으로 업데이트를 제공해야 합니다.

사용자 데이터와 개인정보를 보호하는 데 있어 사후 대응보다 사전 대응이 중요한 이유도 여기에 있습니다. 이는 고객과 조직을 함께 보호하고, 기업의 신뢰와 평판을 지키는 데도 직결됩니다. 따라서 선택하려는 모바일 앱 보안 공급업체가 최신 사이버 보안 동향을 꾸준히 반영하는지도 반드시 확인해야 합니다.

이와 함께 지속적 통합(CI)과 지속적 배포(CD) 지원도 우선순위 상단에 있어야 합니다. CI와 CD를 통해 개발자는 코드 변경 사항을 중앙 환경에 반복적으로 통합하고, 빌드 및 테스트한 뒤, 새로운 환경이나 기존 환경에 효율적으로 배포할 수 있습니다.

두 개념의 차이는 CI가 주로 빌드와 테스트 단계에 초점을 맞추는 반면, CD는 코드를 실제 환경에 전달하는 과정에 초점을 맞춘다는 점입니다. 그러나 모바일 앱 보안 솔루션을 평가할 때는 두 요소 모두 반드시 검토 대상에 포함되어야 합니다.

 

5. 전송 중 데이터 보안

애플리케이션에서 외부로 전송되는 데이터는 실제 사용 지점에 도달할 때까지 완전히 암호화되어야 합니다. 마찬가지로 애플리케이션이 수신하는 데이터도 암호화되어야 하며, 그래야 전송 전 과정에서 보안이 유지됩니다.

이를 위해 다음과 같은 보안 통신 프로토콜과 기술을 개별적으로 또는 조합해 활용할 수 있습니다.

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)는 앱과 서버 간에 교환되는 데이터를 암호화해 공격자가 이를 가로채거나 변조하기 어렵게 만듭니다. 동시에 서버의 신원을 검증하므로, 앱이 위조되었거나 악의적인 서버에 연결되는 위험도 줄여줍니다.

HTTPS를 사용하려면 신뢰할 수 있는 인증 기관이 발급한 유효한 SSL/TLS 인증서가 필요하며, 서버도 HTTPS 요청을 처리하도록 올바르게 구성되어 있어야 합니다.

OAuth 2.0

OAuth 2.0(Open Authorization 2.0)은 앱이 서버로부터 액세스 토큰을 요청하고 발급받는 방식을 정의합니다. 발급된 토큰은 보호된 리소스에 접근할 때 사용할 수 있으며, 사용자는 자신의 자격 증명을 직접 노출하지 않고도 앱에 권한을 부여하거나 철회할 수 있습니다.

다만 앱의 사용 시나리오에 따라 authorization code, implicit, password, client credentials 등 적절한 플로를 선택해 적용해야 합니다.

JWT

JWT(JSON Web Token)는 데이터를 간결하고 독립적인 형식으로 인코딩해 전송과 검증을 쉽게 만들어줍니다. JWT는 헤더, 페이로드, 서명 세 부분으로 구성되며, 서버에서 토큰을 생성하고 검증한 뒤 앱에서 안전하게 저장하고 전송해야 합니다.

암호화

암호화는 키를 사용해 데이터를 읽을 수 없는 형태로 변환하는 과정입니다. 이를 통해 비밀번호, 개인정보, 결제 정보와 같은 민감한 데이터를 무단 접근이나 유출로부터 보호할 수 있습니다.

인증서 핀닝

인증서 핀닝은 특정 서버에 특정 인증서 또는 공개키를 고정해 두고, 앱이 이를 기준으로 서버를 검증하는 방식입니다. 이를 통해 공격자가 서버 인증서를 가짜로 바꿔치기해 앱을 속이려는 시도를 방지할 수 있습니다.

인증서 핀닝은 하드코딩, 동적 로딩, 또는 프레임워크나 라이브러리 활용 등 여러 방식으로 구현할 수 있습니다.

 

6. 사용 편의성과 통합성

모바일 앱 환경에서는 사용성과 보안의 균형이 최종 사용자 관점에서 자주 논의되며, 그만한 이유가 있습니다. 이 균형이 사용자 유지와 서비스 이탈을 가를 수 있기 때문입니다. 하지만 이런 원칙은 백엔드와 내부 운영 측면에서도 동일하게 중요합니다.

선택하는 솔루션은 기존 개발 도구와 인프라에 큰 부담 없이 쉽게 통합되어야 하며, 앱 성능과 내부 운영 프로세스에 미치는 영향도 최소화해야 합니다.

 

7. 컴플라이언스

선택하는 솔루션은 조직의 구체적인 컴플라이언스 목표 달성에도 도움이 되어야 합니다. 여기에는 DORA부터 HIPAA, CCPA까지 다양한 규제와 기준이 포함됩니다.

컴플라이언스는 선택 사항이 아니라 필수입니다. 이를 소홀히 하면 막대한 벌금은 물론, 사업 운영 전반에 심각한 차질이 생길 수 있고 평판 손상으로도 이어질 수 있습니다.

그렇다면 어떤 상위 수준의 표준과 규제를 검토해야 할까요?

NIST 프레임워크

미국 국립표준기술연구소(NIST) 사이버보안 프레임워크는 조직이 사이버 보안 리스크를 보다 체계적으로 관리하고 개선할 수 있도록 설계된 포괄적인 가이드라인, 표준, 모범 사례 모음입니다.

이 프레임워크는 위협이나 사고를 식별하고, 이에 대비하며, 신속하게 대응하고, 빠르게 복구할 수 있도록 구조화된 접근 방식을 제공합니다. 산업과 조직 유형 전반에 폭넓게 적용할 수 있어 전반적인 사이버 복원력과 보안 태세를 강화하는 데 유용합니다.

OWASP 모바일 보안 프로젝트

OWASP(Open Web Application Security Project)의 모바일 보안 프로젝트는 안전한 모바일 앱 개발을 위한 가이드라인과 모범 사례를 제공합니다. 모바일 애플리케이션에 특화된 주요 보안 위험을 정리하고, 각 위험을 완화하기 위한 전략도 함께 제시합니다.

OWASP 모바일 애플리케이션 보안 검증 표준(MASVS)

OWASP MASVS는 모바일 앱을 위한 보안 요구사항과 테스트 기준을 정리한 표준입니다. 기본, 중간, 고급의 세 수준으로 구성되어 있으며, 개발자가 더 안전한 모바일 앱을 구축할 수 있도록 돕습니다.

OWASP 모바일 앱 보안 요구사항 및 검증(MASVR) 프레임워크

OWASP MASVR은 앞서 살펴본 MASVS를 보완하는 프레임워크로, 모바일 앱이 적절한 보안 기준을 충족하는지 확인할 수 있도록 보다 구체적인 요구사항과 검증 절차를 제공합니다.

PCI DSS

PCI DSS(Payment Card Industry Data Security Standard)는 신용카드 거래를 보호하고 카드 소지자 데이터를 안전하게 관리하기 위해 마련된 보안 표준입니다. 다만 NIST나 ISO 27001처럼 포괄적인 보안 프레임워크라기보다는, 결제 카드 정보 보호에 초점을 맞춘 기준이라는 점은 구분해서 이해할 필요가 있습니다.

DORA

디지털 운영 복원력 법(DORA)은 2023년에 시행되었으며, 은행, 결제기관, 투자회사, 가상자산 서비스 제공업체 등 금융시장 참여자를 주요 대상으로 합니다. 또한 클라우드 플랫폼이나 데이터 분석 서비스처럼 정보통신기술(ICT) 서비스를 제공하는 핵심 제3자에게도 적용될 수 있습니다. DORA의 목적은 조직이 ICT 관련 장애와 위협에 적절히 대응하고 리스크를 효과적으로 관리하도록 하는 데 있습니다.

AI 관련 규제도 놓칠 수 없습니다

AI가 앱에 점점 더 깊게 통합되면서, 앞으로 등장할 AI 관련 규제까지 함께 살펴보는 것이 중요해지고 있습니다.

 

8. 확장성

선택하는 모바일 앱 보안 솔루션은 조직의 장기적인 요구를 감당할 수 있어야 하며, 성장에 맞춰 함께 확장될 수 있어야 합니다.

보안 솔루션의 확장성을 평가할 때는 다음 요소를 점검해볼 수 있습니다.

지속적 통합 및 지속적 배포(CI/CD)

CI/CD 파이프라인은 테스트, 통합, 배포 과정을 자동화합니다. 이를 통해 개발 주기를 단축하고, 개발 라이프사이클 전반에 걸쳐 보안 점검이 일관되게 적용되도록 할 수 있습니다.

확장 가능한 클라우드 인프라

클라우드 서비스를 활용하면 변동하는 워크로드에 맞춰 유연하게 확장할 수 있는 인프라를 구축할 수 있습니다. 예를 들어 오토스케일링 기능을 활용하면 수요에 따라 리소스를 동적으로 조정할 수 있습니다.

API 보안

앱이 API에 의존한다면, 잠재적인 취약점으로부터 API를 안전하게 보호해야 합니다. 이를 위해 API 키 검증, 속도 제한(rate limiting), OAuth 기반 인증 및 권한 부여 같은 조치를 적용할 수 있습니다.

여기에 더해 앱 무결성 검증을 위한 기반 코드를 안전하게 유지하는 것도 중요합니다. 이는 애플리케이션의 무결성과 기능을 보호하는 핵심 장치로 작동하며, API 보안 측면에서도 중요한 역할을 합니다. 악의적인 변경을 막는 보호막이 되어 사용자가 앱의 동작과 데이터 처리 방식을 신뢰할 수 있도록 돕고, Android 생태계 전반의 보안과 복원력을 강화하는 동시에 주요 API 엔드포인트도 함께 보호합니다.

모니터링 및 로깅

강력한 모니터링과 로깅 체계는 앱 성능을 추적하고, 이상 징후를 감지하며, 보안 사고를 식별하는 데 도움이 됩니다. 실시간 모니터링은 확장성과 관련된 문제에 빠르게 대응할 수 있게 하고, 포괄적인 로그는 사고 이후 분석과 보안 포렌식에도 유용합니다.

 

9. 개인화

모바일 앱 보안 솔루션이 변화하는 요구사항에 맞춰 조정될 수 있는지도 중요합니다.

앱 보안에서 개인화란, 예를 들어 새로운 지역 진출이나 강화된 규제 환경에 대응하기 위해 달라진 컴플라이언스 요구사항을 충족하도록 솔루션을 조정할 수 있는 능력을 의미할 수 있습니다.

 

10. 신뢰할 수 있는 지원

모바일 앱 보안 솔루션은 뛰어난 기술 지원과 전반적인 고객 지원을 함께 제공해야 합니다. 지원 가능 시간, 비기술 직군을 위한 자료, 다국적 조직이나 보안 팀을 고려한 다국어 지원 여부도 함께 살펴보는 것이 좋습니다.

A list of 10 things to consider when comparing mobile app security solutions.

 

핵심 정리

결국 모바일 앱 보안 솔루션에 필요한 기술적 요구사항은 모두 하나의 공통된 목표를 향합니다. 바로 악성코드 주입, 리버스 엔지니어링, 리패키징과 같은 위협으로부터 앱을 보호하는 것입니다.

 

앱 실딩 및 모바일 앱 보안 위협
앱 실딩(App Shielding)은 모바일 앱 보안 위험에 어떻게 대응할까요? 전문가와 상담하여 확인해 보세요.
상담 신청하기