“'Foo.app' 'yi atlamak için TCC.db dosyasını kendi makinenizde' Bar.app 'kontrolüne erişim istiyor


15

Makinemdeki çok çeşitli uygulamaları kontrol etmek için Apple Events'i kapsamlı bir şekilde kullanıyorum. Mojave'de tanıtılan yeni güvenlik istemleri sakat .

resim açıklamasını buraya girin

MacOS'un önceki sürümlerinde, bir uygulamaya "bilgisayarınızı kontrol etme" izni verildikten sonra, Apple etkinliklerini makinenizdeki diğer herhangi bir uygulamaya gönderebiliyordu. Mojave'de bu izin, kontrol edilen her uygulama için manuel olarak bir kez verilmelidir.

Bir kullanıcı erişim izni verdiğinde, seçimleri iki sqlite veritabanından birinde saklanır:

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

    • # 2'nin yalnızca kök kullanıcı tarafından görülebildiğini unutmayın.
    • Sistem Bütünlüğü Korumasının devre dışı olduğunu unutmayın.

İzinleri otomatik olarak vermek ve bu güvenlik istemlerini atlamak için bu sqlite veritabanlarını doğrudan düzenlemek mümkün müdür?


@ user3439894 Teşekkürler, makinemde SIP zaten devre dışı. Python programının Mojave'nin yeni "Otomasyon" korumasıyla uyumlu olduğu görülmüyor.
Wowfunhappy

Çeşitli uygulamalara Apple Events gönderir (yani kaç tane Foo.app'a sahipsiniz ve kaç Bar.app'a sahipsiniz ve bu matris seyrek veya yoğun mu?)? Kontrol ettiğiniz 3 makineyi geçmeyen (veya o noktada para gerektiren) bir çözüm ile uygun musunuz?
bmike

@bmike El yazıtlarımda "uygulamayı söyle (metin olarak en öndeki uygulamaya giden yol)" gibi satırlar bulunur, bu nedenle Bar.app yüklü herhangi bir uygulama olabilir. Bunların hepsi tek bir makinede.
Wowfunhappy

Hepsini tek seferde çıkarın tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list. Sonra repeat with A in the result... ignoring application responses... quit the application named A... end ignoring... end repeat. Acı verici olacak, ama bir bandajı sökmek gibi olacak.
CJK

Yanıtlar:


7

Kullanıcıları çevrimiçi yaptığınız her şeyi izlemek isteyen büyük şirketlerden koruma politikası nedeniyle ve ayrıca bu gizli bypass'ı sormadan kullandıkları için SIP'yi devre dışı bıraksanız bile , TCC.db veritabanına doğrudan erişim artık Apple tarafından desteklenmemektedir. kullanıcı izni. Ancak, Mojave'de bile, bunu atlatmanın bir yolu vardır, ancak bir yakalama ile: bu sadece belirli bir bilgisayar bir MDM programına kayıtlıysa çalışır . MDM programı hakkında daha fazla bilgi için buraya gidin .

Bunu birkaç bilgisayar için atlamak için GitHub'da bulunan python komut dosyasını tccprofile.pykullanabilirsiniz .

Neler yapabileceğiniz ve yapamayacağınız hakkında ayrıntılı bir tartışma burada bulunabilir .

Bildiğim kadarıyla, Mojave'den itibaren kullanıcı izni isteme ihtiyacını atlamanın tek yolu bu.


1
Kendi kişisel senaryolarım için bir MDM profili elde etmek gerçekten pratik değil. SIP devre dışı bırakıldığında, veritabanını düzenlememi tam olarak engelleyen nedir? Sistemin kendisinin doğrudan kapatılamayacağını biliyorum, ancak SIP olmadan tüm beyaz listeleri saklayan veritabanı da dahil olmak üzere bilgisayarımdaki herhangi bir dosyayı düzenleyebilmeliyim.
Wowfunhappy

1
Görünüşe göre Apple, guarded_open_np özel API'sini kullanarak bu veritabanına erişim şeklini değiştirdi. IDA Pro ile bu API'yi tersine çevirmeye çalışan Rus hackerların bazı gönderilerini gördüm, ancak şimdiye kadar büyük bir başarı elde etmedim.
jvarela

Apple'ın beyaz listeyi normal olarak nasıl düzenleyeceğinden bağımsız olarak, veritabanı editörlerinde açılıp okunabileceği gerçeği ile kanıtlandığı gibi standart bir sqlite veritabanı gibi görünüyor. Dosyanın doğrudan düzenlenmesi ve değiştirilmesi imkansız olmasının başka bir nedeni varsa (örneğin, macOS veritabanının bir sağlama toplamını depolarsa ve bu sağlama toplamının kendisi Apple tarafından şifrelenirse), bunun açık ve kapsamlı bir açıklamasını görmek istiyorum Cevabınızda! Teşekkür ederim.
Wowfunhappy

1
+1, ancak bloglara güvenmiyorum. İçeriği söz konusu web sitesinden alıp doğrudan teklif verebilir miyiz, yoksa sürmek veya buna benzer bir şey ekleyebilir miyiz?
JBis

2

Bunu bir girişi silmek için buldum.

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db 'istemcinin " %appnamehere%" gibi erişimden sil

" appnamehere" Yerine , Erişilebilirlik listesinde göründüğü şekliyle uygulamanın adını yazın (% işaretlerini saklayın).


2
Bu, bir uygulamayı veritabanından kaldırır, izin eklemez, değil mi? Denediğimde (ekleme veya kaldırma) hiçbir şey yapmadı.
Wowfunhappy

1
Catalina'da dosyayı root olarak göremiyorsunuz bile ... ve eğer dizini root olarak denersem . Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database filelsls: : Operation not permitted
Michael

@Michael TCC.dbCatalina hakkında okuyabiliyor muydunuz ? Hatta yapamaz yanı aynı sorun var lsiçinde com.apple.TCCdizinde
WallTearer

1
@WallTearer Evet, Sistem Tercihleri'nde güvenlik ve gizlilik altında Terminal ve / veya / bin / bash dosya sistemine tam erişimi etkinleştirmem gerekiyor
Michael

@Michael cool, teşekkür ederim! Aynı zamanda Tam Disk Erişimi'ni etkinleştirmek için benzer bir öneride bulunan aşağıdaki makaleyi de okudum - blog.kolide.com/macos-catalina-osquery-a6753dc3c35c Sonunda iTerm2'ye erişim izni verdim ve tccutil ile güvenlik ayarlarını okuyabiliyordum. py yardımcı programı gibi sudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer

0

SIP, Kütüphane dizinini desteklemez. Yani, TCC.db dosyasına terminal aracılığıyla bazı komutlarla yazabileceğiniz anlamına gelir.

Link: SIP Hakkında


TCC.db dosyaları, dizinleri olmasa bile SIP tarafından korunur. Ne olursa olsun umrumda değil - hangi komutların uygulamaları beyaz listeye almama izin verdiğini bilmek istiyorum .
Wowfunhappy

apple.stackexchange.com/questions/362865/… bu bağlantı sorgunuza yardımcı olabilir
Coder123
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.