Chỉnh sửa TCC.db để bỏ qua 'Foo.app' muốn truy cập để kiểm soát 'Bar.app' 'trên máy riêng


15

Tôi sử dụng rộng rãi các Sự kiện của Apple để kiểm soát nhiều ứng dụng khác nhau trên máy của mình. Các lời nhắc bảo mật mới được giới thiệu trong Mojave đang làm tê liệt .

nhập mô tả hình ảnh ở đây

Trong các phiên bản trước của macOS, một khi ứng dụng được cấp quyền "điều khiển máy tính của bạn", nó có thể gửi các sự kiện của Apple tới bất kỳ ứng dụng nào khác trên máy của bạn. Trong Mojave, quyền này phải được cấp thủ công một lần cho mỗi ứng dụng được kiểm soát.

Khi người dùng cấp quyền truy cập, lựa chọn của họ được lưu trữ trong một trong hai cơ sở dữ liệu sqlite:

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

    • Lưu ý rằng # 2 chỉ hiển thị cho người dùng root.
    • Lưu ý rằng Bảo vệ toàn vẹn hệ thống bị vô hiệu hóa.

Có thể chỉnh sửa trực tiếp các cơ sở dữ liệu sqlite này để tự động cấp quyền và bỏ qua các lời nhắc bảo mật này không?


@ user3439894 Cảm ơn, SIP đã bị vô hiệu hóa trên máy của tôi. Có vẻ như chương trình python tương thích với bảo vệ "Tự động hóa" mới của Mojave.
Wowfunhappy

Điều gì sẽ gửi Sự kiện của Apple đến các ứng dụng khác nhau (tức là bạn có bao nhiêu Foo.app và bạn có bao nhiêu Bar.app và ma trận đó có thưa thớt hay dày đặc không?)? Bạn có ổn với giải pháp không vượt quá 3 máy bạn kiểm soát (hoặc yêu cầu tiền vào thời điểm đó) không?
bmike

@bmike Các applescripts của tôi có các dòng như "Tell application (đường dẫn đến ứng dụng ngoài cùng dưới dạng văn bản) để thoát", vì vậy Bar.app có thể là bất kỳ ứng dụng nào được cài đặt. Đây là tất cả trên một máy duy nhất.
Wowfunhappy 17/11/18

Đưa tất cả ra khỏi đường đi trong một lần : tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list. Sau đó repeat with A in the result... ignoring application responses... quit the application named A... end ignoring... end repeat. Nó sẽ đau đớn, nhưng nó sẽ giống như xé toạc một chiếc băng đô.
CJK

Câu trả lời:


7

Để truy cập trực tiếp vào cơ sở dữ liệu TCC.db không còn được Apple hỗ trợ, ngay cả khi bạn tắt SIP , vì chính sách bảo vệ người dùng của họ khỏi các công ty lớn muốn theo dõi mọi thứ bạn làm trực tuyến và cũng được sử dụng để thực hiện việc bỏ qua lén lút này mà không cần hỏi cho phép người dùng. Tuy nhiên, ngay cả trong Mojave, có một cách để phá vỡ điều này, nhưng với một nhược điểm: chỉ hoạt động nếu một máy tính nhất định được đăng ký vào một chương trình MDM . Để biết thêm về chương trình MDM tại đây .

Để bỏ qua điều này cho một số máy tính, bạn có thể sử dụng tập lệnh python tccprofile.pycó sẵn tại GitHub .

Một cuộc thảo luận sâu về những gì bạn có thể và không thể làm có thể được tìm thấy ở đây .

Theo tôi biết, đây là cách duy nhất để bỏ qua nhu cầu xin phép người dùng từ Mojave trở đi.


1
Việc lấy một hồ sơ MDM cho các tập lệnh cá nhân của tôi thực sự không thực tế. Với SIP bị vô hiệu hóa, chính xác thì điều gì ngăn tôi chỉnh sửa cơ sở dữ liệu? Tôi nhận ra rằng bản thân hệ thống không thể tắt trực tiếp, nhưng không có SIP, tôi sẽ có thể chỉnh sửa bất kỳ tệp nào trên máy tính của mình, bao gồm cả cơ sở dữ liệu lưu trữ tất cả các danh sách trắng.
Wowfunhappy

