Penyempurnaan keamanan

Android terus meningkatkan kemampuan dan penawaran keamanannya. Lihat daftar peningkatan berdasarkan rilis di navigasi kiri.

Android 14

Setiap rilis Android menyertakan puluhan penyempurnaan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 14:

  • AddressSanitizer berbantuan hardware (HWASan), yang diperkenalkan di Android 10, adalah alat deteksi error memori yang mirip dengan AddressSanitizer. Android 14 menghadirkan peningkatan yang signifikan pada HWASan. Pelajari cara fitur ini membantu mencegah bug masuk ke rilis Android, HWAddressSanitizer
  • Di Android 14, mulai dari aplikasi yang membagikan data lokasi kepada pihak ketiga, dialog izin runtime sistem kini menyertakan bagian yang dapat diklik yang menyoroti praktik berbagi data aplikasi, termasuk informasi seperti alasan aplikasi dapat memutuskan untuk membagikan data kepada pihak ketiga.
  • Android 12 memperkenalkan opsi untuk menonaktifkan dukungan 2G di tingkat modem, yang melindungi pengguna dari risiko keamanan yang melekat dari model keamanan 2G yang sudah usang. Menyadari betapa pentingnya menonaktifkan 2G bagi pelanggan perusahaan, Android 14 mengaktifkan fitur keamanan ini di Android Enterprise, yang memperkenalkan dukungan bagi admin IT untuk membatasi kemampuan perangkat terkelola untuk mendowngrade ke konektivitas 2G.
  • Menambahkan dukungan untuk menolak koneksi seluler dengan cipher null, yang memastikan bahwa traffic SMS dan suara dengan pengalihan sirkuit selalu dienkripsi dan dilindungi dari intersepsi pasif over-the-air. Pelajari lebih lanjut program Android untuk meningkatkan keamanan konektivitas seluler.
  • Menambahkan dukungan untuk beberapa IMEI
  • Sejak Android 14, AES-HCTR2 adalah mode enkripsi nama file yang lebih disukai untuk perangkat dengan petunjuk kriptografi yang dipercepat.
  • Konektivitas seluler
  • Dokumentasi ditambahkan untuk Pusat Keamanan Android
  • Jika aplikasi Anda menargetkan Android 14 dan menggunakan Pemuatan Kode Dinamis (DCL), semua file yang dimuat secara dinamis harus ditandai sebagai hanya baca. Jika tidak, sistem akan menampilkan pengecualian. Sebaiknya aplikasi menghindari pemuatan kode secara dinamis jika memungkinkan, karena hal itu akan sangat meningkatkan risiko aplikasi disusupi oleh injeksi kode atau modifikasi kode.

Lihat catatan rilis AOSP lengkap kami dan daftar fitur dan perubahan Developer Android.

Android 13

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 13:

  • Android 13 menambahkan dukungan presentasi multi-dokumen. Antarmuka Sesi Presentasi baru ini memungkinkan aplikasi melakukan presentasi multi-dokumen, sesuatu yang tidak mungkin dilakukan dengan API yang ada. Untuk informasi selengkapnya, lihat Kredensial Identitas
  • Di Android 13, intent yang berasal dari aplikasi eksternal dikirim ke komponen yang diekspor jika dan hanya jika intent cocok dengan elemen filter intent yang dideklarasikan.
  • Open Mobile API (OMAPI) adalah API standar yang digunakan untuk berkomunikasi dengan Elemen Aman perangkat. Sebelum Android 13, hanya aplikasi dan modul framework yang memiliki akses ke antarmuka ini. Dengan mengonversinya ke antarmuka stabil vendor, modul HAL juga dapat berkomunikasi dengan elemen aman melalui layanan OMAPI. Untuk informasi selengkapnya, lihat OMAPI Vendor Stable Interface.
  • Mulai Android 13-QPR, UID bersama tidak digunakan lagi. Pengguna Android 13 atau yang lebih tinggi harus menempatkan baris `android:sharedUserMaxSdkVersion="32"` dalam manifes mereka. Entri ini mencegah pengguna baru mendapatkan UID bersama. Untuk informasi selengkapnya tentang UID, lihat Penandatanganan aplikasi.
  • Android 13 menambahkan dukungan primitif kriptografis simetris Keystore seperti AES (Advanced Encryption Standard), HMAC (Keyed-Hash Message Authentication Code), dan algoritma kriptografis asimetris (termasuk Elliptic Curve, RSA2048, RSA4096, dan Curve 25519)
  • Android 13 (API level 33) dan yang lebih baru mendukung izin runtime untuk mengirim notifikasi dari aplikasi yang tidak dikecualikan. Hal ini memberi pengguna kontrol atas notifikasi izin yang mereka lihat.
  • Menambahkan perintah per penggunaan untuk aplikasi yang meminta akses ke semua log perangkat, sehingga pengguna dapat mengizinkan atau menolak akses.
  • memperkenalkan Framework Virtualisasi Android (AVF), yang menggabungkan berbagai hypervisor dalam satu framework dengan API standar. TEE menyediakan lingkungan eksekusi yang aman dan pribadi untuk menjalankan workload yang diisolasi oleh hypervisor.
  • Memperkenalkan APK signature scheme v3.1 Semua rotasi kunci baru yang menggunakan apksigner menggunakan skema tanda tangan v3.1 secara default untuk menargetkan rotasi untuk Android 13 dan yang lebih tinggi.

