Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AndroidSecurityEvolution — 최근 주요 Android 버전의 중요한 보안 개선 사항 | Kitploit
도구/GitHubGitHub/balazsgerlei/androidsecurityevolution
Android SecurityCryptographyMobile SecurityPrivacyLearning & EducationCurated Resources
GitHubbalazsgerlei/androidsecurityevolution

AndroidSecurityEvolution

최근 주요 Android 버전의 중요한 보안 개선 사항

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
187151개월 전Kitploit 검토 완료

Android 보안 발전

API last commit

Android 5.0 Lollipop(API 21)부터 시작하는 최근 주요 Android 버전의 주요 보안 강화 사항.

Android 5.0 (API 21) - Lollipop

보안 강화 - Android 5

  • 2023년 8월부터 Google Play 서비스 업데이트는 이 Android 버전에서만 수신됩니다. Google Play 서비스가 2023년 8월부터 KitKat(API 레벨 19 및 20) 업데이트를 중단합니다 참조
  • 기본적으로 전체 디스크 암호화(FDE) 적용(제조사가 선택 해제할 수 있음). 암호화 및 Android 5.0의 보안 강화 참조
  • SELinux 완전 적용, Android 5.0의 보안 강화 참조
  • WebView는 별도의 패키지입니다. Android 5.0의 보안 강화 및 Android 5.0 Lollipop의 업데이트 가능한 WebView: 그것은 무엇이며 왜 신경 써야 하나? 참조

Android 6 (API 23) - Marshmallow

Android 6의 보안 강화

  • Keystore API가 크게 확장됨(대칭 암호화 프리미티브, AES 및 HMAC 지원, 하드웨어 지원 키를 위한 접근 제어 시스템). 하드웨어 지원 Keystore 참조
  • TEE는 필수 요구 사항입니다. 하드웨어 지원 Keystore 및 Android 6.0 호환성 정의 문서의 7.3.10 지문 센서 섹션 참조
  • KeyStore 키가 보안 하드웨어(예: TEE(Trusted Execution Environment) 또는 SE(Secure Element))에 저장되는지 확인하는 새로운 API(isInsideSecureHardware). KeyInfo의 isInsideSecureHardware 메서드 참조
  • 앱은 런타임에 권한을 요청해야 합니다. Android 6.0 변경 사항의 런타임 권한 섹션, 런타임 권한 요청 및 Android 6.0의 보안 강화 참조
  • 더 엄격한 SELinux(IOCTL 필터링, SELinux 도메인 강화 등). Android의 SELinux(Security-Enhanced Linux) 및 Android 6.0의 보안 강화 참조

Android 7 (API 24) - Nougat

보안 강화 - Android 7

  • 사용자 및 _시스템 인증서 신뢰 저장소_가 분리되어, 이 시점부터 중간자(MITM) 공격은 기본적으로 루트 액세스가 필요합니다. Android Nougat의 신뢰할 수 있는 인증 기관 변경 사항 참조
  • 네트워크 보안 구성 지원이 추가되어 앱이 코드 수정 없이도 선언적인 방식으로 보안(HTTPS, TLS) 연결 동작을 사용자 지정할 수 있습니다. 사용자 지정 신뢰 앵커(앱이 신뢰하는 인증 기관(CA)), 디버그 전용 재정의, 일반 텍스트 트래픽 거부 및 인증서 고정(신뢰하는 서버 키 제한)을 지원합니다. Android 7.0 for Developers의 네트워크 보안 구성 섹션 참조
  • 기본적으로 _Android 7.0_을 대상으로 하는 앱은 사용자가 추가한 인증 기관(CA)을 더 이상 신뢰하지 않으며, 맞춤 네트워크 보안 구성이 없어도 시스템 제공 인증서만 신뢰합니다. Android 7.0 for Developers의 기본 신뢰 인증 기관 참조
  • 키 증명(Key Attestation) 및 버전 바인딩(키를 잃지 않고 안전하지 않은 이전 버전으로 롤백 방지)을 지원하는 _Keymaster 2_로 업데이트. Android 7.0 for Developers의 키 증명 섹션, Keymaster 기능, 키 증명으로 하드웨어 지원 키 쌍 검증 및 키 및 ID 증명 참조
  • 파일 기반 암호화(FBE) 도입, 그러나 제조사가 구현하는 것은 선택 사항입니다. Android 7.0 for Developers의 Direct Boot 섹션, Direct Boot 모드 지원 및 암호화 참조
  • 업데이트된 SELinux 구성: 애플리케이션 샌드박스를 추가로 잠그고, mediaserver 스택을 권한이 축소된 더 작은 프로세스로 분할(Stagefright 완화). 참조

