2012년 스마트폰의 본격적인 보급이 시작되면서 사용자가 폭발적으로 증가했으며 이에 따라 모바일 앱 사용량도 꾸준히 증가했습니다. 스마트폰 앱은 활용도가 높아 많은 편리함을 주었으며 우리들이 소통하는 방법부터 일하는 방식까지 생활방식에 많은 변화를 일으켰습니다. 하지만 앱은 항상 해킹 위협에 노출되어있으며 강력한 보안을 적용하는 것은 아직 과제로 남아있습니다. 대부분의 해킹은 금전적인 이익을 보기 위해 발생하며 공격 방식은 앱을 불법적으로 위변조하는 것부터 기업에 큰 피해를 줄 수 있는 사이버 공격까지 다양하게 존재합니다. 이 때문에 공격으로부터 개인정보를 보호하고 무결성을 유지하기 위해 복합적인 보안 솔루션이 필요합니다.
MASVS (모바일 애플리케이션 보안 검증 표준)은 모바일 앱 보안을 강화하기 위한 OWASP의 프로젝트입니다. 앱의 보안은 앱 자체에 대한 해킹 공격뿐만 아니라 스마트폰의 도난과 기기 자체의 보안 미적용 등의 이유로 손상될 수 있기 때문에 데이터 보호는 매우 중요합니다. MASVS는 위와 같이 다양한 위협 시나리오에 노출된 앱에 적용해야 할 보안 표준을 제시합니다. 이 기사는 모바일 앱 보안에 있어 MASVS의 중요성을 기술합니다.
OWASP MASVS
OWASP의 모바일 애플리케이션 보안 검증 표준 MASVS는 해킹 공격의 위협 정도에 따라 앱을 안전하게 보호할 수 있도록 보안을 표준화하여 신뢰성을 제공하는 것을 목표로 삼고 있으며 이를 위한 검증기준을 제시합니다. MASVS는 이를 달성하기 위해 다음과 같은 목표를 기준으로 개발되었습니다:
- 매트릭으로 사용
MASVS의 보안 요구사항은 개발자들이 개발한 앱의 보안을 비교할 수 있는 기준을 제공한다. - 지침으로 사용
모바일 앱 개발 및 테스트 등 모든 단계에서 개발자와 테스터에게 지침으로 사용된다. - 구매 시 사용
MASVS는 사용자가 앱 보안을 검증할 수 있는 기준으로 사용될 수 있습니다.
OWASP MASVS 카테고리
다음은 v1부터 v8까지의 카테고리로 분류된 MASVS의 보안 요구사항입니다.
V1: 아키텍처, 설계 및 위협 모델링 요구사항
MASVS의 첫번째 카테고리 V1은 앱의 아키텍처와 설계를 다루고 있습니다. 원격 서비스용 클라이언트 역할을 하는 앱의 경우 서비스 그 자체에도 보안이 적용되어야 합니다. V1은 이렇듯 앱의 아키텍쳐 개발 단계에서부터 보안이 적용되도록 요구합니다.
V2: 데이터 저장과 개인정보보호
해당 카테고리는 민감성 정보 보호를 위한 요구사항을 명시합니다. 민감성 정보는 은행 계좌, 신용카드 정보 그리고 건강 정보와 같이 사용자를 식별할 수 있는 정보이며 계약 정보와 규정에 따라 보호되는 정보 역시 해당됩니다. MASVS의 요구사항은 의도치 않게 중요한 데이터를 앱에 노출시키는 것부터 정보가 실수로 백업되거나 클라우드 스토리지 또는 키보드 캐시에 업로드되어 유출되는 문제 등 프라이버시를 사전에 방호할 수 있도록 하는 지침입니다.
V3: 암호화 요구사항
이 장에서는 앱 개발자들에게 암호화 사용의 우수 사례를 안내합니다. V3는 검증된 암호화 라이브러리 사용, 난수 생성기 사용, 그리고 암호화 기본 요소의 올바른 선택 및 구성을 독려합니다.
V4: 인증 및 세션 관리 요구사항
모바일 애플리케이션 아키텍처에서 원격 서비스에 로그인하는 것은 필수적입니다. 이 때문에 MASVS V4는 사용자 계정 및 세션을 관리하기 위한 기본 요구 사항을 명시합니다. 요구사항을 검증할 때 대부분의 로직이 서비스의 엔드포인트에서 작동하더라도 해당 소스 코드에는 접근할 필요가 없습니다.
V5: 네트워크 커뮤니케이션 요구사항
V5는 모바일 앱과 원격 서비스 엔드포인트 간의 정보 교환할 때 데이터의 기밀성과 무결성의 중요성을 강조합니다. 모바일 애플리케이션은 네트워크 통신을 위해 최소한 TLS프로토콜을 활용하여 암호화된 통신채널을 구축하는 것이 중요합니다. Level2 이상의 단계에서는 SSL 피닝과 같은 심층적인 보안 조치를 권고합니다.
V6: 플랫폼 상호작용 요구사항
이 섹션은 앱에서 사용되는 표준 구성요소와 플랫폼 API를 다루며 애플리케이션 간의 상호 통신에서의 보안 표준을 다룹니다.
V7: 코드 품질 및 빌드 설정 요구사항
V7은 앱 개발 단계부터 보안 코딩이 진행되도록 권고하며 컴파일러에서 제공되는 보안 기능을 활성화하는 것을 강조합니다. 해당 장에서 앱이 유효한 인증서로 서명되었는지 확인하는 것부터 디폴트로 엑세스를 거부할 수 있는 오류 처리 로직의 필요성까지 모든 것을 다룹니다.
V8: 리버스 엔지니어링에 대한 복원력 요구사항
마지막 섹션인 V8에서는 앱에 리버스 엔지니어링 공격 시도를 어렵게 하도록 적절한 보호 기준을 적용하는 것을 안내합니다. 리버스 엔지니어링으로 인한 위험의 정도는 앱마다 다르기 때문에 보안 요구사항을 파악한 후에 적용해야 합니다. 해당 장에서 명시하는 권고사항은 앱의 보안을 강화하는 것이기 때문에 적용하지 않더라도 취약성이 증가하지는 않습니다.
마치며
OWASP MASVS는 다양한 보안 위협에 따른 산업 표준을 제시하며 보안 적용에 대한 권고사항을 포함하며 보안 테스터들이 이를 활용하여 일관된 테스트 결과를 보장할 수 있어 매우 유용합니다. MASVS는 두 가지 보안 검증 기준과 함께 리버스 엔지니어링에 대한 복원력에 대한 요구사항을 명시합니다. Level 1은 일반적인 취약성을 보호하는데 집중하는 반면에 Level 2는 SSL Pinning과 같은 더욱 심층적인 보안 이슈를 다룹니다. Level2는 매우 민감한 정보를 다루는 애플리케이션에 권장됩니다. 이렇듯 level1은 일반적인 보안 표준을 제시하며 Level2는 이보다 높은 수준의 심층적인 보안을 권장합니다.
MASVS-R은 앱에 특화된 위협모델에 따라 적용 가능합니다. MASVS-R는 모딩, 템퍼링 그리고 리버스 엔지니어링과 같은 클라이언트 측의 보안 요구사항을 다룹니다. 여기서 어떤 보안 검증 수준을 집중적으로 애플리케이션에 적용할 수 있는지 이해하기 위해서는 위험성 평가가 필수적이며 MASVS-R은 평가 후에 MASVS의 Level1과 Level2과 조합하여 사용할 수 있습니다. MASVS는 또한 시판되는 보안 코딩 목록을 대체하고 유닛 자동화 및 통합 시험을 위한 지침으로 사용할 수 있습니다.
앱실링(AppSealing)은 여러 산업의 고객들에게 보안 솔루션을 제공한 경험과 전문성을 풍부히 갖추었습니다. 게임산업에서 핀테크에 이르는 다양한 산업을 위한 앱실링의 솔루션은 안드로이드, iOS, 하이브리드 모바일 앱의 성능을 저해하지 않으면서 신뢰성 높고 유연하게 보호합니다. 또한 관련 표준과 규제를 준수하면서 데이터 유출을 방지하고 위협 분석을 바탕으로 실시간으로 데이터에 기반한 결정을 내릴 수 있습니다. 지금 앱실링을 통해 바로 최신 보안 솔루션을 간단하게 구현하는 방법에 대해 알아보세요!