Lihat catatan rilis AOSP lengkap kami dan daftar fitur dan perubahan Developer Android.

Android 12

Setiap rilis Android menyertakan puluhan penyempurnaan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 12:

  • Android 12 memperkenalkan BiometricManager.Strings API, yang menyediakan string yang dilokalkan untuk aplikasi yang menggunakan BiometricPrompt untuk autentikasi. String ini dimaksudkan agar kompatibel dengan perangkat dan memberikan spesifikasi yang lebih baik tentang jenis autentikasi yang mungkin digunakan. Android 12 juga mencakup dukungan untuk sensor sidik jari di bawah layar
  • Menambahkan dukungan untuk sensor sidik jari di bawah layar
  • Pengantar Fingerprint Android Interface Definition Language (AIDL)
  • Dukungan untuk Face AIDL baru
  • Pengenalan Rust sebagai bahasa untuk pengembangan platform
  • Opsi bagi pengguna untuk memberikan akses hanya ke perkiraan lokasi mereka telah ditambahkan
  • Menambahkan Indikator privasi di status bar saat aplikasi menggunakan kamera atau mikrofon
  • Private Compute Core (PCC) Android
  • Menambahkan opsi untuk menonaktifkan dukungan 2G

Android 11

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Untuk mengetahui daftar beberapa peningkatan keamanan utama yang tersedia di Android 11, lihat Catatan Rilis Android.

Android 10

Every Android release includes dozens of security enhancements to protect users. Android 10 includes several security and privacy enhancements. See the Android 10 release notes for a complete list of changes in Android 10.

Security

BoundsSanitizer

Android 10 deploys BoundsSanitizer (BoundSan) in Bluetooth and codecs. BoundSan uses UBSan's bounds sanitizer. This mitigation is enabled on a per-module level. It helps keep critical components of Android secure and shouldn't be disabled. BoundSan is enabled in the following codecs:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

Execute-only memory

By default, executable code sections for AArch64 system binaries are marked execute-only (nonreadable) as a hardening mitigation against just-in-time code reuse attacks. Code that mixes data and code together and code that purposefully inspects these sections (without first remapping the memory segments as readable) no longer functions. Apps with a target SDK of Android 10 (API level 29 or higher) are impacted if the app attempts to read code sections of execute-only memory (XOM) enabled system libraries in memory without first marking the section as readable.

Extended access

Trust agents, the underlying mechanism used by tertiary authentication mechanisms such as Smart Lock, can only extend unlock in Android 10. Trust agents can no longer unlock a locked device and can only keep a device unlocked for a maximum of four hours.

Face authentication

Face authentication allows users to unlock their device simply by looking at the front of their device. Android 10 adds support for a new face authentication stack that can securely process camera frames, preserving security and privacy during face authentication on supported hardware. Android 10 also provides an easy way for security-compliant implementations to enable app integration for transactions such as online banking or other services.

Integer Overflow Sanitization

Android 10 enables Integer Overflow Sanitization (IntSan) in software codecs. Ensure that playback performance is acceptable for any codecs that aren't supported in the device's hardware. IntSan is enabled in the following codecs:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

Modular system components

Android 10 modularizes some Android system components and enables them to be updated outside of the normal Android release cycle. Some modules include:

OEMCrypto

Android 10 uses OEMCrypto API version 15.

Scudo

Scudo is a dynamic user-mode memory allocator designed to be more resilient against heap-related vulnerabilities. It provides the standard C allocation and deallocation primitives, as well as the C++ primitives.

ShadowCallStack

ShadowCallStack (SCS) is an LLVM instrumentation mode that protects against return address overwrites (like stack buffer overflows) by saving a function's return address to a separately allocated ShadowCallStack instance in the function prolog of nonleaf functions and loading the return address from the ShadowCallStack instance in the function epilog.

