NÃO!! A criptografia do Linux não foi quebrada usando uma única tecla

 

160406154248_sp_cadeados_criptografia_640x360_thinkstock_nocredit

Se existe algo que eu desprezo mais do que políticos, é gente desesperada. Não me entenda mal, eu não vejo nada de mal em utilizar técnicas de SEO, ou até mesmo algumas frases de efeito na chamada do texto para atrair ou despertar a curiosidade das pessoas a de fato clicarem no link para ler o que você escreveu. Mas existe uma diferença bem grande entre usar uma frase cuidadosamente preparada para chamar público, e faltar com a verdade. Essa prática, amplamente conhecida hoje em dia, se chama clickbait, muitos blogs fazem muita grana com ela, produzindo conteúdo irrelevante, mas com chamadas polêmicas, para atrair curiosos.

OK, mas porque estou escrevendo esse artigo hoje? Porque recentemente foi divulgada uma vulnerabilidade razoávelmente grave no cryptsetup, programa amplamente utilizado por centenas de distribuições Linux para criptografar discos e partições. Essa vulnerabilidade (CVE-2016-4484) consiste em um problema na maneira como o programa lida com falhas de autenticação durante o boot do sistema. Quando um sistema criptografado cryptsetup realiza o boot, seja a partição raiz, ou outra qualquer que seja montada por padrão, ele abre um shell solicitando que o usuário entre com a frase/senha para realizar a decriptação da partição, ocorre que por uma falha no manejo da autenticação no script /scripts/local-top/cryptroot o script de chamada /scripts/local lida com o erro como se ele tivesse sido causado por um dispositivo lento que precisa de mais tempo para realizar a ação, os scripts de boot então tentam recuperar/montar o “dispositivo lento” através da chamada de sistema local_device_setup() que realiza inúmeras vezes as tentativas de montagem (30 num equipamento x86), a cada vez que o script tenta sem sucesso montar a partição cifrada, o usuário recebe mais três tentativas, o que nos dá um total de 93 tentativas. Dois pesquisadores de segurança espanhóis chamados Hector Marco and Ismael Ripoll descobriram que após a 93ª tentativa ele simplesmente “desiste” e oferece um shell busybox que dá acesso root ao sistema. Testes adicionais demonstraram que simplesmente apertar o botão ENTER por 70 segundos é o suficiente.

Como eu mesmo disse hoje mais cedo, é uma falha grave na minha opinião, mas dois fatores devem ser considerados aqui:

  1. Ao contrário do que dezenas de blogs tem divulgado em suas manchetes numa tentativa patética de obter cliques e ganhar os centavinhos das propagandas, A CRIPTOGRAFIA NÃO É QUEBRADA!!! Sim ele fornece um shell com direitos de root, e dai o atacante pode instalar programas maliciosos, copiar os dados (ainda cifrados), apagar, etc. Mas os dados em si, ainda estão criptografados. Alguns até tentam ridiculamente “justificar” a chamada, dizendo que com isso se pode copiar os dados e tentar ataques de força-bruta pra se quebrar a criptografia, mas esses ataques, com uma boa frase usada como chave devem levar somente a idade da terra para abrir a partição em questão.
  2. Qualquer pessoa com o mínimo de conhecimento na área de segurança pode lhe confirmar. Acesso físico é “flórida”. Existe um ditado que diz que se um hacker tem acesso físico à sua máquina, a máquina não é mais sua, é dele. Isso porque com acesso físico, copiar os dados, efetuar modificações no sistema, apagar os dados, pode ser feito com um simples pendrive no bolso. Na verdade existem centenas de maneiras diferentes de se corromper um computador, tendo acesso físico, ou seja, a vulnerabilidade embora grave, na pratica não é muito diferente de uma situação normal caso o atacante tenha acesso físico ao seu sistema.

Agora o que me faz perder a fé na humanidade é a quantidade de blogs, nacionais e brasileiros (incluindo um de meia-tigela, que tem meio até no nome) fazendo chamadas tendenciosas e até mentirosas numa ânsia rídicula de criar polêmica para atrair cliques. Alguns até aproveitam para reacender a discussão adolescente de Linux é mais seguro que Windows, ou coisa parecida. Meu recado pra vocês é, gente, por favor, cresçam!

Ah sim, você deve estar se perguntando. O que eu posso fazer pra me proteger desse ataque. Bom, a grande maioria das distros já lançaram uma correção, mas se a sua não lançou ou você gosta de fazer as coisas na unha, você pode aplicar o patch no final desse artigo, outra coisa que você pode fazer é usar um workaround. Ocorre que a função panic() dentro do arquivo /scripts/functions força um restart do sistema ao invés de oferecer um shell caso o kernel tenha sido carregado com essa opção, então você pode simplesmente adiciona-la no grub.

# sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="panic=5 /' /etc/default/grub
# grub-install

cryptsetup_fix_CVE-2016-4484.patch

