Apakah Mac OS melambat? - Catalina memeriksa kode yang tidak ditandatangani melalui Internet saat startup

Banyak pengguna setelah beralih ke Catalina mulai mengeluh tentang rem. Rekan-rekan Barat menemukan alasannya: MacOS mengirimkan hash dari setiap kode yang tidak ditandatangani ke server Apple.

Ini menciptakan penundaan serius dalam pelaksanaan, yang dapat dengan mudah diperiksa:

echo $'#!/bin/sh\necho Hello' > /tmp/test.sh && chmod a+x /tmp/test.sh
time /tmp/test.sh && time /tmp/test.sh

Hasilnya mengejutkan:

$ time /tmp/test.sh && time /tmp/test.sh
Hello

real    0m1.417s
user    0m0.001s
sys 0m0.003s
Hello

real    0m0.003s
user    0m0.001s
sys 0m0.002s

Kenapa itu terjadi? Apple telah menggunakan mekanisme Notaris untuk beberapa waktu - dengan itu, pengguna dapat yakin bahwa program yang ditandatangani oleh Developer-ID yang valid tidak mengandung komponen berbahaya. Artinya, selain fakta bahwa aplikasi tersebut ditandatangani, Apple juga akan secara otomatis memeriksanya untuk elemen malware.
Menariknya, di masa depan, Apple umumnya berencana untuk melarang peluncuran program non-notaris. Mengutip:
Penting

Dimulai di macOS 10.14.5, perangkat lunak yang ditandatangani dengan sertifikat ID Pengembang baru dan semua ekstensi kernel yang baru atau yang diperbarui harus diaktakan untuk dijalankan. Dimulai pada macOS 10.15, semua perangkat lunak yang dibangun setelah 1 Juni 2019, dan didistribusikan dengan ID Pengembang harus diaktakan.

Sekarang, tampaknya, untuk menerobos masuk, kode baru yang tidak ditandatangani yang Anda jalankan dikirim ke server AAPL. Ini dapat dengan mudah diverifikasi dengan menjalankan penganalisa jaringan dan melihat panggilan ke domain api.apple-cloudkit.com. Perlu dicatat bahwa bukan kode itu sendiri yang dikirimkan, tetapi jumlah hash. Anda dapat memeriksanya dengan dua cara - membandingkan jumlah data yang dikirim melalui jaringan untuk skrip dengan ukuran berbeda; serta melihat isi daemon yang bertanggung jawab untuk mengirim data ( otool -tV / usr / libexec / syspolicyd ). Namun, dengan koneksi internet yang lambat, penundaan bisa menjadi detik - pengguna dari China menulis tentang penundaan 5,47 detik.

Di satu sisi, Apple dapat memahami - ia peduli dengan keamanan pengguna, namun, pada saat yang sama mengubah proses pengembangan apa pun pada platform mereka menjadi neraka.

Tapi saya ingin mengutip pengembang yang pertama kali memperhatikan masalah:
Perilaku sistem operasi ini menunjukkan masalah serius dalam desainnya ketika dua metode dari API sistem tingkat rendah (misalnya, exec dan getxattr) melakukan panggilan jaringan sinkron sebelum mengembalikan hasilnya.

Tautan:

lapcatsoftware.com/articles/catalina-executables.html
news.ycombinator.com/item?id=23275922
sigpipe.macromates.com/2020/macos-catalina-slow-by-design

All Articles