GateKeeper memungkinkan saya untuk menginstal apa pun, tidak ada pemeriksaan yang dilakukan

9

Saya dapat mengunduh aplikasi dari situs web khusus, dan menjalankannya, bahkan ketika pengaturan gatekeeper saya ada di "AppStore Only". Ini aplikasi saya - bahkan belum masuk.

Apa yang bisa menjadi alasan untuk itu? Saya dapat mereproduksi perilaku ini di semua 3 mac saya.

JasonGenX
sumber
2
Bagaimana Anda mengunduh dan memperluas aplikasi?
Gordon Davisson
via seseorang: // lokasi file server. menyalinnya ke desktop saya. Pada mesin lain, ini memicu mekanisme keamanan dengan benar. Di komputer saya, meskipun saya memiliki "AppStore Only", mengambil file yang sama, cara yang sama diperbolehkan, tidak ada batasan untuk menginstal dan menjalankan. Misteri.
JasonGenX
2
Apa yang terjadi jika Anda mengunduh file yang sama melalui http?
stuffe

Jawaban:

7

Ini adalah fitur status-oleh-desain di mana pengguna admin selalu dapat mengalahkan Gatekeeper dan membuka Aplikasi dengan mengklik kanan aplikasi di Finder.

Pengguna admin juga dapat mengubah pengaturan Gatekeeper atau menonaktifkannya sepenuhnya, sehingga tidak ada kerugian yang nyata (setidaknya di mata saya) dalam menyajikan dialog daftar putih satu kali untuk memastikan pengguna admin berniat untuk menjalankan aplikasi yang tidak patuh (non-menandatangani atau non-Mac App Store) untuk dijalankan.

Apple's training dialog for Gatekeeper - from support.apple.com/kb/HT5290

Sekarang jika Anda menemukan cara bagi pengguna non-admin untuk mem-bypass Gatekeeper, maka saya berharap mengajukan kerentanan keamanan dengan Apple untuk mendapatkan kredit karena menemukan lubang setelah mereka menambal kesalahan implementasi apa pun yang dibuat untuk memungkinkan aplikasi kebijakan berjalan.

Apple mendokumentasikan fitur ini secara mendalam tentang cara membuat daftar putih aplikasi secara eksplisit.

Gatekeeper bukan perlindungan malware dan bukan daftar hitam. Ini adalah serangkaian kebijakan yang memungkinkan peluncuran pertama aplikasi yang ditandatangani dengan benar dan atau validasi tanda terima toko Mac App. Jika pengguna admin secara eksplisit meluncurkan dan kemudian menyetujui jalannya perangkat lunak yang tidak patuh, Anda memiliki masalah pendidikan atau kebijakan sebagai lawan untuk mengungkap beberapa kekurangan di Gatekeeper.

Secara terperinci, saya telah merangkum (dan sebagian besar menyalin) bagian yang relevan dari bantuan Apple pada daftar putih setiap Aplikasi sehingga Gatekeeper akan memungkinkannya berjalan tanpa hambatan dan tanpa hambatan:

Cara membuka aplikasi dari pengembang yang tidak dikenal dan membebaskannya dari Gatekeeper

Jika Anda yakin aplikasi yang diunduh dari Internet adalah versi terbaru dan dari sumber yang Anda percayai, Anda dapat membuka aplikasi   dari pengembang yang tidak dikenal dengan mengikuti langkah-langkah ini.

Penting: Beberapa Apple menyaring aplikasi dari pengembang yang ada di   proses memperoleh tanda tangan ID Pengembang akan menyajikan "Buka"   pilihan ketika mereka diklik dua kali.

Catatan: Dalam kebanyakan kasus, Anda hanya perlu melakukan langkah-langkah ini sekali saja   untuk semua akun pengguna di Mac:

  • Di Finder, klik Kontrol atau klik kanan ikon aplikasi.
  • Pilih Buka dari bagian atas menu kontekstual yang muncul.
  • Klik Buka di kotak dialog. Jika diminta, masukkan nama administrator dan kata sandi.

Catatan: Jika ada aplikasi yang menyajikan beberapa kotak dialog Gatekeeper, Anda dapat menggunakan sementara opsi "Selalu" Gatekeeper. Yakinkan   untuk mengembalikan opsi Gatekeeper yang ada di sana sebelumnya untuk membawa kembali   Fungsi penjaga gerbang.

Anda dapat dengan mudah mengontrol siapa saja yang dapat mendaftar Aplikasi dengan tidak membagikan nama pengguna dan kata sandi Administrator kepada pengguna yang tidak mengetahui fungsi ini dan Anda juga dapat mengelola penjaga gerbang dari terminal atau manajer profil dan perangkat lunak pengaturan yang dikelola lainnya seperti Casper dari JAMF. Anda juga dapat mengaudit mesin Anda untuk perangkat lunak yang telah terdaftar putih untuk secara berkala mengatur ulang daftar aplikasi yang diizinkan dan menentukan siapa yang menjalankan fungsi ini jika Anda ingin mengubah kebijakan dan kebiasaan.

