Quais dados são transmitidos à Canonical para livepatch?

10

Acabei de atualizar para o 18.04 e queria experimentar o livepatch. Depois de ler a página da Web dos Termos de serviço do Livepatch ( https://www.ubuntu.com/legal/terms-and-policies/livepatch-terms-of-service ), fiquei pensando um pouco sobre esses dois parágrafos na seção de dados pessoais:

Também podemos coletar certas informações não identificáveis ​​pessoalmente, localizadas no seu computador. As informações coletadas podem incluir estatísticas relacionadas à frequência com que os dados são transferidos e métricas de desempenho em relação ao software e configuração. Você concorda que essas informações podem ser mantidas e usadas pela Canonical.

A Canonical pode divulgar todos ou quaisquer dados e conteúdos pessoais que você enviou, publicou ou publicou, se necessário, para cumprir a lei aplicável ou a ordem ou exigência de um tribunal, agência administrativa ou outro órgão governamental. Todo outro uso de seus dados pessoais está sujeito à Política de Privacidade.

Entendo que, para fazer o patch ao vivo, a Canonical precisa saber algumas coisas sobre o meu sistema, como a versão do kernel. Além disso, através da minha conta SSO e do token, eles sabem meu endereço de e-mail e nome.

Por enquanto, tudo bem. Mas me pergunto o que mais a Canonical precisa saber sobre o meu sistema. O texto acima é vago sobre isso. "Estatísticas" e "métricas de desempenho" não parecem necessárias para o serviço de correção ao vivo em si. Além disso, se esses dados são realmente "não pessoalmente identificáveis", por que a Canonical está pedindo um parágrafo mais tarde para concordar que eles podem divulgá-los a agências administrativas ou órgãos governamentais, mediante solicitação?

Quais são os dados transmitidos à Canonical uma vez e regularmente? Como posso investigar o que é transmitido? Como posso ter certeza de que isso não mudará repentinamente para transmitir mais do que eu quero?

Esta é uma questão técnica. Eu não quero discutir questões TOS ou colectivas da Canonical. Eu realmente quero uma maneira técnica de encontrar o que é transmitido antes de me inscrever.

Sebastian Stark
fonte
Eu acho que o livepatch funciona via snapd, e esta é a mesma política de ToS / Privacidade da Canonical para todos os SSO, Launchpad, Snap store, etc. Eu acho que o snapd transmite algumas coisas, como informações de hardware ou outras.
Dobey
Acho que a única maneira de saber com certeza é colocar um monitor nos seus uploads da Internet, executar o aplicativo e verificar os logs do monitor. É claro que, se eles estiverem criptografando seus dados, eles enviarão apenas o binário de booleano.
WinEunuuchs2Unix

Respostas:

11

Como o cliente do livepatch é proprietário, não tenho uma resposta completa.

Dito isto, o cliente ( /snap/canonical-livepatch/*/canonical-livepatchd) está escrito em Go. Depurando com o Delve , aqui estão algumas informações para começar:

(dlv) bt
0  0x00000000006ad140 in main.(*client).check
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:212
1  0x00000000006acfeb in main.(*client).Check
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/client.go:200
2  0x00000000006b8415 in main.refresh
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:60
3  0x00000000006bf957 in main.newDaemon.func1
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/daemon.go:76
4  0x00000000006b86a3 in main.(*refreshLoop).loop
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/refresh.go:120
5  0x00000000006c0bfd in main.(*service).Start.func1
   at /home/c/Canonical/go/livepatch/src/github.com/CanonicalLtd/livepatch-client/parts/canonical-livepatch/build/daemon/service.go:151
6  0x0000000000457b31 in runtime.goexit
   at /home/c/.gobrew/versions/1.10/src/runtime/asm_amd64.s:2361
(dlv) locals
rendered.cap = 0
rendered.len = 0
rendered.ptr = *uint8 nil
status = main.ClientStatus {ClientVersion: "8.0.1", MachineId: "bfcf169468f641528ac653c41ff1797d", MachineToken: "",...+7 more}
(dlv) print status
main.ClientStatus {
    ClientVersion: "8.0.1",
    MachineId: "bfcf169468f641528ac653c41ff1797d",
    MachineToken: "",
    Architecture: "x86_64",
    CpuModel: "Intel(R) Core(TM) i7-6920HQ CPU @ 2.90GHz",
    LastCheck: time.Time {
        wall: 0,
        ext: 0,
        loc: *time.Location nil,},
    BootTime: time.Time {
        wall: 0,
        ext: 63662149770,
        loc: *(*time.Location)(0x963f60),},
    ApplyTime: time.Time {
        wall: 0,
        ext: 0,
        loc: *time.Location nil,},
    Uptime: 3472,
    Kernels: []main.KernelStatus len: 1, cap: 1, [
        (*main.KernelStatus)(0xc4201883c0),
    ],}

Os campos na statusvariável são:

  • Versão do cliente
  • ID da máquina (o valor de /etc/machine-id)
  • Token de máquina (token Ubuntu One?)
  • Modelo de CPU e arquitetura (OS?)
  • Hora da última verificação
  • Tempo de inicialização (tempo necessário para inicializar?)
  • Tempo de aplicação (?? - possivelmente, quando a última atualização foi aplicada?)
  • Tempo de atividade
  • Lista de Kernels

O tempo de inicialização e o tempo de atividade podem ser considerados incluídos nas estatísticas e nas métricas de desempenho.

Novamente, este é um ponto de partida. Faça o que quiser, e espero que outra pessoa possa fornecer informações mais definidas.

Como posso ter certeza de que isso não mudará repentinamente para transmitir mais do que eu quero?

Você não pode. O código fonte não está disponível e os snaps são atualizados automaticamente, IIRC.

muru
fonte
É interessante dizer no seu link "Este ID identifica exclusivamente o host. Ele deve ser considerado" confidencial "e não deve ser exposto em ambientes não confiáveis, principalmente na rede". Gostaria de saber se o livepatch continuaria funcionando se eu alterar o ID da máquina regularmente.
Sebastian Stark
@SebastianStark Como o livepatch é gratuito para até três sistemas para a comunidade, eu acho que deve funcionar por pelo menos três alterações. Não tenho certeza do que acontecerá depois disso.
muru 18/05/19
Acho que nunca vou saber, acho que meu empregador nunca me deixaria assinar esse contrato de qualquer maneira.
Sebastian Stark
Você provavelmente não deveria ter concedido a recompensa tão cedo. Outra pessoa provavelmente teria se saído melhor ao vasculhar os internos.
muru 18/05/19
Você provavelmente está certo. Embora eu espero que as pessoas aqui não façam isso apenas pela (pequena) recompensa. Eu acho que essa pergunta é muito importante.
Sebastian Stark
2

Perguntei à equipe de vendas da Canonical quais dados o serviço de patch ativo transmite. Eles voltaram para mim com isso:

Estas são as informações que enviamos sobre o cliente:

  • ID da máquina em / etc / machine-id
  • Token de máquina do servidor livepatch
  • Arquitetura da máquina
  • Modelo de CPU da máquina
  • Quando o cliente foi atualizado pela última vez
  • Quando o sistema foi inicializado
  • Quando o livepatch foi aplicado pela última vez?
  • Tempo de atividade do sistema atual
  • Versão do kernel

Eles também mencionaram que também transmitem algumas estatísticas de snap, que podem mudar com os requisitos do GDPR.

cristão
fonte