WPA3 and Wi-Fi Enhanced Open

Android 10 adds support for the Wi-Fi Protected Access 3 (WPA3) and Wi-Fi Enhanced Open security standards to provide better privacy and robustness against known attacks.

Privacy

App access when targeting Android 9 or lower

If your app runs on Android 10 or higher but targets Android 9 (API level 28) or lower, the platform applies the following behavior:

  • If your app declares a <uses-permission> element for either ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION, the system automatically adds a <uses-permission> element for ACCESS_BACKGROUND_LOCATION during installation.
  • If your app requests either ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION, the system automatically adds ACCESS_BACKGROUND_LOCATION to the request.

Background activity restrictions

Starting in Android 10, the system places restrictions on starting activities from the background. This behavior change helps minimize interruptions for the user and keeps the user more in control of what's shown on their screen. As long as your app starts activities as a direct result of user interaction, your app most likely isn't affected by these restrictions.
To learn more about the recommended alternative to starting activities from the background, see the guide on how to alert users of time-sensitive events in your app.

Camera metadata

Android 10 changes the breadth of information that the getCameraCharacteristics() method returns by default. In particular, your app must have the CAMERA permission in order to access potentially device-specific metadata that is included in this method's return value.
To learn more about these changes, see the section about camera fields that require permission.

Clipboard data

Unless your app is the default input method editor (IME) or is the app that currently has focus, your app cannot access clipboard data on Android 10 or higher.

Device location

To support the additional control that users have over an app's access to location information, Android 10 introduces the ACCESS_BACKGROUND_LOCATION permission.
Unlike the ACCESS_FINE_LOCATION and ACCESS_COARSE_LOCATION permissions, the ACCESS_BACKGROUND_LOCATION permission only affects an app's access to location when it runs in the background. An app is considered to be accessing location in the background unless one of the following conditions is satisfied:

  • An activity belonging to the app is visible.
  • The app is running a foreground service that has declared a foreground service type of location.
    To declare the foreground service type for a service in your app, set your app's targetSdkVersion or compileSdkVersion to 29 or higher. Learn more about how foreground services can continue user-initiated actions that require access to location.

External storage

By default, apps targeting Android 10 and higher are given scoped access into external storage, or scoped storage. Such apps can see the following types of files within an external storage device without needing to request any storage-related user permissions:

To learn more about scoped storage, as well as how to share, access, and modify files that are saved on external storage devices, see the guides on how to manage files in external storage and access and modify media files.

MAC address randomization

On devices that run Android 10 or higher, the system transmits randomized MAC addresses by default.
If your app handles an enterprise use case, the platform provides APIs for several operations related to MAC addresses:

  • Obtain randomized MAC address: Device owner apps and profile owner apps can retrieve the randomized MAC address assigned to a specific network by calling getRandomizedMacAddress().
  • Obtain actual, factory MAC address: Device owner apps can retrieve a device's actual hardware MAC address by calling getWifiMacAddress(). This method is useful for tracking fleets of devices.

Non-resettable device identifiers

Starting in Android 10, apps must have the READ_PRIVILEGED_PHONE_STATE privileged permission in order to access the device's non-resettable identifiers, which include both IMEI and serial number.

If your app doesn't have the permission and you try asking for information about non-resettable identifiers anyway, the platform's response varies based on target SDK version:

  • If your app targets Android 10 or higher, a SecurityException occurs.
  • If your app targets Android 9 (API level 28) or lower, the method returns null or placeholder data if the app has the READ_PHONE_STATE permission. Otherwise, a SecurityException occurs.

Physical activity recognition

Android 10 introduces the android.permission.ACTIVITY_RECOGNITION runtime permission for apps that need to detect the user's step count or classify the user's physical activity, such as walking, biking, or moving in a vehicle. This is designed to give users visibility of how device sensor data is used in Settings.
Some libraries within Google Play services, such as the Activity Recognition API and the Google Fit API, don't provide results unless the user has granted your app this permission.
The only built-in sensors on the device that require you to declare this permission are the step counter and step detector sensors.
If your app targets Android 9 (API level 28) or lower, the system auto-grants the android.permission.ACTIVITY_RECOGNITION permission to your app, as needed, if your app satisfies each of the following conditions:

  • The manifest file includes the com.google.android.gms.permission.ACTIVITY_RECOGNITION permission.
  • The manifest file doesn't include the android.permission.ACTIVITY_RECOGNITION permission.

If the system-auto grants the android.permission.ACTIVITY_RECOGNITION permission, your app retains the permission after you update your app to target Android 10. However, the user can revoke this permission at any time in system settings.

