Como o último "Bash Bug" ou exploit afeta sistemas que requerem autenticação?

1

Estou curioso para saber como o mais recente Bash Bug afeta os sistemas que exigem um login de usuário para acessar o shell.

O UNIX / Linux geralmente não é configurado de forma que você precisa ser um usuário autenticado para executar comandos bash em um sistema?

Como o recente "Bash Bug" ou exploit afeta sistemas que exigem um login antes de executar qualquer comando, e qual seria uma maneira de alguém potencialmente comprometer um sistema baseado em login usando esse bug?

    
por Axel 25.09.2014 / 18:50

2 respostas

2

Este resumo é o melhor que encontrei na internet sobre Shell Shock (também conhecido como Bash Bug) explica:

O risco gira em torno da capacidade de definir arbitrariamente variáveis de ambiente dentro de um shell Bash que especifica uma definição de função. O problema começa quando o Bash continua a processar os comandos do shell após a definição da função, resultando no que classificamos como um "ataque de injeção de código". Vamos olhar novamente para o exemplo de Robert e vamos apenas seguir esta linha:

http-header = Cookie:() { :; }; ping -c 3 209.126.230.74

A definição da função é () {:; }; e o comando shell é a instrução ping e os parâmetros subsequentes. Quando isso é processado no contexto de um shell Bash, o comando arbitrário é executado. Em um contexto da web, isso significaria por meio de um mecanismo como um script CGI e não necessariamente como um cabeçalho de solicitação. Vale a pena ler o advisory do seclists.org em detalhes, incluindo a afirmação de que o caminho e a string de consulta podem ser vetores potenciais para o ataque.

É claro que um meio de mitigar esse vetor de ataque em particular é simplesmente desabilitar qualquer funcionalidade CGI que faça chamadas para um shell e, de fato, alguns estão recomendando isso. Em muitos casos, porém, isso será uma mudança séria e, no mínimo, exigirá alguns testes extensos para garantir que não causará problemas imediatos no site, o que, em muitos casos, irá causar problemas.

A prova HTTP acima é simples, mas eficaz, apesar de apenas uma implementação sobre um protocolo comum. Uma vez que você começa a jogar em Telnet e SSH e, aparentemente, até em DHCP, o escopo aumenta drasticamente, de modo algum estamos falando sobre a exploração de servidores de aplicativos da web aqui. (Aparentemente, o risco está presente apenas no SSH pós-autenticação, mas em um estágio tão inicial da divulgação pública, inevitavelmente, veremos outros vetores de ataque surgindo ainda.)

    
por 25.09.2014 / 18:55
0

Serviços de rede (como um servidor da web) em execução em um sistema estão sendo executados como usuários autenticados. Se esses serviços usarem bash para qualquer cálculo - o que é bastante comum - é possível que um usuário externo execute código arbitrário como o servidor web, substituindo uma variável de ambiente por um comando shell.

    
por 25.09.2014 / 20:32