Muito tem sido falado nos últimos dias sobre Shellshock, uma vulnerabilidade importante em Bash. Porém, é muito possível, que muitos usuários não tenham ouvido falar de Bash e nem saibam como utilizá-lo – ou qual é a importância que essa falha teria sobre os sistemas que usam diariamente.

Por essa razão preparamos esse post, para responder as perguntas que todos devem estar fazendo, começando pelo mais básico.

O que é Bash?

Bash é o interpretador de comandos mais utilizado no GNU/Linux e vários outros sistemas baseados em UNIX como Android e Mac OS X. Sua função é interpretar os comandos executados pelo usuário; iniciar e interromper processos, por exemplo. È dessa forma que administradores de sistemas operam seus servidores, sem deixar de lado a confortável interface gráfica baseada em janelas.

O Bash, porém, é muito mais do que um interpretador de comandos. Ele também permite a execução de operações em um servidor GNU/Linux que podem ser consideradas críticas, operações que incluem o planejamento de tarefas e as necessárias atualizações de sistema e seus aplicativos.

Quais dispositivos utilizam Bash?

Como muitos sistemas baseados em UNIX, o Bash está presente em uma grande quantidade de dispositivos que utilizamos diariamente, e não somente em servidores, computadores e notebooks (que usam alguma distribuição de GNU/Linux ou Mac OS X).

Se analisamos, por exemplo, os milhões de dispositivos Android, é possível utilizar um interpretador de comandos nos mesmos, embora isso quase nunca seja feito.

Se levamos em conta outros dispositivos como roteadores ou todo tipo de dispositivos que fazem parte da Internet das Coisas, o número de possíveis vetores aumenta muito. Sistemas de entretenimento, Smart TVs, eletrodomésticos como geladeiras e até sistemas domóticos (casas inteligentes) costumam incorporar alguma variante de UNIX que normalmente contém Bash.

O que é a vulnerabilidade Shellshock?

Primeiramente esclareceremos que o nome oficial dessa vulnerabilidade é GNU Bash Remote Code Vulnerability (CVE-2014-6271) e é considerada grave, mesma denominação que recebeu a vulnerabilidade Heartbleed, já que a mesma permitia a execução remota de códigos, permitindo a obtenção do controle de um computador.

O problema com essa nova vulnerabilidade é que o Bash permite declarar funções (o que não é incomum), porém essas funções não são validadas de forma correta quando armazenadas em uma variável. Em outras palavras: o Bash vai além do que deveria, ultrapassa as suas funções e continua executando códigos apesar do processo da função ter sido finalizado.

É possível utilizar essa vulnerabilidade com objetivos maliciosos?

Todas as vulnerabilidades podem ser utilizadas com fins maliciosos, em menor ou maior escala.

Ainda estamos na fase de averiguação até onde é possível ir com Shellshock. Já se sabe que os scripts executados no Apache podem ser afetados, mas na teoria muitos outros exploits podem ser aproveitados por atacantes e ser incluídos em exploits kits.

No site Alien Vault, já começaram a ser observados ataques que tentam explorar essa vulnerabilidade, principalmente os ataques que tentam detectar se um sistema é vulnerável através do lançamento de um comando ping e esperando uma resposta. Também já foi observada a utilização do Shellshock para instalar dois tipos de malware em sistemas vulneráveis.

Essas primeiras amostras de malware visam a recopilação de informação dos sistemas infectados, porém também os conectam a um Centro de Comando e Controle (C&C) administrado pelos atacantes, o que permite a execução de códigos remotos, tentativas de roubo de senhas e nomes de usuários com privilégios de administrador através da força bruta, conseguindo assim o controle do sistema.

Estes exemplos de ataques já existentes são somente a ponta do Iceberg do que ainda poderia ser visto nas próximas semanas se as medidas necessárias não forem tomadas.

Como se soluciona esse problema?

Uma vez que essa ameaça e suas consequências já são conhecidas, muitos usuários devem estar se perguntando: Como posso ser afetado? Se alguém ainda tem dúvidas, o Windows não é afetado de forma direta, mas isso não é razão para baixar a guarda já que é muito provável que outros dispositivos vulneráveis como roteadores, celulares e ouros dispositivos conectados à Internet e que não saibamos qual sistema operativo utilizem uma variação do GNU/Linux ou seja diretamente baseado em UNIX.

A maioria das distribuições importantes de GNU/Linux já lançaram ou estão por lançar atualizações para computadores pessoais e para servidores que solucionam o problema, por essa razão, os usuários que atualizam os seus sistemas não deveriam ter maiores problemas.

O problema real se encontra nos sistemas que não são atualizados seja porque ninguém os administra (variantes antigas) ou porque são sistemas encrustados em dispositivos que não foram feitos para receber atualizações, ou porque o fabricante já deixou de publicar essas atualizações para determinados modelos.

A maioria desses dispositivos estão e continuarão conectados à Internet por muito tempo, o que faz com eles sejam muito atraentes para os atacantes. Nesse caso, usuários com um nível de conhecimento mais avançado podem dedicar algumas horas de esforço e, por exemplo, revisar o firmware do roteador e instalar um que seja compatível.

Conclusão

A publicação dessa vulnerabilidade serviu para que uma grande quantidade de usuários fechasse a porta de entrada aos atacantes que a muito tempo estava aberta. Igualmente, ainda falta resolver a questão de como atualizar os milhões de dispositivos que formam a “Internet das Coisas” e que seguirão sendo potencialmente vulneráveis durante um bom tempo.

Este post é cortesia da Ontinet, Distribuidor da ESET na Espanha.