/proc/net filesystem restrictions

On devices that run Android 10 or higher, apps cannot access /proc/net, which includes information about a device's network state. Apps that need access to this information, such as VPNs, should use the NetworkStatsManager or ConnectivityManager class.

Permission groups removed from UI

As of Android 10, apps cannot look up how permissions are grouped in the UI.

Removal of contacts affinity

Starting in Android 10, the platform doesn't keep track of contacts affinity information. As a result, if your app conducts a search on the user's contacts, the results aren't ordered by frequency of interaction.
The guide about ContactsProvider contains a notice describing the specific fields and methods that are obsolete on all devices starting in Android 10.

Restricted access to screen contents

To protect users' screen contents, Android 10 prevents silent access to the device's screen contents by changing the scope of the READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT, and CAPTURE_SECURE_VIDEO_OUTPUT permissions. As of Android 10, these permissions are signature-access only.
Apps that need to access the device's screen contents should use the MediaProjection API, which displays a prompt asking the user to provide consent.

USB device serial number

If your app targets Android 10 or higher, your app cannot read the serial number until the user has granted your app permission to access the USB device or accessory.
To learn more about working with USB devices, see the guide on how to configure USB hosts.

Wi-Fi

Apps targeting Android 10 or higher cannot enable or disable Wi-Fi. The WifiManager.setWifiEnabled() method always returns false.
If you need to prompt users to enable and disable Wi-Fi, use a settings panel.

Restrictions on direct access to configured Wi-Fi networks

To protect user privacy, manual configuration of the list of Wi-Fi networks is restricted to system apps and device policy controllers (DPCs). A given DPC can be either the device owner or the profile owner.
If your app targets Android 10 or higher, and it isn't a system app or a DPC, then the following methods don't return useful data:

Android 9

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Untuk daftar beberapa peningkatan keamanan utama yang tersedia di Android 9, lihat Catatan Rilis Android.

Android 8

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 8.0:

  • Enkripsi. Menambahkan dukungan untuk menghapus kunci di profil kerja.
  • Booting Terverifikasi. Menambahkan Android Verified Boot (AVB). Codebase booting terverifikasi yang mendukung perlindungan rollback untuk digunakan di bootloader yang ditambahkan ke AOSP. Merekomendasikan dukungan bootloader untuk perlindungan rollback bagi HLOS. Menyarankan bootloader hanya dapat dibuka kuncinya oleh pengguna yang berinteraksi secara fisik dengan perangkat.
  • Layar kunci. Menambahkan dukungan untuk menggunakan hardware anti-modifikasi guna memverifikasi kredensial layar kunci.
  • KeyStore. Mewajibkan pengesahan kunci untuk semua perangkat yang dikirimkan dengan Android 8.0+. Menambahkan dukungan pengesahan ID untuk meningkatkan Pendaftaran Zero Touch.
  • Sandbox. Lebih banyak komponen yang di-sandbox dengan ketat menggunakan antarmuka standar Project Treble antara framework dan komponen khusus perangkat. Menerapkan pemfilteran seccomp ke semua aplikasi yang tidak tepercaya untuk mengurangi permukaan serangan kernel. WebView kini dijalankan dalam proses terisolasi dengan akses yang sangat terbatas ke seluruh sistem.
  • Hardening kernel. Mengimplementasikan usercopy yang di-harden, emulasi PAN, hanya baca setelah inisialisasi, dan KASLR.
  • Hardening ruang pengguna. Mengimplementasikan CFI untuk stack media. Overlay aplikasi tidak dapat lagi menutupi jendela penting sistem dan pengguna memiliki cara untuk menutupnya.
  • Update OS streaming. Mengaktifkan update di perangkat yang ruang disk-nya hampir penuh.
  • Menginstal aplikasi yang tidak dikenal. Pengguna harus memberikan izin untuk menginstal aplikasi dari sumber selain app store pihak pertama.
  • Privasi. ID Android (SSAID) memiliki nilai yang berbeda untuk setiap aplikasi dan setiap pengguna di perangkat. Untuk aplikasi browser web, Client ID Widevine menampilkan nilai yang berbeda untuk setiap nama paket aplikasi dan origin web. net.hostname kini kosong dan klien dhcp tidak lagi mengirim nama host. android.os.Build.SERIAL telah diganti dengan Build.SERIAL API yang dilindungi oleh izin yang dikontrol pengguna. Pengacakan alamat MAC yang ditingkatkan di beberapa chipset.

