การปรับปรุงการรักษาความปลอดภัย

Android ปรับปรุงความสามารถและข้อเสนอด้านความปลอดภัยอย่างต่อเนื่อง ดูรายการการปรับปรุงตามรุ่นในการนําทางด้านซ้าย

Android 14

Android ทุกรุ่นมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ ต่อไปนี้คือการเพิ่มประสิทธิภาพด้านความปลอดภัยที่สำคัญบางส่วนที่มีให้ใน Android 14

  • AddressSanitizer ที่ได้รับการสนับสนุนจากฮาร์ดแวร์ (HWASan) ซึ่งเปิดตัวใน Android 10 เป็นเครื่องมือตรวจหาข้อผิดพลาดเกี่ยวกับหน่วยความจำที่คล้ายกับ AddressSanitizer Android 14 มีการปรับปรุง HWASan อย่างมาก ดูวิธีที่ HWAddressSanitizer ช่วยป้องกันไม่ให้ข้อบกพร่องปรากฏในรุ่น Android
  • ใน Android 14 กล่องโต้ตอบสิทธิ์รันไทม์ของระบบจะมีส่วนใหม่ที่คลิกได้ซึ่งไฮไลต์แนวทางปฏิบัติด้านการแชร์ข้อมูลของแอป ซึ่งรวมถึงข้อมูลต่างๆ เช่น เหตุผลที่แอปอาจเลือกที่จะแชร์ข้อมูลกับบุคคลที่สาม
  • Android 12 ได้เปิดตัวตัวเลือกในการปิดใช้การรองรับ 2G ที่ระดับโมเด็ม ซึ่งจะช่วยปกป้องผู้ใช้จากความเสี่ยงด้านความปลอดภัยที่มีอยู่เดิมจากรูปแบบการรักษาความปลอดภัยที่ล้าสมัยของ 2G Android 14 เปิดใช้ฟีเจอร์ด้านความปลอดภัยนี้ใน Android Enterprise เพื่อรองรับผู้ดูแลระบบไอทีในการจำกัดความสามารถของอุปกรณ์ที่มีการจัดการไม่ให้ดาวน์เกรดเป็นการเชื่อมต่อ 2G เนื่องจากตระหนักดีว่าการปิดใช้ 2G สำคัญกับลูกค้าองค์กรเพียงใด
  • เพิ่มการรองรับเพื่อปฏิเสธการเชื่อมต่อมือถือที่เข้ารหัส Null เพื่อให้การรับส่งข้อมูลเสียงและ SMS แบบใช้วงจรสวิตช์ได้รับการเข้ารหัสและปกป้องจากการดักรับข้อมูลแบบแพสซีฟทางอากาศเสมอ ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมของ Android เพื่อเพิ่มความแข็งแกร่งให้กับการเชื่อมต่อมือถือ
  • เพิ่มการรองรับ IMEI หลายรายการ
  • ตั้งแต่ Android 14 เป็นต้นไป AES-HCTR2 เป็นโหมดการเข้ารหัสชื่อไฟล์ที่แนะนำสำหรับอุปกรณ์ที่มีคำสั่งการเข้ารหัสแบบเร่ง
  • การเชื่อมต่อเครือข่ายมือถือ
  • เพิ่มเอกสารประกอบสำหรับ Safety Center ของ Android
  • หากแอปกำหนดเป้าหมายเป็น Android 14 และใช้การโหลดโค้ดแบบไดนามิก (DCL) ไฟล์ที่โหลดแบบไดนามิกทั้งหมดต้องทําเครื่องหมายเป็นแบบอ่านอย่างเดียว มิฉะนั้น ระบบจะแสดงข้อยกเว้น เราขอแนะนำให้แอปหลีกเลี่ยงการโหลดโค้ดแบบไดนามิกทุกครั้งที่ทำได้ เนื่องจากการดำเนินการดังกล่าวจะเพิ่มความเสี่ยงอย่างมากที่แอปจะถูกแทรกโค้ดหรือมีการดัดแปลงโค้ด

โปรดดูบันทึกประจำรุ่นของ AOSP แบบเต็ม และฟีเจอร์และรายการการเปลี่ยนแปลงของนักพัฒนาแอป Android

Android 13

Android ทุกเวอร์ชันมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ ต่อไปนี้คือการเพิ่มประสิทธิภาพด้านความปลอดภัยที่สำคัญบางส่วนที่มีให้ใน Android 13

  • Android 13 เพิ่มการรองรับงานนำเสนอแบบหลายเอกสาร อินเทอร์เฟซเซสชันการนำเสนอแบบใหม่นี้ช่วยให้แอปนำเสนอเอกสารได้หลายรายการ ซึ่ง API ที่มีอยู่ไม่สามารถทำได้ ดูข้อมูลเพิ่มเติมได้ที่เอกสารระบุตัวตน
  • ใน Android 13 ระบบจะนำส่ง Intent ที่มาจากแอปภายนอกไปยังคอมโพเนนต์ที่ส่งออกก็ต่อเมื่อ Intent ตรงกับองค์ประกอบ intent-filter ที่ประกาศไว้เท่านั้น
  • Open Mobile API (OMAPI) คือ API มาตรฐานที่ใช้สื่อสารกับองค์ประกอบที่ปลอดภัยของอุปกรณ์ ก่อนที่จะมี Android 13 มีเพียงแอปและโมดูลเฟรมเวิร์กเท่านั้นที่มีสิทธิ์เข้าถึงอินเทอร์เฟซนี้ โมดูล HAL สามารถสื่อสารกับองค์ประกอบที่ปลอดภัยผ่านบริการ OMAPI ได้ด้วยเมื่อแปลงเป็นอินเทอร์เฟซที่เสถียรของผู้ให้บริการ ดูข้อมูลเพิ่มเติมได้ที่อินเทอร์เฟซที่ใช้งานจริงของผู้ให้บริการ OMAPI
  • ระบบเลิกใช้งาน UID ที่แชร์แล้วใน Android 13-QPR ผู้ใช้ Android 13 ขึ้นไปควรใส่บรรทัด `android:sharedUserMaxSdkVersion="32"` ในไฟล์ Manifest รายการนี้ป้องกันไม่ให้ผู้ใช้ใหม่ได้รับ UID ที่แชร์ ดูข้อมูลเพิ่มเติมเกี่ยวกับ UID ได้ที่การรับรองแอป
  • Android 13 เพิ่มการรองรับพื้นฐานการเข้ารหัสแบบสมมาตรของคีย์สโตร์ เช่น AES (มาตรฐานการเข้ารหัสขั้นสูง), HMAC (คีย์-แฮชรหัสการตรวจสอบข้อความ), และอัลกอริทึมการเข้ารหัสแบบไม่สมมาตร (รวมถึง Elliptic Curve, RSA2048, RSA4096 และ Curve 25519)
  • Android 13 (API ระดับ 33) ขึ้นไปรองรับสิทธิ์รันไทม์สำหรับการส่งการแจ้งเตือนที่ไม่ได้รับการยกเว้นจากแอป ซึ่งช่วยให้ผู้ใช้ควบคุมการแจ้งเตือนสิทธิ์ที่ตนเห็นได้
  • เพิ่มข้อความแจ้งแบบครั้งเดียวสำหรับแอปที่ขอสิทธิ์เข้าถึงบันทึกของอุปกรณ์ทั้งหมด ซึ่งช่วยให้ผู้ใช้สามารถอนุญาตหรือปฏิเสธการเข้าถึงได้
  • ได้เปิดตัว Android Virtualization Framework (AVF) ซึ่งรวมไฮเปอร์วิซอร์ต่างๆ ไว้ในเฟรมเวิร์กเดียวด้วย API มาตรฐาน ซึ่งให้สภาพแวดล้อมการเรียกใช้ที่ปลอดภัยและเป็นส่วนตัวสําหรับการเรียกใช้เวิร์กโหลดที่แยกไว้โดยไฮเปอร์วิซอร์
  • เปิดตัว APK Signature Scheme v3.1 การหมุนเวียนคีย์ใหม่ทั้งหมดที่ใช้ apksigner จะใช้รูปแบบลายเซ็น v3.1 โดยค่าเริ่มต้นเพื่อกำหนดเป้าหมายการหมุนเวียนสำหรับ Android 13 ขึ้นไป