bmike
sumber
apakah ada pengaturan yang mengatur ulang dialog satu kali ini? apakah ini per aplikasi? bagaimana aplikasi diidentifikasi? nama? jalan? jika saya memilih untuk membuka "MyApp.app" sekali, akankah semua unduhan dan pemasangan "MyApp.app" berikutnya berhasil terlepas dari pengaturan GateKeeper?
JasonGenX
Setiap pengguna memiliki aturan berbeda yang disimpan di / var / db / SystemPolicy - sehingga Anda akan sedikit berat untuk menghapusnya dan memulai lagi, tetapi Anda dapat menghapus aturan tertentu dengan spctl begitu spctl --assess -v /Applications/Whatever.app akan menunjukkan kepada Anda jika diizinkan atau ditolak dan spctl --remove /Applications/Whatever.app akan mengatur ulang "dialog" dan status untuk aplikasi tertentu. Saya menggunakan alat untuk mengumpulkan semua aplikasi pada sistem sehingga saya bisa mengaudit penggunaan dan memperbaiki hal-hal bila diperlukan dengan skrip pendek.
bmike
Namun menurut Jawaban Gordon ini juga tergantung pada bit karantina yang diset, jadi hanya karena GateKeeper tidak memiliki entri daftar putih (atau dihapus), bit karantina perlu diatur ulang atau aplikasi dihapus untuk memperbarui kotak dialog "gatekeeper" dan buka perlindungan.
bmike
10

Mengunduh file melalui SMB akan tidak memicu karantina, dan karena aplikasi tidak dikarantina, kebijakan penjaga gerbang tidak pernah diperiksa. Saya tidak yakin mengapa itu ditandai sebagai dikarantina di komputer Anda yang lain ...

Untuk memeriksa karantina di setiap titik, gunakan ls -ld@ perintah untuk mencari atribut 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 

Jika atribut karantina itu melekat pada aplikasi, kebijakan penjaga gerbang akan diperiksa; jika tidak, itu tidak akan terjadi. Pertanyaan yang menarik adalah mengapa ia dikarantina di komputer Anda yang lain, dan jika Anda menggunakan perintah ini untuk memeriksa aplikasi di berbagai titik saat Anda mendistribusikannya, Anda dapat mengetahui kapan atribut tersebut dilampirkan (dan karenanya Mengapa sudah terpasang).

EDIT: Ada catatan yang berkaitan dengan ini di bagian "Klik di sini untuk detail lebih lanjut" Artikel KB Apple # HT5290 :

Penting: Tanda tangan ID Pengembang berlaku untuk aplikasi yang diunduh dari Internet. Aplikasi dari sumber lain, seperti server file, drive eksternal, atau cakram optik dikecualikan, kecuali aplikasi tersebut awalnya diunduh dari Internet.

Gordon Davisson
sumber
Gatekeeper berbeda dari karantina meskipun bersama-sama mereka membantu melindungi dari tidak sengaja menjalankan perangkat lunak baru yang tidak ditandatangani dan / atau tidak dari Mac App Store. Lihat jawaban saya untuk detailnya.
bmike
1
@bmike: Sebenarnya, gatekeeper adalah perpanjangan dari sistem karantina; jika Anda mengunduh aplikasi, kemudian jalankan xattr -d com.apple.quarantine di atasnya Anda dapat membukanya bahkan jika itu melanggar kebijakan penjaga gerbang.
Gordon Davisson
Anda sudah dapat membuka aplikasi apa pun yang melanggar kebijakan penjaga gerbang. Anda baru saja mendapatkan (kemungkinan dialog admin dan) kemudian kesempatan untuk daftar putih dari aplikasi kebijakan. Apakah Anda mengatakan bahwa pengguna non-admin dapat mengeluarkan satu perintah akan melewati pemeriksaan jika Anda memiliki Mac App Store saja atau hanya aplikasi yang ditandatangani?
bmike
1
@bmike: Ya, saya baru saja menguji pengunduhan, dequarantining, dan menjalankan aplikasi yang tidak ditandatangani dari akun non-admin dan bekerja dengan baik meskipun Gatekeeper diatur ke mode hanya Mac App Store. Tapi saya tidak akan menganggap ini sebagai lubang keamanan yang signifikan, karena jika seorang penjahat dapat berbicara pengguna untuk menjalankan perintah seperti ini, mereka dapat berbicara mereka menjadi apa saja, dan pengguna tetap saja ditakdirkan (dan karena mereka bukan admin, yang dapat mereka rusak adalah akun mereka sendiri).
Gordon Davisson
1
Ini. Karantina tidak sama dengan Gatekeeper, tetapi Gatekeeper mengandalkan metadata dari Karantina, yang dilampirkan ke file yang diunduh sebagai metadata atribut diperluas. Jika saya bisa menghadiahkan hadiah, saya akan menghadiahkannya di sini.
Daniel
4

Jika Anda telah mengaktifkan preferensi tersembunyi ini, itu juga menonaktifkan Gatekeeper:

defaults write com.apple.LaunchServices LSQuarantine -bool false

Atau OS X memungkinkan membuka semua aplikasi terlepas dari pengaturan di System Preferences.

Lri
sumber
Ups, saya benar-benar melewatkan ini dan memposting hal yang sama sebagai jawaban terpisah. Hapus sekarang ...
TJ Luoma
2

Gatekeeper mencegah aplikasi dijalankan dengan mengklik dua kali, tetapi Anda selalu dapat menimpanya dengan memilih Buka dari menu konteks.

Jika Anda dapat menjalankan aplikasi yang tidak ditandatangani yang diunduh dengan mengklik dua kali, ini merupakan masalah dengan Gatekeeper. File menyimpan status karantina mereka di sebuah atribut yang diperluas bernama com.apple.quarantine . Jika atribut ini dihapus karena beberapa alasan dari file yang Anda unduh, Gatekeeper akan memperlakukan file yang diunduh sebagai tidak berbeda dari file lain di komputer Anda. Jadi saya sarankan mengunduh program dan menggunakannya xattr -l filename di Terminal akan menjadi alat diagnostik yang baik jika Anda memiliki Xcode diinstal.

Jika Anda menjalankannya melalui perintah Open dari menu, ini adalah perilaku yang dirancang. Perhatikan bahwa setelah Anda menjalankan program dari menu, itu selamanya diaktifkan untuk dijalankan dengan mengklik dua kali, terlepas dari pengaturan Gatekeeper Anda.

Daniel
sumber