Android 7

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 7.0:

  • Enkripsi berbasis file. Mengenkripsi di tingkat file, bukan mengenkripsi seluruh area penyimpanan sebagai satu unit, akan lebih baik mengisolasi dan melindungi setiap pengguna dan profil (seperti pribadi dan kerja) di perangkat.
  • Direct Boot. Diaktifkan oleh enkripsi berbasis file, Direct Boot memungkinkan aplikasi tertentu seperti jam alarm dan fitur aksesibilitas berjalan saat perangkat dinyalakan, tetapi tidak dibuka kuncinya.
  • Booting Terverifikasi. Booting Terverifikasi kini diterapkan secara ketat untuk mencegah perangkat yang disusupi agar tidak melakukan booting; fitur ini mendukung koreksi error untuk meningkatkan keandalan terhadap kerusakan data yang tidak berbahaya.
  • SELinux. Konfigurasi SELinux yang diperbarui dan cakupan seccomp yang ditingkatkan lebih lanjut mengunci Sandbox Aplikasi dan mengurangi platform serangan.
  • Prandomisasi urutan pemuatan library dan ASLR yang ditingkatkan. Peningkatan keacakan membuat beberapa serangan penggunaan kembali kode menjadi kurang andal.
  • Hardening kernel. Menambahkan perlindungan memori tambahan untuk kernel yang lebih baru dengan menandai sebagian memori kernel sebagai hanya baca, membatasi akses kernel ke alamat ruang pengguna, dan lebih lanjut mengurangi platform serangan yang ada.
  • APK signature scheme v2. Memperkenalkan skema tanda tangan file lengkap yang meningkatkan kecepatan verifikasi dan memperkuat jaminan integritas.
  • Toko CA tepercaya. Untuk memudahkan aplikasi mengontrol akses ke traffic jaringan aman, otoritas sertifikasi yang diinstal pengguna dan yang diinstal melalui Device Admin API tidak lagi dipercaya secara default untuk aplikasi yang menargetkan API Level 24+. Selain itu, semua perangkat Android baru harus dikirimkan dengan penyimpanan CA tepercaya yang sama.
  • Konfigurasi Keamanan Jaringan. Konfigurasikan keamanan jaringan dan TLS melalui file konfigurasi deklaratif.

Android 6

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan utama yang tersedia di Android 6.0:

  • Izin Runtime. Aplikasi meminta izin saat runtime, bukan diberikan pada waktu penginstalan Aplikasi. Pengguna dapat mengaktifkan dan menonaktifkan izin untuk aplikasi M dan pre-M.
  • Booting Terverifikasi. Serangkaian pemeriksaan kriptografis software sistem dilakukan sebelum dieksekusi untuk memastikan ponsel dalam kondisi baik dari bootloader hingga sistem operasi.
  • Keamanan yang Diisolasi Hardware. Lapisan Abstraksi Hardware Baru (HAL) yang digunakan oleh Fingerprint API, Lockscreen, Device Encryption, dan Client Certificates untuk melindungi kunci dari kompromi kernel dan/atau serangan fisik lokal
  • Sidik jari. Perangkat kini dapat dibuka kuncinya hanya dengan sentuhan. Developer juga dapat memanfaatkan API baru untuk menggunakan sidik jari guna mengunci dan membuka kunci enkripsi.
  • Adopsi Kartu SD. Media yang dapat dilepas dapat diadopsi ke perangkat dan memperluas penyimpanan yang tersedia untuk data lokal aplikasi, foto, video, dll., tetapi tetap dilindungi oleh enkripsi tingkat blok.
  • Traffic Clear Text. Developer dapat menggunakan StrictMode baru untuk memastikan aplikasi mereka tidak menggunakan cleartext.
  • Hardening Sistem. Hardening sistem melalui kebijakan yang diterapkan oleh SELinux. Hal ini menawarkan isolasi yang lebih baik antara pengguna, pemfilteran IOCTL, mengurangi ancaman layanan yang terekspos, pengetatan lebih lanjut domain SELinux, dan akses /proc yang sangat terbatas.
  • Kontrol Akses USB: Pengguna harus mengonfirmasi untuk mengizinkan akses USB ke file, penyimpanan, atau fungsi lainnya di ponsel. Default kini adalah hanya tagihan dengan akses ke penyimpanan yang memerlukan persetujuan eksplisit dari pengguna.

Android 5