โปรดดูบันทึกประจำรุ่นของ AOSP แบบเต็ม และฟีเจอร์และรายการการเปลี่ยนแปลงของนักพัฒนาแอป Android

Android 12

Android ทุกเวอร์ชันมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้อง ผู้ใช้ การปรับปรุงด้านความปลอดภัยที่สำคัญบางส่วนใน Android 12 มีดังนี้

  • Android 12 เปิดตัว BiometricManager.Strings API ซึ่งมีสตริงที่แปลเป็นภาษาท้องถิ่นสำหรับแอปที่ใช้ BiometricPrompt เพื่อการตรวจสอบสิทธิ์ สตริงเหล่านี้มีไว้เพื่อให้อุปกรณ์รับรู้และ ระบุประเภทการตรวจสอบสิทธิ์ที่อาจใช้ได้อย่างเฉพาะเจาะจงมากขึ้น นอกจากนี้ Android 12 ยัง รองรับเซ็นเซอร์ลายนิ้วมือใต้จอแสดงผลด้วย
  • เพิ่มการรองรับเซ็นเซอร์ลายนิ้วมือใต้จอแสดงผล
  • ข้อมูลเบื้องต้นเกี่ยวกับ Fingerprint Android Interface Definition Language (AIDL)
  • การรองรับ Face AIDL ใหม่
  • การเปิดตัว Rust เป็นภาษาสำหรับการพัฒนาแพลตฟอร์ม
  • เพิ่มตัวเลือกให้ผู้ใช้ให้สิทธิ์เข้าถึงเฉพาะตำแหน่งโดยประมาณ ของตนเอง
  • เพิ่มสัญญาณบอกสถานะความเป็นส่วนตัวในแถบสถานะเมื่อแอปกำลังใช้กล้องหรือไมโครโฟน
  • Private Compute Core (PCC) ของ Android
  • เพิ่มตัวเลือกในการปิดใช้การรองรับ 2G

Android 11

每个 Android 版本中都包含数十项用于保护用户的安全增强功能。如需查看 Android 11 中提供的一些主要安全增强功能的列表,请参阅 Android 版本说明

Android 10

Android ทุกเวอร์ชันมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ Android 10 มีการปรับปรุงด้านความปลอดภัยและความเป็นส่วนตัวหลายอย่าง ดูรายการการเปลี่ยนแปลงทั้งหมดใน Android 10 ได้ในบันทึกประจำรุ่นของ Android 10

ความปลอดภัย

BoundsSanitizer

Android 10 ใช้ BoundsSanitizer (BoundSan) ในบลูทูธและโปรแกรมเปลี่ยนรหัส BoundSan ใช้โปรแกรมตรวจสอบขอบเขตของ UBSan การลดความเสี่ยงนี้จะเปิดใช้งานในระดับโมดูล ซึ่งช่วยรักษาความปลอดภัยให้กับคอมโพเนนต์ที่สำคัญของ Android และไม่ควรปิดใช้ BoundSan เปิดใช้ในตัวแปลงรหัสต่อไปนี้

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

หน่วยความจําแบบเรียกใช้ได้อย่างเดียว

โดยค่าเริ่มต้น ส่วนโค้ดที่เรียกใช้งานได้สำหรับไบนารีของระบบ AArch64 จะมีการทำเครื่องหมายเป็น "เรียกใช้ได้อย่างเดียว" (อ่านไม่ได้) เพื่อลดความเสี่ยงจากการโจมตีด้วยโค้ดแบบทันท่วงที โค้ดที่ผสมข้อมูลและโค้ดเข้าด้วยกันและโค้ดที่ตรวจสอบส่วนเหล่านี้โดยเจตนา (โดยไม่แมปกลุ่มหน่วยความจำใหม่เป็น "อ่านได้" ก่อน) จะใช้งานไม่ได้อีกต่อไป แอปที่มี SDK เป้าหมายเป็น Android 10 (API ระดับ 29 ขึ้นไป) จะได้รับผลกระทบหากแอปพยายามอ่านส่วนโค้ดของไลบรารีระบบที่เปิดใช้ execute-only (XOM) ในหน่วยความจำโดยไม่ทำเครื่องหมายส่วนนั้นว่าอ่านได้ก่อน

การเข้าถึงเพิ่มเติม

เอเจนต์ความน่าเชื่อถือ ซึ่งเป็นกลไกพื้นฐานที่กลไกการตรวจสอบสิทธิ์ระดับ 3 เช่น Smart Lock นำมาใช้ จะขยายการปลดล็อกได้เฉพาะใน Android 10 เอเจนต์ความน่าเชื่อถือจะปลดล็อกอุปกรณ์ที่ล็อกอยู่ไม่ได้อีกต่อไป และสามารถปลดล็อกอุปกรณ์ค้างไว้ได้สูงสุด 4 ชั่วโมงเท่านั้น

ตรวจสิทธิ์ด้วยใบหน้า

การตรวจสอบสิทธิ์ใบหน้าช่วยให้ผู้ใช้ปลดล็อกอุปกรณ์ได้ง่ายๆ เพียงมองไปที่ด้านหน้าของอุปกรณ์ Android 10 เพิ่มการรองรับสแต็กการตรวจสอบใบหน้าแบบใหม่ที่ประมวลผลเฟรมกล้องได้อย่างปลอดภัย เพื่อรักษาความปลอดภัยและความเป็นส่วนตัวในระหว่างการตรวจสอบใบหน้าในฮาร์ดแวร์ที่รองรับ นอกจากนี้ Android 10 ยังมีวิธีง่ายๆ ในการติดตั้งใช้งานที่เป็นไปตามข้อกำหนดด้านความปลอดภัยเพื่อเปิดใช้การผสานรวมแอปสำหรับธุรกรรมต่างๆ เช่น ธนาคารออนไลน์หรือบริการอื่นๆ

