Edit TCC.db untuk memintas “'Foo.app' ingin akses untuk mengontrol 'Bar.app'” di mesin sendiri

15

Saya menggunakan Acara Apple secara ekstensif untuk mengontrol berbagai macam aplikasi pada mesin saya. Prompt keamanan baru yang diperkenalkan di Mojave melumpuhkan .

masukkan deskripsi gambar di sini

Dalam versi macOS sebelumnya, begitu aplikasi diberi izin untuk "mengontrol komputer Anda", itu dapat mengirim acara Apple ke aplikasi lain di komputer Anda. Di Mojave, izin ini harus diberikan secara manual sekali untuk setiap aplikasi yang dikendalikan.

Setelah pengguna memberikan akses, pilihan mereka disimpan di salah satu dari dua basis data sqlite:

  1. ~/Library/Application Support/com.apple.TCC/TCC.db
  2. /Library/Application Support/com.apple.TCC/TCC.db

    • Perhatikan bahwa # 2 hanya dapat dilihat oleh pengguna root.
    • Perhatikan bahwa Perlindungan Integritas Sistem dinonaktifkan.

Apakah mungkin untuk mengedit database sqlite ini secara langsung untuk secara otomatis memberikan izin dan memotong permintaan keamanan ini?

Wowfunhappy
sumber
@ user3439894 Terima kasih, SIP sudah dinonaktifkan di mesin saya. Itu tidak terlihat seperti program python yang kompatibel dengan perlindungan "Automation" baru Mojave.
Wowfunhappy
Apa yang mengirim Acara Apple ke berbagai aplikasi (yaitu, berapa banyak Foo.app yang Anda miliki dan berapa banyak Bar.app yang Anda miliki dan apakah matriksnya jarang atau padat?)? Apakah Anda setuju dengan solusi yang tidak melewati 3 mesin yang Anda kontrol (atau membutuhkan dana pada saat itu)?
bmike
@bmike Apel skrip saya memiliki garis seperti "beri tahu aplikasi (jalur ke aplikasi paling depan sebagai teks) untuk keluar", sehingga Bar.app dapat berupa aplikasi apa pun yang diinstal. Ini semua pada satu mesin.
Wowfunhappy
Dapatkan semua keluar dari jalan dalam satu pergi: tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list. Lalu repeat with A in the result... ignoring application responses... quit the application named A... end ignoring... end repeat. Ini akan menyakitkan, tapi itu seperti merobek bandaid.
CJK

Jawaban:

7

Untuk mengakses database TCC.db secara langsung tidak lagi didukung oleh Apple, bahkan jika Anda menonaktifkan SIP , karena kebijakan mereka melindungi pengguna dari perusahaan besar yang suka melacak semua yang Anda lakukan online, dan juga digunakan untuk melakukan bypass diam-diam ini tanpa meminta izin untuk pengguna. Namun, bahkan di Mojave, ada cara untuk menghindari ini, tetapi dengan menangkap: itu hanya bekerja jika komputer yang diberikan terdaftar dalam program MDM . Untuk mengetahui lebih lanjut tentang program MDM, kunjungi di sini .

Untuk melewati ini untuk beberapa komputer Anda dapat menggunakan skrip python yang tccprofile.pytersedia di GitHub .

Diskusi mendalam tentang apa yang dapat dan tidak bisa Anda lakukan dapat ditemukan di sini .

Sejauh yang saya tahu, ini adalah satu-satunya cara untuk memotong kebutuhan untuk meminta izin pengguna dari Mojave dan seterusnya.

Jvarela
sumber
1
Sebenarnya tidak praktis untuk mendapatkan profil MDM untuk skrip pribadi saya. Dengan SIP dinonaktifkan, apa sebenarnya yang mencegah saya mengedit database? Saya menyadari bahwa sistem itu sendiri tidak dapat dimatikan secara langsung, tetapi tanpa SIP saya harus dapat mengedit file apa pun di komputer saya, termasuk database yang menyimpan semua daftar putih.
Wowfunhappy
1
Rupanya, Apple mengubah cara mengakses database ini dengan menggunakan API pribadi guarded_open_np. Saya sudah melihat beberapa posting peretas Rusia mencoba merekayasa balik API ini dengan IDA Pro, tetapi sejauh ini tidak berhasil.
jvarela
Terlepas dari bagaimana Apple biasanya mengedit daftar putih, tampaknya menjadi database sqlite standar, sebagaimana dibuktikan oleh fakta bahwa itu dapat dibuka dan dibaca di editor database. Jika ada alasan lain mengapa file tersebut tidak dapat diedit dan diganti secara langsung (misalnya, jika macOS menyimpan checksum dari databse, dan checksum itu sendiri dienkripsi oleh Apple), saya ingin melihat penjelasan yang jelas dan komprehensif tentang ini. dalam jawaban anda! Terima kasih.
Wowfunhappy
1
+1, tapi saya tidak mempercayai blog. Bisakah kita mengambil konten dari situs web itu dan mengutipnya secara langsung atau menambahkannya ke drive atau semacamnya?
JBis
2

Saya menemukan ini untuk menghapus entri.

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db 'hapus dari akses tempat klien menyukai " %appnamehere%"'

Ganti " appnamehere" dengan nama aplikasi seperti yang muncul di daftar Aksesibilitas (pertahankan tanda%).

bmike
sumber
2
Ini akan menghapus aplikasi dari database, bukan menambahkan izin, bukan? Tampaknya tidak melakukan apa-apa ketika saya mencobanya (menambah atau menghapus).
Wowfunhappy
1
Di Catalina Anda bahkan tidak dapat melihat file sebagai root ... Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database file, dan jika saya mencoba ke lsdirektori sebagai root, saya mendapatkannya ls: : Operation not permitted.
Michael
@Michael apakah Anda bisa membaca TCC.dbtentang Catalina? Saya memiliki masalah yang sama juga, bahkan tidak bisa dilakukan lsdalam com.apple.TCCdirektori
WallTearer
1
@ Wallaller Ya, saya harus mengaktifkan akses penuh ke sistem file ke Terminal dan / atau / bin / bash di bawah keamanan dan privasi di System Preferences
Michael
@ Michael keren, terima kasih! Pada saat yang sama saya juga membaca artikel berikut dengan saran serupa untuk mengaktifkan Akses Disk Penuh - blog.kolide.com/macos-catalina-osquery-a6753dc3c35c Pada akhirnya saya memberikan akses ke iTerm2 dan dapat membaca pengaturan keamanan dengan tccutil. utilitas py seperti sudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer
0

SIP tidak mendukung direktori Library. Jadi, itu berarti Anda masih dapat menulis ke file TCC.db melalui terminal dengan beberapa perintah.

Inilah tautannya: Tentang SIP

Coder123
sumber
File TCC.db dilindungi oleh SIP meskipun direktori mereka tidak. Saya tidak peduli — saya hanya ingin tahu perintah apa saja yang memungkinkan saya mendaftar aplikasi.
Wowfunhappy
apple.stackexchange.com/questions/362865/... tautan ini dapat membantu permintaan Anda
Coder123