GateKeeper cho phép tôi cài đặt mọi thứ, không có kiểm tra nào được thực hiện


9

Tôi có thể tải xuống các ứng dụng từ các trang web tùy chỉnh và chạy chúng, ngay cả khi cài đặt gatekeeper của tôi ở "Chỉ AppStore". Đây là ứng dụng của tôi - nó thậm chí không được ký.

Điều gì có thể là lý do cho điều đó? Tôi có thể tái tạo hành vi này trên cả 3 máy Mac của mình.


2
Làm thế nào để bạn tải xuống và mở rộng các ứng dụng?
Gordon Davisson

thông qua một vị trí tập tin máy chủ smb: //. sao chép chúng vào máy tính để bàn của tôi. Trên các máy khác, điều này kích hoạt các cơ chế an toàn chính xác. Trên các máy của tôi, mặc dù tôi có "AppStore Only", lấy cùng một tệp, cách tương tự được cho phép, không hạn chế cài đặt và chạy. Huyền bí.
JasonGenX

2
Điều gì xảy ra nếu bạn tải xuống cùng một tệp qua http?
nhồi vào

Câu trả lời:


7

Đây là một tính năng theo trạng thái thiết kế trong đó người dùng quản trị viên luôn có thể ghi đè Gatekeeper và mở Ứng dụng bằng cách nhấp chuột phải vào ứng dụng trong Finder.

Người dùng quản trị cũng có thể thay đổi cài đặt Gatekeeper hoặc vô hiệu hóa hoàn toàn, do đó, không có hại thực sự (ít nhất là trong mắt tôi) khi trình bày hộp thoại danh sách trắng một lần để đảm bảo người dùng quản trị dự định cho phép không tuân thủ (không được ký hoặc ứng dụng không phải là Mac App Store) để chạy.

Hộp thoại đào tạo của Apple cho Gatekeeper - từ support.apple.com/kb/HT5290

Bây giờ nếu bạn tìm được cách để người dùng không phải quản trị viên vượt qua Gatekeeper, thì tôi sẽ mong đợi nộp lỗ hổng bảo mật với Apple để nhận tín dụng cho việc tìm lỗ hổng khi họ vá bất kỳ lỗi triển khai nào để cho phép chạy ứng dụng chính sách.

Apple ghi lại tính năng này một cách sâu sắc về cách liệt kê rõ ràng một ứng dụng.

Gatekeeper không bảo vệ phần mềm độc hại và không phải là một danh sách đen. Đó là một tập hợp các chính sách cho phép khởi chạy lần đầu tiên các ứng dụng được ký hợp lệ và xác thực các biên lai của cửa hàng Mac App. Nếu người dùng quản trị khởi chạy một cách rõ ràng và sau đó chấp thuận cho chạy phần mềm không tuân thủ, bạn có vấn đề về giáo dục hoặc chính sách trái ngược với việc phát hiện ra một số lỗ hổng trong Gatekeeper.

Cụ thể, tôi đã tóm tắt (và chủ yếu là sao chép) các phần có liên quan của trợ giúp của Apple về danh sách trắng bất kỳ Ứng dụng nào để Gatekeeper sẽ cho phép nó chạy không bị cản trở và không bị ảnh hưởng:

Cách mở ứng dụng từ nhà phát triển không xác định và miễn trừ khỏi Gatekeeper

Nếu bạn tự tin ứng dụng được tải xuống từ Internet là phiên bản mới nhất và là từ một nguồn mà bạn tin tưởng, bạn có thể mở một ứng dụng từ một nhà phát triển không xác định bằng cách làm theo các bước sau.

Quan trọng: Một số ứng dụng được sàng lọc của Apple từ các nhà phát triển đang trong quá trình lấy chữ ký ID nhà phát triển sẽ hiển thị tùy chọn "Mở" khi chúng được nhấp đúp.

Lưu ý: Trong hầu hết các trường hợp, bạn sẽ chỉ phải thực hiện các bước này một lần cho tất cả tài khoản người dùng trên máy Mac:

  • Trong Finder, Nhấp chuột phải hoặc nhấp chuột phải vào biểu tượng của ứng dụng.
  • Chọn Mở từ trên cùng của menu ngữ cảnh xuất hiện.
  • Bấm Mở trong hộp thoại. Nếu được nhắc, hãy nhập tên quản trị viên và mật khẩu.