การดูแลจำนวนเต็มที่ล้น

Android 10 เปิดใช้การกรองจำนวนเต็มที่มีค่าเกิน (IntSan) ในโปรแกรมเปลี่ยนรหัสซอฟต์แวร์ ตรวจสอบว่าประสิทธิภาพการเล่นยอมรับได้สำหรับตัวแปลงรหัสที่ฮาร์ดแวร์ของอุปกรณ์ไม่รองรับ IntSan เปิดใช้ในตัวแปลงรหัสต่อไปนี้

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

คอมโพเนนต์ของระบบแบบโมดูล

Android 10 ทำให้คอมโพเนนต์ของระบบ Android บางรายการเป็นแบบโมดูลและทำให้อัปเดตคอมโพเนนต์เหล่านั้นได้นอกรอบการเผยแพร่ปกติของ Android ตัวอย่างข้อบังคับบางส่วน ได้แก่

OEMCrypto

Android 10 ใช้ OEMCrypto API เวอร์ชัน 15

Scudo

Scudo เป็นตัวจัดสรรหน่วยความจำแบบไดนามิกในโหมดผู้ใช้ที่ออกแบบมาให้มีความยืดหยุ่นมากขึ้นต่อช่องโหว่ที่เกี่ยวข้องกับกอง heap โดยจะมีนิพจน์พื้นฐานสำหรับการจองและการยกเลิกการจองแบบ C มาตรฐาน รวมถึงนิพจน์พื้นฐาน C++

ShadowCallStack

ShadowCallStack (SCS) คือโหมดเครื่องมือวัดประสิทธิภาพ LLVM ที่ป้องกันไม่ให้มีการเขียนทับที่อยู่สำหรับส่งคืน (เช่น การเขียนทับบัฟเฟอร์สแต็ก) โดยบันทึกที่อยู่สำหรับส่งคืนของฟังก์ชันลงในอินสแตนซ์ ShadowCallStack ที่จัดสรรแยกต่างหากในส่วนนำหน้าของฟังก์ชันของฟังก์ชันที่ไม่ใช่ใบไม้ และโหลดที่อยู่สำหรับส่งคืนจากอินสแตนซ์ ShadowCallStack ในส่วนปิดท้ายของฟังก์ชัน

WPA3 และ Wi-Fi Enhanced Open

Android 10 เพิ่มการรองรับมาตรฐานความปลอดภัย Wi-Fi Protected Access 3 (WPA3) และ Wi-Fi Enhanced Open เพื่อความเป็นส่วนตัวที่ดีขึ้นและความแข็งแกร่งในการป้องกันการโจมตีที่ทราบ

ความเป็นส่วนตัว

การเข้าถึงแอปเมื่อกำหนดเป้าหมายเป็น Android 9 หรือต่ำกว่า

หากแอปของคุณทำงานบน Android 10 ขึ้นไปแต่กำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า แพลตฟอร์มจะใช้ลักษณะการทำงานต่อไปนี้

  • หากแอปประกาศองค์ประกอบ <uses-permission> สำหรับ ACCESS_FINE_LOCATION หรือ ACCESS_COARSE_LOCATION ระบบจะเพิ่มองค์ประกอบ <uses-permission> สำหรับ ACCESS_BACKGROUND_LOCATION โดยอัตโนมัติระหว่างการติดตั้ง
  • หากแอปขอ ACCESS_FINE_LOCATION หรือ ACCESS_COARSE_LOCATION ระบบจะเพิ่ม ACCESS_BACKGROUND_LOCATION ลงในคําขอโดยอัตโนมัติ

ข้อจำกัดของกิจกรรมในเบื้องหลัง

ตั้งแต่ Android 10 เป็นต้นไป ระบบจะจำกัดการเริ่มกิจกรรมจากเบื้องหลัง การเปลี่ยนแปลงลักษณะการทำงานนี้ช่วยลดการขัดจังหวะสำหรับผู้ใช้และช่วยให้ผู้ใช้ควบคุมสิ่งที่แสดงบนหน้าจอได้มากขึ้น ตราบใดที่แอปเริ่มกิจกรรมอันเป็นผลโดยตรงจากการโต้ตอบของผู้ใช้ แอปของคุณก็น่าจะไม่ได้รับผลกระทบจากข้อจำกัดเหล่านี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับทางเลือกที่แนะนําในการเริ่มกิจกรรมจากเบื้องหลังได้ที่คู่มือเกี่ยวกับวิธีแจ้งผู้ใช้เกี่ยวกับเหตุการณ์ที่มีเวลาจำกัดในแอป

ข้อมูลเมตาของกล้อง

Android 10 เปลี่ยนความกว้างของข้อมูลที่ getCameraCharacteristics() method แสดงผลโดยค่าเริ่มต้น โดยเฉพาะอย่างยิ่ง แอปของคุณต้องมีสิทธิ์ CAMERA เพื่อเข้าถึงข้อมูลเมตาที่อาจเจาะจงอุปกรณ์ซึ่งรวมอยู่ในค่าที่แสดงผลของเมธอดนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงเหล่านี้ได้ที่ส่วนช่องกล้องที่ต้องใช้สิทธิ์

ข้อมูลคลิปบอร์ด

แอปของคุณจะเข้าถึงข้อมูลในคลิปบอร์ดใน Android 10 ขึ้นไปไม่ได้ เว้นแต่จะเป็นเครื่องมือแก้ไขวิธีการป้อนข้อมูล (IME) เริ่มต้นหรือเป็นแอปที่มีโฟกัสอยู่ในขณะนี้

ตำแหน่งของอุปกรณ์

Android 10 เปิดตัวสิทธิ์ ACCESS_BACKGROUND_LOCATION เพื่อรองรับการควบคุมเพิ่มเติมที่ผู้ใช้มีสิทธิ์ในการเข้าถึงข้อมูลตําแหน่งของแอป
สิทธิ์ ACCESS_BACKGROUND_LOCATION จะส่งผลต่อการเข้าถึงตำแหน่งของแอปเมื่อทำงานในเบื้องหลังเท่านั้น ซึ่งแตกต่างจากสิทธิ์ ACCESS_FINE_LOCATION และ ACCESS_COARSE_LOCATION ระบบจะถือว่าแอปเข้าถึงตำแหน่งในเบื้องหลัง เว้นแต่จะมีการดำเนินการตามเงื่อนไขข้อใดข้อหนึ่งต่อไปนี้

  • กิจกรรมที่เป็นของแอปจะปรากฏขึ้น
  • แอปกำลังใช้บริการที่ทำงานอยู่เบื้องหน้าซึ่งประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าเป็น location
    หากต้องการประกาศประเภทบริการที่ทำงานอยู่เบื้องหน้าสำหรับบริการในแอป ให้ตั้งค่า targetSdkVersion หรือ compileSdkVersion ของแอปเป็น 29 ขึ้นไป ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่บริการที่ทำงานอยู่เบื้องหน้าสามารถดําเนินการต่อที่ผู้ใช้เริ่มไว้ซึ่งจําเป็นต้องเข้าถึงตําแหน่ง