Android 8 (API 26) - Oreo

보안 강화 - Android 8

  • WebView에서 JavaScript 평가가 별도의 프로세스로 실행되어 JavaScript 코드가 앱 메모리에 쉽게 접근할 수 없습니다. WebView 보안의 새로운 기능 및 모든 앱에 대한 Android 8.0 동작 변경의 보안 섹션 참조
  • WebView는 네트워크 보안 구성 및 cleartextTrafficPermitted 플래그를 준수합니다(이전 Android 버전에서는 구성에서 _일반 텍스트 트래픽_이 허용되지 않아도 HTTP 사이트를 로드함). Android 8.0을 대상으로 하는 앱의 Android 8.0 동작 변경의 보안 섹션 참조
  • WebView에 세이프 브라우징 API가 추가되어, 사용자가 잠재적으로 안전하지 않은 웹사이트로 이동하려고 할 때(Google 세이프 브라우징으로 확인) 경고를 받을 수 있습니다(활성화된 경우). Android 8.0 기능 및 API의 WebView API 섹션 참조
  • FLAG_SECURE Window 플래그가 더 많이 지원되어 설정된 화면의 스크린샷을 허용하지 않습니다.
  • _Keymaster 3_로 업데이트, HAL(Hardware Abstraction Layers)이 C로 작성된 레거시 HAL과 달리 HIDL(HAL Interface Definition Language) 및 C++로 재작성되었으며 ID 증명을 지원합니다. , 및 참조

Android 9 (API 28) - Pie

Android 9 릴리스 노트 - 보안 기능

  • _일반 텍스트 네트워크 트래픽(HTTP)_이 기본적으로 비활성화됩니다. 앱이 여전히 이를 사용하려면(권장되지 않음) 네트워크 보안 구성에서 cleartextTrafficPermitted를 true로 명시적으로 설정해야 합니다. API 레벨 28+ 앱의 동작 변경: 기본적으로 네트워크 TLS 활성화 섹션 및 Android: 일반 텍스트 HTTP 트래픽이 Android 9에서 허용되지 않음 참조
  • 3DES 암호화 및 안전한 키 가져오기를 지원하는 _Keymaster 4_로 업데이트. 하드웨어 지원 Keystore 및 Keymaster 기능 참조
  • 많은 암호화 알고리즘의 BouncyCastle 구현을 Conscrypt 구현으로 대체. Android 9 동작 변경: 모든 앱의 Conscrypt 매개변수 및 알고리즘 구현 섹션 참조
  • 내장 SE(Secure Element) 지원 추가. Android 9 릴리스 노트의 SE(Secure Element) 서비스 섹션 및 Secure Element용 CTS 테스트 참조
  • 디스크 암호화(전체 디스크 암호화(FDE) 또는 파일 기반 암호화(FBE))는 (이 버전과 함께 출시되는) 모든 기기에 필수입니다.
  • BiometricPrompt 도입으로 생체 인증 중 표시되는 UI가 표준화되고, 오용하기 더 어려운 더 나은 API를 앱에 제공합니다. 이전 솔루션인 FingerprintManager는 더 이상 사용되지 않습니다(deprecated). 생체 인증 대화상자 표시 참조

Android 10 (API 29) - Quince Tart

보안 강화 - Android 10

Android 10 릴리스 노트 - 보안 기능

  • WebView에서 파일 접근이 기본적으로 비활성화됩니다. WebSettings의 setAllowFileAccess 메서드 참조
  • TLS 1.3 사용이 가능해지고 기본적으로 활성화됩니다. Android 10 동작 변경: 모든 앱의 TLS 1.3 기본 활성화 섹션 참조
  • _SHA-1_로 서명된 인증서는 더 이상 _TLS_에서 신뢰되지 않습니다.
  • 백그라운드 앱은 다른 Activity(예: 다른 앱)를 시작할 수 없습니다. Android 10 릴리스 노트의 백그라운드 앱 실행 섹션 및 Android 10의 보안 및 개인 정보 보호 강화의 백그라운드 활동 제한 섹션 참조
  • 파일 기반 암호화(FBE)는 이 Android 버전과 함께 출시되는 기기에 필수입니다(이 버전으로 업데이트된 기기는 계속 전체 디스크 암호화(FDE)를 사용할 수 있음). 암호화 참조
  • 기본 IME(입력 방식 편집기) 앱만 백그라운드에서 클립보드 데이터에 접근할 수 있습니다. Android 10의 개인 정보 보호 변경 사항의 클립보드 데이터 접근 제한 섹션 및 Android 10의 보안 및 개인 정보 보호 강화의 클립보드 데이터 섹션 참조
  • StrandHogg 2.0 익스플로잇(CVE-2020-0096)이 더 이상 불가능합니다(이 취약점에 대한 패치는 2020년 5월 보안 업데이트를 통해 Android 8.0, 8.1 및 _9.0_에도 백포팅됨 - 제조사가 해당 업데이트를 기기에 출시한 경우). StrandHogg 공격 / Task Affinity 취약점, StrandHogg 2.0 익스플로잇 설명 - 사용자와 Android 앱 개발자가 알아야 하는 이유 및 참조

