작성자: Jon Markoff, Sean Smith (Android 보안 및 개인정보 보호 팀)
이 글의 원문은 여기서 확인할 수 있습니다.
개발자로서 보안 위협 방지를 언제 로드맵에 포함할지 결정하기 어려우신가요? 보안을 앱 개발 수명 주기에 통합하면 시간, 비용, 위험을 크게 줄일 수 있습니다. 개발자가 보안 위협을 식별해서 완화하고 선제적으로 적절한 보호 조치를 취할 수 있도록 지원하기 위해, Google Play Academy에서 보안 내재화 설계(Security by Design) 강의 과정을 새롭게 준비했습니다.
Google Play를 비롯한 Android 생태계에는 개발자와 사용자를 보호할 수 있는 보안 기능이 다수 내장되어 있습니다. 앱 보안 모범 사례 소개 과정을 수강하면, 앱에 내장할 추가 보안 기능을 이용하여 보호 수준을 한 단계 높일 수 있습니다. 예를 들어, Jetpack Security는 저장 데이터의 올바른 암호화를 돕고, Files와 SharedPreferences의 암호화에 사용되는 안전하며 널리 알려진 알고리즘만 제공합니다. 악의적인 사용자가 개조되었거나 손상된 기기를 사용해 승인되지 않은 방식으로 앱을 사용하는 경우를 걱정하고 계시나요? SafetyNet Attestation API는 사용 시 잠재적으로 위험한 패턴을 식별하는 데 도움이 되는 솔루션입니다. 설계에서 주의해야 할 몇 가지 취약한 부분에는 공유 파일 저장소나 부적절한 파일 저장소 사용, 안전하지 않은 프로토콜 사용, Activities와 같이 보호되지 않는 구성 요소 등이 있습니다. 또한 이번 강의 과정에서는 앱을 테스트하는 방법과, 앱을 시작한 후 안전하게 유지하는 방법도 소개합니다. 마지막으로, VDP(Vulnerability Disclosure Program)를 통해 보안 연구원의 도움을 얻을 수도 있습니다.
다음 과정에서는 SDL(Security Development Lifecycle, 보안 개발 수명주기)을 활용하여 개발 프로세스의 매 단계에 보안을 통합하는 방법을 배울 수 있습니다. SDL은 업계 표준 프로세스로, 이 과정에서는 프로그램 셋업, 조직 경영진의 승인 및 지원 확보, 개발 수명 주기로의 통합에 관한 기초 사항을 배우게 됩니다.
위협 모델링은 SDL의 한 부분으로, 이 과정에서는 위협을 식별, 분류, 해결하기 위해 공격자 입장에서 생각하는 법을 배웁니다. 개발 프로세스 초기 단계부터 이를 실천하면, 잠재적 위협을 식별하여 훨씬 저렴한 비용으로 위협을 완화하며 사용자를 위해 더 안전한 제품을 만들 계획을 세울 수 있습니다.