2,180억. 이는 2020년에 다운로드 된 모바일 앱의 수입니다(출처: Statista). 분명 굉장한 이야기지만 주의해야 하는 문제도 함께 따릅니다. 2019년 사이버 공격은 전년 대비 50% 급증했습니다. App Annie의 2019년 조사에 따르면 미국 거주자는 평균 하루 3.5시간 정도를 모바일 기기를 사용하는 데 소비합니다. 따라서 모바일 애플리케이션 보안이 매우 중요합니다. 기업은 우수한 성능, 완벽한 사용자 환경, 유용한 기능을 보장하는 데 수백만 달러를 소비합니다. 그러나 모바일 애플리케이션 보안은 간과되는 경우가 많습니다.
모바일 애플리케이션 보안 테스트
모바일 애플리케이션 보안 테스트에는 여러 공격 및 위협 벡터에 대한 애플리케이션 평가와 취약점 식별이 포함됩니다. 이는 애플리케이션이 보안 공격에 얼마나 취약한지 테스트하는 방법입니다. 코드 품질, 데이터 흐름, 버퍼 처리, 서버 구성, 암호, 디버그 옵션 등과 같은 세부 사항을 확인합니다. 애플리케이션의 보안 테스트에는 인증, 권한 부여, 구성 갭, 세션 관리, 데이터 보안, 악성 프로그램 등과 관련된 전체 점검이 포함됩니다. 이러한 기능은 데이터 유출, 침해, 사기 또는 스누핑 사고로부터 데이터를 보호하는 데 있어 매우 중요합니다.
모바일 애플리케이션 보안 테스트의 유형
- 유닛 테스트: 여기서 모바일 기기의 특정 부분을 테스트합니다
- Factory 테스트: 여기서 제조 또는 조립 단계에서 발생한 결함을 시험합니다.
- 인증 테스트: 이 테스트는 GTM(Go-to-Market) 단계의 일부로 수행됩니다.
- 애플리케이션 테스트: 여기서는 기능, 성능, 메모리 누수, 설치, 유용성, 보안을 포괄하는 여러 사용 사례를 확인합니다.
처음 3개는 기기 테스트이며 애플리케이션 테스트보다 우선순위가 높은 경우가 많습니다. 실제로 이러한 테스트는 모두 똑같이 중요하게 여겨야 합니다.
모바일 애플리케이션 보안 테스트의 당면 과제
최근 대만에서 인기 모바일 메시지 앱인 LINE의 특정 사용자에 대한 사이버 공격이 발생하면서 모바일 앱 보안에 다시 이목이 쏠리고 있습니다.
출처: NikkeiAsia
내각과 대통령 집무실을 포함한 약 100명의 정치인들이 이 공격으로 피해를 당했습니다. 초기 조사 결과 지점간(point-to-point) 암호화가 이전에 해제된 것으로 드러났으며, 현재는 이 암호화가 켜져 있습니다. 이는 모바일 애플리케이션 보안이 얼마나 중요한지 보여주는 사례입니다. 사용자마다 앱을 사용하는 방식이 다를 수 있기 때문에 테스트가 쉽지는 않습니다.
사용자가 콘텐츠를 다운로드하고 공유하기 때문에 모바일 애플리케이션에는 여러 가지 취약점이 있습니다. 데이터 보안 관점에서 애플리케이션을 테스트하는 것이 중요하지만 근처에 있는 다른 애플리케이션도 위협이 될 수 있습니다. 따라서, 애플리케이션 보안의 많은 요소들은 까다롭지만 그만큼 테스트에 중요합니다. 이러한 테스트 중 일부는 다음과 같습니다.
위협 분석:
앱을 다운로드하고 사용할 때, 사용자의 가입 정보, 로그인 자격 증명, 저장된 데이터, 공유된 데이터 등이 공격에 취약해집니다. 여기의 위협 모델링은 외부와 내부 모두에서 발생할 수 있는 모든 사이버 공격을 포함합니다.
출처: Security-Analyst
취약성 분석:
여기에서는 보안의 허점을 확인하고 가능한 대응책을 테스트합니다. 서로 다른 취약성을 이해하고 구분하기 위해 네트워크, 휴대폰, OS 리소스를 모두 테스트합니다.
출처: ManageEngine
루팅폰 또는 탈옥폰과 관련된 위협 분석:
이는 Android 및 iOS 기기에만 해당됩니다. 추가 애플리케이션 설치, 안전하지 않은 코드 주입, 시스템 파일 덮어쓰기, 랜덤 OS 업그레이드, 관리자 액세스 시도 등이 여기서 테스트되는 몇 가지 시나리오입니다.
앱 권한과 관련된 위협 분석:
위치 액세스, Wi-Fi 액세스, 인터넷 액세스, 모든 애플리케이션에 대한 제어가 필요한 특정 허가 검색 앱(예: 배터리 절약 앱, 애플리케이션 잠금 앱)은 모바일 기기의 취약점을 노출할 수 있습니다. 이것들은 명확히 테스트해야 합니다.
Android 및 iOS 기기의 위협 분석:
Android는 개방형 시스템이기 때문에 Google Store에 새로운 앱이 게시될 때 엄격한 제한이나 검증 검사를 하지 않습니다. 반면에, iOS는 앱에 대한 엄격한 규정 때문에 훨씬 더 안전하고 강력합니다. 따라서 운영 시스템에 따라 테스트 전략도 달라야 합니다.
출처: RapidValue
모바일 앱 보안 테스트의 전략
우선순위 지정
애플리케이션의 보안 수준은 애플리케이션 유형에 따라 달라집니다. 예를 들어, 은행 앱은 훨씬 단순한 소셜 미디어 앱에 비해 더 강력한 보안 기능을 필요로 할 수 있습니다.
시간 및 리소스 계획:
전담 팀을 구성하여 다양한 사용 사례를 테스트하고 수정 사항을 살펴보고 다시 테스트할 시간을 할당합니다.
필요한 작업의 범위를 다음과 같이 지정합니다:
보안 테스트는 특정 사용 사례에 적용될 수 있으므로 적절한 범위를 정해야 합니다.
개념 이해에 시간 투자:
테스트를 시작하기 전에 보안 개념을 잘 이해하는 것이 좋습니다.
계속 학습하고 최신 정보 파악:
공격이 증가하고 있고 복잡성도 증가하고 있기 때문에 공격자보다 한발 앞서갈 수 있도록 연구하고 학습하는 것이 중요합니다.
실제 시나리오 작성:
실제 공격 중 상당수는 테스터가 실제 시나리오를 복제하고 실시간 테스트를 하지 않는 한 사전에 가늠할 수 없습니다.
정기적으로 코드 감사 수행:
테스트도 좋지만 모범 사례를 따라 코드 레벨 자체에서 많은 문제를 해결할 수 있습니다. 이때 감사가 도움이 됩니다.
모바일 앱 보안 테스트 지침
전체 사용자 여정에 걸쳐 다양한 시나리오를 다루는 테스트 사례 작성:
특정 휴대폰 모델/유형 또는 다른 버전의 운영 체제에서 테스트 사례를 100% 적용 범위에 대해 검토하는 것이 중요합니다. 비즈니스 분석가의 빠른 검토는 언제나 도움이 됩니다.
출처: Perfecto
웹 서비스 테스트 도구에 시간 투자:
GET, POST, PUT 등과 같은 다양한 데이터 형식과 메소드를 다루어야 합니다.
OS별 기능에 초점을 맞추면서 여러 기기에서 여러 사용자 세션 커버:
실제 사례가 더 나은 방식으로 다뤄질 수 있도록 루팅 기기 또는 탈옥 기기에서 애플리케이션을 테스트하는 데 특히 주의를 기울이세요.
가능한 경우 자동화 도구 사용:
자동화는 다양한 장치 및 운영 체제를 포괄하는 여러 시나리오를 훨씬 더 빠른 방식으로 처리할 수 있도록 지원하므로 이를 활용할 수 있습니다.
출처: Scalac
웹, 네이티브, 하이브리드 앱 커버:
서로 다른 플랫폼에 걸친 웹 앱 테스트는 웹 사이트에 대해 수행되는 테스트와 다소 유사합니다. 그러나 네이티브 앱 테스트는 주로 OS별 기능 테스트에 중점을 두므로 다양한 작업량을 예측해야 합니다. 하이브리드에는 웹과 네이티브가 혼합되어 있지만 사용 중인 플랫폼과 관련된 일부 테스트 사례에 대한 적용 범위가 필요할 수 있습니다.
모바일 앱 보안 테스트를 위한 도구
OWASP Zed Attack Proxy(ZAP):
개발 및 테스트 단계에서 취약점을 찾는 것으로 가장 잘 알려진 도구 중 하나입니다.
WhiteHat Security:
Android와 iOS 기기 모두를 위한 클라우드 기반 보안 플랫폼을 제공하며 보안 허점에 대한 명확한 설명과 함께 관련 솔루션을 제공합니다.
Quick Android Review Kit(QARK):
Android 기기를 테스트하는 훌륭한 도구로 소스 코드 분석에 특별히 중점을 두었습니다.
Devknox:
이 도구는 Android Studio의 보안 문제를 해결하는 데 도움이 되며 문제를 해결할 수 있도록 해결책을 실시간으로 제안합니다.
Drozer:
앱이 포괄적인 보안 개요를 제공하면서 에코시스템 내의 다른 앱과 상호 작용할 수 있도록 도와주는 대화형 도구입니다.
Mobile Security Framework(MobSF):
이 도구는 Android 앱과 iOS 앱 모두에 대한 보안 작업을 수행하는 데 도움이 됩니다.
모바일 앱 보안 테스트의 중요성
모바일 악성코드는 새로운 변종이 정기적으로 생겨나면서 2018년에 약 54% 증가했습니다. 또한 매일 약 24,000개의 악성 모바일 앱이 차단되고 있습니다. 모바일 사이버 침해로 인해 연간 최대 500억 달러의 비용이 발생할 수 있습니다. 따라서 미래의 공격을 방지하고 철저한 방어책을 확보한 상태에서 앱을 출시하는 데 모바일 애플리케이션 보안이 매우 중요하다고 할 수 있습니다. 이렇게 보안성을 확보하면 안전에 대한 우려 없이 고객의 신뢰를 얻고 비즈니스 연속성에 집중할 수 있습니다.
결론
모바일 애플리케이션 보안 테스트는 고객에게 서비스를 제공한다는 장기적인 비전을 가지고 기업이 안전한 애플리케이션을 개발할 수 있도록 지원하기 때문에 중요합니다. 오늘날 앱은 다목적으로 사용되고 있으며 고객들도 사이버 보안 및 데이터 오남용에 대해 점점 더 우려하고 있기 때문에 이러한 현상은 더욱 두드러지고 있습니다. 올바른 전략이 큰 차이를 만들 수 있습니다.
모바일 애플리케이션 보안을 위한 클라우드 기반 종량제 솔루션을 제공하는 앱실링(AppSealing)은 개발자와 기업이 모바일 애플리케이션을 실시간으로 보호할 수 있도록 지원하는 강력한 도구입니다. 앱실링의 RASP 기능은 선제적으로 런타임 동안 위협을 찾고 들어오는 트래픽을 지속적으로 차단하여 보안 문제 관련 알림을 제공합니다. 이를 통해 기업은 해커를 막아내면서 모바일 기능과 사용성 측면에 초점을 맞추는 데 집중할 수 있습니다.