Android 11 (API 30) - Red Velvet Cake

Android 11 릴리스 노트 - 보안

  • 작업 하이재킹(Task Hijacking)(StrandHogg 1.0) 익스플로잇(다른 앱이 대상 앱과 동일한 taskAffinity를 설정하여 사용자가 대상 앱을 실행하려는 의도였더라도 해당 앱의 합법적인 앱 아이콘을 사용해 속여 실행하게 하는 공격)이 더 이상 불가능합니다. StrandHogg 공격 / Task Affinity 취약점 및 Strandhogg 취약점 참조
  • 앱은 기본적으로 다른 설치된 앱에 대한 정보를 더 이상 조회할 수 없습니다. Android의 패키지 가시성 필터링 및 Android 11의 패키지 가시성 참조
  • 사용하지 않는 앱의 런타임 권한 자동 재설정. Android 11의 권한 업데이트: 사용하지 않는 앱의 권한 자동 재설정 섹션 및 런타임 권한 요청: 사용하지 않는 앱의 권한 자동 재설정 섹션 참조
  • 범위 지정 저장소(Scoped Storage) 도입, 그러나 앱은 여전히 requestLegacyExternalStorage를 통해 옵트아웃할 수 있습니다. Android 11의 저장소 업데이트 및 Android 저장소 사용 사례 및 모범 사례의 프로덕션 앱 옵트아웃 섹션 참조
  • BiometricPrompt에 독립 실행형(대체 수단이 아닌) DEVICE_CREDENTIAL(PIN, 패턴 또는 비밀번호) 인증기가 추가되었습니다.
  • 맞춤 보기(setView로 설정)가 있는 Toast는 더 이상 백그라운드에서 실행할 수 없습니다. 이는 피해자 앱의 UI를 가려서 공격하는 특정 공격을 완화하기 위한 것입니다. 참고로 메서드 전체는 Android 11(API 30)에서 더 이상 사용되지 않습니다. 참조

Android 12 (API 31) - Snow Cone보안 강화 - Android 12

Android 12 릴리스 노트

  • android:exported 플래그는 Intent Filters를 선언하는 구성 요소(Activities, Content Providers 등)의 Manifest에서 명시적으로 정의해야 하며, Android 12를 대상으로 하는 앱의 동작 변경: 더 안전한 구성 요소 내보내기 섹션을 참조하세요.
  • 일반 웹 _Intent_는 특정 웹 _Intent_에 포함된 도메인에 대해 대상 앱이 승인되지 않는 한 사용자의 기본 브라우저 앱으로 확인됩니다. Android 12 동작 변경(모든 앱): 웹 인텐트 확인 섹션을 참조하세요.
  • 암호화 알고리즘의 BouncyCastle 구현을 더 많이 Conscrypt 구현으로 대체합니다. Android 12 동작 변경(모든 앱): BouncyCastle 구현 제거 섹션을 참조하세요.
  • 앱이 다른 앱의 클립보드 데이터에 처음 액세스하면 사용자에게 알림이 표시됩니다. 복사 및 붙여넣기: 앱이 클립보드 데이터에 액세스할 때 표시되는 시스템 알림 섹션을 참조하세요.
  • 앱은 더 이상 _시스템 대화상자_를 닫을 수 없습니다. Android 12 동작 변경(모든 앱): 앱이 시스템 대화상자를 닫을 수 없음 섹션을 참조하세요.
  • 탭재킹 완화: 오버레이가 앱을 가리는 경우 앱이 터치 이벤트를 소비하지 못하도록 차단합니다. Cloak & Dagger를 참조하세요.
  • Scoped Storage가 항상 적용되며, requestLegacyExternalStorage를 통한 선택 해제는 더 이상 불가능합니다. Android 저장소 사용 사례 및 모범 사례: 프로덕션 앱에서 선택 해제 섹션을 참조하세요.
  • 대략적인 위치에 대한 액세스 권한만 부여하는 새로운 옵션
  • 앱이 카메라나 마이크를 사용할 때 사용자에게 알려주는 상태 표시줄의 새로운 개인정보 보호 표시기
  • 인증에 BiometricPrompt를 사용하는 앱에 지역화된 문자열을 제공하는 API 도입