ที่จัดเก็บข้อมูลภายนอก

โดยค่าเริ่มต้น แอปที่กำหนดเป้าหมายเป็น Android 10 ขึ้นไปจะได้รับสิทธิ์เข้าถึงแบบจำกัดที่จัดเก็บข้อมูลภายนอก หรือพื้นที่เก็บข้อมูลที่กำหนดขอบเขต แอปดังกล่าวจะดูไฟล์ประเภทต่อไปนี้ภายในอุปกรณ์จัดเก็บข้อมูลภายนอกได้โดยไม่ต้องขอสิทธิ์ใดๆ ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลจากผู้ใช้

  • ไฟล์ในไดเรกทอรีเฉพาะแอป ซึ่งเข้าถึงได้โดยใช้ getExternalFilesDir()
  • รูปภาพ วิดีโอ และคลิปเสียงที่แอปสร้างขึ้นจากที่เก็บสื่อ

ดูข้อมูลเพิ่มเติมเกี่ยวกับพื้นที่เก็บข้อมูลแบบจำกัดขอบเขต รวมถึงวิธีแชร์ เข้าถึง และแก้ไขไฟล์ที่บันทึกไว้ในอุปกรณ์จัดเก็บข้อมูลภายนอกได้จากคำแนะนำเกี่ยวกับวิธีจัดการไฟล์ในพื้นที่เก็บข้อมูลภายนอก และวิธีเข้าถึงและแก้ไขไฟล์สื่อ

การสุ่มที่อยู่ MAC

ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป ระบบจะส่งที่อยู่ MAC แบบสุ่มโดยค่าเริ่มต้น
หากแอปจัดการUse Case ขององค์กร แพลตฟอร์มจะมี API สําหรับการดำเนินการต่างๆ ที่เกี่ยวข้องกับที่อยู่ MAC ดังนี้

  • รับที่อยู่ MAC แบบสุ่ม: แอปเจ้าของอุปกรณ์และแอปเจ้าของโปรไฟล์จะเรียกข้อมูลที่อยู่ MAC แบบสุ่มที่กำหนดให้กับเครือข่ายหนึ่งๆ ได้โดยเรียกใช้ getRandomizedMacAddress()
  • รับที่อยู่ MAC จริงจากโรงงาน: แอปเจ้าของอุปกรณ์สามารถเรียกข้อมูลที่อยู่ MAC ของฮาร์ดแวร์จริงของอุปกรณ์ได้โดยเรียก getWifiMacAddress() วิธีนี้มีประโยชน์สำหรับการติดตามอุปกรณ์จํานวนมาก

ตัวระบุอุปกรณ์ที่รีเซ็ตไม่ได้

ตั้งแต่ Android 10 เป็นต้นไป แอปต้องมีREAD_PRIVILEGED_PHONE_STATEสิทธิ์ที่มีอภิสิทธิ์เพื่อเข้าถึงตัวระบุที่รีเซ็ตไม่ได้ของอุปกรณ์ ซึ่งรวมถึงทั้งหมายเลข IMEI และหมายเลขซีเรียล

หากแอปไม่มีสิทธิ์และคุณพยายามขอข้อมูลเกี่ยวกับตัวระบุที่รีเซ็ตไม่ได้อยู่ดี การตอบสนองของแพลตฟอร์มจะแตกต่างกันไปตามเวอร์ชัน SDK เป้าหมาย ดังนี้

  • หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป ระบบจะแสดงSecurityException
  • หากแอปกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า เมธอดนี้จะแสดงnullหรือข้อมูลตัวยึดตำแหน่งหากแอปมีสิทธิ์ READ_PHONE_STATE มิเช่นนั้น SecurityException จะปรากฏขึ้น

การจดจำกิจกรรมการเคลื่อนไหวร่างกาย

Android 10 เปิดตัวandroid.permission.ACTIVITY_RECOGNITIONสิทธิ์รันไทม์สําหรับแอปที่ต้องตรวจจับจํานวนก้าวของผู้ใช้หรือจัดประเภทกิจกรรมการเคลื่อนไหวร่างกายของผู้ใช้ เช่น การเดิน การปั่นจักรยาน หรือการเคลื่อนที่ในยานพาหนะ ฟีเจอร์นี้ออกแบบมาเพื่อให้ผู้ใช้เห็นวิธีที่ระบบใช้ข้อมูลเซ็นเซอร์ของอุปกรณ์ในการตั้งค่า
ไลบรารีบางอย่างในบริการของ Google Play เช่น Activity Recognition API และ Google Fit API จะไม่แสดงผลลัพธ์เว้นแต่ผู้ใช้จะให้สิทธิ์นี้แก่แอปของคุณ
เซ็นเซอร์ในตัวเพียง 2 รายการในอุปกรณ์ที่คุณต้องประกาศสิทธิ์นี้ ได้แก่ เซ็นเซอร์ตัวนับก้าวและตัวตรวจจับก้าว
หากแอปกำหนดเป้าหมายเป็น Android 9 (API ระดับ 28) หรือต่ำกว่า ระบบจะมอบสิทธิ์ android.permission.ACTIVITY_RECOGNITION ให้กับแอปโดยอัตโนมัติตามที่จำเป็น หากแอปเป็นไปตามเงื่อนไขต่อไปนี้ทั้งหมด

  • ไฟล์ Manifest มีสิทธิ์ com.google.android.gms.permission.ACTIVITY_RECOGNITION
  • ไฟล์ Manifest ไม่มีสิทธิ์ android.permission.ACTIVITY_RECOGNITION

หากระบบให้สิทธิ์ android.permission.ACTIVITY_RECOGNITION โดยอัตโนมัติ แอปของคุณจะยังคงมีสิทธิ์ดังกล่าวหลังจากอัปเดตแอปให้กำหนดเป้าหมายเป็น Android 10 อย่างไรก็ตาม ผู้ใช้สามารถเพิกถอนสิทธิ์นี้ได้ทุกเมื่อในการตั้งค่าระบบ

ข้อจํากัดของระบบไฟล์ /proc/net

ในอุปกรณ์ที่ใช้ Android 10 ขึ้นไป แอปจะเข้าถึง/proc/netไม่ได้ ซึ่งรวมถึงข้อมูลเกี่ยวกับสถานะเครือข่ายของอุปกรณ์ แอปที่ต้องเข้าถึงข้อมูลนี้ เช่น VPN ควรใช้คลาส NetworkStatsManager หรือ ConnectivityManager

