AUR - Confiança, segurança e responsabilidade

    Vários problemas recentes vem acontecendo com o AUR, mas o que realmente esta acontecendo? Além disso, o que é o AUR?

    Boa parte da comunidade não sabe o que realmente esta acontecendo, é esperado já que grande parte  dos próprios usuários do Arch Linux  que deveriam estar por dentro disso e ser a "vanguarda" não faz ideia de como o AUR realmente funciona então vamos tentar nos aprofundar um pouco nisso, não na parte técnica, mas a parte conceitual que rege o funcionamento do AUR, uma combinação de confiança, liberdade e responsabilidade. 

    Para começarmos vamos entender alguns pontos sobre o Arch Linux que são fundamentais para o funcionamento do AUR, vamos começar relembrando os princípios que regem o Arch:

  • Simplicidade
  • Modernidade
  • Pragmatismo
  • User-centric
  • Versatilidade

    Podemos usar isso para entender o AUR. A forma como é distribuído usando PKGBUILDs, que são apenas Shell Scripts, que os tornam simples para a maioria dos usuários do Linux.

    Além disso o AUR foi pensado, ao invés de um infraestrutura rígida e  muito controlada, algo mais direto e mais eficiente foi escolhido, mesmo que isso coloque a responsabilidade na mão do usuário, já discutimos outras vezes essa questão da responsabilidade do usuário aqui no blog mas vamos entender que o AUR nem faz parte do projeto oficial "Arch Linux", é algo a parte, feito por usuários para usuários, qualquer um pode enviar um pacote lá, isso por natureza traz vários riscos, riscos esses que cabe o usuário entender e lidar com ele.

    A Versatilidade também é um ponto forte, milhares de pacotes, em diferentes versões e para diferentes necessidades, tudo podendo ser acessado de forma simples.

    Ok, já entendemos isso, mas eu citei antes que o AUR não era "oficial" e que a responsabilidade recai sobre o usuário e pra completar isso uma citação da Wiki:

    [...]"os pacotes AUR são conteúdo produzido pelo usuário. PKGBUILD. Os arquivos fornecidos são completamente não oficiais e não foram devidamente verificados. Qualquer uso dos arquivos fornecidos é por sua conta e risco."[...]https://wiki.archlinux.org/title/Arch_User_Repository#

    Mas isso não é tudo, talvez o ponto mais importante do AUR é a confiança e a liberdade, por confiança não me refiro a "cadeia-de-confiançá" presente no AUR, mas a confiança entre os usuários, vamos entender:

Confiança:

    AUR se baseia na "confiança" entre os usuários e na ideia de que todos esses usuários conheçam e são responsáveis por lidar com os riscos necessários para usa-lo.

    Vamos esclarecer que sendo feito para o Arch Linux, um sistema com foco no "faça você mesmo" e tendo discutido tudo sobre os seus princípios e como se relacionam com o AUR, esperar que o usuário saiba ou esteja disposto a aprender é o esperado, mas sabemos que uma minoria realmente segue esse caminho, assim a confiança deixa de ter um respaldo técnico para ser apenas instalar o primeiro pacote que tiver no AUR esperando que tudo esteja certo.

Liberdade:

    A liberdade do AUR, aparece na forma como qualquer pessoa pode mandar ser pacotes, e qualquer usuário pode instalar esses pacotes, isso é o que torna o AUR tão grande e ao mesmo tempo o que traz tantos problemas.

Problemas:

    Recentemente ouve uma onda de adoção de pacotes do AUR, "adoção" é um termo usado quando um pacote perde seu mantenedor, por N motivos e após se tornar órfão alguém pode adotar esse pacote e passar a ser seu novo mantenedor.  [1] [2] [3] [4] [5] [6] [7]

    E o problema disso é que qualquer que após passar pelo processo de adoção de um pacote órfão, possa alterar  aquele pacote original para algo malicioso, seja no PKGBUILD ou ate no repositório remoto.

    O motivo para isso pode ser, um ataque direcionado, vandalismo ou simplesmente trolls, mas isso realmente não importa tanto, a questão é que independente do motivo, não temos uma "contramedida" que não envolva em alterar o modelo de confiança do AUR. 

    É importante salientar que o AUR tem sim moderação ativa e diretrizes de uso. Tanto os próprios mantenedores que tem pacotes no AUR, quanto os mantenedores dos repositórios oficias, além da própria comunidade, faz o papel de moderação, basta seguir o IRC do AUR ou suas listas de discussões que verão o trabalho sendo feito.

Fator humano.

    Enquanto o AUR se basear em comportamento e confiança mutua, mantendo a ideia de liberdade e simplicidade não a muito o que podemos fazer mantendo essa forma de funcionar, não estou dizendo para retirar essa liberdade do AUR, mas lidar com esse tipo de problema é complicado, se fosse algo técnico uma solução igualmente técnica seria o suficiente, mas como estamos lidando com pessoas não é tão simples resolver.

    Esperar que todos os usuários verifiquem o PKGBUILD, verifiquem as fontes ou coisas assim é inviável, sabemos que infelizmente não funciona.  

Solução?

    Já que não podemos remover a liberdade que faz o AUR ser o que ele é, acredito que devemos assumir que haverá negligencia por parte dos usuários e trabalharmos em uma forma de minimizar os danos caso algo de errado.

    Algumas ideias poderiam ser sandbox durante o build, coisa que o "pkgctl" já faz, mas integrar isso diretamente no makepkg seria de grande ajuda, podendo diminuir ou ate mitigar problemas no PKGBUILD e durante o build. A ideia de sandbox durante o uso do binário após o build/instalação, talvez não seja viável, já que poderia trazer outros problemas, como a dificuldade de identificar a causa de bugs por exemplo.

    Uma limpeza no AUR, removendo pacotes órfãos depois de uma certa condição, talvez, tempo abandonado ou quantidade de usuários, etc. Isso pode ser algo benéfico também, claro que seria uma solução a curto prazo, mas minimizaria o alcance dos ataques, mas ainda poderiam ao invés de adoção, simplesmente enviarem um pacote parecido, como "flrefox-bin" e torcer para um desatento instalar.

    Bem, soluções simples podem ser coisas nesse sentido, isso é tudo no momento. 

 

 

 

 

 

Comentários

Postagens mais visitadas deste blog

Definição PCismo

Entendendo o Arch Linux

Migrando para o Linux? O que é preciso saber além da interface? - Introdução