2014년 11월 21일 금요일

[보도자료] 안드로이드 모바일 앱 당 평균 4.8개 보안 취약점 발견!

정보보안 전문 커뮤니티 SecurityPlus(대표 박형근)에서는 지속적으로 증가하는 모바일 위협에 대해 현재 모바일 앱의 보안 현황을 진단하기 위해 2014년 11월 11일부터 13일까지 국내에서 가장 많이 사용하는 국내외 안드로이드 모바일 앱 총 59개(유틸리티 앱 27개, 금융 앱 13개, 소셜 네트워킹 관련 5개, 소셜 커머스 관련 5개, 앱스토어 앱 4개, 메신저 앱 4개, 안티 바이러스 1개)에 대해 보안 취약점 분석을 수행했다.


그 결과, 발견된 보안 취약점 총 개수는 286개로 평균 모바일 앱당 4.8개의 보안 취약점이 발견되었으며, 그 중 가장 많이 발견된 보안 취약점은 일반적인 웹 보안 취약점 통계와 유사하게 OWASP Mobile Top10 Risk 기준으로 M8. 신뢰할 수 없는 입력에 의한 보안 결정 취약점인 사용자 입력값 검증 부재(26.9%)였다. 이 취약점으로 인해 모바일 앱의 비정상적인 상태(DoS) 유발 뿐만 아니라, 악의적인 코드 실행을 할 수 있는 메모리 오류(Memory Corruption) 등이 발생할 수 있고, 보안 취약점 테스트 중 일부 앱에서는 메모리 오류가 발생했다.

고위험군 보안 취약점들 중에서 가장 많이 발견된 보안 취약점은 중간자(MiTM) 공격에 의한 크로스사이트 스크립팅(XSS) 취약점이었다. 이 취약점은 중요 데이터 전송에 있어 암호화된 통신 채널을 사용하지 않거나, 내장 웹 브라우저 내에 자바스크립트가 활성화되어 있는 경우에 나타나게 된다. 이 취약점으로 인해 피해자의 중요 정보가 유출되거나 입력 혹은 트랜잭션 중인 데이터가 조작될 수 있다. 특히 금융 혹은 소셜 커머스 앱에서 중요 금융 데이터를 암호화한다고 해도 반드시 유의해야 할 취약점이다.

또한, 그 외에도 간과하기 쉬운 취약점들은 두 번째로 가장 많이 나온 취약점인  “android:allowBackup” 속성의 활성(True)이다. 본래 이 속성값은 ADB(Android Debug Bridge)를 통해서 앱 백업과 복구를 가능케 하는 설정이나, 백업된 앱을 악용하여 앱 내의 민감한 정보를 유출할 수 있으므로 모바일 앱 내에 민감한 정보를 저장해야 하는 경우, 암호화 스토리지에 보관하는 방안 이외에도 ADB에 의한 백업을 허용하지 않아야 한다. 즉, “android:allowBackup” 속성의 비활성(False) 적용을 해야 한다. 두 번째로 간과하기 쉬운 취약점은 보안 목적으로 랜덤 함수 호출 시, 취약한 java.util.Random 혹은 java.lang.Math.random 함수를 사용함으로써 공격자가 쉽게 이 앱에서 생성한 랜덤 숫자를 예측 가능한 취약점이 존재한다. 따라서, 보안 목적으로 랜덤 함수를 사용할 때에는 반드시 java.security.SecureRandom 함수 혹은 보다 보안 강화된 랜덤 함수를 사용해야 한다.

SecurityPlus의 박형근 대표는 “2015년도에도 모바일 보안 위협은 지금보다도 더욱 높아질 것으로 예상된다. 따라서 모바일 앱 개발에 있어서도 모바일 개발자에 대한 안전한 코딩 가이드 교육, 모바일 보안 라이브러리 활용, 지속적인 취약점 관리 등 모바일 분야에도 개발보안 라이프사이클 도입을 통해 보다 안전한 모바일 환경 만들어 나가야 한다.” 고 강조했다.