O GateKeeper me permite instalar qualquer coisa, nenhuma verificação é feita

9

Posso baixar aplicativos de sites personalizados e executá-los, mesmo quando as configurações do meu gatekeeper estão em "Somente AppStore". Esta é a minha inscrição - nem está assinada.

Qual poderia ser a razão disso? Eu posso reproduzir esse comportamento em todos os meus 3 macs.

JasonGenX
fonte
2
Como você está baixando e expandindo os aplicativos?
Gordon Davisson 22/03
via smb: // local do arquivo do servidor. copiando-os para a minha área de trabalho. Em outras máquinas, isso aciona os mecanismos de segurança de maneira correta. Nas minhas máquinas, mesmo que eu tenha "AppStore Only", o mesmo arquivo é permitido da mesma maneira, sem restrições para instalação e execução. Mistério.
JasonGenX 27/03
2
O que acontece se você baixar o mesmo arquivo por http?
stuffe

Respostas:

7

Esse é um recurso de status por design em que um usuário administrador sempre pode substituir o Gatekeeper e abrir um aplicativo clicando com o botão direito do mouse no aplicativo no Finder.

Um usuário administrador também pode alterar as configurações do Gatekeeper ou desativá-lo completamente, para que não haja nenhum dano real (pelo menos aos meus olhos) em apresentar uma caixa de diálogo única na lista branca para garantir que o usuário administrador pretenda permitir um não-compatível (não assinado) (ou não Mac App Store) para executar.

Caixa de diálogo de treinamento da Apple para o Gatekeeper - em support.apple.com/kb/HT5290

Agora, se você encontrou uma maneira de um usuário não administrador ignorar o Gatekeeper, esperaria que a Apple arquivasse uma vulnerabilidade de segurança para obter crédito por encontrar um buraco, uma vez que corrigem qualquer erro de implementação feito para permitir a execução de aplicativos de política.

A Apple documenta esse recurso detalhadamente sobre como listar explicitamente um aplicativo.

O Gatekeeper não é uma proteção contra malware e não é uma lista negra. É um conjunto de políticas que permitem o primeiro lançamento de aplicativos assinados corretamente e / ou a validação de recibos da Mac App Store. Se um usuário administrador iniciar explicitamente e aprovar a execução de software não compatível, você terá um problema de educação ou política em vez de descobrir alguma falha no Gatekeeper.

Em detalhes, resumi (e principalmente copiei) as seções relevantes da ajuda da Apple na lista branca de qualquer aplicativo, para que o Gatekeeper permita que ele funcione sem impedimentos e sem interrupções:

Como abrir um aplicativo de um desenvolvedor não identificado e isentá-lo do Gatekeeper

Se você tiver certeza de que o aplicativo baixado da Internet é a versão mais recente e é de uma fonte confiável, poderá abrir um aplicativo de um desenvolvedor não identificado seguindo estas etapas.

Importante: Alguns aplicativos selecionados pela Apple de desenvolvedores que estão no processo de aquisição de assinaturas de ID do desenvolvedor apresentarão a opção "Abrir" quando clicarem duas vezes.

Nota: Na maioria dos casos, você precisará executar estas etapas apenas uma vez para todas as contas de usuário no Mac:

  • No Finder, clique com a tecla Control pressionada ou clique com o botão direito do mouse no ícone do aplicativo.
  • Selecione Abrir na parte superior do menu contextual que aparece.
  • Clique em Abrir na caixa de diálogo. Se solicitado, digite um nome e senha de administrador.

Nota: Se houver um aplicativo que apresente várias caixas de diálogo do Gatekeeper, você poderá usar temporariamente a opção "Sempre" do Gatekeeper. Certifique-se de restaurar a opção Gatekeeper que estava lá antes para recuperar a função Gatekeeper.

Você pode controlar facilmente quem pode colocar os aplicativos na lista de permissões, não entregando nomes de usuário e senhas de Administrador a usuários que não conhecem essa funcionalidade, além de gerenciar o gatekeeper a partir do terminal ou gerenciador de perfis e outros softwares de configurações gerenciadas, como o Casper da JAMF. Você também pode auditar suas máquinas em busca de software que tenha uma lista branca para redefinir periodicamente a lista de aplicativos permitidos e determinar quem está exercendo essa função, caso deseje alterar a política e o hábito.