นำกลุ่มสิทธิ์ออกจาก UI แล้ว

ตั้งแต่ Android 10 เป็นต้นไป แอปจะค้นหาวิธีจัดกลุ่มสิทธิ์ใน UI ไม่ได้

การนำความสัมพันธ์ของรายชื่อติดต่อออก

ตั้งแต่ Android 10 เป็นต้นไป แพลตฟอร์มจะไม่ติดตามข้อมูลความสัมพันธ์ของรายชื่อติดต่อ ดังนั้น หากแอปของคุณทำการค้นหารายชื่อติดต่อของผู้ใช้ ผลการค้นหาจะไม่จัดเรียงตามความถี่ของการโต้ตอบ
คำแนะนำเกี่ยวกับ ContactsProvider มีประกาศที่อธิบายช่องและวิธีการที่ล้าสมัยในอุปกรณ์ทุกเครื่องตั้งแต่ Android 10 เป็นต้นไป

จำกัดการเข้าถึงเนื้อหาในหน้าจอ

Android 10 ป้องกันไม่ให้เข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์โดยอัตโนมัติเพื่อปกป้องเนื้อหาบนหน้าจอของผู้ใช้ โดยเปลี่ยนขอบเขตของสิทธิ์ READ_FRAME_BUFFER, CAPTURE_VIDEO_OUTPUT และCAPTURE_SECURE_VIDEO_OUTPUT ตั้งแต่ Android 10 เป็นต้นไป สิทธิ์เหล่านี้จะเป็นสิทธิ์เข้าถึงลายเซ็นเท่านั้น
แอปที่ต้องเข้าถึงเนื้อหาบนหน้าจอของอุปกรณ์ควรใช้ MediaProjection API ซึ่งจะแสดงข้อความแจ้งให้ผู้ใช้ให้ความยินยอม

หมายเลขซีเรียลของอุปกรณ์ USB

หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป แอปจะอ่านหมายเลขซีเรียลไม่ได้จนกว่าผู้ใช้จะให้สิทธิ์แอปเข้าถึงอุปกรณ์หรืออุปกรณ์เสริม USB
ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับอุปกรณ์ USB ได้ที่คำแนะนำเกี่ยวกับวิธีกำหนดค่าโฮสต์ USB

Wi-Fi

แอปที่กำหนดเป้าหมายเป็น Android 10 ขึ้นไปจะเปิดหรือปิดใช้ Wi-Fi ไม่ได้ เมธอด WifiManager.setWifiEnabled() จะแสดงผลลัพธ์เป็น false เสมอ
หากต้องการแจ้งให้ผู้ใช้เปิดและปิดใช้ Wi-Fi ให้ใช้แผงการตั้งค่า

ข้อจำกัดในการเข้าถึงเครือข่าย Wi-Fi ที่กําหนดค่าไว้โดยตรง

การกำหนดค่ารายการเครือข่าย Wi-Fi ด้วยตนเองจะจำกัดไว้สำหรับแอประบบและตัวควบคุมนโยบายอุปกรณ์ (DPC) เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ DPC หนึ่งๆ อาจเป็นทั้งเจ้าของอุปกรณ์หรือเจ้าของโปรไฟล์ก็ได้
หากแอปกำหนดเป้าหมายเป็น Android 10 ขึ้นไป และไม่ใช่แอประบบหรือ DPC วิธีการต่อไปนี้จะไม่แสดงข้อมูลที่เป็นประโยชน์

  • เมธอด getConfiguredNetworks() จะแสดงผลรายการว่างเสมอ
  • วิธีการดําเนินการของเครือข่ายแต่ละรายการที่แสดงผลค่าจำนวนเต็ม addNetwork() และ updateNetwork() จะแสดงผลเป็น -1 เสมอ
  • การดำเนินการแต่ละรายการของเครือข่ายที่แสดงผลค่าบูลีน ได้แก่ removeNetwork(), reassociate(), enableNetwork(), disableNetwork(), reconnect() และdisconnect() จะแสดงผลfalseเสมอ

Android 9

每个 Android 版本中都包含数十项用于保护用户的安全增强功能。如需 Android 9 中提供的一些主要安全增强功能的列表,请参阅 Android 版本说明

Android 8

Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 8.0:

  • Encryption. Added support to evict key in work profile.
  • Verified Boot. Added Android Verified Boot (AVB). Verified Boot codebase supporting rollback protection for use in boot loaders added to AOSP. Recommend bootloader support for rollback protection for the HLOS. Recommend boot loaders can only be unlocked by user physically interacting with the device.
  • Lock screen. Added support for using tamper-resistant hardware to verify lock screen credential.
  • KeyStore. Required key attestation for all devices that ship with Android 8.0+. Added ID attestation support to improve Zero Touch Enrollment.
  • Sandboxing. More tightly sandboxed many components using Project Treble's standard interface between framework and device-specific components. Applied seccomp filtering to all untrusted apps to reduce the kernel's attack surface. WebView is now run in an isolated process with very limited access to the rest of the system.
  • Kernel hardening. Implemented hardened usercopy, PAN emulation, read-only after init, and KASLR.
  • Userspace hardening. Implemented CFI for the media stack. App overlays can no longer cover system-critical windows and users have a way to dismiss them.
  • Streaming OS update. Enabled updates on devices that are are low on disk space.
  • Install unknown apps. Users must grant permission to install apps from a source that isn't a first-party app store.
  • Privacy. Android ID (SSAID) has a different value for each app and each user on the device. For web browser apps, Widevine Client ID returns a different value for each app package name and web origin. net.hostname is now empty and the dhcp client no longer sends a hostname. android.os.Build.SERIAL has been replaced with the Build.SERIAL API which is protected behind a user-controlled permission. Improved MAC address randomization in some chipsets.

Android 7

