สัญญาณเกี่ยวกับสถานะความปลอดภัย

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

ฟีเจอร์ คำอธิบาย อุปกรณ์ที่มีการจัดการครบวงจร โปรไฟล์งานในอุปกรณ์ของบริษัท โปรไฟล์งานในอุปกรณ์ส่วนตัว (BYOD) อุปกรณ์ที่ไม่มีการจัดการ
Play Integrity API โบรกเกอร์ความน่าเชื่อถือจะดึงข้อมูลสัญญาณต่อไปนี้ได้
  • ความสมบูรณ์ของอุปกรณ์
  • ความสมบูรณ์ของแอป
  • รายละเอียดใบอนุญาต Play
  • รายละเอียดสภาพแวดล้อม รวมถึงผลการตัดสินใหม่ของ Play Protect
  • ใช่ ได้ ได้ ใช่
    ปลอดภัย มีฮาร์ดแวร์อยู่ / เอกสารรับรองคีย์ โบรกเกอร์ความน่าเชื่อถือสามารถยืนยันได้ว่าข้อมูลเข้าสู่ระบบ PKI ของตนสร้างขึ้นและจัดเก็บไว้ในฮาร์ดแวร์ที่ปลอดภัย ใช่ ได้ ได้ ใช่
    การรับรองอุปกรณ์ พร็อพเพอร์ตี้ พร็อพเพอร์ตี้อุปกรณ์สามารถรวมเป็นส่วนหนึ่งของระเบียนการรับรองได้ในฐานะส่วนหนึ่งของเอกสารรับรองคีย์ ใช่ ได้ ได้ ใช่
    ระดับแพตช์ความปลอดภัยของอุปกรณ์ โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบระดับแพตช์ความปลอดภัยของระบบปฏิบัติการได้ ใช่ ได้ ได้ ใช่
    อุปกรณ์มี OTA ที่รอดำเนินการอยู่ไหม โบรกเกอร์ความน่าเชื่อถือจะตรวจสอบได้ว่าอุปกรณ์มีการอัปเดตระบบปฏิบัติการที่รอดำเนินการหรือไม่ ใช่ ได้ ใช่ ไม่มี
    ระดับแพตช์ความปลอดภัยหลัก โบรกเกอร์ความน่าเชื่อถือจะอ่านระดับแพตช์ความปลอดภัยของรถไฟสายหลักที่ติดตั้งได้ ใช่ ได้ ได้ ใช่
    การลงทะเบียน รหัสที่เฉพาะเจาะจง โบรกเกอร์ความน่าเชื่อถือจะเข้าถึงรหัสอุปกรณ์ที่ไม่ซ้ำกันเฉพาะสำหรับองค์กรนั้นได้ รหัสนี้จะยังคงอยู่แม้จะมีการสร้างโปรไฟล์งานอีกครั้งและรีเซ็ตอุปกรณ์เป็นค่าเริ่มต้น ใช่ ได้ ใช่ ไม่มี
    สถานะการจัดการ (และแอปการจัดการ) โบรกเกอร์ความน่าเชื่อถือสามารถใช้ข้อมูลนี้เพื่อระบุว่าอุปกรณ์มีการจัดการหรือไม่ ใช่ ได้ ใช่ ไม่มี
    การเข้ารหัสดิสก์ โบรกเกอร์ความน่าเชื่อถือจะตรวจสอบได้ว่าอุปกรณ์เข้ารหัสหรือไม่ (หากต้องการการรองรับ Android 8) ใช่ ได้ ได้ ใช่
    เวอร์ชันของระบบปฏิบัติการ โบรกเกอร์ความน่าเชื่อถือจะตรวจสอบเวอร์ชันระบบปฏิบัติการของอุปกรณ์และยืนยันว่าเวอร์ชันดังกล่าวสูงกว่าเวอร์ชันที่กำหนด ใช่ ได้ ได้ ใช่
    เข้าถึง สถานะเครือข่าย (สถานะเครือข่ายและสถานะ Wi-Fi) โบรกเกอร์ความน่าเชื่อถือสามารถดูข้อมูลเกี่ยวกับสถานะเครือข่ายที่ใช้งานอยู่ (เครือข่ายมือถือและ Wi-Fi) ใช่ ได้ ได้ ใช่
    เข้าถึงสถานะ Wi-Fi (Android 11 และต่ำกว่า, Android 12 ขึ้นไปรองรับทั้งการเรียกกลับหรือแบบออนดีมานด์) โบรกเกอร์ความน่าเชื่อถือจะดูข้อมูลเกี่ยวกับเครือข่าย Wi-Fi ที่ใช้งานอยู่ได้ ใช่ ได้ ได้ ใช่
    การตั้งค่าพร็อกซี โบรกเกอร์ความน่าเชื่อถือสามารถดูข้อมูลเกี่ยวกับการตั้งค่าพร็อกซี HTTP เริ่มต้นปัจจุบัน ใช่ ได้ ได้ ใช่
    การตรวจสอบคุณภาพการล็อกหน้าจอ โบรกเกอร์ความน่าเชื่อถือสามารถตรวจสอบได้ว่าอุปกรณ์ได้รับการกำหนดค่าการล็อกหน้าจอที่มีคุณภาพตามเกณฑ์ก่อนให้สิทธิ์เข้าถึง ใช่ ได้ ได้ ใช่
    เปิดใช้ตัวเลือกสำหรับนักพัฒนาซอฟต์แวร์ เมื่อเปิดใช้ตัวเลือกของนักพัฒนาซอฟต์แวร์ โบรกเกอร์ความน่าเชื่อถือจะระบุได้ว่าอุปกรณ์มีแพลตฟอร์มการโจมตีที่กว้างขึ้น ใช่ ได้ ได้ ใช่
    เปิดใช้ DNS over TLS หรือไม่ โบรกเกอร์ความน่าเชื่อถือสามารถใช้ข้อมูลนี้เพื่อตรวจสอบว่าได้เปิดใช้โหมด DNS ส่วนตัวแล้ว ใช่ ได้ ได้ ใช่
    SafetyNet Google Safe Browsing โบรกเกอร์ความน่าเชื่อถือจะระบุว่า Google จัดประเภท URL หนึ่งๆ เป็นภัยคุกคามซึ่งเป็นที่รู้จักหรือไม่ ใช่ ได้ ได้ ใช่
    ภายนอก มีการติดตั้งสื่อ โบรกเกอร์ความน่าเชื่อถือจะได้รับการแจ้งเตือนเมื่อมีการต่อเชื่อมพื้นที่เก็บข้อมูลภายนอก ใช่ ได้ ได้ ใช่
    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