Android 13 (API 33) - Tiramisu

보안 강화 - Android 13

Android 13 릴리스 노트 - 보안

  • 일치하지 않는 _Intent_는 _Intent filter_에 의해 차단됩니다(앱은 다른 앱의 exported 구성 요소에 _Intent_를 보내려면 해당 구성 요소가 정의한 _Intent filter_와 완전히 일치해야 합니다). Android 13 및 Android 13 QPR 릴리스 노트: 인텐트는 선언된 인텐트 필터와 일치해야 함 섹션을 참조하세요.
  • 파일 기반 암호화(FBE)만 허용되며, 전체 디스크 암호화(FDE)는 더 이상 허용되지 않습니다. 이전에 허용되었던 버전에서 업데이트된 기기에서도 마찬가지입니다.
  • 공유 UID(Shared UIDs)는 더 이상 사용되지 않습니다. 이는 두 개 이상의 앱이 샌드박스 액세스를 공유하고 동일한 프로세스에서 실행할 수 있는 기능을 제공하는 데 사용되었습니다. 패키지 관리자 내에서 비결정적 동작을 유발할 수 있으므로 향후 Android 버전에서 제거될 예정입니다. 앱 서명(Application Signing)을 참조하세요.
  • AES(고급 암호화 표준), HMAC(키 기반 해시 메시지 인증 코드) 같은 대칭 암호화 기본 요소와 비대칭 암호화 알고리즘(Elliptic Curve, RSA2048, RSA4096, Curve 25519 포함)에 대한 Keymaster 지원
  • 앱에서 면제 대상이 아닌(Foreground Services(FGS) 포함) 알림을 보내기 위한 POST_NOTIFICATIONS 런타임 권한이 추가되었습니다. 알림 런타임 권한 및 android.permission.POST_NOTIFICATIONS을 참조하세요.
  • 앱이 포그라운드에 없을 때 Toast를 표시하려면 런타임 권한이 필요합니다. 사용자에게 Toast 메시지만 표시하려는데 앱이 알림을 게시할 권한이 필요한 이유를 설명하는 것은 매우 직관에 반할 수 있습니다. 또한 Toast는 알림 채널과 연결할 수 없습니다. NotificationManagerService 소스 코드를 참조하세요.
  • 모든 기기 로그에 대한 액세스를 요청하는 앱에 사용별(per-use) 프롬프트가 추가되어 사용자가 액세스를 허용하거나 거부할 수 있습니다. Android에서 기기 로그 관리를 참조하세요.
  • Android 가상화 프레임워크(AVF)가 도입되어 다양한 하이퍼바이저를 표준화된 API를 갖춘 하나의 프레임워크로 통합합니다.

Android 14 (API 34) - Upside Down Cake

보안 강화 - Android 14