Android ทุกเวอร์ชันมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ การเพิ่มประสิทธิภาพด้านความปลอดภัยที่สำคัญบางอย่างที่มีให้ใน Android 7.0 มีดังนี้

  • การเข้ารหัสตามไฟล์ การเข้ารหัสที่ระดับไฟล์ แทนที่จะเข้ารหัสพื้นที่เก็บข้อมูลทั้งหมดเป็นหน่วยเดียว จะช่วยแยกและปกป้องผู้ใช้และโปรไฟล์แต่ละรายการ (เช่น ส่วนตัวและงาน) ในอุปกรณ์ได้ดียิ่งขึ้น
  • Direct Boot Direct Boot เปิดใช้โดยการเข้ารหัสตามไฟล์ ซึ่งช่วยให้แอปบางแอป เช่น นาฬิกาปลุกและฟีเจอร์การช่วยเหลือพิเศษ ทำงานได้เมื่ออุปกรณ์เปิดอยู่แต่ไม่ปลดล็อก
  • การเปิดเครื่องที่ได้รับการยืนยัน ตอนนี้เราบังคับใช้การเปิดเครื่องที่ได้รับการยืนยันอย่างเข้มงวดเพื่อป้องกันไม่ให้อุปกรณ์ที่ถูกบุกรุกบูตเครื่องได้ โดยระบบจะรองรับการแก้ไขข้อผิดพลาดเพื่อปรับปรุงความน่าเชื่อถือจากการเสียหายของข้อมูลที่ไม่ใช่การโจมตี
  • SELinux การอัปเดตการกำหนดค่า SELinux และการเพิ่มการครอบคลุมของ seccomp จะช่วยล็อกแซนด์บ็อกซ์แอปพลิเคชันและลดพื้นที่การโจมตีได้มากขึ้น
  • การสุ่มลําดับการโหลดไลบรารีและ ASLR ที่ปรับปรุงแล้ว ความเป็นแบบสุ่มที่มากขึ้นทำให้การโจมตีแบบใช้โค้ดซ้ำบางรายการมีความน่าเชื่อถือน้อยลง
  • การทำให้เคอร์เนลปลอดภัยยิ่งขึ้น เพิ่มการป้องกันหน่วยความจำเพิ่มเติมสำหรับเคอร์เนลรุ่นใหม่โดยการทำเครื่องหมายหน่วยความจำบางส่วนของเคิร์นเป็นอ่านอย่างเดียว จำกัดการเข้าถึงที่อยู่พื้นที่ผู้ใช้ของเคิร์น และลดพื้นที่การโจมตีที่มีอยู่
  • APK Signature Scheme v2 เปิดตัวรูปแบบลายเซ็นทั้งไฟล์ที่ช่วยเพิ่มความเร็วในการยืนยันและเพิ่มความมั่นใจในความสมบูรณ์
  • ร้านค้า CA ที่เชื่อถือได้ เพื่อให้แอปควบคุมการเข้าถึงการรับส่งข้อมูลในเครือข่ายที่ปลอดภัยได้ง่ายขึ้น ระบบจะไม่เชื่อถือหน่วยงานที่รับรองที่ผู้ใช้ติดตั้งไว้และหน่วยงานที่รับรองที่ติดตั้งผ่าน Device Admin API โดยค่าเริ่มต้นอีกต่อไปสำหรับแอปที่กำหนดเป้าหมายเป็น API ระดับ 24 ขึ้นไป นอกจากนี้ อุปกรณ์ Android เครื่องใหม่ทั้งหมดต้องมาพร้อมกับที่เก็บ CA ที่เชื่อถือเดียวกัน
  • การกำหนดค่าความปลอดภัยของเครือข่าย กำหนดค่าการรักษาความปลอดภัยของเครือข่ายและ TLS ผ่านไฟล์การกําหนดค่าแบบประกาศ

Android 6

每个 Android 版本中都包含数十种用于保护用户的安全增强功能。以下是 Android 6.0 中提供的一些主要安全增强功能:

  • 运行时权限:应用在运行时请求权限,而不是在安装时被授予权限。用户可以为 M 及更低版本的 Android 应用启用和停用权限。
  • 验证启动:在执行系统软件之前,先对其进行一系列加密检查,以确保手机从引导加载程序到操作系统均处于正常状况。
  • 硬件隔离安全措施:新的硬件抽象层 (HAL),Fingerprint API、锁定屏幕、设备加密功能和客户端证书可以利用它来保护密钥免遭内核入侵和/或现场攻击。
  • 指纹:现在,只需触摸一下,即可解锁设备。开发者还可以借助新的 API 来使用指纹锁定和解锁加密密钥。
  • 加装 SD 卡:可将移动媒体设备加装到设备上,以便扩展可用存储空间来存放本地应用数据、照片、视频等内容,但仍受块级加密保护。
  • 明文流量:开发者可以使用新的 StrictMode 来确保其应用不会使用明文。
  • 系统加固:通过由 SELinux 强制执行的政策对系统进行加固。这可以实现更好的用户隔离和 IOCTL 过滤、降低可从设备/系统之外访问的服务面临的威胁、进一步强化 SELinux 域,以及高度限制对 /proc 的访问。
  • USB 访问控制:必须由用户确认是否允许通过 USB 访问手机上的文件、存储空间或其他功能。现在,默认设置是“仅充电”,如果要访问存储空间,必须获得用户的明确许可。

Android 5

5.0

Every Android release includes dozens of security enhancements to protect users. Here are some of the major security enhancements available in Android 5.0:

  • Encrypted by default. On devices that ship with L out-of-the-box, full disk encryption is enabled by default to improve protection of data on lost or stolen devices. Devices that update to L can be encrypted in Settings > Security .
  • Improved full disk encryption. The user password is protected against brute-force attacks using scrypt and, where available, the key is bound to the hardware keystore to prevent off-device attacks. As always, the Android screen lock secret and the device encryption key are not sent off the device or exposed to any application.
  • Android sandbox reinforced with SELinux . Android now requires SELinux in enforcing mode for all domains. SELinux is a mandatory access control (MAC) system in the Linux kernel used to augment the existing discretionary access control (DAC) security model. This new layer provides additional protection against potential security vulnerabilities.
  • Smart Lock. Android now includes trustlets that provide more flexibility for unlocking devices. For example, trustlets can allow devices to be unlocked automatically when close to another trusted device (through NFC, Bluetooth) or being used by someone with a trusted face.
  • Multi user, restricted profile, and guest modes for phones and tablets. Android now provides for multiple users on phones and includes a guest mode that can be used to provide easy temporary access to your device without granting access to your data and apps.
  • Updates to WebView without OTA. WebView can now be updated independent of the framework and without a system OTA. This allows for faster response to potential security issues in WebView.
  • Updated cryptography for HTTPS and TLS/SSL. TLSv1.2 and TLSv1.1 is now enabled, Forward Secrecy is now preferred, AES-GCM is now enabled, and weak cipher suites (MD5, 3DES, and export cipher suites) are now disabled. See https://developer.android.com/reference/javax/net/ssl/SSLSocket.html for more details.
  • non-PIE linker support removed. Android now requires all dynamically linked executables to support PIE (position-independent executables). This enhances Android's address space layout randomization (ASLR) implementation.
  • FORTIFY_SOURCE improvements. The following libc functions now implement FORTIFY_SOURCE protections: stpcpy(), stpncpy(), read(), recvfrom(), FD_CLR(), FD_SET(), and FD_ISSET(). This provides protection against memory-corruption vulnerabilities involving those functions.
  • Security Fixes. Android 5.0 also includes fixes for Android-specific vulnerabilities. Information about these vulnerabilities has been provided to Open Handset Alliance members, and fixes are available in Android Open Source Project. To improve security, some devices with earlier versions of Android may also include these fixes.

Android 4 และต่ำกว่า