Lưu ý: Nếu có một ứng dụng trình bày nhiều hộp thoại Gatekeeper, bạn có thể tạm thời sử dụng tùy chọn "Luôn luôn" của Gatekeep. Đảm bảo khôi phục tùy chọn Gatekeeper đã có trước đó để đưa chức năng Gatekeeper trở lại.

Bạn có thể dễ dàng kiểm soát ai có thể liệt kê danh sách trắng Ứng dụng bằng cách không cung cấp tên người dùng và mật khẩu của Quản trị viên cho người dùng không biết chức năng này và bạn cũng có thể quản lý người gác cổng từ thiết bị đầu cuối hoặc trình quản lý hồ sơ và phần mềm cài đặt được quản lý khác như Casper từ JAMF. Bạn cũng có thể kiểm tra máy của mình để tìm phần mềm được liệt kê màu trắng để định kỳ đặt lại danh sách các ứng dụng được phép và xác định ai đang thực hiện chức năng này trong trường hợp bạn muốn thay đổi chính sách và thói quen.


Có một cài đặt nào đặt lại hộp thoại một lần này không? Đây là mỗi ứng dụng? ứng dụng được xác định như thế nào? Tên? con đường? nếu tôi đã chọn mở "MyApp.app" một lần, tất cả các lần tải xuống và cài đặt tiếp theo của "MyApp.app" có thành công bất kể cài đặt GateKeeper không?
JasonGenX

Mỗi người dùng có các quy tắc khác nhau được lưu trữ trong / var / db / SystemPolicy - vì vậy bạn sẽ hơi nặng tay để xóa nó và bắt đầu lại, nhưng bạn có thể xóa các quy tắc cụ thể spctlđể spctl --assess -v /Applications/Whatever.apphiển thị cho bạn nếu nó được phép hoặc bị từ chối và spctl --remove /Applications/Whatever.appsẽ đặt lại "hộp thoại" và trạng thái cho một ứng dụng cụ thể. Tôi sử dụng một công cụ để thu thập tất cả các ứng dụng trên các hệ thống để tôi có thể kiểm tra việc sử dụng và sửa chữa mọi thứ khi cần với một đoạn script ngắn.
bmike

Tuy nhiên, theo câu trả lời của Gordon, điều này cũng phụ thuộc vào bit kiểm dịch được thiết lập, vì vậy chỉ vì GateKeeper không có mục nhập danh sách trắng (hoặc bị xóa), bit kiểm dịch cần được đặt lại hoặc xóa ứng dụng để gia hạn " hộp thoại gatekeeper "và bảo vệ mở.
bmike

10

Tải xuống tệp qua SMB sẽ không kích hoạt cách ly và vì ứng dụng không được cách ly nên chính sách của người gác cổng không bao giờ được kiểm tra. Tôi không chắc tại sao nó bị đánh dấu là cách ly trên các máy tính khác của bạn ...

Để kiểm tra cách ly tại bất kỳ điểm nào, hãy sử dụng ls -ld@lệnh để tìm thuộc tính com.apple.quarantine:

$ ls -ld@ /Applications/TextWrangler.app
drwxrwxr-x@ 3 gordon  staff  102 Apr 30  2012 /Applications/TextWrangler.app
    com.apple.FinderInfo     32 
    com.apple.quarantine     57 

Nếu thuộc tính kiểm dịch đó được đính kèm với ứng dụng, chính sách người gác cổng sẽ được kiểm tra; nếu không, nó sẽ không. Câu hỏi thú vị là tại sao nó bị cách ly trên các máy tính khác của bạn và nếu bạn sử dụng lệnh này để kiểm tra ứng dụng tại nhiều điểm khác nhau khi bạn phân phối nó, bạn có thể tìm ra khi thuộc tính được gắn vào (và do đó tại sao nó bị dính vào).

EDIT: Có một lưu ý liên quan đến vấn đề này trong phần "Nhấp vào đây để biết thêm chi tiết" trong bài viết KB của Apple # HT5290 :

