Peningkatan Keamanan

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

Android 14

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

  • AddressSanitizer (HWASan) berbantuan perangkat keras, yang diperkenalkan di Android 10, adalah alat pendeteksi kesalahan memori yang mirip dengan AddressSanitizer . Android 14 menghadirkan peningkatan signifikan pada HWASan. Pelajari bagaimana hal ini membantu mencegah bug masuk ke rilis Android, HWAddressSanitizer
  • Di Android 14, dimulai dengan aplikasi yang berbagi data lokasi dengan pihak ketiga, dialog izin runtime sistem kini menyertakan bagian yang dapat diklik yang menyoroti praktik berbagi data aplikasi, termasuk informasi seperti alasan aplikasi memutuskan untuk berbagi data dengan pihak ketiga. .
  • Android 12 memperkenalkan opsi untuk menonaktifkan dukungan 2G di tingkat modem, yang melindungi pengguna dari risiko keamanan bawaan dari model keamanan 2G yang sudah usang. Menyadari betapa pentingnya penonaktifan 2G bagi pelanggan perusahaan, Android 14 mengaktifkan fitur keamanan ini di Android Enterprise, memperkenalkan dukungan bagi admin IT untuk membatasi kemampuan perangkat yang dikelola untuk melakukan downgrade ke konektivitas 2G .
  • Menambahkan dukungan untuk menolak koneksi seluler yang terenkripsi-null, memastikan lalu lintas suara dan SMS berbasis sirkuit selalu terenkripsi dan dilindungi dari intersepsi pasif melalui udara. Pelajari lebih lanjut tentang program Android untuk memperkuat konektivitas seluler .
  • Menambahkan dukungan untuk beberapa IMEI
  • Sejak Android 14, AES-HCTR2 adalah mode enkripsi nama file pilihan untuk perangkat dengan instruksi 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 mengeluarkan pengecualian. Kami menyarankan agar aplikasi menghindari memuat kode secara dinamis bila memungkinkan, karena hal ini akan sangat meningkatkan risiko aplikasi dapat disusupi oleh injeksi kode atau gangguan kode.

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

Android 13

Setiap rilis Android menyertakan lusinan 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 lebih lanjut, lihat Kredensial Identitas
  • Di Android 13, maksud yang berasal dari aplikasi eksternal dikirimkan ke komponen yang diekspor jika dan hanya jika maksud tersebut cocok dengan elemen filter maksud yang dinyatakan.
  • Open Mobile API (OMAPI) adalah API standar yang digunakan untuk berkomunikasi dengan Elemen Aman perangkat. Sebelum Android 13, hanya aplikasi dan modul kerangka kerja yang memiliki akses ke antarmuka ini. Dengan mengubahnya menjadi antarmuka stabil vendor, modul HAL juga mampu berkomunikasi dengan elemen aman melalui layanan OMAPI. Untuk informasi selengkapnya, lihat Antarmuka Stabil Vendor OMAPI .
  • Mulai Android 13-QPR, UID bersama tidak digunakan lagi. Pengguna Android 13 atau lebih tinggi harus memasukkan baris `android:sharedUserMaxSdkVersion="32"` dalam manifesnya. Entri ini mencegah pengguna baru mendapatkan UID bersama. Untuk informasi lebih lanjut tentang UID, lihat Penandatanganan aplikasi .
  • Android 13 menambahkan dukungan primitif kriptografi simetris Keystore seperti AES (Advanced Encryption Standard), HMAC (Kened-Hash Message Authentication Code), dan algoritma kriptografi asimetris (termasuk Elliptic Curve, RSA2048, RSA4096, dan Curve 25519)
  • Android 13 (API level 33) dan yang lebih tinggi mendukung izin runtime untuk mengirimkan notifikasi yang tidak dikecualikan dari suatu aplikasi . Hal ini memberi pengguna kendali atas pemberitahuan izin mana yang mereka lihat.
  • Menambahkan perintah per penggunaan untuk aplikasi yang meminta akses ke semua log perangkat , memberi pengguna kemampuan untuk mengizinkan atau menolak akses.
  • memperkenalkan Android Virtualization Framework (AVF) , yang menyatukan berbagai hypervisor dalam satu kerangka kerja dengan API standar. Ini menyediakan lingkungan eksekusi yang aman dan privat untuk mengeksekusi beban kerja yang diisolasi oleh hypervisor.
  • Skema tanda tangan APK yang diperkenalkan v3.1 Semua rotasi kunci baru yang menggunakan apksigner akan menggunakan skema tanda tangan v3.1 secara default untuk menargetkan rotasi pada Android 13 dan lebih tinggi.

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

Android 12