Android ทุกเวอร์ชันมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ การปรับปรุงด้านความปลอดภัยบางส่วนที่มีให้ใช้งานใน Android 4.4 มีดังนี้

  • แซนด์บ็อกซ์ของ Android ที่เสริมด้วย SELinux ตอนนี้ Android ใช้ SELinux ในโหมดบังคับใช้ SELinux เป็นระบบการควบคุมการเข้าถึง (MAC) ที่จำเป็นในเคอร์เนล Linux ซึ่งใช้เพื่อเสริมรูปแบบการรักษาความปลอดภัยแบบมีการควบคุมการเข้าถึงแบบมีการพิจารณา (DAC) ที่มีอยู่ ซึ่งจะช่วยป้องกันช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้น
  • VPN ต่อผู้ใช้ ในอุปกรณ์ที่มีผู้ใช้หลายคน ตอนนี้ระบบจะใช้ VPN ต่อผู้ใช้แต่ละราย ซึ่งจะช่วยให้ผู้ใช้กำหนดเส้นทางการรับส่งข้อมูลทั้งหมดในเครือข่ายผ่าน VPN ได้โดยไม่ส่งผลต่อผู้ใช้รายอื่นในอุปกรณ์
  • การรองรับผู้ให้บริการ ECDSA ใน AndroidKeyStore ตอนนี้ Android มีผู้ให้บริการคีย์สโตร์ที่อนุญาตให้ใช้อัลกอริทึม ECDSA และ DSA
  • คำเตือนการตรวจสอบอุปกรณ์ Android จะแสดงคำเตือนให้ผู้ใช้ทราบหากมีการเพิ่มใบรับรองลงในที่เก็บใบรับรองของอุปกรณ์ซึ่งอาจอนุญาตให้ตรวจสอบการรับส่งข้อมูลในเครือข่ายที่เข้ารหัส
  • FORTIFY_SOURCE ตอนนี้ Android รองรับ FORTIFY_SOURCE ระดับ 2 แล้ว และระบบจะคอมไพล์โค้ดทั้งหมดด้วยการป้องกันเหล่านี้ FORTIFY_SOURCE ได้รับการปรับปรุงให้ทำงานร่วมกับ clang ได้
  • การปักหมุดใบรับรอง Android 4.4 จะตรวจหาและป้องกันการใช้ใบรับรอง Google ที่เป็นการฉ้อโกงซึ่งใช้ในการสื่อสาร SSL/TLS ที่ปลอดภัย
  • การแก้ไขความปลอดภัย Android 4.4 ยังมีการแก้ไขช่องโหว่เฉพาะของ Android ด้วย เราได้แจ้งข้อมูลเกี่ยวกับช่องโหว่เหล่านี้ให้สมาชิก Open Handset Alliance ทราบแล้ว และการแก้ไขมีอยู่ในโครงการโอเพนซอร์ส Android อุปกรณ์บางรุ่นที่ใช้ Android เวอร์ชันเก่าอาจมีการแก้ไขเหล่านี้ด้วยเพื่อปรับปรุงความปลอดภัย

每个 Android 版本中都包含数十项用于保护用户的安全增强功能。以下是 Android 4.3 中提供的一些安全增强功能:

  • 通过 SELinux 得到增强的 Android 沙盒。此版本利用 Linux 内核中的 SELinux 强制访问权限控制系统 (MAC) 增强了 Android 沙盒。SELinux 强化功能(用户和开发者看不到它)可提高现有 Android 安全模型的可靠性,同时与现有应用保持兼容。为了确保持续兼容,此版本允许以宽容模式使用 SELinux。此模式会记录所有违反政策的行为,但不会中断应用,也不会影响系统行为。
  • 没有 setuidsetgid 程序。针对 Android 系统文件添加了对文件系统功能的支持,并移除了所有 setuidsetgid 程序。这可以减小 Root 攻击面,并降低出现潜在安全漏洞的可能性。
  • ADB 身份验证。从 Android 4.2.2 起,开始使用 RSA 密钥对为 ADB 连接进行身份验证。这可以防止攻击者在实际接触到设备的情况下未经授权使用 ADB。
  • 限制 Android 应用执行 SetUID 程序。/system 分区现在针对 Zygote 衍生的进程装载了 nosuid,以防止 Android 应用执行 setuid 程序。这可以减小 root 攻击面,并降低出现潜在安全漏洞的可能性。
  • 功能绑定。在执行应用之前,Android Zygote 和 ADB 现在会先使用 prctl(PR_CAPBSET_DROP) 舍弃不必要的功能。这可以防止 Android 应用和从 shell 启动的应用获取特权功能。
  • AndroidKeyStore 提供程序。Android 现在有一个允许应用创建专用密钥的密钥库提供程序。该程序可以为应用提供一个用于创建或存储私钥的 API,其他应用将无法使用这些私钥。
  • KeyChain isBoundKeyAlgorithmKeychain API 现在提供了一种方法 (isBoundKeyType),可让应用确认系统级密钥是否已绑定到设备的硬件信任根。该方法提供了一个用于创建或存储私钥的位置,即使发生 root 权限被窃取的情况,这些私钥也无法从设备中导出。
  • NO_NEW_PRIVSAndroid Zygote 现在会在执行应用代码之前使用 prctl(PR_SET_NO_NEW_PRIVS) 禁止添加新权限。这可以防止 Android 应用执行可通过 execve 提升权限的操作。(此功能需要使用 3.5 或更高版本的 Linux 内核)。
  • FORTIFY_SOURCE 增强。在 Android x86 和 MIPS 上启用了 FORTIFY_SOURCE,并增强了 strchr()strrchr()strlen()umask() 调用。这可以检测潜在的内存损坏漏洞或没有结束符的字符串常量。
  • 重定位保护。针对静态关联的可执行文件启用了只读重定位 (relro) 技术,并移除了 Android 代码中的所有文本重定位技术。这可以纵深防御潜在的内存损坏漏洞。
  • 经过改进的 EntropyMixer。除了定期执行混合操作之外,EntropyMixer 现在还会在关机或重新启动时写入熵。这样一来,便可以保留设备开机时生成的所有熵,而这对于配置之后立即重新启动的设备来说尤其有用。
  • 安全修复程序。Android 4.3 中还包含针对 Android 特有漏洞的修复。有关这些漏洞的信息已提供给“开放手机联盟”(Open Handset Alliance) 成员,并且 Android 开放源代码项目中提供了相应的修复。为了提高安全性,搭载更低版本 Android 的某些设备可能也会包含这些修复。