bmike
fonte
existe uma configuração que redefine esse diálogo único? isso é por aplicativo? como os aplicativos são identificados? nome? caminho? se eu optar por abrir o "MyApp.app" uma vez, todos os próximos downloads e instalações do "MyApp.app" serão bem-sucedidos, independentemente das configurações do GateKeeper?
21413 JasonGenX
Cada usuário tem regras diferentes que são armazenadas em / var / db / SystemPolicy - para que você seja um pouco desanimado e comece tudo de novo, mas você pode remover regras específicas spctlpara spctl --assess -v /Applications/Whatever.appmostrar se é permitido ou rejeitado e spctl --remove /Applications/Whatever.appredefinir a "caixa de diálogo" e o status de um aplicativo específico. Eu uso uma ferramenta para coletar todos os aplicativos nos sistemas para que eu possa auditar o uso e corrigir as coisas quando necessário com um script curto.
bmike
No entanto, de acordo com a resposta de Gordon, isso também depende do bit de quarentena que está sendo definido. Portanto, apenas porque o GateKeeper não possui uma entrada na lista branca (ou é removida), o bit de quarentena precisa ser redefinido ou o aplicativo excluído para renovar o " porteiro "e proteções abertas.
bmike
10

O download de um arquivo pelo SMB não acionará a quarentena e, como o aplicativo não está em quarentena, a política do gatekeeper nunca é verificada. Não sei por que está sendo marcado como quarentena nos outros computadores ...

Para verificar a quarentena a qualquer momento, use o ls -ld@comando para procurar o atributo 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 

Se esse atributo de quarentena estiver anexado ao aplicativo, a política de gatekeeper será verificada; se não, não vai. A pergunta interessante é por que ficou em quarentena nos outros computadores e, se você usar esse comando para verificar o aplicativo em vários pontos à medida que o distribui, poderá descobrir quando o atributo está sendo anexado (e, portanto, por que está sendo anexado).

EDIT: Há uma observação relacionada a isso na seção "Clique aqui para obter mais detalhes" do artigo da KB da Apple # HT5290 :

Importante: a assinatura da ID do desenvolvedor se aplica a aplicativos baixados da Internet. Aplicativos de outras fontes, como servidores de arquivos, unidades externas ou discos ópticos, são isentos, a menos que os aplicativos tenham sido originalmente baixados da Internet.

Gordon Davisson
fonte
O Gatekeeper é distinto da quarentena, embora juntos eles ajudem a proteger contra a execução acidental de novo software que não seja assinado e / ou não da Mac App Store. Veja minha resposta para detalhes.
bmike
11
@bmike: Na verdade, o gatekeeper é uma extensão do sistema de quarentena; se você baixar um aplicativo, execute xattr -d com.apple.quarantine-o e abra-o, mesmo que ele viole a política do gatekeeper.
Gordon Davisson 27/03
Você já pode abrir qualquer aplicativo que viole a política de gatekeeper. Você apenas obtém (potencialmente uma caixa de diálogo do administrador e) e, em seguida, a chance de entrar na lista branca de aplicativos de política. Você está dizendo que um usuário não administrador pode emitir um comando ignorará a verificação se você possui apenas aplicativos da Mac App Store ou apenas aplicativos assinados?
bmike
11
@bmike: Sim, acabei de testar o download, a desqualificação e a execução de um aplicativo não assinado de uma conta não administrativa e funcionou bem, apesar de o Gatekeeper ter sido definido no modo somente Mac App Store. Mas eu não consideraria isso uma brecha significativa na segurança, pois se um mal-intencionado pode convencer um usuário a executar um comando como este, ele pode falar com qualquer coisa e o usuário está condenado de qualquer maneira (e, como não é administrador, tudo o que eles podem danificar é sua própria conta).
Gordon Davisson 28/03
11
Este. Quarentena não é igual ao Gatekeeper, mas o Gatekeeper conta com os metadados da Quarentena, que são anexados aos arquivos baixados como metadados de atributo estendido. Se eu pudesse premiar a recompensa, eu a premiaria aqui.
Daniel
4

Se você ativou essa preferência oculta, ela também desativará o Gatekeeper:

defaults write com.apple.LaunchServices LSQuarantine -bool false

Ou o OS X permite abrir todos os aplicativos, independentemente da configuração nas Preferências do Sistema.

Lri
fonte
Ops, perdi completamente isso e postei a mesma coisa que uma resposta separada. Excluindo agora ...
TJ Luoma 28/03
2

O Gatekeeper impede que os aplicativos sejam executados clicando duas vezes, mas você sempre pode substituí-lo selecionando Abrir no menu de contexto.

Se você pode executar aplicativos não assinados baixados clicando duas vezes, isso é um problema com o Gatekeeper. Os arquivos armazenam seu status de quarentena em um atributo estendido chamado com.apple.quarantine . Se, por algum motivo, esse atributo for apagado dos arquivos baixados, o Gatekeeper tratará os arquivos baixados como não sendo diferentes dos outros arquivos no seu computador. Então, sugiro que o download de um programa e o uso xattr -l filenameno Terminal sejam uma boa ferramenta de diagnóstico se você tiver o Xcode instalado.

Se você executá-los através do comando Abrir em um menu, esse é o comportamento projetado. Observe que, depois de executar um programa no menu, ele pode ser ativado para sempre, clicando duas vezes, independentemente das configurações do Gatekeeper.

Daniel
fonte