Setiap rilis Android menyertakan lusinan peningkatan 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 peka terhadap perangkat dan memberikan lebih banyak kekhususan tentang jenis autentikasi mana yang dapat digunakan. Android 12 juga menyertakan dukungan untuk sensor sidik jari di bawah layar
  • Dukungan ditambahkan untuk sensor sidik jari di bawah layar
  • Pengenalan Bahasa Definisi Antarmuka Android Sidik Jari (AIDL)
  • Dukungan untuk Wajah AIDL baru
  • Pengenalan Rust sebagai bahasa untuk pengembangan platform
  • Opsi bagi pengguna untuk memberikan akses hanya ke perkiraan lokasi mereka ditambahkan
  • Menambahkan indikator Privasi pada bilah status saat aplikasi menggunakan kamera atau mikrofon
  • Inti Komputasi Pribadi (PCC) Android
  • Menambahkan opsi untuk menonaktifkan dukungan 2G

Android 11

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

Android 10

Setiap rilis Android menyertakan lusinan peningkatan keamanan untuk melindungi pengguna. Android 10 menyertakan beberapa peningkatan keamanan dan privasi. Lihat catatan rilis Android 10 untuk daftar lengkap perubahan di Android 10.

Keamanan

BatasPembersih

Android 10 menerapkan BoundsSanitizer (BoundSan) dalam Bluetooth dan codec. BoundSan menggunakan pembersih batas UBSan. Mitigasi ini diaktifkan pada tingkat per modul. Ini membantu menjaga komponen penting Android tetap aman dan tidak boleh dinonaktifkan. BoundSan diaktifkan di codec berikut:

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

Memori hanya eksekusi

Secara default, bagian kode yang dapat dieksekusi untuk biner sistem AArch64 ditandai sebagai hanya eksekusi (tidak dapat dibaca) sebagai mitigasi yang lebih kuat terhadap serangan penggunaan kembali kode just-in-time. Kode yang menggabungkan data dan kode bersama-sama dan kode yang dengan sengaja memeriksa bagian ini (tanpa memetakan ulang segmen memori terlebih dahulu agar dapat dibaca) tidak lagi berfungsi. Aplikasi dengan SDK target Android 10 (API level 29 atau lebih tinggi) akan terpengaruh jika aplikasi mencoba membaca bagian kode dari pustaka sistem yang mengaktifkan memori hanya eksekusi (XOM) di memori tanpa terlebih dahulu menandai bagian tersebut sebagai dapat dibaca.

Akses yang diperluas

Agen kepercayaan, mekanisme dasar yang digunakan oleh mekanisme autentikasi tersier seperti Smart Lock, hanya dapat memperluas pembukaan kunci di Android 10. Agen kepercayaan tidak lagi dapat membuka kunci perangkat yang terkunci dan hanya dapat membiarkan perangkat tetap terbuka kuncinya selama maksimal empat jam.

Otentikasi wajah

Otentikasi wajah memungkinkan pengguna membuka kunci perangkat hanya dengan melihat bagian depan perangkat. Android 10 menambahkan dukungan untuk tumpukan autentikasi wajah baru yang dapat memproses bingkai kamera dengan aman, menjaga keamanan dan privasi selama autentikasi wajah pada perangkat keras yang didukung. Android 10 juga menyediakan cara mudah untuk penerapan yang sesuai dengan keamanan guna mengaktifkan integrasi aplikasi untuk transaksi seperti perbankan online atau layanan lainnya.

Sanitasi Luapan Integer

Android 10 mengaktifkan Integer Overflow Sanitization (IntSan) dalam codec perangkat lunak. Pastikan performa pemutaran dapat diterima untuk codec apa pun yang tidak didukung di perangkat keras perangkat. IntSan diaktifkan di codec berikut:

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

Komponen sistem modular

Android 10 memodulasi beberapa komponen sistem Android dan memungkinkannya diperbarui di luar siklus rilis normal Android. Beberapa modul meliputi:

OEMKripto

Android 10 menggunakan OEMCrypto API versi 15.

Scudo

Scudo adalah pengalokasi memori mode pengguna dinamis yang dirancang agar lebih tahan terhadap kerentanan terkait heap. Ini menyediakan primitif alokasi dan dealokasi C standar, serta primitif C++.

ShadowCallStack

ShadowCallStack (SCS) adalah mode instrumentasi LLVM yang melindungi terhadap penimpaan alamat pengirim (seperti buffer overflows tumpukan) dengan menyimpan alamat pengirim fungsi ke instance ShadowCallStack yang dialokasikan secara terpisah dalam prolog fungsi fungsi nonleaf dan memuat alamat pengirim dari instance ShadowCallStack di epilog fungsi.

WPA3 dan Wi-Fi Ditingkatkan Terbuka

Android 10 menambahkan dukungan untuk Wi-Fi Protected Access 3 (WPA3) dan standar keamanan Wi-Fi Enhanced Open untuk memberikan privasi dan ketahanan yang lebih baik terhadap serangan yang diketahui.

Pribadi

Akses aplikasi saat menargetkan Android 9 atau lebih rendah

Jika aplikasi Anda berjalan di Android 10 atau lebih tinggi tetapi menargetkan Android 9 (API level 28) atau lebih rendah, platform akan menerapkan perilaku berikut:

  • Jika aplikasi Anda mendeklarasikan elemen <uses-permission> untuk ACCESS_FINE_LOCATION atau ACCESS_COARSE_LOCATION , sistem secara otomatis menambahkan elemen <uses-permission> untuk ACCESS_BACKGROUND_LOCATION selama instalasi.
  • Jika aplikasi Anda meminta ACCESS_FINE_LOCATION atau ACCESS_COARSE_LOCATION , sistem secara otomatis menambahkan ACCESS_BACKGROUND_LOCATION ke permintaan tersebut.

