모바일 애플리케이션 보안 평가(MASA)란?
최신 연구에 따르면 안드로이드 디바이스 5대 중 거의 4대가 운영 체제 취약점 25개 중 하나 이상에 취약한 것으로 나타났습니다. 모바일 애플리케이션 보안 평가(Mobile Application Security Assessment: MASA)를 통해 이러한 잠재적인 취약점을 식별하여 보안을 강화할 수 있습니다. 이 보안 평가는 데이터 유출, 비정상적인 접근, 악성 코드 삽입 등 다양한 보안 위험성을 검사합니다.
데이터 유출 및 데이터 제어 상실부터 법률 및 규정 준수 문제에 이르기까지, 보안이 적용되지 않은 모바일 앱은 기본 보안 기준에 대한 요구사항을 충족하고자 하는 개발자의 도전과제가 되고 있습니다. 모바일 앱의 취약점은 안드로이드, iOS에 국한되지 않고 민감한 데이터에 비정상적으로 접근하거나, 개인정보 도용 혹은 다른 악의적인 작업을 수행하는데 악용될 수 있습니다.
보안 미적용의 결과는? T-Mobile사례에서 이를 찾아볼 수 있습니다. 최근 있었던 T-Mobile 데이터 유출사건은 제3자 공급업체에 연결된 API (애플리케이션 프로그래밍 인터페이스)의 취약점을 공격받으면서 발생했으며 이로 인해 3억 5천만 달러의 비용을 지불했습니다.
정기적인 보안 평가를 통해 모바일앱 사용자는 안전을 보장받을 수 있습니다. 모바일 애플리케이션 보안 평가는 애플리케이션의 코드, 구조, 설정을 분석하여 취약점을 식별하고 잠재 공격 벡터를 완화하는 것을 우선합니다.
- 코드 검토: 애플리케이션의 소스 코드를 검토하여 알려진 취약성, 안전하지 않은 코딩 관행 및 기타 보안 문제를 확인합니다.
- 정적 분석: 애플리케이션의 바이너리 코드(예: 소스 코드의 컴파일된 버전)를 실행하지 않고 분석하여 잠재적 취약점을 식별합니다.
- 동적 분석: 애플리케이션을 모바일 디바이스 혹은 에뮬레이터에 실행 및 상호작용하여 취약점을 식별합니다. 직접 테스트 혹은 자동화 툴을 이용한 다양한 유형의 공격을 시뮬레이션하는 것을 포함합니다.
- 모의 해킹: 수동 및 자동화된 기술로 애플리케이션의 취약점을 공격하여 성공적인 공격의 잠재적 영향을 알아냅니다.
- 설정 재검토: 애플리케이션의 환경 및 설정 파일이 안전한지 검사합니다.
- 코드 레벨 취약점: 하드코드로 작성된 인증서 및 사용자 입력 검증 실패와 같은 안전하지 않은 코딩 관행이 포함됩니다.
- 설정 취약성: 잘못 설정된 환경 또는 보안 취약점으로 이어질 수 있는 기본 설정을 사용하는 것이 포함됩니다.
- 데이터 저장 취약성: 민감한 데이터의 암호화 실패와 민감한 데이터를 안전하지 않은 위치에 저장하는 것이 포함됩니다.
- 권한 취약성: 앱이 필요하지 않은 민감한 정보 또는 필요하지 않은 기능에 접근할 수 있는 과도하거나 불필요한 권한이 포함됩니다.
- 네트워크 취약성: 네트워크 보안 연결 실패 또는 약한 암호화 사용이 포함됩니다.
또한 모바일 애플리케이션 보안 평가는 클라이언트 측 보안과 효과적이고 강력한 클라우드 인증 시스템을 구축하여 미래 법적 책임을 경감하는 것에 중요한 역할을 합니다.
이러한 취약성을 식별하고 해결함으로써 조직은 모바일 앱의 보안을 개선하고 민감한 정보를 보호할 수 있습니다
참고문헌: 카스퍼스키
구글 플레이 데이터 안전 요구사항
구글에는 구글 스토어를 통해 배포되는 앱에 대해 일련의 데이터 안전 요구사항이 있습니다. 이 요구사항은 사용자의 데이터를 보호하고 배포되는 앱이 사용자의 보안을 위협하지 않도록 하기 위해 설계되었습니다.
구글 플레이 개발자 정책 센터에서는 모든 앱이 다음과 같은 데이터 보안 요구사항을 준수해야 한다고 명시합니다.
- 사용자 데이터 보호: 개발자는 수집 및 저장되는 모든 데이터를 안전하게 보안하고 수집되는 데이터가 무엇인지, 어떻게 사용되는지 공개해야 합니다.
- 개인 정보 및 민감한 정보 처리: 개발자는 앱 기능에 필수적인 경우가 아니면 개인 정보 또는 민감한 정보를 수집하거나 공유해서는 안됩니다. 개인 정보에는 이름, 이메일 주소, 전화번호 등이 포함되며 민감한 정보에는 금융 정보 또는 위치 데이터와 같은 것들이 포함됩니다.
- 구글 플레이 서비스 및 API 사용: 개발자는 정책 및 가이드라인을 준수하여 구글 플레이 서비스 및 API를 사용해야 합니다.
- 결제 및 거래 처리: 개발자는 인앱 구매를 위해 구글 플레이의 인앱 결제 서비스를 이용해야 하며 결제 및 거래 처리에 관한 모든 관련 법률 및 규정을 준수해야 합니다.
- 사용자 생성 콘텐츠 처리: 개발자는 사용자 생성 콘텐츠에 대한 정책을 마련하고 불법적이거나 정책을 위반한 콘텐츠는 즉시 삭제해야 합니다.
- 앱을 최신 상태로 유지: 개발자는 보안 문제 및 기타 취약성을 완화하기 위해 앱을 최신 상태로 유지해야 합니다.
- 투명성: 개발자는 데이터 수집 및 사용을 투명하게 공개해야하며 수집되는 데이터, 사용 방법 및 공유 대상을 명확하게 설명하는 개인 정보 보호 정책을 제공해야 합니다.
구글의 요구사항에는 사용자의 위치 데이터 처리도 포함됩니다. 앱 개발자는 앱 기능에 필요한 경우가 아니면 앱이 위치 데이터를 요청해서는 안 된다는 구글 위치 서비스 정책의 지침을 따라야 합니다. 또한 앱은 데이터 수집 절차를 명확하고 눈에 띄게 공개해야 하며 위치 데이터를 수집하기 전에 사용자의 명시적인 동의를 얻어야 합니다.
모바일 애플리케이션 보안 평가 (MASA) 유효성 검사
2019년 2월, 구글은 모바일 앱 보안 공급업체들과의 제휴를 통해 앱 보안 연합(ADA)을 결성했습니다. ADA의 목표는 업체 간의 협력을 통해 악성 앱을 식별하고 제거하여 구글 플레이스토어의 보안을 개선하는 것입니다. ADA 멤버들은 각자의 기술과 전문지식을 사용하여 잠재적으로 유해한 앱을 식별한 후 협력을 통해 구글 플레이스토어에서 해당 앱을 제거합니다.
반면에 모바일 애플리케이션 보안 평가(MASA) 유효성 검사는 해당 모바일 애플리케이션의 보안을 검증하는데 사용되는 프로세스입니다. MASA 유효성 검사의 목표는 모바일 앱의 취약성과 보안 위험성을 식별하고 앱이 구글 플레이스토어나 다른 앱스토어에 공개되기 전 해당 위험성을 해결하기 위한 방안을 제공하는 것입니다.
MASA 유효성 검사는 구글 플레이스토어에 등록한 앱의 보안을 평가하는데 사용되는 프로세스입니다. MASA 유효성 검사의 목표는 구글 플레이스토어 사용자에게 공개 되기전 안드로이드 앱의 취약성과 보안 위험성을 식별하고 해결을 위한 권장 사항을 제공하는 것입니다.
OWASP MASVS(모바일 앱 보안 검증 표준) 가이드라인을 통해 모바일 앱 개발자는 설계 단계부터 앱에 보안을 구축하고, 보안 전문가는 다양한 잠재적 위협에 대한 테스트를 진행합니다.
OWASP 모바일 앱 보안 검증 표준(MASVS) L1 모바일 애플리케이션 보안(MASA) 유효성 검사는 모바일 앱 개발자 및 보안 전문가들이 강한 보안 기준을 가진 모바일 앱을 구축할 수 있도록 보안 요구사항에 대한 가이드라인을 제공합니다.
MASVS L1은 광범위한 보안 주제를 다루며 6개의 카테고리로 나누어진 총 32개의 요건이 있습니다.
데이터 저장 및 보호:
사용자 인증서, 금융 정보 및 기타 개인 정보 등의 민감한 정보를 안전하게 디바이스 및 서버에 저장하는 내용을 다룹니다. 이 카테고리의 요구사항에는 민감한 정보의 암호화, 데이터 전송 보호 및 보안키 관리가 포함됩니다.
네트워크 커뮤니케이션:
보안 프로토콜 및 암호화를 포함한 모바일 디바이스와 서버 간의 보안 데이터 통신을 다룹니다. 이 카테고리의 요구사항에는 SSL/TLS 인증서 확인, 인증서 고정 사용 및 데이터 전송 암호화가 포함됩니다.
인증 및 세션 관리:
다단계 인증 및 세션 데이터 보호를 포함한 사용자의 보안 인증 및 권한 부여를 다룹니다. 이 카테고리의 요구사항에는 강력한 인증방식 구현, 세션 데이터 보호 및 보안 세션 관리 체계 등이 포함됩니다.
암호화:
암호화를 사용하여 데이터 및 통신을 보호하는 방법을 다룹니다. 이 카테고리의 요구사항에는 적절한 암호화 알고리즘 사용, 안전한 보안키 관리 및 안전한 보안키 생성 프로세스 사용 등이 포함됩니다.
코드 품질 및 빌드 설정:
조작을 방지하기 위한 보안 코딩 관행과 앱 바이너리 및 리소스 보호를 다룹니다. 이 카테고리의 요구사항에는 보안 라이브러리 사용, 일반적인 취약성 방지, 코드 난독화 및 강화 기술 사용 등이 포함됩니다.
리버스 엔지니어링 및 조작에 대한 복원력:
리버스 엔지니어링, 변조 및 디버깅에 대한 복원력을 위한 앱의 기술을 다룹니다. 이 카테고리의 요구사항에는 디버깅 및 리버스 엔지니어링 방지, 변조 방지 기술 사용 및 런타임 애플리케이션 자체 보호(RASP) 사용 등이 포함됩니다.
모바일 애플리케이션 보안 테스트
모바일 애플리케이션 보안 테스트(MAST)는 모바일 애플리케이션의 취약성과 보안 위험성을 식별합니다. MAST의 목표는 사이버 범죄자가 악용할 수 있는 앱의 잠재적인 보안 약점을 식별하고 위험을 해결하기 위한 권장 사항을 제공하는 것입니다.
모바일 애플리케이션 보안 테스트는 다음과 같은 유형이 있습니다.
단위 테스트:
이 테스트는 모바일 앱의 개별 단위 또는 구성 요소에 중점을 둡니다. 단위 테스트의 목표는 앱의 각 단위 또는 구성 요소가 올바르게 작동하고 보안 취약점이 없는지 확인하는 것입니다.
공장 테스트:
이 테스트는 통제된 환경에서 전체 모바일 애플리케이션에 대해 진행됩니다. 공장 테스트는 완성된 앱이 올바르게 작동하고 보안에 취약점이 없는지에 집중합니다.
인증 테스트:
이 테스트는 모바일 앱이 특정 보안 표준 및 규정을 충족하는지를 확인합니다. 인증 테스트는 금융 또는 개인 정보와 같은 민감한 정보를 다루는 앱에 적용됩니다.
애플리케이션 테스트:
이 유형의 테스트는 애플리케이션이 실제 사용되는 과정을 시뮬레이션하여 모바일 애플리케이션의 기능과 보안을 평가합니다. 여러 기기 및 플랫폼, 네트워크 조건 등에서 테스트하는 것을 포함합니다.
MAST 프로세스는 다음과 같은 단계로 진행됩니다.
- 계획 및 준비: MAST의 첫 번째 단계는 테스트 프로세스를 계획하고 준비하는 것입니다. 여기에는 테스트 범위 식별, 목적 및 목표 설정, 테스트를 위한 모바일 플랫폼 및 장치 선정이 포함됩니다.
- 분석: 이 단계에서는 잠재적 취약성과 보안 위험성을 식별하기 위해 모바일 애플리케이션을 분석합니다. 앱 소스코드 검토, 네트워크 트래픽 분석 및 기능 테스트를 포함합니다.
- 취약성 식별: 분석단계에서 보안되지 않은 데이터 저장소, 안전하지 않은 통신 및 암호화 부족과과 같은 취약성과 보안 위험성이 식별됩니다.
- 위험성 분석: 취약성이 식별되면 각 취약성의 가능성과 영향을 평가하기 위해 위험성 분석이 진행됩니다.
- 이용: 취약점을 식별한 후, 다음 단계는 식별된 취약점을 이용하여 잠재적인 영향력을 파악하는 것입니다.
- 보고: MAST의 마지막 단계는 테스트 프로세스 결과를 문서화하여 보고하는 것입니다. 식별된 취약점에 대한 자세한 정보 제공 및 해결을 위한 권장 절차가 포함됩니다.
- 수정: 제공된 보고서를 바탕으로 개발자는 권장 수정사항을 적용하고 식별된 취약점을 개선합니다.
- 재테스트: 수정 후 재테스트를 통해 취약성이 적절하게 해결되었는지 확인하고 모바일 애플리케이션이 안정적인지 확인합니다.
시간이 지남에 따라 새로운 취약성과 위협이 발생할 수 있기 때문에 모바일 앱 보안 평가는 일시적이 아닌 지속적으로 수행하는 것이 중요합니다.
대표적인 모바일 앱 보안 테스트 도구
시중에 많은 모바일 애플리케이션 보안 테스트 도구들은 모바일 앱의 취약성과 보안 위험을 식별하는 데 도움이 됩니다.
10개의 인기 모바일 앱 보안 테스트 툴은 다음과 같습니다.
OWASP 모바일 보안 테스트 가이드(MSTG)
오픈소스 모바일 앱 보안 테스트 가이드로 모바일 앱 테스트를 위한 종합적인 지침을 제공합니다.
OWASP 모바일 보안 테스트 프레임워크(MSTF)
모바일 앱을 테스트하기 위한 도구를 제공하는 오픈소스 프레임워크입니다.
Burp Suite
모바일 앱을 테스트에도 사용할 수 있는, 인기 웹 애플리케이션 보안 테스트 도구입니다.
AppScan
모바일 앱의 취약성 및 보안 위험성 식별하는데 사용할 수 있는 모바일 앱 보안 테스트 도구입니다.
Mobile App Attestation
인증된 장치에서 모바일 앱이 실행되고 있는지 확인할 수 있는 보안 테스트 도구입니다.
XCUITest
iOS 앱의 UI 테스트를 자동화하는 데 사용할 수 있는 모바일 앱 보안 테스트 도구입니다.
Appium
안드로이드 및 iOS 앱 테스트를 자동화하는 데 사용할 수 있는 오픈소스 모바일 앱 보안 테스트 도구입니다.
MobSF
모바일 앱의 자동화된 보안 테스트를 수행하는 데 사용할 수 있는 오픈소스 모바일 앱 보안 테스트 도구입니다.
Drozer
안드로이드 앱의 취약성과 보안 위험성을 식별하는 데 사용할 수 있는 모바일 앱 보안 테스트 도구입니다.
iXGuard
iOS 앱의 취약성과 보안 위험성을 식별하는 데 사용할 수 있는 모바일 앱 보안 테스트 도구입니다.
AppSealing은 어떻게 모바일 앱 보안을 전체적이고 효과적이게 할까?
단일 도구만으로는 포괄적인 보안이 어렵습니다. 그렇기 때문에 모바일 앱 보안을 포괄적으로 하기 위해 다양한 도구를 사용하는 것이 중요합니다.
AppSealing 모바일 앱 보안 플랫폼은 개발자와 기업이 모바일 애플리케이션 보안을 실시간으로 할 수 있도록 도와주는 클라우드 기반의 종량제 솔루션입니다. AppSealing은 실시간 보안 알림, 정기검사 등 다양한 모바일 앱 보안 기능을을 제공하는 강력한 보안 도구입니다. 오늘 바로 무료체험을 진행해 보세요!