Android 14 보안 릴리스 노트

  • 최소 targetSdk 요구 사항 도입: Android 6(API 23)보다 오래된 Android 버전을 대상으로 하는 앱은 더 이상 설치할 수 없습니다. 즉, Android 6(API 23)에서 도입된 보안 제한(특히 이 경우 런타임 권한 처리)이 이제 기기에 설치된 모든 앱에 적용된다고 간주할 수 있습니다(이 최소값은 향후 Android 버전마다 높아질 것으로 예상됩니다). 동작 변경(모든 앱): 최소 설치 가능 target API 수준 섹션을 참조하세요.
  • 특정 미디어 파일을 저장한 앱의 이름은 기본적으로 가려집니다(해당 패키지 이름이 다른 앱에 항상 표시되거나, 이를 조회하는 앱에 QUERY_ALL_PACKAGES 권한이 부여된 경우는 제외 — 이 권한을 얻으려면 Google Play의 특별 수동 검토가 필요합니다). 동작 변경(모든 앱): 미디어 소유자 패키지 이름이 가려질 수 있음 섹션을 참조하세요.
  • 위치 권한 프롬프트에 앱이 이 권한이 필요한 이유를 설명하는 설명을 추가합니다.
  • 하드웨어 지원 AddressSanitizer(HWASan)에 대한 대폭적인 개선. 이 도구는 Android 10에서 도입된 메모리 오류 탐지 도구로, 더 이상 사용되지 않는 AddressSanitizer를 대체합니다.
  • Null 암호화 셀룰러 연결을 거부하는 지원이 추가되어 회선 교환 음성 및 SMS 트래픽이 항상 암호화되고 수동적인 무선 감청으로부터 보호됩니다. Android 14, 최초의 셀룰러 연결 보안 기능 도입을 참조하세요.
  • 여러 IMEI 지원 추가
  • _AES-HCTR2_는 이제 가속 암호화 명령어를 지원하는 기기에서 파일 이름 암호화에 선호되는 모드입니다.
  • 앱이 Android 14를 대상으로 하고 동적 코드 로딩(DCL)을 사용하는 경우, 동적으로 로드되는 모든 파일은 _읽기 전용_으로 표시되어야 하며, 그렇지 않으면 시스템이 Exception을 발생시킵니다. Android 14 이상을 대상으로 하는 앱의 동작 변경: 더 안전한 동적 코드 로딩 섹션을 참조하세요.
  • Project Mainline(보다 일반적으로 _Google Play 시스템 업데이트_로 알려짐)을 통한 루트 인증서 업데이트 지원이 추가되어, 새로운 CA 인증서를 도입하거나 폐기된 인증서를 제거하기 위해 전체 OTA Android 업데이트가 더 이상 필요하지 않습니다. 을 참조하세요.

Android 15 (API 35) - Vanilla Ice Cream

Android 15 보안 릴리스 노트

  • Android 7(API 24)보다 오래된 Android 버전을 대상으로 하는 앱은 더 이상 설치할 수 없습니다. 즉, Android 7(API 24)에서 도입된 보안 제한이 이제 기기에 설치된 모든 앱에 적용된다고 간주할 수 있습니다. 동작 변경(모든 앱): 최소 target SDK 버전이 23에서 24로 증가 섹션을 참조하세요.
  • 이제 USB 모드와 화면 시간 제한을 변경할 때 시스템이 생체 인식(등록된 경우)을 요구합니다. Android 15, PC에 연결할 때 사용자 본인 확인 요구를 참조하세요.
  • 작업 하이재킹(StrandHogg)에 대한 추가 완화: 최상위 액티비티가 작업을 종료하면 Android는 마지막으로 활성화된 작업으로 돌아갑니다. 또한 최상위가 아닌 액티비티가 작업을 종료하면 Android는 홈 화면으로 돌아갑니다. 이 최상위가 아닌 액티비티의 종료를 차단하지는 않습니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 기타 변경 사항 섹션을 참조하세요.
  • 작업 하이재킹(StrandHogg)에 대한 추가 완화: 다른 앱에서 임의의 액티비티를 사용자의 작업 안으로 시작할 수 없습니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 기타 변경 사항 섹션을 참조하세요.
  • 잘못 구성된 PendingIntent를 악용하는 공격자에 대한 완화: 앱이 Android 15(API 35)를 대상으로 하는 경우 PendingIntent 생성자는 기본적으로 백그라운드 Activity 실행을 차단합니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 기타 변경 사항 섹션을 참조하세요.
  • 앱이 Android 15(API 35)를 대상으로 하는 경우, 기본적으로 앱은 PendingIntent 생성자가 백그라운드 액티비티 실행 권한을 허용하거나 발신자에게 백그라운드 액티비티 실행 권한이 없는 한 작업 스택을 포그라운드로 가져올 수 없습니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 기타 변경 사항 섹션을 참조하세요.
  • 이제 보이지 않는 창은 백그라운드 액티비티 실행 고려 대상에서 차단됩니다. 이는 서비스 거부(DoS) 공격과 팝업 광고를 완화하며, 전체 또는 부분 탭재킹 및 전체 화면 피싱에 대한 완화도 제공합니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 기타 변경 사항 섹션을 참조하세요.
  • StrictMode에 대한 새로운 탐지 기능(Android 16에서 기본적으로 적용 예정): 특정 구성 요소를 대상으로 하는 인텐트는 대상의 intent-filter 사양과 정확히 일치해야 합니다. 다른 앱의 액티비티를 시작하기 위해 인텐트를 보내는 경우 대상 인텐트 구성 요소는 수신 액티비티가 선언한 intent-filter와 일치해야 하며, action이 없는 인텐트(action이 로 설정된)는 더 이상 어떤 intent-filter와도 일치하지 않습니다. 즉, 액티비티나 서비스를 시작하는 데 사용되는 인텐트에는 명확하게 정의된 action이 있어야 합니다. 을 참조하세요.