Pembatasan aktivitas latar belakang

Mulai Android 10, sistem memberlakukan pembatasan untuk memulai aktivitas dari latar belakang . Perubahan perilaku ini membantu meminimalkan gangguan bagi pengguna dan membuat pengguna lebih mengontrol apa yang ditampilkan di layarnya. Selama aplikasi Anda memulai aktivitas sebagai akibat langsung dari interaksi pengguna, kemungkinan besar aplikasi Anda tidak terpengaruh oleh pembatasan ini.
Untuk mempelajari lebih lanjut alternatif yang direkomendasikan untuk memulai aktivitas dari latar belakang, lihat panduan tentang cara memperingatkan pengguna tentang peristiwa sensitif waktu di aplikasi Anda.

Metadata kamera

Android 10 mengubah luasnya informasi yang dikembalikan metode getCameraCharacteristics() secara default. Secara khusus, aplikasi Anda harus memiliki izin CAMERA agar dapat mengakses metadata khusus perangkat yang disertakan dalam nilai kembalian metode ini.
Untuk mempelajari lebih lanjut tentang perubahan ini, lihat bagian tentang bidang kamera yang memerlukan izin .

Data papan klip

Kecuali jika aplikasi Anda adalah editor metode masukan (IME) default atau merupakan aplikasi yang saat ini memiliki fokus, aplikasi Anda tidak dapat mengakses data papan klip di Android 10 atau lebih tinggi.

Lokasi perangkat

Untuk mendukung kontrol tambahan yang dimiliki pengguna atas akses aplikasi ke informasi lokasi, Android 10 memperkenalkan izin ACCESS_BACKGROUND_LOCATION .
Berbeda dengan izin ACCESS_FINE_LOCATION dan ACCESS_COARSE_LOCATION , izin ACCESS_BACKGROUND_LOCATION hanya memengaruhi akses aplikasi ke lokasi saat berjalan di latar belakang. Suatu aplikasi dianggap mengakses lokasi di latar belakang kecuali salah satu kondisi berikut terpenuhi:

  • Aktivitas milik aplikasi terlihat.
  • Aplikasi menjalankan layanan latar depan yang telah mendeklarasikan jenis locationlayanan latar depan .
    Untuk mendeklarasikan jenis layanan latar depan untuk layanan di aplikasi Anda, setel targetSdkVersion atau compileSdkVersion aplikasi Anda ke 29 atau lebih tinggi. Pelajari lebih lanjut tentang bagaimana layanan latar depan dapat melanjutkan tindakan yang dimulai pengguna yang memerlukan akses ke lokasi.

Penyimpanan luar

Secara default, aplikasi yang menargetkan Android 10 dan lebih tinggi diberikan akses terbatas ke penyimpanan eksternal , atau penyimpanan terbatas . Aplikasi tersebut dapat melihat jenis file berikut dalam perangkat penyimpanan eksternal tanpa perlu meminta izin pengguna terkait penyimpanan apa pun:

Untuk mempelajari lebih lanjut tentang penyimpanan terbatas, serta cara berbagi, mengakses, dan mengubah file yang disimpan di perangkat penyimpanan eksternal, lihat panduan tentang cara mengelola file di penyimpanan eksternal serta mengakses dan memodifikasi file media .

Pengacakan alamat MAC

Pada perangkat yang menjalankan Android 10 atau lebih tinggi, sistem mengirimkan alamat MAC acak secara default.
Jika aplikasi Anda menangani kasus penggunaan perusahaan , platform menyediakan API untuk beberapa operasi yang terkait dengan alamat MAC:

  • Dapatkan alamat MAC acak : Aplikasi pemilik perangkat dan aplikasi pemilik profil dapat mengambil alamat MAC acak yang ditetapkan ke jaringan tertentu dengan memanggil getRandomizedMacAddress() .
  • Dapatkan alamat MAC pabrik yang sebenarnya: Aplikasi pemilik perangkat dapat mengambil alamat MAC perangkat keras perangkat yang sebenarnya dengan memanggil getWifiMacAddress() . Metode ini berguna untuk melacak armada perangkat.

Pengidentifikasi perangkat yang tidak dapat disetel ulang

Mulai Android 10, aplikasi harus memiliki izin istimewa READ_PRIVILEGED_PHONE_STATE agar dapat mengakses pengenal perangkat yang tidak dapat disetel ulang, yang mencakup IMEI dan nomor seri.

Jika aplikasi Anda tidak memiliki izin dan Anda tetap mencoba meminta informasi tentang pengenal yang tidak dapat disetel ulang, respons platform akan bervariasi berdasarkan versi SDK target:

  • Jika aplikasi Anda menargetkan Android 10 atau lebih tinggi, SecurityException akan terjadi.
  • Jika aplikasi Anda menargetkan Android 9 (API level 28) atau lebih rendah, metode ini akan mengembalikan data null atau placeholder jika aplikasi memiliki izin READ_PHONE_STATE . Jika tidak, SecurityException akan terjadi.