5,0

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut beberapa peningkatan keamanan utama yang tersedia di Android 5.0:

  • Dienkripsi secara default. Pada perangkat yang dikirimkan dengan L out-of-the-box, enkripsi disk penuh diaktifkan secara default untuk meningkatkan perlindungan data di perangkat yang hilang atau dicuri. Perangkat yang diupdate ke L dapat dienkripsi di Setelan > Keamanan .
  • Peningkatan enkripsi disk penuh. Sandi pengguna dilindungi dari serangan brute force menggunakan scrypt dan, jika tersedia, kunci akan terikat ke keystore hardware untuk mencegah serangan di luar perangkat. Seperti biasa, secret kunci layar Android dan kunci enkripsi perangkat tidak dikirim dari perangkat atau diekspos ke aplikasi apa pun.
  • Sandbox Android yang diperkuat dengan SELinux . Android kini memerlukan SELinux dalam mode penerapan untuk semua domain. SELinux adalah sistem kontrol akses wajib (MAC) di kernel Linux yang digunakan untuk meningkatkan model keamanan kontrol akses diskresional (DAC) yang ada. Lapisan baru ini memberikan perlindungan tambahan terhadap potensi kerentanan keamanan.
  • Smart Lock. Android kini menyertakan trustlet yang memberikan fleksibilitas lebih untuk membuka kunci perangkat. Misalnya, trustlet dapat memungkinkan perangkat dibuka kuncinya secara otomatis saat berada di dekat perangkat tepercaya lainnya (melalui NFC, Bluetooth) atau digunakan oleh seseorang dengan wajah tepercaya.
  • Mode multi-pengguna, profil terbatas, dan tamu untuk ponsel dan tablet. Android kini menyediakan beberapa pengguna di ponsel dan menyertakan mode tamu yang dapat digunakan untuk memberikan akses sementara yang mudah ke perangkat Anda tanpa memberikan akses ke data dan aplikasi Anda.
  • Update ke WebView tanpa OTA. WebView kini dapat diupdate secara terpisah dari framework dan tanpa OTA sistem. Hal ini memungkinkan respons yang lebih cepat terhadap potensi masalah keamanan di WebView.
  • Kriptografi yang diperbarui untuk HTTPS dan TLS/SSL. TLSv1.2 dan TLSv1.1 kini diaktifkan, Forward Secrecy kini lebih disukai, AES-GCM kini diaktifkan, dan cipher suite yang lemah (MD5, 3DES, dan cipher suite ekspor) kini dinonaktifkan. Lihat https://developer.android.com/reference/javax/net/ssl/SSLSocket.html untuk mengetahui detail selengkapnya.
  • Dukungan penaut non-PIE dihapus. Android kini mewajibkan semua file yang dapat dieksekusi yang ditautkan secara dinamis untuk mendukung PIE (file yang dapat dieksekusi yang tidak bergantung pada posisi). Hal ini meningkatkan penerapan randomisasi tata letak ruang alamat (ASLR) Android.
  • Peningkatan FORTIFY_SOURCE. Fungsi libc berikut kini mengimplementasikan perlindungan FORTIFY_SOURCE: stpcpy(), stpncpy(), read(), recvfrom(), FD_CLR(), FD_SET(), dan FD_ISSET(). Hal ini memberikan perlindungan terhadap kerentanan kerusakan memori yang melibatkan fungsi tersebut.
  • Perbaikan Keamanan. Android 5.0 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah disediakan kepada pelanggan Open Handset Alliance, dan perbaikan tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama juga dapat menyertakan perbaikan ini.

Android 4 dan yang lebih lama

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan yang tersedia di Android 4.4:

  • Sandbox Android yang diperkuat dengan SELinux. Android kini menggunakan SELinux dalam mode penerapan. SELinux adalah sistem kontrol akses wajib (MAC) di kernel Linux yang digunakan untuk meningkatkan model keamanan berbasis kontrol akses diskresional (DAC) yang ada. Hal ini memberikan perlindungan tambahan terhadap potensi kerentanan keamanan.
  • VPN Per Pengguna. Di perangkat multi-pengguna, VPN kini diterapkan per pengguna. Hal ini dapat memungkinkan pengguna merutekan semua traffic jaringan melalui VPN tanpa memengaruhi pengguna lain di perangkat.
  • Dukungan Penyedia ECDSA di AndroidKeyStore. Android kini memiliki penyedia keystore yang memungkinkan penggunaan algoritma ECDSA dan DSA.
  • Peringatan Pemantauan Perangkat. Android memberikan peringatan kepada pengguna jika ada sertifikat yang telah ditambahkan ke penyimpanan sertifikat perangkat yang dapat memungkinkan pemantauan traffic jaringan terenkripsi.
  • FORTIFY_SOURCE. Android kini mendukung FORTIFY_SOURCE level 2, dan semua kode dikompilasi dengan perlindungan ini. FORTIFY_SOURCE telah ditingkatkan agar dapat digunakan dengan clang.
  • Penyematan Sertifikat. Android 4.4 mendeteksi dan mencegah penggunaan sertifikat Google yang menipu yang digunakan dalam komunikasi SSL/TLS yang aman.
  • Perbaikan Keamanan. Android 4.4 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada anggota Open Handset Alliance dan perbaikan tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama juga dapat menyertakan perbaikan ini.

