개인정보보호, 소프트웨어 정책
2016 모바일 보안 위험 Top 10
OWASP 모바일 보안 프로젝트(OWASP Mobile Security Project)의 모바일 보안 위험 Top 10
OWASP 모바일 보안 프로젝트는 개발자와 보안담당자가 안전한 모바일 응용 프로그램을 구축하고 유지 관리하는 데 필요한 모바일 보안 위험을 분류하고 보안 가이드 등을 제공하고 있다. OWASP 모바일 보안 프로젝트는 최근 모바일 보안과 관련하여 ‘Mobile Top 10 2016’을 제시하였다.
https://www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Project_Overview
https://www.owasp.org/index.php/Mobile_Top_10_2016-Top_10
*) OWASP(The Open Web Application Security Project)는 국제 웹 보안 표준기구이며, 주요 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며 10대 웹 애플리케이션 취약점(OWASP TOP10)을 발표함
□ 모바일 Top 10 2016-Top 10
Mobile Top 10 2014 이후 모바일 보안 전문가, 개발자 등으로부터 자료 수집, 설문을 통해 주요 변경된 사항을 정리하여 Mobile Top 10 2016(RC)를 공개하여 피드백을 통해 업데이트 진행 중에 있다.
이번 발표 내용의 특이사항은 2014년’취약한 서버 통제’항목이 삭제되고’충분하지 않은 인증 및 권한부여’하나의 항목을 세분화하여 인증과 권한부여 항목으로 분리하여 발표하였다.
– 2014년 대비 2016년 Mobile Top 10 변경 사항
구분 | Mobile Top 10 2014 | Mobile Top 10 2016(RC) |
M1 |
취약한 서버 통제 (Weak Server Side Control) |
부적절한 플랫폼의 사용 (Improper Platform Usage) |
M2 |
안전하지 않은 데이터 저장 (Insecure Data Storage) |
안전하지 않은 데이터 저장 (Insecure Data Storage) |
M3 |
불충분한 전송계층의 보호 (Insufficient Transport Layer Protection) |
안전하지 않은 통신 (Insecure Communication) |
M4 |
의도하지 않은 데이터 누출 (Unintended Data Leakage) |
안전하지 않은 인증 (Insecure Authentication) |
M5 |
충분하지 않은 인증 및 권한부여 (Poor Authorization and Authentication) |
불충분한 암호화 (Insufficient Cryptography) |
M6 |
취약한 암호화 (Broken Cryptography) |
안전하지 않은 권한부여 (Insecure Authorization) |
M7 |
클라이언트 측면의 인젝션 (Client Side Injection) |
이용자 코드 품질 (Client Code Quality) |
M8 |
신뢰할 수 없는 입력을 통한 보안 결정 (Security Decisions Via Untrusted Inputs) |
코드 변조 (Code Tampering) |
M9 |
부적절한 세션 처리 (Improper Session Handling) |
역공학 (Reverse Engineering) |
M10 |
바이너리 보호 미비 (Lack of Binary Protections) |
불필요한 기능 (Extraneous Functionality) |
– Mobile Top 10 2016에 선정된 각 항목에 대한 설명은 다음과 같음
구분 | Mobile Top 10 | 내용 |
M1 | 부적절한 플랫폼의 사용 | 플랫폼 기능의 오용 또는 플랫폼 보안통제 미 적용으로 인해 발생하는 문제 Android intents*, 플랫폼 권한, TouchID의 오용, 키 체인 또는 모바일 운영 체제의 일부인 다른 보안 컨트롤을 포함 할 수 있습니다. * 컴포넌트(Activity, Content Provider, Broadcast Receiver, Service) 간의 호출과 메시지 전달에 이용 |
M2 | 안전하지 않은 데이터 저장 | Top 10 Mobile Risk 2014에서 M2와 M4의 조합 안전하지 않은 데이터 저장 및 의도하지 않은 데이터 유출을 포함 합니다. |
M3 | 안전하지 않은 통신 | 세션성립을 위한 악의적인 핸드쉐이킹(handshaking), 잘못된 SSL 버전, 불완전한 연결, 민감한 정보의 평문 통신 등을 포함 합니다. |
M4 | 안전하지 않은 인증 | 최종 사용자 또는 잘못된 세션 관리 인증의 개념을 포함 필요한 경우 사용자를 식별하지 못함 필요한 경우 사용자 신원 유지 실패 세션 관리의 약점 |
M5 | 불충분한 암호화 | 암호화 여부뿐만 아니라 올바르지 않은 암호화 중요한 정보는 암호화 적용이 필요하며 TLS 또는 SSL관련해서는 M3에서 진행 모바일 애플리케이션에 대한 암호화 미 적용은 M2 영역에 속함 |
M6 | 안전하지 않은 권한 부여 | 권한부여(예를 들어 이용자 측의 권한 결정, 강제 검색 등)에 대한 실패 권한부여의 문제(예를 들어 장치 등록, 사용자 식별 등)와는 구별됨 앱이 인증해야 하는 상황에서 사용자를 전혀 인증하지 않으면 (예 : 인증되고 승인 된 액세스가 필요할 때 일부 리소스 또는 서비스에 익명 액세스를 부여하는 경우) 인증 실패가 아닌 권한 부여 실패입니다. |
M7 | 이용자 코드 품질 | 신뢰할 수 없는 입력을 통한 보안 결정 모바일 클라이언트의 코드 수준 구현 문제에 대한 포괄적인 내용으로 이는 서버 측 코딩 실수와 구별됩니다. 이는 버퍼 오버 플로우, 형식 문자열 취약점 및 모바일 장치에서 실행되는 일부 코드를 다시 작성하는 코드 품질 실수와 같은 것들을 포함합니다 |
M8 | 코드 변조 문제점 | 바이너리 패치, 로컬 리소스 수정, 메서드 후킹, 메서드 변경 및 동적 메모리 변조 등을 포함 응용 프로그램이 모바일 장치로 전달되면 코드 및 데이터 리소스가 해당 모바일 장치에 상주합니다. 공격자는 코드를 직접 수정하거나, 메모리 내용을 동적으로 변경하거나, 응용 프로그램이 사용하는 시스템 API를 변경하거나 대체하거나, 응용 프로그램의 데이터와 자원을 수정할 수 있습니다. 이것은 공격자에게 소프트웨어의 의도 된 사용을 개인적 또는 금전적 이득을 위해 전복시키는 직접적인 방법을 제공 할 수 있습니다. |
M9 | 역공학 | 소스 코드, 라이브러리, 알고리즘 및 기타 자산을 결정하는 최종 핵심 바이너리 분석을 포함 IDA Pro, Hopper, otool 및 기타 이진 검사 도구와 같은 소프트웨어는 침입자가 응용 프로그램의 내부 동작을 파악할 수 있도록 합니다. 이는 백엔드 서버, 암호화 상수 및 암호 및 지적 재산에 대한 정보를 공개하는 것 외에도 응용 프로그램의 초기 취약점을 악용하는 데 사용될 수 있습니다. |
M10 | 불필요한 기능 | 개발자는 숨겨진 백 도어 기능이나 개발환경에서 의도하지 않게 내부 개발 보안 문제에 포함될 수 있음 예를 들어 개발자가 실수로 하이브리드 앱에 댓글로 비밀번호를 포함 할 수 있습니다. 또 다른 예는 테스트 중 2 요소 인증을 사용하지 못하도록 하는 것입니다. |