Pengenalan aktivitas fisik

Android 10 memperkenalkan izin runtime android.permission.ACTIVITY_RECOGNITION untuk aplikasi yang perlu mendeteksi jumlah langkah pengguna atau mengklasifikasikan aktivitas fisik pengguna, seperti berjalan kaki, bersepeda, atau bergerak di dalam kendaraan. Hal ini dirancang untuk memberikan visibilitas kepada pengguna tentang bagaimana data sensor perangkat digunakan di Pengaturan.
Beberapa perpustakaan dalam layanan Google Play, seperti API Pengenalan Aktivitas dan API Google Fit , tidak memberikan hasil kecuali pengguna telah memberikan izin ini kepada aplikasi Anda.
Satu-satunya sensor bawaan pada perangkat yang mengharuskan Anda menyatakan izin ini adalah sensor penghitung langkah dan pendeteksi langkah .
Jika aplikasi Anda menargetkan Android 9 (API level 28) atau lebih rendah, sistem akan secara otomatis memberikan izin android.permission.ACTIVITY_RECOGNITION ke aplikasi Anda, sesuai kebutuhan, jika aplikasi Anda memenuhi setiap kondisi berikut:

  • File manifes menyertakan izin com.google.android.gms.permission.ACTIVITY_RECOGNITION .
  • File manifes tidak menyertakan izin android.permission.ACTIVITY_RECOGNITION .

Jika system-auto memberikan izin android.permission.ACTIVITY_RECOGNITION , aplikasi Anda akan tetap memiliki izin tersebut setelah Anda mengupdate aplikasi untuk menargetkan Android 10. Namun, pengguna dapat mencabut izin ini kapan saja di setelan sistem.

/proc/net pembatasan sistem file

Pada perangkat yang menjalankan Android 10 atau lebih tinggi, aplikasi tidak dapat mengakses /proc/net , yang berisi informasi tentang status jaringan perangkat. Aplikasi yang memerlukan akses ke informasi ini, seperti VPN, harus menggunakan kelas NetworkStatsManager atau ConnectivityManager .

Grup izin dihapus dari UI

Mulai Android 10, aplikasi tidak dapat mencari cara izin dikelompokkan di UI.

Penghapusan afinitas kontak

Mulai Android 10, platform ini tidak melacak informasi afinitas kontak. Akibatnya, jika aplikasi Anda melakukan penelusuran pada kontak pengguna, hasilnya tidak diurutkan berdasarkan frekuensi interaksi.
Panduan tentang ContactsProvider berisi pemberitahuan yang menjelaskan bidang dan metode spesifik yang tidak berlaku lagi di semua perangkat mulai Android 10.

Akses terbatas ke konten layar

Untuk melindungi konten layar pengguna, Android 10 mencegah akses senyap ke konten layar perangkat dengan mengubah cakupan izin READ_FRAME_BUFFER , CAPTURE_VIDEO_OUTPUT , dan CAPTURE_SECURE_VIDEO_OUTPUT . Pada Android 10, izin ini hanya untuk akses tanda tangan .
Aplikasi yang perlu mengakses konten layar perangkat harus menggunakan MediaProjection API, yang menampilkan perintah yang meminta pengguna untuk memberikan persetujuan.

Nomor seri perangkat USB

Jika aplikasi Anda menargetkan Android 10 atau lebih tinggi, aplikasi Anda tidak dapat membaca nomor seri hingga pengguna memberikan izin kepada aplikasi Anda untuk mengakses perangkat USB atau aksesori.
Untuk mempelajari lebih lanjut tentang bekerja dengan perangkat USB, lihat panduan tentang cara mengkonfigurasi host USB .

Wifi

Aplikasi yang menargetkan Android 10 atau lebih tinggi tidak dapat mengaktifkan atau menonaktifkan Wi-Fi. Metode WifiManager.setWifiEnabled() selalu mengembalikan false .
Jika Anda perlu meminta pengguna untuk mengaktifkan dan menonaktifkan Wi-Fi, gunakan panel pengaturan .

Pembatasan akses langsung ke jaringan Wi-Fi yang dikonfigurasi

Untuk melindungi privasi pengguna, konfigurasi manual daftar jaringan Wi-Fi dibatasi untuk aplikasi sistem dan pengontrol kebijakan perangkat (DPC) . DPC tertentu dapat berupa pemilik perangkat atau pemilik profil.
Jika aplikasi Anda menargetkan Android 10 atau lebih tinggi, dan itu bukan aplikasi sistem atau DPC, metode berikut tidak akan menghasilkan data yang berguna:

Android 9