Android 16 (API 36) - Baklava

Android 16 보안 릴리스 노트* 일반적인 Intent 리디렉션 공격에 대한 기본 보안이 추가되었으며, 다른 앱에서 수신한 Intent(예: 현재 앱을 시작하는 Intent에 extra로 래핑된 Intent)의 실행을 차단합니다. Behavior changes: all apps의 Improved security against Intent redirection attacks 섹션을 참조하세요.

  • companion device pairing 흐름 중에 악성 앱으로부터 사용자의 위치 정보를 보호하는 새로운 보호 기능이 추가되었습니다. Android 16 에서 실행되는 모든 컴패니언 앱은 더 이상 RESULT_DISCOVERY_TIMEOUT을 사용하여 검색 시간 초과를 직접 통보받지 않습니다. 대신 사용자에게 시각적 대화상자로 시간 초과 이벤트를 알립니다. 사용자가 대화상자를 닫으면 앱에 RESULT_USER_REJECTED로 연결 실패가 통보됩니다. Behavior changes: all apps의 Companion apps no longer notified of discovery timeouts 섹션을 참조하세요.

  • MediaStore#getVersion()는 이제 앱마다 고유하게 됩니다. 이로 인해 버전 문자열에서 식별 속성을 제거하여 남용 및 지문(fingerprinting) 기술 사용을 방지합니다. Behavior changes: Apps targeting Android 16 or higher의 MediaStore version lockdown 섹션 및 MediaStore의 getVersion 메서드를 참조하세요.

  • 앱은 앱 매니페스트를 사용하여 엄격한 Intent 해석에 opt-in(선택적으로 참여)할 수 있습니다. Safer Intents(원래 Android 15의 StrictMode의 일부로 도입됨)는 Intent가 전달되려면 action이 null이 아니어야 하고 대상 앱의 Intent filter와 일치해야 함을 의미합니다. 이 두 규칙을 모두 적용하거나 Intent filter 일치만 적용하도록 선택할 수 있습니다. Behavior changes: Apps targeting Android 16 or higher의 Safer Intents 섹션 및 보다 구체적으로 Implementation 섹션을 참조하세요.

  • 앱이 사진 및 동영상 권한을 요청할 때 선택한 미디어로 접근을 제한하도록 선택한 사용자는 사진 선택기에서 앱이 소유한 사진이 미리 선택되어 표시됩니다. 사용자는 미리 선택된 항목을 선택 해제할 수 있으며, 이렇게 하면 해당 사진 및 동영상에 대한 앱의 접근이 취소됩니다. Behavior changes: Apps targeting Android 16 or higher의 App-owned photos 섹션을 참조하세요.

  • KeyMint(이전 Keymaster) 버전 4.0 증명 인증서에 대한 지원이 추가되었습니다. KeyMint 4.0 인증서에는 구조에 새로운 필드가 포함되어 있으며, 이를 사용하여 로드된 APEX 모듈의 무결성을 확인할 수 있습니다. 및 을 참조하세요.

Android 17 (API 37) - Cinnamon Bun

Android 17 보안 릴리스 노트

  • Android Contact Picker를 도입했습니다. 이는 사용자가 READ_CONTATCS 권한 없이도 앱과 연락처를 공유할 수 있는 표준화된 탐색 가능한 인터페이스입니다. Features and APIs의 Android contacts picker 섹션을 참조하세요.

  • 크로스 프로필 루프백 트래픽을 더 이상 허용하지 않습니다. Behavior changes: all apps의 Block cross profile loopback traffic 섹션을 참조하세요.

  • Android Keystore에서 앱이 생성할 수 있는 키 수에 제한(Android 17을 대상으로 하는 비시스템 앱의 경우 50,000개)을 적용하여 이 공유 리소스를 보호합니다. 이 저장소는 제한적이며 앱 간에 공유되기 때문입니다. 앱이 한도를 초과하여 키를 생성하려고 하면 KeyStoreException과 함께 생성이 실패합니다. Behavior changes: all apps의 Per-app keystore limits 섹션을 참조하세요.

  • StrictMode에 대한 새로운 탐지 기능(이 기능은 Android 18에서 기본적으로 적용됩니다): 현재 앱이 ACTION_SEND, ACTION_SEND_MULTIPLE 또는 ACTION_IMAGE_CAPTURE 액션을 가진 URI로 Intent를 실행하면 시스템이 대상 앱에 읽기 및 쓰기 URI 권한을 자동으로 부여합니다. Android 18부터 시스템은 더 이상 이러한 권한을 자동으로 부여하지 않습니다. Behavior changes: all apps의 Restrict implicit URI grants 섹션을 참조하세요.

  • Android 17 이상을 대상으로 하는 앱에 대해 Certificate Transparency를 기본적으로 활성화합니다. Behavior changes: Apps targeting Android 17 or higher의 Enable CT by default 섹션을 참조하세요.