1
Rõ ràng, Apple đã thay đổi cách truy cập cơ sở dữ liệu này bằng cách sử dụng API riêng Guarded_open_np. Tôi đã thấy một số bài đăng của tin tặc Nga đang cố gắng đảo ngược API này bằng IDA Pro, nhưng cho đến nay không có thành công lớn.
jvarela

Bất kể Apple thường chỉnh sửa danh sách trắng như thế nào, nó dường như là một cơ sở dữ liệu sqlite tiêu chuẩn, bằng chứng là nó có thể được mở và đọc trong các trình soạn thảo cơ sở dữ liệu. Nếu có một lý do khác khiến tệp không thể chỉnh sửa và thay thế trực tiếp (ví dụ: nếu macOS lưu trữ tổng kiểm tra dữ liệu và tổng kiểm tra đó được mã hóa bởi Apple), tôi muốn xem giải thích rõ ràng và toàn diện về điều này trong câu trả lời của bạn Cảm ơn bạn.
Wowfunhappy

1
+1, nhưng tôi không tin tưởng blog. Chúng tôi có thể lấy nội dung từ trang web đó và trích dẫn trực tiếp hoặc thêm nó vào ổ đĩa hoặc một cái gì đó tương tự không?
JBis

2

Tôi tìm thấy điều này để xóa một mục.

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db 'xóa khỏi quyền truy cập nơi khách hàng thích " %appnamehere%"'

Thay thế " appnamehere" bằng tên của ứng dụng như xuất hiện trong danh sách Trợ năng (giữ nguyên dấu%).


2
Điều này sẽ xóa một ứng dụng khỏi cơ sở dữ liệu, không thêm quyền, phải không? Nó dường như không làm gì khi tôi thử nó (thêm hoặc xóa).
Wowfunhappy

1
Trong Catalina, bạn không thể giải thích được thậm chí không thể xem tệp là root ... Error: unable to open database "/Library/Application Support/com.apple.TCC/TCC.db": unable to open database filevà nếu tôi cố gắng vào lsthư mục là root tôi nhận được ls: : Operation not permitted.
Michael

@Michael bạn đã có thể đọc TCC.dbtrên Catalina? Tôi cũng có vấn đề tương tự, thậm chí không thể làm lstrong com.apple.TCCthư mục
WallTearer

1
@WallTearer Có, tôi phải cho phép truy cập đầy đủ vào hệ thống tập tin vào Terminal và / hoặc / bin / bash theo bảo mật và quyền riêng tư trong Tùy chọn hệ thống
Michael

@Michael mát mẻ, cảm ơn bạn! Đồng thời tôi cũng đang đọc bài viết sau với đề xuất tương tự để kích hoạt Full Disk Access - blog.kolide.com/macos-catalina-osquery-a6753dc3c35c Cuối cùng tôi đã cấp quyền truy cập vào iTerm2 và có thể đọc cài đặt bảo mật với tccutil. tiện ích py như sudo tccutil --list( github.com/jacobsalmela/tccutil )
WallTearer

0

SIP không hỗ trợ thư mục Thư viện. Vì vậy, điều đó có nghĩa là bạn vẫn có thể ghi vào tệp TCC.db thông qua thiết bị đầu cuối bằng một số lệnh.

Đây là đường dẫn: Giới thiệu về SIP


Các tệp TCC.db được SIP bảo vệ mặc dù các thư mục của chúng không có. Tôi không quan tâm bất kể tôi rất muốn biết những lệnh nào sẽ cho phép tôi đưa vào danh sách trắng các ứng dụng.
Wowfunhappy

apple.stackexchange.com/questions/362865/ từ liên kết này có thể giúp truy vấn của bạn
Coder123
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.