Android มีรูปแบบการรักษาความปลอดภัยหลายชั้นตามที่อธิบายไว้ในภาพรวมความปลอดภัยของ Android การอัปเดต Android แต่ละครั้งมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ ต่อไปนี้คือการเพิ่มประสิทธิภาพด้านความปลอดภัยบางส่วนที่เปิดตัวใน Android 4.2

  • การยืนยันแอป: ผู้ใช้สามารถเลือกเปิดใช้ "ยืนยันแอป" และขอให้ผู้ยืนยันแอปตรวจสอบแอปก่อนการติดตั้ง การยืนยันแอปสามารถแจ้งเตือนผู้ใช้หากพยายามติดตั้งแอปที่อาจเป็นอันตราย และสามารถบล็อกการติดตั้งได้หากแอปเป็นอันตรายมาก
  • การควบคุม SMS แบบพรีเมียมมากขึ้น: Android จะแจ้งเตือนหากแอปพยายามส่ง SMS ไปยังรหัสสั้นที่ใช้บริการพรีเมียมซึ่งอาจทำให้เกิดค่าใช้จ่ายเพิ่มเติม ผู้ใช้เลือกได้ว่าจะอนุญาตให้แอปส่งข้อความหรือบล็อก
  • VPN แบบเปิดตลอดเวลา: คุณสามารถกำหนดค่า VPN ไม่ให้แอปเข้าถึงเครือข่ายได้จนกว่าจะสร้างการเชื่อมต่อ VPN ซึ่งจะช่วยป้องกันไม่ให้แอปส่งข้อมูลผ่านเครือข่ายอื่น
  • การปักหมุดใบรับรอง: ตอนนี้ไลบรารีหลักของ Android รองรับการปักหมุดใบรับรองแล้ว โดเมนที่ปักหมุดไว้จะได้รับการยืนยันใบรับรองไม่สําเร็จหากใบรับรองไม่ได้เชื่อมโยงกับชุดใบรับรองที่คาดไว้ ซึ่งจะช่วยป้องกันผู้ออกใบรับรองที่อาจถูกบุกรุก
  • การแสดงสิทธิ์ของ Android ที่ได้รับการปรับปรุง: ระบบจะจัดระเบียบสิทธิ์เป็นกลุ่มต่างๆ ที่ผู้ใช้เข้าใจได้ง่ายขึ้น ในระหว่างการตรวจสอบสิทธิ์ ผู้ใช้สามารถคลิกสิทธิ์เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับสิทธิ์นั้นได้
  • การทำให้ installd ทำงานได้ยากขึ้น: เดมอน installd จะไม่ทำงานในฐานะผู้ใช้รูท ซึ่งจะลดพื้นที่การโจมตีที่อาจเกิดขึ้นสำหรับการเพิ่มระดับสิทธิ์รูท
  • การเพิ่มความแข็งแกร่งให้กับสคริปต์ init: ตอนนี้สคริปต์ init ใช้นิพจน์ O_NOFOLLOW เพื่อป้องกันการโจมตีที่เกี่ยวข้องกับสัญลักษณ์ลิงก์
  • FORTIFY_SOURCE: ตอนนี้ Android ใช้ FORTIFY_SOURCE ไลบรารีและแอปของระบบจะใช้สิ่งนี้เพื่อป้องกันความเสียหายของหน่วยความจำ
  • การกําหนดค่าเริ่มต้นของ ContentProvider: แอปที่กําหนดเป้าหมาย API ระดับ 17 จะมีการตั้งค่า export เป็น false โดยค่าเริ่มต้นสําหรับ Content Provider แต่ละรายการ ซึ่งจะลดพื้นที่การโจมตีเริ่มต้นสําหรับแอป
  • การเข้ารหัส: แก้ไขการใช้งานเริ่มต้นของ SecureRandom และ Cipher.RSA ให้ใช้ OpenSSL เพิ่มการรองรับ SSL Socket สำหรับ TLSv1.1 และ TLSv1.2 ใช้ OpenSSL 1.0.1
  • การแก้ไขความปลอดภัย: ไลบรารีโอเพนซอร์สที่อัปเกรดแล้วพร้อมการแก้ไขความปลอดภัย ได้แก่ WebKit, libpng, OpenSSL และ LibXML นอกจากนี้ Android 4.2 ยังมีการแก้ไขช่องโหว่เฉพาะของ Android ด้วย เราได้แจ้งข้อมูลเกี่ยวกับช่องโหว่เหล่านี้ให้สมาชิกของ Open Handset Alliance ทราบแล้ว และสามารถดูการแก้ไขได้ในโครงการโอเพนซอร์ส Android อุปกรณ์บางรุ่นที่ใช้ Android เวอร์ชันเก่าอาจมีการแก้ไขเหล่านี้ด้วยเพื่อปรับปรุงความปลอดภัย

Android มีรูปแบบการรักษาความปลอดภัยหลายชั้นตามที่อธิบายไว้ในภาพรวมความปลอดภัยของ Android การอัปเดต Android แต่ละครั้งมีการปรับปรุงด้านความปลอดภัยหลายสิบรายการเพื่อปกป้องผู้ใช้ การปรับปรุงด้านความปลอดภัยบางส่วนที่เปิดตัวใน Android เวอร์ชัน 1.5 ถึง 4.1 มีดังนี้

Android 1.5
  • ProPolice เพื่อป้องกันไม่ให้บัฟเฟอร์สแต็กมีขนาดใหญ่เกิน (-fstack-protector)
  • safe_iop เพื่อลดจำนวนจำนวนเต็มที่ล้น
  • ส่วนขยายสำหรับ dlmalloc ของ OpenBSD เพื่อป้องกันช่องโหว่ double free() และเพื่อป้องกันการโจมตีแบบรวมข้อมูล การโจมตีการรวมข้อมูลเป็นกลุ่มเป็นวิธีที่พบบ่อยในการใช้ประโยชน์จากการทุจริตของกอง
  • OpenBSD calloc เพื่อป้องกันจำนวนเต็มล้นระหว่างการจัดสรรหน่วยความจำ
Android 2.3
  • การป้องกันช่องโหว่ของสตริงรูปแบบ (-Wformat-security -Werror=format-security)
  • No eXecute (NX) ที่อิงตามฮาร์ดแวร์เพื่อป้องกันไม่ให้โค้ดทำงานบนสแต็กและกอง
  • mmap_min_addr ของ Linux เพื่อลดการยกระดับสิทธิ์การอ้างอิง Null Pointer (ปรับปรุงเพิ่มเติมใน Android 4.1)
Android 4.0
Address Space Layout Randomization (ASLR) เพื่อสุ่มตำแหน่งของข้อมูลสำคัญในหน่วยความจำ
Android 4.1
  • การรองรับ PIE (Position Independent Executable)
  • การเปลี่ยนตำแหน่งแบบอ่านอย่างเดียว / การเชื่อมโยงทันที (-Wl,-z,relro -Wl,-z,now)
  • dmesg_restrict เปิดใช้ (หลีกเลี่ยงการเปิดเผยที่อยู่เคอร์เนล)
  • เปิดใช้ kptr_restrict (หลีกเลี่ยงการเปิดเผยที่อยู่เคอร์เนล)