Setiap rilis Android menyertakan lusinan 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 lusinan peningkatan keamanan untuk melindungi pengguna. Berikut adalah beberapa peningkatan keamanan utama yang tersedia di Android 8.0:

  • Enkripsi . Menambahkan dukungan untuk mengeluarkan kunci di profil kerja.
  • Boot Terverifikasi . Menambahkan Boot Terverifikasi Android (AVB). Basis kode Boot Terverifikasi yang mendukung perlindungan rollback untuk digunakan dalam boot loader yang ditambahkan ke AOSP. Merekomendasikan dukungan bootloader untuk perlindungan rollback untuk HLOS. Rekomendasikan pemuat boot hanya dapat dibuka kuncinya oleh pengguna yang berinteraksi secara fisik dengan perangkat.
  • Kunci layar . Menambahkan dukungan untuk menggunakan perangkat keras tahan kerusakan untuk memverifikasi kredensial layar kunci.
  • Toko Kunci . Pengesahan kunci yang diperlukan untuk semua perangkat yang dikirimkan dengan Android 8.0+. Menambahkan dukungan pengesahan ID untuk meningkatkan Pendaftaran Zero Touch.
  • Kotak pasir . Lebih ketat sandbox banyak komponen menggunakan antarmuka standar Project Treble antara kerangka kerja dan komponen khusus perangkat. Pemfilteran seccomp yang diterapkan ke semua aplikasi yang tidak tepercaya untuk mengurangi permukaan serangan kernel. WebView sekarang dijalankan dalam proses yang terisolasi dengan akses yang sangat terbatas ke seluruh sistem.
  • Pengerasan kernel . Menerapkan hardened usercopy , emulasi PAN, read-only setelah init, dan KASLR.
  • Pengerasan ruang pengguna . CFI yang diterapkan untuk tumpukan media. Hamparan aplikasi tidak lagi dapat menutupi jendela kritis sistem dan pengguna memiliki cara untuk menutupnya.
  • Pembaruan OS streaming . Pembaruan yang diaktifkan pada perangkat yang memiliki ruang disk rendah.
  • Instal aplikasi yang tidak dikenal . Pengguna harus memberikan izin untuk menginstal aplikasi dari sumber yang bukan toko aplikasi pihak pertama.
  • Privasi . Android ID (SSAID) memiliki nilai yang berbeda untuk setiap aplikasi dan setiap pengguna di perangkat. Untuk aplikasi browser web, ID Klien Widevine mengembalikan nilai yang berbeda untuk setiap nama paket aplikasi dan asal web. net.hostname sekarang kosong dan klien dhcp tidak lagi mengirimkan nama host. android.os.Build.SERIAL telah diganti dengan Build.SERIAL API yang dilindungi dengan izin yang dikontrol pengguna. Peningkatan pengacakan alamat MAC di beberapa chipset.

Android 7

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

  • Enkripsi berbasis file . Mengenkripsi pada tingkat file, alih-alih mengenkripsi seluruh area penyimpanan sebagai satu unit, lebih baik mengisolasi dan melindungi pengguna dan profil individu (seperti pribadi dan kantor) pada perangkat.
  • Booting Langsung . Diaktifkan oleh enkripsi berbasis file, Direct Boot memungkinkan aplikasi tertentu seperti jam alarm dan fitur aksesibilitas untuk berjalan saat perangkat dihidupkan tetapi tidak dibuka kuncinya.
  • Boot Terverifikasi . Boot Terverifikasi sekarang diberlakukan secara ketat untuk mencegah perangkat yang disusupi melakukan booting; mendukung koreksi kesalahan untuk meningkatkan keandalan terhadap korupsi data yang tidak berbahaya.
  • SELinux . Konfigurasi SELinux yang diperbarui dan peningkatan cakupan seccomp semakin mengunci kotak pasir aplikasi dan mengurangi permukaan serangan.
  • Pengacakan urutan pemuatan perpustakaan dan ASLR yang ditingkatkan . Peningkatan keacakan membuat beberapa serangan penggunaan kembali kode kurang dapat diandalkan.
  • Pengerasan kernel . Menambahkan perlindungan memori tambahan untuk kernel yang lebih baru dengan menandai bagian dari memori kernel sebagai hanya-baca, membatasi akses kernel ke alamat ruang pengguna dan selanjutnya mengurangi permukaan serangan yang ada.
  • Skema tanda tangan APK v2 . Memperkenalkan skema tanda tangan seluruh file yang meningkatkan kecepatan verifikasi dan memperkuat jaminan integritas.
  • Toko CA tepercaya . Untuk memudahkan aplikasi mengontrol akses ke lalu lintas jaringan amannya, otoritas sertifikat yang dipasang 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 toko CA tepercaya yang sama.
  • Konfigurasi Keamanan Jaringan . Konfigurasikan keamanan jaringan dan TLS melalui file konfigurasi deklaratif.