도구 다운로드
Android의 SELinux
하드웨어 지원 Keystore
Keymaster 기능
키 및 ID 증명
  • Project Treble 도입(이 버전과 함께 출시된 기기만 지원하며, 업데이트된 기기는 지원하지 않음). 하위 수준 공급업체 코드를 Android 시스템 프레임워크에서 분리하여 보안 업데이트 전달을 더 쉽게 만듭니다. Here comes Treble: A modular base for Android 및 Treble Plus One Equals Four 참조
  • _Treble_와 함께 작동하도록 SELinux 업데이트. SELinux 정책을 통해 제조사와 SoC 공급업체는 플랫폼과 독립적으로 정책의 일부를 업데이트할 수 있으며 그 반대도 가능합니다. Android의 SELinux 참조
  • 미디어 스택 추가 강화: 모바일 HAL(Hardware Abstraction Layers)이 공유 프로세스에서 자체 샌드박스 프로세스로 실행되도록 변경
  • 알 수 없는 소스(즉, _Google Play_가 아닌 소스)에서 앱을 설치하려면 Android 설정에서 해당 특정 앱에 대한 명시적 권한을 사용자가 부여해야 합니다(사용자는 언제든지 해당 권한을 취소하고 앱별로 관리할 수 있음). 앱 게시의 알 수 없는 앱 및 소스에 대한 사용자 옵트인 섹션 및 모든 앱에 대한 Android 8.0 동작 변경의 보안 섹션 참조
  • Strandhogg 취약점
  • Project Mainline 도입(이 버전과 함께 출시된 기기만 지원하며, 업데이트된 기기는 지원하지 않음). Android 9(API 26)에서 도입된 Treble을 기반으로 구축되었습니다. 이로 인해 Android 업데이트가 더욱 간소화되고 빨라집니다. Mainline 업데이트는 일반적으로 _Google Play 시스템 업데이트_로 알려져 있으며, 선택된 AOSP 구성 요소를 휴대폰 제조사의 전체 OTA 업데이트 없이 더 빠르게 전달할 수 있습니다(업데이트 가능한 구성 요소 목록은 최신 Android 버전에서 늘어남). Fresher OS with Projects Treble and Mainline 및 Android의 Google Play 시스템 업데이트란 무엇이며 중요한가? 참조
  • 탭재킹(Tapjacking)
    setView
    Toast의 setView 메서드 문서
    BiometricManager.Strings
  • 디스플레이 내장형 지문 센서 지원 추가
  • 지문 Android 인터페이스 정의 언어(Fingerprint Android Interface Definition Language) (AIDL) 도입
  • FLAG_SECURE 플래그가 생체 인식 또는 기기 자격 증명(PIN, 패턴 또는 비밀번호) 프롬프트에 추가되었으며, 기기 잠금 해제와 앱 내 BiometricPrompt 모두에 적용됩니다. 즉, 이러한 화면의 스크린샷을 찍을 수 없으며 화면 공유에서도 검게 표시됩니다. Android Code Search의 com.android.systemui.biometrics.AuthContainerView 소스를 참조하세요.
  • Private Compute Services는 기기 내에서 민감한 사용자 데이터를 처리하기 위한 보안 파티션으로 도입되었으며, Live Caption, Now Playing, Smart Reply 같은 AI 기반 기능에 사용됩니다. Google은 이를 "Android 운영 체제 내부의 안전하고 격리된 데이터 처리 환경으로, 데이터를 다른 사람과 공유할지, 어떻게, 언제 공유할지 결정하는 등 내부 데이터를 제어할 수 있게 해줍니다"라고 정의합니다. Android의 Private Compute Services 소개, Google이 Android의 Private Compute Core 작동 방식을 공식적으로 설명, Android Private Compute Core 아키텍처 백서를 참조하세요.
  • 플랫폼 개발을 위한 Rust 언어 지원
  • Toast는 두 줄의 텍스트로 제한되며 애플리케이션 아이콘을 표시하여 사용자가 어떤 앱이 표시하는지 식별할 수 있게 합니다. Android 12를 대상으로 하는 앱의 동작 변경: Toast 재설계 섹션 및 Toast 개요를 참조하세요.
  • APK 서명 체계 v3.1이 도입되었으며, apksigner를 사용하는 모든 새로운 키 교체는 Android 13 이상을 대상으로 하는 교체를 위해 기본적으로 v3.1 서명 체계를 사용합니다.
  • 제한된 설정(Restricted Settings)이 도입되어 사이드로드된 앱(세션 기반 설치 API를 사용하지 않고 설치된 앱)이 Google이 특히 위험하다고 간주하는 권한을 얻지 못하도록 차단합니다(사용자는 Android 설정에서 이러한 권한을 수동으로 부여할 수는 있습니다). 현재 이는 접근성 및 알림 리스너 보유에 적용됩니다. Android 13의 제한된 설정 기능은 악성 앱이 사용자의 알림에 액세스하지 못하도록 차단합니다. 단, 이 제한을 알고 있는 악성 앱은 설치된 후 해당 세션 기반 설치 API를 사용해 다른 앱을 설치하여 우회할 수 있으므로 두 번째 앱에는 제한이 적용되지 않는다는 점을 명심하세요.
  • Android 14, 악성 CA로부터 사용자를 보호하기 위해 Google Play를 통해 루트 인증서 업데이트 가능
    null
    Android 15 이상을 대상으로 하는 앱의 동작 변경: 더 안전한 인텐트 섹션
  • PendingIntent의 생성자는 _포함 인텐트의 발신자_로 간주되며, _보류 중인 인텐트의 발신자_로 간주되지 않습니다. Android 15 이상을 대상으로 하는 앱의 동작 변경: 더 안전한 인텐트 섹션을 참조하세요.
  • Google Play Protect는 Android 10(API 29) 이하를 대상으로 하는 앱을 사이드로드하기 전에 생체 인식 또는 기기 자격 증명(기기 잠금 해제에 사용되는 PIN, 비밀번호 또는 패턴) 확인을 요구합니다. 이는 Play Protect가 악성 앱과 싸우기 위한 지속적인 노력의 일환이며, 더 유사한 프롬프트가 추가로 도입될 가능성이 높습니다(새 OS 버전이 필요하지 않을 수도 있음). Google, 수상한 앱 설치 시 추가 보호 계층 추가 (APK 분해)를 참조하세요.
  • 이제 BiometricPrompt에 올바른 자격 증명을 여러 번(5회) 제공하지 못하면 기기 자체가 잠깁니다. 생체 인식 자격 증명(예: 지문)이 이 횟수만큼 인식되지 않으면 보안 기기 자격 증명(PIN, 패턴 또는 비밀번호)으로만 기기를 잠금 해제할 수 있습니다. 또한 해당 자격 증명도 이미 실패한 경우, 기기를 전혀 잠금 해제하려면 60초의 시간 제한이 지나야 합니다. 이로 인해 BiometricPrompt의 동작에도 변화가 생깁니다. 생체 인식 실패 후 기기 자격 증명으로 "폴백"하여 사용자 인증을 완료할 수 없습니다. 사용자는 해당 인증 수단이 허용되는 경우 프롬프트의 버튼을 통해 선택적으로 기기 자격 증명을 여전히 사용할 수 있습니다(이미 너무 많이 실패하지 않은 경우). 기기가 잠기면 프롬프트가 취소되며, 인증에 성공하려면 기기 잠금 해제 후 새 프롬프트를 트리거해야 합니다. Android 15, 도둑이 잠금 해제된 휴대폰을 훔쳐도 은행 계좌를 비우지 못하도록 보장을 참조하세요.
  • KeyDescription
    moduleHash
    Android 16 릴리스 노트의 Device integrity 섹션
    Key and ID attestation
  • 기본적으로 비활성화되어 있지만 Android 17에서 활성화될 Certificate Transparency에 선택적으로 참여(opt in)할 수 있습니다. Network security configuration의 Opt out of certificate transparency 섹션을 참조하세요.