Setiap rilis Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan yang tersedia di Android 4.3:

  • Sandbox Android yang diperkuat dengan SELinux. Rilis ini memperkuat sandbox Android menggunakan sistem kontrol akses wajib (MAC) SELinux di kernel Linux. Penguatan SELinux tidak terlihat oleh pengguna dan developer, serta menambahkan ketahanan ke model keamanan Android yang ada sekaligus mempertahankan kompatibilitas dengan aplikasi yang ada. Untuk memastikan kompatibilitas yang berkelanjutan, rilis ini mengizinkan penggunaan SELinux dalam mode permisif. Mode ini mencatat pelanggaran kebijakan, tetapi tidak akan merusak aplikasi atau memengaruhi perilaku sistem.
  • Tidak ada program setuid atau setgid. Menambahkan dukungan untuk kemampuan sistem file ke file sistem Android dan menghapus semua program setuid atau setgid. Hal ini akan mengurangi permukaan serangan root dan kemungkinan potensi kerentanan keamanan.
  • Autentikasi ADB. Mulai dari Android 4.2.2, koneksi ke ADB diautentikasi dengan pasangan kunci RSA. Tindakan ini mencegah penggunaan ADB yang tidak sah jika penyerang memiliki akses fisik ke perangkat.
  • Membatasi Setuid dari Aplikasi Android. Partisi /system kini di-mount nosuid untuk proses yang dibuat dari awal, sehingga mencegah aplikasi Android mengeksekusi program setuid. Hal ini akan mengurangi permukaan serangan root dan kemungkinan potensi kerentanan keamanan.
  • Pembatasan kemampuan. Zygote Android dan ADB kini menggunakan prctl(PR_CAPBSET_DROP) untuk menghapus kemampuan yang tidak diperlukan sebelum menjalankan aplikasi. Hal ini mencegah aplikasi Android dan aplikasi yang diluncurkan dari shell memperoleh kemampuan dengan hak istimewa.
  • Penyedia AndroidKeyStore. Android kini memiliki penyedia keystore yang memungkinkan aplikasi membuat kunci penggunaan eksklusif. Hal ini menyediakan API untuk membuat atau menyimpan kunci pribadi yang tidak dapat digunakan oleh aplikasi lain.
  • KeyChain isBoundKeyAlgorithm. Keychain API kini menyediakan metode (isBoundKeyType) yang memungkinkan aplikasi mengonfirmasi bahwa kunci di seluruh sistem terikat dengan root of trust hardware untuk perangkat. Hal ini menyediakan tempat untuk membuat atau menyimpan kunci pribadi yang tidak dapat diekspor dari perangkat, bahkan jika terjadi pelanggaran root.
  • NO_NEW_PRIVS. Zygote Android kini menggunakan prctl(PR_SET_NO_NEW_PRIVS) untuk memblokir penambahan hak istimewa baru sebelum kode aplikasi dieksekusi. Hal ini mencegah aplikasi Android melakukan operasi yang dapat meningkatkan hak istimewa melalui execve. (Tindakan ini memerlukan kernel Linux versi 3.5 atau yang lebih baru).
  • Peningkatan FORTIFY_SOURCE. Mengaktifkan FORTIFY_SOURCE di Android x86 dan MIPS serta memperkuat panggilan strchr(), strrchr(), strlen(), dan umask(). Hal ini dapat mendeteksi potensi kerentanan kerusakan memori atau konstanta string yang tidak diakhiri.
  • Perlindungan relokasi. Mengaktifkan relokasi hanya baca (relro) untuk file yang dapat dieksekusi yang ditautkan secara statis dan menghapus semua relokasi teks dalam kode Android. Hal ini memberikan pertahanan mendalam terhadap potensi kerentanan kerusakan memori.
  • EntropyMixer yang ditingkatkan. EntropyMixer kini menulis entropi saat dimatikan atau dimulai ulang, selain pencampuran berkala. Hal ini memungkinkan retensi semua entropi yang dihasilkan saat perangkat diaktifkan, dan sangat berguna untuk perangkat yang segera dimulai ulang setelah penyediaan.
  • Perbaikan keamanan. Android 4.3 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada pelanggan Open Handset Alliance dan perbaikan tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama juga dapat menyertakan perbaikan ini.