Android 6

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

  • Izin Waktu Proses . Aplikasi meminta izin saat runtime alih-alih diberikan pada waktu penginstalan Aplikasi. Pengguna dapat mengaktifkan dan menonaktifkan izin untuk aplikasi M dan pra-M.
  • Boot Terverifikasi . Serangkaian pemeriksaan kriptografi perangkat lunak sistem dilakukan sebelum eksekusi untuk memastikan ponsel sehat dari bootloader hingga sistem operasi.
  • Keamanan Terisolasi Perangkat Keras . Lapisan Abstraksi Perangkat Keras (HAL) baru yang digunakan oleh API Sidik Jari, Layar Kunci, Enkripsi Perangkat, dan Sertifikat Klien untuk melindungi kunci dari kompromi kernel dan/atau serangan fisik lokal
  • Sidik jari . Perangkat sekarang dapat dibuka hanya dengan satu sentuhan. Pengembang juga dapat memanfaatkan API baru untuk menggunakan sidik jari untuk 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., namun tetap dilindungi oleh enkripsi tingkat blok.
  • Hapus Lalu Lintas Teks . Pengembang dapat menggunakan StrictMode baru untuk memastikan aplikasi mereka tidak menggunakan teks yang jelas.
  • Pengerasan Sistem . Pengerasan sistem melalui kebijakan yang diberlakukan oleh SELinux. Ini menawarkan isolasi yang lebih baik antara pengguna, pemfilteran IOCTL, mengurangi ancaman layanan yang terbuka, pengetatan lebih lanjut dari domain SELinux, dan akses /proc yang sangat terbatas.
  • Kontrol Akses USB: Pengguna harus mengonfirmasi untuk mengizinkan akses USB ke file, penyimpanan, atau fungsi lain di telepon. Default sekarang hanya dikenakan biaya dengan akses ke penyimpanan yang memerlukan persetujuan eksplisit dari pengguna.

Android 5

5.0

Setiap rilis Android menyertakan lusinan peningkatan keamanan untuk melindungi pengguna. Berikut adalah 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 pada perangkat yang hilang atau dicuri. Perangkat yang diperbarui ke L dapat dienkripsi di Pengaturan > Keamanan .
  • Peningkatan enkripsi disk penuh. Kata sandi pengguna dilindungi dari serangan brute force menggunakan scrypt dan, jika tersedia, kuncinya terikat ke keystore perangkat keras untuk mencegah serangan di luar perangkat. Seperti biasa, rahasia kunci layar Android dan kunci enkripsi perangkat tidak dikirim dari perangkat atau terpapar ke aplikasi apa pun.
  • Sandbox Android diperkuat dengan SELinux . Android sekarang membutuhkan SELinux dalam mode penegakan untuk semua domain. SELinux adalah sistem kontrol akses wajib (MAC) di kernel Linux yang digunakan untuk menambah model keamanan kontrol akses diskresioner (DAC) yang ada. Lapisan baru ini memberikan perlindungan tambahan terhadap potensi kerentanan keamanan.
  • Kunci Cerdas. Android kini menyertakan trustlet yang memberikan lebih banyak fleksibilitas untuk membuka kunci perangkat. Misalnya, trustlet dapat memungkinkan perangkat dibuka kuncinya secara otomatis saat dekat dengan perangkat tepercaya lainnya (melalui NFC, Bluetooth) atau digunakan oleh seseorang dengan wajah tepercaya.
  • Multi pengguna, profil terbatas, dan mode tamu untuk ponsel & tablet. Android sekarang menyediakan banyak pengguna di ponsel dan menyertakan mode tamu yang dapat digunakan untuk menyediakan akses sementara yang mudah ke perangkat Anda tanpa memberikan akses ke data dan aplikasi Anda.
  • Pembaruan untuk WebView tanpa OTA. WebView sekarang dapat diperbarui secara independen dari kerangka kerja dan tanpa sistem OTA. Ini akan memungkinkan respons yang lebih cepat terhadap potensi masalah keamanan di WebView.
  • Kriptografi yang diperbarui untuk HTTPS dan TLS/SSL. TLSv1.2 dan TLSv1.1 sekarang diaktifkan, Forward Secrecy sekarang lebih disukai, AES-GCM sekarang diaktifkan, dan cipher suites yang lemah (MD5, 3DES, dan export cipher suites) sekarang dinonaktifkan. Lihat https://developer.android.com/reference/javax/net/ssl/SSLSocket.html untuk detail lebih lanjut.
  • dukungan penaut non-PIE dihapus. Android sekarang membutuhkan semua executable yang terhubung secara dinamis untuk mendukung PIE (executable independen posisi). Ini meningkatkan implementasi pengacakan tata letak ruang alamat (ASLR) Android.
  • FORTIFY_SOURCE peningkatan. Fungsi libc berikut sekarang mengimplementasikan perlindungan FORTIFY_SOURCE: stpcpy() , stpncpy() , read() , recvfrom() , FD_CLR() , FD_SET() , dan FD_ISSET() . Ini memberikan perlindungan terhadap kerentanan kerusakan memori yang melibatkan fungsi-fungsi tersebut.
  • Perbaikan Keamanan. Android 5.0 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada anggota Open Handset Alliance, dan perbaikannya tersedia di Android Open Source Project. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama mungkin juga menyertakan perbaikan ini.

