Nota: Eu trabalho na equipe de segurança do Ubuntu e ajudei a projetar a história do confinamento do aplicativo no Ubuntu. Eu reformulei as perguntas para maior clareza.
P: "Os pacotes de cliques serão mais seguros em relação ao sistema e aos dados do usuário, ou serão os mesmos?"
A: Em geral, os pacotes de cliques são mais seguros que os debs em relação aos dados do sistema e do usuário.
Os pacotes de cliques não incluem scripts do mantenedor que são executados como root na instalação, como os pacotes deb. Os pacotes de cliques são simplesmente descompactados e, em seguida, os ganchos fornecidos pelo sistema são usados se declarados pelo clique. Por exemplo, o clique pode ser declarado para usar um gancho de desktop para gerar um arquivo da área de trabalho ou um gancho do AppArmor para gerar um perfil do AppArmor para o aplicativo. Como o empacotamento deb tem o conceito de scripts de mantenedores projetados para permitir a personalização extensiva do software ou do sistema, os pacotes deb só devem ser instalados a partir de uma fonte confiável, por exemplo, um arquivo assinado de uma distribuição como o Ubuntu. Os pacotes de cliques podem ser instalados diretamente e você pode estar razoavelmente seguro de que a instalação do pacote não arruinará seu sistema. No entanto, isso é apenas parte da história - se você instalar um pacote de cliques de uma fonte não confiável, não há garantias de que ele declarará em seu manifesto que está adequadamente confinado, portanto, ao instalá-lo, a execução não pode ser (ou seja, o software pode ser executado sem confinamento e, portanto, ser capaz de roubar seus dados ou executar programas como seu usuário).
O poder real do clique é quando ele é usado em combinação com um repositório de software com políticas strongs. Por exemplo, a segurança de um pacote de cliques instalado na App Store do Ubuntu é tipicamente maior que a de um deb instalado a partir de um arquivo confiável. Isso porque na Ubuntu App Store, o modelo de confiança é que os aplicativos são considerados não confiáveis * e as políticas e verificações estão em vigor para garantir que os pacotes de cliques na loja tenham um manifesto de segurança adequado e, portanto, sejam executados em condições muito restritas. Compare isso com pacotes deb no arquivo Ubuntu - o modelo de confiança é que o software e o pacote deb são considerados confiáveis e em geral o software não é executado em confinamento (embora haja muitas exceções onde um perfil do AppArmor é enviado com o software para se proteger contra bugs de segurança).
- Pacotes confiáveis também podem ser entregues via Ubuntu App Store. Embora incomuns, eles são normalmente desenvolvidos pela Canonical e podem ou não ser executados em confinamento.
Para responder às suas perguntas específicas:
P: O clique é baseado no mesmo sistema que o deb?
A: O formato de pacote de baixo nível para click é deb. No entanto, o empacotamento de cliques é muito mais simples, pois usa um manifesto declarativo e engancha em vez de arquivos de empacotamento tradicionais e scripts do mantenedor.
P: O AppArmor pode fornecer acesso privilegiado a aplicativos sem interação do usuário?
A: O AppArmor é uma raiz strong e pode permitir ou negar acesso a recursos do sistema (arquivos, DBus, redes, etc.) com base na política de segurança definida. Um pacote de cliques não é necessário para enviar um manifesto de segurança do AppArmor ou enviar um manifesto de segurança do AppArmor que seja "seguro". O que torna o sistema seguro é a combinação de cliques e políticas da loja que entrega pacotes de cliques. Os pacotes de cliques fornecidos através do Ubuntu App Store usarão a política do AppArmor que é muito restritiva e não permite ações privilegiadas nos bastidores (por exemplo, um aplicativo executado sob esta política não pode executar programas no sistema nos bastidores, acessar sua conta do Facebook , roubar suas chaves gpg ou ssh, manipular redes, etc)
P: O usuário será solicitado, no momento da instalação, a conceder direitos de acesso ao aplicativo, como no Android? (por exemplo, "este aplicativo é capaz de digitalizar sua / home e rede de acesso")
A: Não. Um pacote de cliques pode ser instalado sem nenhum aviso usando ferramentas de baixo nível. No Ubuntu, os pacotes de cliques devem ser instalados através da loja de aplicativos Ubuntu (veja acima) e por causa das políticas de loja de aplicativos Ubuntu combinadas com os recursos de cliques e o sistema Ubuntu, não há necessidade de prompts de instalação sem cliques. O Ubuntu pode fazer isso porque os aplicativos instalados na App Store do Ubuntu são executados em confinamento restrito (ou seja, eles não podem fazer coisas ruins nos bastidores) e quando um aplicativo precisa de acesso adicional, ele usa APIs controladas, que podem incluir solicitações.
No caso de APIs privilegiadas, temos o conceito de helpers confiáveis, de modo que o usuário tenha um prompt contextual para permitir ou negar o acesso (com cache revogável (opcional) para que o usuário não seja solicitado a cada vez).Por exemplo, se o aplicativo precisar acessar o serviço de localização (um auxiliar confiável), o usuário será solicitado a permitir o acesso no momento em que o aplicativo tentar usar o serviço de localização, o que fornecerá contexto para que o usuário possa fazer um decisão informada. O mesmo acontecerá com a gravação de vídeo e áudio. Geralmente, não precisamos ter um aviso de segurança e podemos permitir o acesso com base nas interações conduzidas pelos usuários com o aplicativo. Por exemplo, se um aplicativo quiser fazer upload de uma foto, haverá uma caixa de diálogo para selecionar a imagem. Nos bastidores, como o aplicativo não tem permissão para acessar o diretório ~ / Pictures, ele usará a API content-hub, que ativará o seletor de arquivo da galeria para que o usuário escolha uma imagem para upload. O hub de conteúdo tira a foto da galeria e a entrega ao aplicativo. Desta forma, não há diálogo de segurança, há apenas uma interação natural para o usuário, mas nos bastidores, há uma decisão implícita de confiança.
P: Relacionado a esta pergunta: o .apk e o clique têm linguagem semelhante em relação a políticas e experiências do usuário?
A: Não, não há solicitação de instalação pelos motivos mencionados acima. As permissões do Android e as permissões de segurança para pacotes de cliques definidos para o Ubuntu têm algumas semelhanças, mas são diferentes e implementadas de maneira diferente.
P: Especificamente, com um clique, um aplicativo pode enviar todos os meus dados privados pela rede sem que eu saiba ou será confinado de alguma forma para evitar isso?
A: Se você instalar um clique de uma fonte não confiável, sim, ele poderá fazer qualquer coisa. Se você instalar um clique na App Store do Ubuntu, não, um aplicativo não pode enviar todos os seus dados pela rede porque não tem acesso a ele. É claro que um aplicativo pode parecer fazer uma coisa e fazer outra, portanto, se um usuário conceder acesso ao serviço de localização ou conceder acesso ao aplicativo a uma foto, o aplicativo poderá ser maligno com esses dados, mas é aí que as avaliações / reviews e as políticas de segurança da App Store entram em vigor. Se um aplicativo como esse for relatado, ele será investigado. Se apropriado, o aplicativo será removido da loja, o aplicativo será removido de todos os dispositivos em que ele estiver instalado e o acesso à loja de aplicativos do desenvolvedor será revogado.
P: Pode-se dizer que os pacotes de cliques são mais seguros que os debs, mas menos poderosos porque são mais restritos?
A: Como pode ser visto acima, a resposta não é simples. Um clique por si só pode enviar software que pode fazer qualquer coisa. O formato de empacotamento de cliques é propositalmente intencional e pode ser usado de várias formas e não é específico do Ubuntu. Para o Ubuntu, a combinação de políticas de cliques, APIs do Ubuntu, AppArmor e App Store oferece um ambiente muito poderoso para que os desenvolvedores entreguem aplicativos aos usuários de maneira segura e fácil para as pessoas usarem. A utilidade dos próprios aplicativos depende das APIs oferecidas aos aplicativos pelo sistema subjacente. O conjunto inicial de APIs que será oferecido nos primeiros telefones de envio do Ubuntu permitirá que os desenvolvedores criem todos os tipos de aplicativos divertidos e úteis usando uma API e um SDK avançados. Essas APIs expandirão em sua amplitude e utilidade à medida que avançamos para melhor apoiar desenvolvedores e usuários.