Android มีสัญญาณของอุปกรณ์ที่หลากหลายที่ผู้ดูแลระบบสามารถใช้เพื่อระบุสถานะความปลอดภัยของอุปกรณ์ ในโมเดลการรักษาความปลอดภัยแบบ Zero Trust ระบบจะใช้สัญญาณเหล่านี้เพื่อประเมินว่าควรอนุญาตให้อุปกรณ์เข้าถึงข้อมูลขององค์กรหรือไม่
ฟีเจอร์ | คำอธิบาย | อุปกรณ์ที่มีการจัดการครบวงจร | โปรไฟล์งานในอุปกรณ์ของบริษัท | โปรไฟล์งานในอุปกรณ์ส่วนตัว (BYOD) | อุปกรณ์ที่ไม่มีการจัดการ |
---|---|---|---|---|---|
เล่น API ความสมบูรณ์ | ทรัสต์
นายหน้าสามารถดึงข้อมูลสัญญาณต่อไปนี้
|
ใช่ | ได้ | ได้ | ใช่ |
ปลอดภัย การแสดงฮาร์ดแวร์ / เอกสารรับรองคีย์ | โบรกเกอร์ความน่าเชื่อถือสามารถยืนยันได้ว่าข้อมูลเข้าสู่ระบบ PKI ของตนสร้างขึ้น และจัดเก็บไว้ในฮาร์ดแวร์ที่ปลอดภัย | ใช่ | ได้ | ได้ | ใช่ |
การรับรองอุปกรณ์ พร็อพเพอร์ตี้ | พร็อพเพอร์ตี้อุปกรณ์สามารถรวมเป็นส่วนหนึ่งของระเบียนการรับรองได้ในฐานะเอกสารรับรองคีย์ | ใช่ | ได้ | ได้ | ใช่ |
อุปกรณ์ ระดับแพตช์ความปลอดภัย | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบระดับแพตช์ความปลอดภัยของระบบปฏิบัติการได้ | ใช่ | ได้ | ได้ | ใช่ |
อุปกรณ์มี OTA ที่รอดำเนินการอยู่ไหม | โบรกเกอร์ทรัสต์จะตรวจสอบได้ว่ามีการอัปเดตระบบปฏิบัติการของอุปกรณ์ที่รอดำเนินการหรือไม่ พร้อมใช้งาน | ใช่ | ได้ | ใช่ | ไม่มี |
ระดับแพตช์ความปลอดภัยหลัก | โบรกเกอร์ความน่าเชื่อถือจะอ่านระดับแพตช์ความปลอดภัยของรถไฟสายหลักที่ติดตั้งได้ | ใช่ | ได้ | ได้ | ใช่ |
การลงทะเบียน รหัสเฉพาะ | โบรกเกอร์ความน่าเชื่อถือจะเข้าถึงรหัสอุปกรณ์ที่ไม่ซ้ำกันเฉพาะสำหรับองค์กรนั้นได้ รหัสนี้ยังคงมีจากการสร้างโปรไฟล์งานใหม่และโรงงานผลิตอุปกรณ์ รีเซ็ต | ใช่ | ได้ | ใช่ | ไม่มี |
สถานะการจัดการ (และการจัดการแอป) | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ข้อมูลนี้เพื่อระบุว่ามีการจัดการอุปกรณ์หรือไม่ | ใช่ | ได้ | ใช่ | ไม่มี |
ดิสก์ การเข้ารหัส | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบว่าอุปกรณ์มีการเข้ารหัสหรือไม่ (หากต้องมีการสนับสนุน Android 8) | ใช่ | ได้ | ได้ | ใช่ |
เวอร์ชันของระบบปฏิบัติการ | โบรกเกอร์ความน่าเชื่อถือจะตรวจสอบเวอร์ชันระบบปฏิบัติการของอุปกรณ์และยืนยันว่าเวอร์ชันดังกล่าวสูงกว่าเวอร์ชันที่ต้องการ | ใช่ | ได้ | ได้ | ใช่ |
เข้าถึง สถานะเครือข่าย (สถานะเครือข่ายและสถานะ Wi-Fi) | โบรกเกอร์ความน่าเชื่อถือสามารถดูข้อมูลเกี่ยวกับสถานะเครือข่ายที่ใช้งานอยู่ (เครือข่ายมือถือและ Wi-Fi) | ใช่ | ได้ | ได้ | ใช่ |
เข้าถึงสถานะ Wi-Fi (Android 11 และต่ำกว่า, Android 12 ขึ้นไปรองรับทั้งการติดต่อกลับหรือวิธีออนดีมานด์) | โบรกเกอร์ความน่าเชื่อถือจะดูข้อมูลเกี่ยวกับเครือข่าย Wi-Fi ที่ใช้งานอยู่ได้ | ใช่ | ได้ | ได้ | ใช่ |
การตั้งค่าพร็อกซี | โบรกเกอร์ความน่าเชื่อถือสามารถรับข้อมูลเกี่ยวกับ HTTP เริ่มต้นในปัจจุบัน การตั้งค่าพร็อกซี | ใช่ | ได้ | ได้ | ใช่ |
หน้าจอ การตรวจสอบคุณภาพการล็อก | โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบได้ว่าอุปกรณ์ได้รับการกำหนดค่าการล็อกหน้าจอที่มีคุณภาพตามเกณฑ์ก่อนให้สิทธิ์เข้าถึง | ใช่ | ได้ | ได้ | ใช่ |
นักพัฒนา ตัวเลือกที่เปิดใช้ | นายหน้าทรัสต์สามารถระบุอุปกรณ์ที่มีการโจมตีที่กว้างขึ้นได้ แสดงเมื่อเปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ | ใช่ | ได้ | ได้ | ใช่ |
เท่ากับ เปิดใช้ DNS-over-TLS แล้ว | โบรกเกอร์ของ Trust สามารถใช้ข้อมูลนี้เพื่อให้แน่ใจว่า DNS ส่วนตัว เปิดใช้งานโหมดแล้ว | ใช่ | ได้ | ได้ | ใช่ |
SafetyNet Google Safe Browsing | นายหน้าทรัสต์สามารถระบุได้ว่า URL หนึ่งๆ ได้รับการ จัดอยู่ในประเภทภัยคุกคามที่ทราบแล้วโดย Google | ใช่ | ได้ | ได้ | ใช่ |
ภายนอก มีการติดตั้งสื่อ | สามารถแจ้งเตือนโบรกเกอร์ทรัสต์ได้เมื่อมีการต่อเชื่อมที่จัดเก็บข้อมูลภายนอก | ใช่ | ได้ | ได้ | ใช่ |
UsageStatsManager | โบรกเกอร์ความน่าเชื่อถือจะศึกษารูปแบบการใช้งานของแต่ละแอปได้ | ใช่ | ได้ | ใช่ | ได้1 |
ความปลอดภัย การบันทึก | โบรกเกอร์ทรัสต์สามารถใช้ประโยชน์จากข้อมูลนี้โดยเป็นส่วนหนึ่งของบริบท เครื่องมือเพื่อการปฏิบัติตามข้อกำหนดและสร้างลายนิ้วมือตามพฤติกรรม | ใช่ | ได้2 | ได้2 | ไม่มี |
เครือข่าย การบันทึก | โบรกเกอร์ความน่าเชื่อถือสามารถใช้ข้อมูลนี้เป็นส่วนหนึ่งของเครื่องมือตามบริบทเพื่อให้มั่นใจว่าเป็นไปตามข้อกําหนดและสร้างลายนิ้วมือตามพฤติกรรม | ใช่ | ได้2 | ได้2 | ไม่มี |
NetworkStatsManager | โบรกเกอร์ความน่าเชื่อถือสามารถค้นหาการใช้งานเครือข่ายของแอปภายในระยะเวลาที่ระบุ ช่วงการฝึก | ใช่ | ใช่ | ได้2 | ได้1 |
พัสดุ ระดับการเข้าถึง (แสดงแอปทั้งหมดในอุปกรณ์) | โบรกเกอร์ความน่าเชื่อถือจะค้นหาแอปที่ติดตั้งในอุปกรณ์ได้ | ใช่ | ได้3 | ได้3 | ใช่ |
อ่าน สถานะโทรศัพท์ | โบรกเกอร์ความน่าเชื่อถือสามารถดูข้อมูลเครือข่ายมือถือ สถานะของการโทรที่กําลังดําเนินอยู่ และรายการ PhoneAccount ที่ลงทะเบียนในอุปกรณ์ | ใช่ | ได้ | ได้ | ใช่ |
เวลาที่อุปกรณ์รีบูตครั้งล่าสุด | โบรกเกอร์ทรัสต์จะรับข้อมูลระยะเวลาทำงานของระบบได้ | ใช่ | ได้ | ได้ | ใช่ |
สร้างบัญชี | โบรกเกอร์ทรัสต์สามารถใช้ประโยชน์จากการเข้าถึงรายชื่อบัญชีใน บริการบัญชี | ใช่ | ได้3 | ใช้ได้3 | ได้1 |
ตรวจสอบการเปลี่ยนแปลงที่สำคัญในระดับแบตเตอรี่ | โบรกเกอร์ความน่าเชื่อถือจะตรวจสอบการเปลี่ยนแปลงที่สำคัญของระดับแบตเตอรี่ได้ | ใช่ | ได้ | ได้ | ใช่ |
ตำแหน่ง (ละเอียด หยาบ ฯลฯ) | โบรกเกอร์ความน่าเชื่อถือสามารถเข้าถึงสถานที่ตั้งจริงของอุปกรณ์ได้ | ใช่ | ใช่ | ได้1 | ได้1 |
1 เมื่อได้รับความยินยอมจากผู้ใช้
2 โปรไฟล์งานเท่านั้น
3 การเข้าถึงที่จำกัดไว้เฉพาะข้อมูลโปรไฟล์งาน
เรียกข้อมูลเวอร์ชันเมนไลน์
โบรกเกอร์ทรัสต์สามารถเข้าถึง PackageInfo สำหรับ
com.google.android.modulemetadata
โมดูลและดึงข้อมูลจากที่นั่น
versionName
:
private fun mainlineVersion(context: Context): String? {
val moduleProvider = "com.google.android.modulemetadata"
return try {
val pm = context.packageManager
val packageInfo = pm.getPackageInfo(moduleProvider, 0)
packageInfo.versionName
} catch (e: PackageManager.NameNotFoundException) {
null
}
}
คุณสามารถแยกวิเคราะห์สตริงที่แสดงผลเป็นออบเจ็กต์ Date
โดยใช้เมธอด
SimpleDateFormat
ชั้นเรียน:
private val VERSION_NAME_DATE_PATTERNS = Arrays.asList(
"yyyy-MM-dd",
"yyyy-MM"
)
private fun parseDateFromVersionName(text: String): Date? {
for (pattern in VERSION_NAME_DATE_PATTERNS) {
try {
val simpleDateFormat = SimpleDateFormat(
pattern,
Locale.getDefault()
)
simpleDateFormat.timeZone = TimeZone.getDefault()
return simpleDateFormat.parse(text)
} catch (e: ParseException) {
// ignore and try next pattern
}
}
return null
}
โปรดทราบว่าสำหรับ Android 11 ขึ้นไป คุณต้องเพิ่มประกาศการค้นหาในไฟล์ AndroidManifest.xml
เพื่อให้เป็นไปตามระดับการเข้าถึงแพ็กเกจของ Android ดังนี้
<manifest package="com.example.game"> <queries> <package android:name="com.google.android.modulemetadata" /> </queries> ... </manifest>
เรียกดูสถานะการจัดการ
โบรกเกอร์ความน่าเชื่อถือสามารถใช้วิธีการเหล่านี้เพื่อยืนยันว่าอุปกรณ์อยู่ในโหมดการจัดการหรือไม่ และโหมดการจัดการใดที่ใช้งานอยู่
ตรวจสอบการจัดการอุปกรณ์
ใช้ getActiveAdmins() เพื่อตรวจสอบว่าอุปกรณ์อยู่ภายใต้การจัดการหรือไม่ หากเมธอดนี้แสดงผลเป็น null
แสดงว่าอุปกรณ์ไม่มีการจัดการ
ตรวจสอบอุปกรณ์ที่มีการจัดการโดยสมบูรณ์
ใช้ isDeviceOwnerApp()
เพื่อตรวจสอบว่าอุปกรณ์มีการจัดการครบวงจรหรือไม่
ตรวจหาโปรไฟล์งานในอุปกรณ์ของบริษัท
ใช้ isOrganizationOwnedDeviceWithManagedProfile()
เพื่อตรวจสอบว่าอุปกรณ์
กำลังใช้โหมดการจัดการโปรไฟล์งานสำหรับอุปกรณ์ของบริษัท
ตรวจสอบโปรไฟล์งานในอุปกรณ์ส่วนตัว
ใช้ isProfileOwnerApp()
เพื่อตรวจสอบว่าแอปทำงานอยู่ในโปรไฟล์งานหรือไม่ และยืนยันว่า isOrganizationOwnedDeviceWithManagedProfile()
แสดงผลเป็น false