Android 4 dan lebih rendah

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

  • Sandbox Android diperkuat dengan SELinux. Android sekarang menggunakan SELinux dalam mode penegakan. SELinux adalah sistem kontrol akses wajib (MAC) di kernel Linux yang digunakan untuk menambah model keamanan berbasis kontrol akses diskresioner (DAC). Ini memberikan perlindungan tambahan terhadap potensi kerentanan keamanan.
  • Per Pengguna VPN. Pada perangkat multi-pengguna, VPN sekarang diterapkan per pengguna. Ini dapat memungkinkan pengguna untuk merutekan semua lalu lintas jaringan melalui VPN tanpa memengaruhi pengguna lain di perangkat.
  • Dukungan Penyedia ECDSA di AndroidKeyStore. Android kini memiliki penyedia keystore yang memungkinkan penggunaan algoritme 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 lalu lintas jaringan terenkripsi.
  • FORTIFY_SOURCE. Android sekarang mendukung FORTIFY_SOURCE level 2, dan semua kode dikompilasi dengan perlindungan ini. FORTIFY_SOURCE telah ditingkatkan untuk bekerja dengan dentang.
  • Penyematan Sertifikat. Android 4.4 mendeteksi dan mencegah penggunaan sertifikat Google palsu 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 perbaikannya tersedia di Android Open Source Project. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama mungkin juga menyertakan perbaikan ini.

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

  • Sandbox Android 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 pengembang, dan menambah ketahanan pada model keamanan Android yang sudah ada sambil tetap menjaga kompatibilitas dengan aplikasi yang sudah ada. Untuk memastikan kompatibilitas lanjutan, rilis ini mengizinkan penggunaan SELinux dalam mode permisif. Mode ini mencatat pelanggaran kebijakan apa pun, namun tidak akan merusak aplikasi atau memengaruhi perilaku sistem.
  • Tidak ada program setuid/setgid. Menambahkan dukungan untuk kemampuan sistem file ke file sistem Android dan menghapus semua program setuid/setguid. Hal ini mengurangi permukaan serangan root dan kemungkinan potensi kerentanan keamanan.
  • Otentikasi ADB. Sejak Android 4.2.2, koneksi ke ADB diautentikasi dengan pasangan kunci RSA. Hal ini mencegah penggunaan ADB yang tidak sah ketika penyerang memiliki akses fisik ke perangkat.
  • Batasi Setuid dari Aplikasi Android. Partisi /system sekarang dipasang tanpa suid untuk proses yang menghasilkan zygote, mencegah aplikasi Android menjalankan program setuid. Hal ini mengurangi permukaan serangan root dan kemungkinan potensi kerentanan keamanan.
  • Batasan kemampuan. Android zygote dan ADB sekarang menggunakan prctl(PR_CAPBSET_DROP) untuk menghilangkan kemampuan yang tidak perlu sebelum menjalankan aplikasi. Hal ini mencegah aplikasi Android dan aplikasi yang diluncurkan dari shell memperoleh kemampuan istimewa.
  • Penyedia AndroidKeyStore. Android kini memiliki penyedia keystore yang memungkinkan aplikasi membuat kunci penggunaan eksklusif. Ini memberi aplikasi API untuk membuat atau menyimpan kunci pribadi yang tidak dapat digunakan oleh aplikasi lain.
  • Gantungan Kunci adalah Algoritma Kunci Terikat. API Rantai Kunci kini menyediakan metode (isBoundKeyType) yang memungkinkan aplikasi mengonfirmasi bahwa kunci seluruh sistem terikat pada akar kepercayaan perangkat keras untuk perangkat tersebut. Ini menyediakan tempat untuk membuat atau menyimpan kunci pribadi yang tidak dapat diekspor dari perangkat, bahkan jika terjadi peretasan root.
  • TIDAK_BARU_PRIVS. Android zygote sekarang 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. (Ini memerlukan kernel Linux versi 3.5 atau lebih tinggi).
  • FORTIFY_SOURCE penyempurnaan. Mengaktifkan FORTIFY_SOURCE di Android x86 dan MIPS serta panggilan strchr(), strrchr(), strlen(), dan umask() yang difortifikasi. Ini dapat mendeteksi potensi kerentanan kerusakan memori atau konstanta string yang tidak diakhiri.
  • Perlindungan relokasi. Mengaktifkan relokasi hanya baca (relro) untuk executable yang tertaut secara statis dan menghapus semua relokasi teks dalam kode Android. Hal ini memberikan pertahanan mendalam terhadap potensi kerentanan kerusakan memori.
  • EntropyMixer yang ditingkatkan. EntropyMixer sekarang menulis entropi saat shutdown/reboot, selain pencampuran berkala. Hal ini memungkinkan penyimpanan semua entropi yang dihasilkan saat perangkat dihidupkan, dan khususnya berguna untuk perangkat yang di-boot ulang segera setelah penyediaan.
  • Perbaikan Keamanan. Android 4.3 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada anggota Open Handset Alliance dan perbaikan tersedia di Proyek Sumber Terbuka Android. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android sebelumnya mungkin juga menyertakan perbaikan ini.

