모바일 애플리케이션 환경 탐구
학습 목표
이 유닛을 완료하면 다음을 수행할 수 있습니다.
- 모바일 애플리케이션 환경에 대해 설명할 수 있습니다.
- 모바일 애플리케이션 보안의 보편성을 파악할 수 있습니다.
- 모바일 애플리케이션 보안 용어를 정의할 수 있습니다.
- 웹 및 모바일 애플리케이션 보안을 구별할 수 있습니다.
- 모바일 애플리케이션 공격 표면에 대해 설명할 수 있습니다.
시작하기 전에
애플리케이션 보안 기초 및 애플리케이션 보안 엔지니어의 책임 모듈을 마쳤다면 애플리케이션 보안과 애플리케이션 보안 엔지니어가 애플리케이션을 보호하는 방법에 대해 이미 알아보았을 것입니다. 이제 모바일 애플리케이션 사이버 보안을 개선하는 방법에 대해 알아보겠습니다.
모바일 애플리케이션 환경
휴대폰은 4K(UHD) 동영상 촬영, 외국어 번역, 받아쓰기, 심박 속도 모니터링 등과 같은 엄청난 일을 할 수 있습니다. 기술이 급속하게 발전함에 따라 인공 지능(AI), 블록체인 및 5세대 이동통신 네트워크(5G) 같은 기술이 통합되자 모바일 애플리케이션(앱)에 대해 생각하는 방법에도 혁명이 일어났습니다.
모바일 앱 개발자가 거의 모든 기기를 위한 혁신적인 앱을 만들기 위해서는 빠르게 변화하는 트렌드를 파악하고 올바른 기술 지식을 갖추어야 합니다. 또한 앱을 개발하려고 하는 사람들에게는 사이버에 대해 아는 것이 그 어느 때보다 중요합니다.
모바일 기기와 앱이 보급률이 계속 높아짐에 따라 더 많은 기업이 모바일 우선 설계 전략으로 전환하고 있습니다. '모바일 우선'은 가장 작은 화면인 모바일에서 설계 프로세스를 시작하여 사용자에게 더 나은 경험을 제공하는 것을 목표로 합니다. 대부분의 고객과 기업의 초기 상호작용은 스마트폰과 태블릿에서 이루어집니다. 스마트폰과 태블릿은 자체적인 보안 복잡성을 가지고 있으며 포괄적인 모바일 보안 전략을 요구합니다. 그렇기 때문에 먼저 모바일 장치용 웹 사이트를 설계하고 프로토타이핑하면 모든 장치에서 사용자 경험을 원활하게 유지할 수 있습니다.
모바일 앱 보안의 확산
이제 규모가 큰 비즈니스는 모두 고객과 더 쉽게 연결할 수 있게 모바일 앱을 운영하고 있으며, 뉴스 시청, 이메일 확인 및 소셜 미디어부터 온라인 구매 및 은행 거래에 이르는 대다수의 디지털 작업에 모바일 앱을 사용하는 사용자도 점점 많아지고 있습니다.
이러한 모바일 앱을 통해 무단 액세스로부터 보호해야 하는 대량의 중요 데이터에 액세스할 수 있습니다. 기업은 이런 앱을 통해 사용자의 위치, 사용 통계, 전화 번호, 좋아요, 싫어요 및 기타 관련 지표와 같은 유용한 정보를 수집할 수 있습니다. 이런 모바일 앱의 데이터가 악의적인 행위자의 손에 들어가면 사용자에게 악영향을 미칠 수 있는 것이죠.
보안 전문가의 목표는 조직의 모바일 앱 보안에 대한 위험을 줄이는 것입니다. 모바일 앱 보안은 높은 가치의 모바일 앱 및 디지털 ID를 공격으로부터 안전하게 보호하는 방법입니다. 이런 공격에는 기기 조작, 역설계, 멀웨어, 키로거 및 기타 형태의 조작 또는 방해가 포함됩니다. 좋든 싫든, 개발자 또는 보안 전문가는 모바일 앱을 표적으로 삼는 여러 위협을 고려해야 합니다.
모바일 앱 보안 용어 정의
더 진행하기 전에 일반적인 몇몇 모바일 앱 보안 용어에 대해 알아보겠습니다.
용어 |
정의 |
---|---|
API |
두 앱이 서로 통신하기 위해 사용하는 소프트웨어 중계기 |
인증 |
개인의 신원을 확인하는 행위 |
권한 부여 |
신원이 확인된 개인에게 작업을 수행하기 위해 필요한 권한이 있는지 확인하는 행위 |
버퍼 |
데이터를 저장하기 위해(또는 데이터가 프로그램의 한 섹션에서 다른 섹션으로 또는 프로그램 간에 데이터를 이동하는 동안) 따로 두는 메모리 영역 |
버퍼 오버플로 |
데이터를 버퍼에 쓰는 동안 프로그램이 버퍼의 경계를 지나 인접 메모리 위치를 덮어쓰는 오류 |
개발 플랫폼 |
개발자가 적합한 기술 스택을 토대로 소프트웨어 앱을 개발하기 위해 사용할 수 있는 일련의 표준 |
동적 테스트 |
코드의 런타임 동작을 분석하기 위해 수행하는 소프트웨어 테스트 방법 |
정적 테스트 |
소프트웨어 앱의 코드를 실제로 실행하지 않고 소프트웨어의 결함을 찾아내기 위해 앱의 소스 코드를 평가하는 소프트웨어 테스트 방법 |
사용자 경험(UX) 설계 |
앱을 더 간단하고, 조화롭고, 사용자가 쉽게 탐색할 수 있도록 만드는 데 초점을 맞추는 설계 방식 |
웹 앱 보안과 모바일 앱 보안 비교
웹 앱은 웹 사이트에서 실행되고 사용자는 인터넷 브라우저를 통해 웹 앱에 액세스합니다. 웹 앱은 다운로드 가능한 앱처럼 작동하지만 휴대폰의 브라우저 환경에서 실행됩니다. 웹 앱은 사용자가 앱을 보기 위해 사용하는 기기에 맞게 조정되며, 특정 시스템에서만 사용할 수 있는 것은 아니고 다운로드 또는 설치할 필요도 없습니다.
모바일 앱 보안은 Android 및 iOS 같은 플랫폼에서 모바일 앱의 보안 상태에 중점을 둡니다. 여기에는 휴대폰과 태블릿에서 실행되는 앱이 모두 포함됩니다. 모바일 앱 보안에는 앱이 실행되도록 설계된 플랫폼, 앱 개발에 사용된 프레임워크 및 예상되는 사용자 집합(예: 직원 또는 최종 사용자)의 맥락에서 앱의 보안 문제를 평가하는 것이 포함됩니다. 모바일 앱은 웹 브라우저보다 사용자에 대한 정보(위치, 생체 정보, 비디오 및 오디오 데이터 등)를 훨씬 더 많이 수집할 수 있습니다.
웹 앱과 모바일 앱의 몇 가지 차이점에 대해 더 자세히 살펴보겠습니다.
코드
웹 앱에는 공격자가 액세스할 수 없는 서버에서 중요한 코드를 호스팅하는 옵션이 있습니다. 반면에 모바일 앱은 클라이언트 기기에 상당량의 코드(로직 및 데이터 포함)를 저장합니다. 모바일 앱은 기본적으로 공개 코드이며, 앱을 대중에 공개된 스토어에서 다운로드하고 코드를 검사할 수 있기 때문에 웹 앱보다 공격 표면이 더 큽니다.
네트워크
웹 앱에서 브라우저는 TLS(전송 계층 보안) 및 HTTPS(hypertext transfer protocol secure)를 처리하여 컴퓨터 네트워크의 통신 보안을 강화합니다. 모바일 앱은 네트워크 통신을 안전하게 코딩해야 합니다. 모바일 앱 보안 엔지니어는 TLS와 HTTPS 같은 안전한 통신 방법이 사용되는지 확인하여 중요 데이터가 모바일 기기 통신사 네트워크와 인터넷을 트래버스하는 동안 보안을 강화해야 합니다.
메모리
웹 앱의 경우 브라우저는 로컬 컴퓨터 메모리와 파일에서 데이터를 분리합니다. 모바일 앱의 경우 앱은 로컬 파일과 메모리를 적절하게 처리해야 합니다. 따라서 모바일 앱 보안 엔지니어는 프로그램이 데이터를 특정 메모리 영역에 쓰는 동안 경계를 지나 인접 메모리 위치를 덮어쓰는 버퍼 오버플로 같은 문제를 방지해야 합니다.
구분
브라우저 샌드박스는 웹 앱 데이터와 로직을 서로 격리합니다. 반면 모바일 앱은 데이터를 공유 또는 개방형 저장 위치에 기록하여 공유할 수 있습니다. 모바일 앱을 서버에 연결하여 데이터를 전송하기 위해 사용되는 백엔드 API의 보안이 강력하지 않으면 중요한 의료, 금융 및 개인 정보가 유출될 수 있습니다.
모바일 앱 공격 표면
공격 표면이란 공격자가 앱에 침입하고 데이터를 빼낼 수 있는 여러 포인트를 모두 의미합니다. 모바일 앱의 공격 표면은 다음과 같습니다.
-
전송 중인 데이터: 앱으로 들어오고 나가는 데이터 및 명령에 대한 모든 경로의 합
-
이런 경로를 보호하는 코드: 리소스 연결 및 인증, 권한 부여, 활동 기록, 데이터 검증 및 인코딩
-
미사용 데이터: 암호 및 키, 지적 재산, 중요한 비즈니스 데이터 및 개인 식별 정보(PII) 등 앱에서 사용 및 저장되는 모든 가치 있는 데이터
-
이 데이터를 보호하는 코드: 암호화 및 체크섬, 액세스 감사, 데이터 무결성 및 운영 보안 관리
-
백엔드 API: 서비스 연결 및 데이터 전송에 사용되는 인터페이스
보안 전문가는 모바일 앱 공격 표면 전체를 철저히 평가해야 하는 책임이 있습니다. 공격자에게 모바일 앱은 늘 흥미로운 공격 표면입니다. 주요 모바일 플랫폼에는 개발자가 보안이 강력한 앱을 만드는 데 도움이 되도록 고안된 일련의 자체적인 보안 관리가 있지만, 다양한 보안 방법 중에서 한 가지를 선택하는 것은 대부분 개발자의 몫입니다. 개발자가 보안 기능을 제대로 검사하지 않으면 앱 보안은 공격자가 쉽게 회피할 수 있는 방식으로 구현될 수 있습니다.
요약
이제 모바일 환경, 모바일 앱 보안의 확산 및 모바일 앱 보안 용어에 대해 알게 되었습니다. 다음 유닛에서는 모바일 앱 보안 엔지니어의 책임에 대해 자세히 알아보고 이들이 성공하는 데 도움이 되는 스킬을 확인해보겠습니다.
리소스
-
Trailhead: 애플리케이션 보안 기초
-
Trailhead: 모바일 전략 개발
-
외부 사이트: OWASP(Open Web Application Security Project®): 공격 표면 분석 치트 시트(영문)
-
외부 사이트: Fortinet: 공격 표면(영문)
-
PDF: NIST(National Institute of Standards and Technology): 모바일 애플리케이션 보안 검증(영문)