--- a/scripts/local-top/cryptroot       2016-07-29 10:56:12.299794095 +0200
+++ b/scripts/local-top/cryptroot       2016-07-29 11:00:57.287794370 +0200
@@ -273,6 +273,7 @@
 
        # Try to get a satisfactory password $crypttries times
        count=0
+       success=0
        while [ $crypttries -le 0 ] || [ $count -lt $crypttries ]; do
                export CRYPTTAB_TRIED="$count"
                count=$(( $count + 1 ))
@@ -349,12 +350,15 @@
                fi
 
                message "cryptsetup: $crypttarget set up successfully"
+               success=1
                break
        done
 
-       if [ $crypttries -gt 0 ] && [ $count -gt $crypttries ]; then
-               message "cryptsetup: maximum number of tries exceeded for $crypttarget"
-               return 1
+       if [ $success -eq 0 ]; then
+               message "cryptsetup: Maximum number of tries exceeded. Please reboot."
+               while true; do
+                       sleep 100
+               done
        fi
 
        udev_settle
  • geração Dollynho usou RWindows desde a década de 90 e a segurança sempre ficou em segundo plano (a começar pela autenticidade do sistema operacional) e agora fica com “medinha” de qualquer ameaça, mesmo que seja desses “meio” analistas de segurança…

  • “Existe um ditado que diz que se um hacker tem acesso físico à sua máquina, a máquina não é mais sua, é dele.”
    Mas a função da criptografia não é proteger os dados de você mesmo, é proteger justamente caso outra pessoa acesse a máquina (caso de roubo por exemplo).
    “Falha grave” é apelido. É uma bosta mesmo.

    • Alberto J Azevedo

      Sim, sem dúvida, mas a função da criptografia é proteger o conteúdo da informação, e essa função não foi afetada, afinal a criptografia não foi quebrada. Nunca foi função da criptografia impedir o acesso a ela, nem poderia ser. Essa função é do SO, ou do próprio usuário dependendo do caso.

      • VaGNaroK Alkimist

        Perde tempo explicando pra quem não entende do assunto não. É o mesmo que tentar enxugar gelo.

      • A criptografia não foi quebrada, o atacante “só” conseguiu ter acesso à informação por meio do software da própria máquina. É o mesmo que trancar a casa, dar a chave pro ladrão e dizer “mas o importante é que ele não arrombou a fechadura”.
        Que se dane a fechadura, não é pra ele entrar na sua casa. Ponto.

        • Alberto J Azevedo

          Cara, você não entendeu até agora. Releia o texto. O atacante Não tem acesso a informação, somente a máquina. Já que você quer fazer analogia pra facilitar o seu entendimento, usando o seu exemplo, é como se o ladrão entrasse pra roubar dinheiro e jóias na sua casa, descobre um problema na fechadura que deixa ele entrar sem ter que quebrar o vidro da janela. Mas ao entrar o dinheiro e as jóias ainda estão dentro de um cofre, que ele não pode abrir. Entendeu agora?

          • Hilton Garcia Fernandes

            Grande Alberto ! A tecnologia é hoje muito presente na vida das pessoas. Seu esforço para explicar para ela de maneira mais clara possível merece todo aplauso.

          • Cofre? Que cofre? Você está contando que ele não vai conseguir acessar o sistema e fazer uso do próprio Linux para pegar as informações. Seu cofre tem aquelas fechaduras de porta de banheiro com chave padrão que a gente arruma em qualquer lugar. O que não faltam são meios de arrumar essa chave. Um noob com Google faz isso. O mais difícil, muito mais difícil, ele já fez: tornar a criptografia irrelevante. Algumas ferramentas ou, dependendo do caso, bugs e ele tá logado puxando tudo o que ele quiser. Vai largar uma empresa no prejuízo só pra provar seu amor pelo sistema? Boa sorte.

          • Alberto J Azevedo

            Cara eu não sei mais o que dizer pra você entender. Você esta aqui comentando até agora, continua NÃO ENTENDENDO do que esta falando, e fazendo comparações sem sentido. Não se trata de amor pelo Linux. É um SO como outro qualquer, e se de fato a falha fosse essa eu iria publica-la como qualquer outra. Só que não é o caso. Sério meu, você tá passando vergonha. É difícil pra você entender que a criptografia em si NÃO foi quebrada! Sério, você ao menos leu o artigo? Vamos fazer assim, Eu topo o desafio. A gente marca um evento qualquer, eu coloco uma máquina e te dou acesso físico, com esse bug sem correção, e você tem que acessar alguns arquivos que eu vou colocar dentro da partição. Se você acessar eu te dou 10.000 reais no ato. Se você não acessar você me dá 10.000. Tenho certeza que você será capaz de fazer o que qualquer noob com Google faz. Topa o desafio?

          • Acho que quem não leu foi você. “Sim ele fornece um shell com direitos de root, e dai o atacante pode instalar programas maliciosos, copiar os dados (ainda cifrados), apagar, etc.”
            Ah, você perdeu 10.000. Paga pra esse cara aqui. Mas paga pra esse cara aqui: https://www.youtube.com/watch?v=WtWf24lIMBQ