Android menyediakan model keamanan berlapis yang dijelaskan dalam Ringkasan Keamanan Android. Setiap update Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan yang diperkenalkan di Android 4.2:

  • Verifikasi aplikasi: Pengguna dapat memilih untuk mengaktifkan Verifikasi Aplikasi dan meminta aplikasi disaring oleh pemverifikasi aplikasi, sebelum penginstalan. Verifikasi aplikasi dapat memperingatkan pengguna jika mereka mencoba menginstal aplikasi yang mungkin berbahaya; jika aplikasi tidak layak, fitur ini dapat memblokir penginstalannya.
  • Kontrol yang lebih ketat atas SMS premium: Android memberikan notifikasi jika aplikasi mencoba mengirim SMS ke kode pendek yang menggunakan layanan premium yang dapat dikenai biaya tambahan. Pengguna dapat memilih apakah akan mengizinkan aplikasi mengirim pesan atau memblokirnya.
  • VPN yang selalu aktif: VPN dapat dikonfigurasi agar aplikasi tidak memiliki akses ke jaringan hingga koneksi VPN dibuat. Hal ini mencegah aplikasi mengirim data melalui jaringan lain.
  • Penyematan sertifikat: Library inti Android kini mendukung penyematan sertifikat. Domain yang disematkan akan mendapatkan kegagalan validasi sertifikat jika sertifikat tidak terhubung ke rangkaian sertifikat yang diharapkan. Hal ini akan memberikan perlindungan terhadap penyusupan certificate authority yang mungkin terjadi.
  • Peningkatan tampilan izin Android: Izin diatur ke dalam grup yang lebih mudah dipahami oleh pengguna. Selama peninjauan izin, pengguna dapat mengklik izin untuk melihat informasi yang lebih mendetail tentang izin tersebut.
  • Hardening installd: Daemon installd tidak berjalan sebagai pengguna root, sehingga mengurangi potensi permukaan serangan untuk eskalasi hak istimewa root.
  • hardening skrip init: skrip init kini menerapkan semantik O_NOFOLLOW untuk mencegah serangan terkait symlink.
  • FORTIFY_SOURCE: Android kini menerapkan FORTIFY_SOURCE. Ini digunakan oleh library dan aplikasi sistem untuk mencegah kerusakan memori.
  • Konfigurasi default ContentProvider: Aplikasi yang menargetkan API level 17 memiliki export yang disetel ke false secara default untuk setiap Content Provider, sehingga mengurangi kemunculan serangan default untuk aplikasi.
  • Kriptografi: Mengubah implementasi default SecureRandom dan Cipher.RSA untuk menggunakan OpenSSL. Menambahkan dukungan SSL Socket untuk TLSv1.1 dan TLSv1.2 menggunakan OpenSSL 1.0.1
  • Perbaikan keamanan: Library open source yang diupgrade dengan perbaikan keamanan mencakup WebKit, libpng, OpenSSL, dan LibXML. Android 4.2 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah disediakan kepada pelanggan Open Handset Alliance dan perbaikan tersedia di Project Open Source Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama juga dapat menyertakan perbaikan ini.

Android menyediakan model keamanan berlapis yang dijelaskan dalam Ringkasan Keamanan Android. Setiap update Android menyertakan puluhan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan yang diperkenalkan di Android versi 1.5 hingga 4.1:

Android 1.5
  • ProPolice untuk mencegah buffer stack overrun (-fstack-protector)
  • safe_iop untuk mengurangi overflow bilangan bulat
  • Ekstensi ke dlmalloc OpenBSD untuk mencegah kerentanan double free() dan untuk mencegah serangan penggabungan chunk. Serangan penggabungan chunk adalah cara umum untuk mengeksploitasi kerusakan heap.
  • OpenBSD calloc untuk mencegah overflow bilangan bulat selama alokasi memori
Android 2.3
  • Perlindungan kerentanan string format (-Wformat-security -Werror=format-security)
  • No eXecute (NX) berbasis hardware untuk mencegah eksekusi kode di stack dan heap
  • Linux mmap_min_addr untuk mengurangi eskalasi hak istimewa dereferensi pointer null (lebih ditingkatkan di Android 4.1)
Android 4.0
Address Space Layout Randomization (ASLR) untuk mengacak lokasi kunci dalam memori
Android 4.1
  • Dukungan PIE (Position Independent Executable)
  • Pemindahan hanya baca / binding langsung (-Wl,-z,relro -Wl,-z,now)
  • dmesg_restrict diaktifkan (menghindari kebocoran alamat kernel)
  • kptr_restrict diaktifkan (hindari kebocoran alamat kernel)