Quan trọng: Chữ ký ID nhà phát triển áp dụng cho các ứng dụng được tải xuống từ Internet. Các ứng dụng từ các nguồn khác, chẳng hạn như máy chủ tệp, ổ đĩa ngoài hoặc đĩa quang được miễn trừ, trừ khi các ứng dụng ban đầu được tải xuống từ Internet.


Gatekeeper khác với kiểm dịch mặc dù cùng nhau, chúng giúp bảo vệ khỏi việc vô tình chạy phần mềm mới không được ký và / hoặc không từ Mac App Store. Xem câu trả lời của tôi để biết chi tiết.
bmike

1
@bmike: Thật ra, gatekeeper là một phần mở rộng của hệ thống kiểm dịch; nếu bạn tải xuống một ứng dụng, sau đó chạy xattr -d com.apple.quarantinetrên nó, bạn có thể mở nó ngay cả khi nó vi phạm chính sách của người gác cổng.
Gordon Davisson

Bạn đã có thể mở bất kỳ ứng dụng nào vi phạm chính sách của người gác cổng. Bạn chỉ cần nhận được (có khả năng là một hộp thoại quản trị viên và) sau đó có cơ hội liệt kê ra các ứng dụng chính sách. Bạn đang nói rằng một người dùng không phải là quản trị viên có thể đưa ra một lệnh sẽ bỏ qua kiểm tra nếu bạn chỉ có Mac App Store hoặc chỉ ký các ứng dụng?
bmike

1
@bmike: Đúng, tôi vừa thử nghiệm tải xuống, kiểm tra và chạy một ứng dụng chưa được ký từ tài khoản không phải quản trị viên và nó vẫn hoạt động tốt mặc dù Gatekeeper được đặt ở chế độ chỉ dành cho Mac App Store. Nhưng tôi sẽ không coi đây là một lỗ hổng bảo mật quan trọng, vì nếu một kẻ bất lương có thể nói người dùng chạy một lệnh như thế này, họ có thể nói chuyện với họ về bất cứ điều gì và dù sao thì người dùng cũng sẽ phải chịu trách nhiệm (và vì họ không phải là quản trị viên, tất cả những gì họ có thể làm hỏng là tài khoản của chính họ).
Gordon Davisson

1
Điều này. Kiểm dịch không giống như Gatekeeper, nhưng Gatekeeper dựa vào siêu dữ liệu từ Quarantine, được đính kèm với các tệp đã tải xuống dưới dạng siêu dữ liệu thuộc tính mở rộng. Nếu tôi có thể thưởng tiền thưởng, tôi sẽ trao nó ở đây.
Daniel

4

Nếu bạn đã bật tùy chọn ẩn này, nó cũng vô hiệu hóa Gatekeeper:

defaults write com.apple.LaunchServices LSQuarantine -bool false

Hoặc OS X cho phép mở tất cả các ứng dụng bất kể cài đặt trong Tùy chọn hệ thống.


Rất tiếc, tôi hoàn toàn bỏ lỡ điều này và đăng điều tương tự như một câu trả lời riêng biệt. Xóa ngay bây giờ
TJ Luoma

2

Gatekeeper ngăn các ứng dụng chạy bằng cách nhấp đúp, nhưng bạn luôn có thể ghi đè lên nó bằng cách chọn Mở từ menu ngữ cảnh.

Nếu bạn có thể chạy các ứng dụng chưa được tải xuống bằng cách nhấp đúp, đây là sự cố với Gatekeeper. Các tệp lưu trữ trạng thái kiểm dịch của chúng trong một thuộc tính mở rộng được gọi là com.apple.quarantine . Nếu thuộc tính này bị xóa vì một số lý do từ các tệp đã tải xuống của bạn, Gatekeeper sẽ coi các tệp đã tải xuống không khác với bất kỳ tệp nào khác trên máy tính của bạn. Vì vậy, tôi khuyên bạn nên tải xuống một chương trình và sau đó sử dụng xattr -l filenametrong Terminal sẽ là một công cụ chẩn đoán tốt nếu bạn đã cài đặt Xcode.

Nếu bạn chạy chúng thông qua lệnh Open từ menu, đây là hành vi được thiết kế. Lưu ý rằng một khi bạn đã chạy một chương trình từ menu, nó sẽ được kích hoạt mãi mãi bằng cách nhấp đúp, bất kể cài đặt Gatekeeper của bạn.

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.