Android menyediakan model keamanan berlapis yang dijelaskan dalam Ikhtisar Keamanan Android . Setiap pembaruan untuk Android menyertakan lusinan peningkatan keamanan untuk melindungi pengguna. Berikut ini adalah beberapa peningkatan keamanan yang diperkenalkan di Android 4.2:

  • Verifikasi aplikasi - Pengguna dapat memilih untuk mengaktifkan "Verifikasi Aplikasi" dan aplikasi disaring oleh pemverifikasi aplikasi, sebelum pemasangan. Verifikasi aplikasi dapat memperingatkan pengguna jika mereka mencoba memasang aplikasi yang mungkin berbahaya; jika aplikasi sangat buruk, itu dapat memblokir instalasi.
  • Lebih banyak kontrol SMS premium - Android akan memberikan pemberitahuan jika aplikasi mencoba mengirim SMS ke kode pendek yang menggunakan layanan premium yang dapat menyebabkan biaya tambahan. Pengguna dapat memilih apakah akan mengizinkan aplikasi mengirim pesan atau memblokirnya.
  • VPN selalu aktif - VPN dapat dikonfigurasi sehingga aplikasi tidak akan memiliki akses ke jaringan hingga koneksi VPN dibuat. Ini mencegah aplikasi mengirim data melalui jaringan lain.
  • Penyematan Sertifikat - Pustaka inti Android sekarang mendukung penyematan sertifikat . Domain yang disematkan akan menerima kegagalan validasi sertifikat jika sertifikat tidak terhubung ke serangkaian sertifikat yang diharapkan. Ini melindungi terhadap kemungkinan kompromi dari Otoritas Sertifikat.
  • Tampilan izin Android yang ditingkatkan - Izin telah diatur ke dalam grup yang lebih mudah dipahami oleh pengguna. Selama peninjauan izin, pengguna dapat mengklik izin untuk melihat informasi lebih rinci tentang izin tersebut.
  • installd hardening - Daemon yang diinstal tidak berjalan sebagai pengguna root, mengurangi potensi serangan permukaan untuk eskalasi hak akses root.
  • pengerasan skrip init - skrip init sekarang menerapkan semantik O_NOFOLLOW untuk mencegah serangan terkait symlink.
  • FORTIFY_SOURCE - Android sekarang mengimplementasikan FORTIFY_SOURCE . Ini digunakan oleh perpustakaan sistem dan aplikasi untuk mencegah kerusakan memori.
  • Konfigurasi default ContentProvider - Aplikasi yang menargetkan API level 17 akan "ekspor" disetel ke "false" secara default untuk setiap Penyedia Konten , mengurangi permukaan serangan default untuk aplikasi.
  • Kriptografi - Memodifikasi implementasi default SecureRandom dan Cipher.RSA untuk menggunakan OpenSSL. Menambahkan dukungan Soket SSL untuk TLSv1.1 dan TLSv1.2 menggunakan OpenSSL 1.0.1
  • Perbaikan Keamanan - Pustaka open source yang ditingkatkan dengan perbaikan keamanan termasuk WebKit, libpng, OpenSSL, dan LibXML. Android 4.2 juga menyertakan perbaikan untuk kerentanan khusus Android. Informasi tentang kerentanan ini telah diberikan kepada anggota Open Handset Alliance dan perbaikannya tersedia di Android Open Source Project. Untuk meningkatkan keamanan, beberapa perangkat dengan versi Android yang lebih lama mungkin juga menyertakan perbaikan ini.

Android menyediakan model keamanan berlapis yang dijelaskan dalam Ikhtisar Keamanan Android . Setiap pembaruan untuk Android menyertakan lusinan peningkatan keamanan untuk melindungi pengguna. Berikut ini adalah beberapa peningkatan keamanan yang diperkenalkan di Android versi 1.5 hingga 4.1:

Android 1.5
  • ProPolice untuk mencegah stack buffer overruns (-fstack-protector)
  • safe_iop untuk mengurangi integer overflows
  • Ekstensi ke OpenBSD dlmalloc untuk mencegah kerentanan double free() dan untuk mencegah serangan konsolidasi chunk. Serangan konsolidasi potongan adalah cara umum untuk mengeksploitasi korupsi tumpukan.
  • Calloc OpenBSD untuk mencegah integer overflows selama alokasi memori
Android 2.3
  • Format perlindungan kerentanan string (-Wformat-security -Werror=format-security)
  • No eXecute (NX) berbasis perangkat keras untuk mencegah eksekusi kode pada tumpukan dan tumpukan
  • Linux mmap_min_addr untuk mengurangi eskalasi hak istimewa dereferensi penunjuk nol (lebih ditingkatkan di Android 4.1)
Android 4.0
Address Space Layout Randomization (ASLR) untuk mengacak lokasi kunci di memori
Android 4.1
  • Dukungan PIE (Position Independent Executable)
  • Relokasi baca-saja / pengikatan langsung (-Wl,-z,relro -Wl,-z,sekarang)
  • dmesg_restrict diaktifkan (hindari kebocoran alamat kernel)
  • kptr_restrict diaktifkan (hindari kebocoran alamat kernel)