Falha no IIS: justo no Natal?

Por: em 26/12/09 na(s) categoria(s): Segurança


Nos primórdios da Internet como a conhecemos hoje, falar mal da (falta de) segurança do IIS (Internet Information Services), da Microsoft, era chutar cachorro morto. “Queijo suíço” era um apelido carinhoso.

É claro que a coisa melhorou muito. Mas quando uma vulnerabilidade no servidor da MS aparece, as piadinhas voltam com força total e a GNU/Comunidade, com um sorrisinho no canto da boca, sussurra: “Eu te disse, eu te disse…”.

steve_ballmer

A versão 6 (e todas as anteriores), mesmo rodando em um Windows Server 2003 R2 SP3, apresentou uma falha gravíssima (nas palavras do pesquisador Soroush Dalili). O problema aparece quando, apesar do sistema bloquear o “upload” de arquivos executáveis (como .exe ou .asp), o usuário tenta “subir” algo como “roubo_seu_cartao_de_credito.asp;.jpg”. O arquivo “sobe”, como se fosse uma imagem. Mas é executado, com se fosse uma página ASP. Lindo, não?

Apesar de ainda não haver uma solução, a Scunia classificou o problema como “Less Critical”. Particularmente, se eu tivesse que administrar um servidor IIS, não dormiria tranquilo neste feriado até que Papai Noel me trouxesse uma atualização para o Windwos Server 2008. Ou mudasse para o Apache (“…eu te disse, eu te disse…”).

[via Security Focus]

  • Jason Manchest

    Nossa ainda bem que na empresa onde trabalho só se usa apache, mesmo com as frescuras que só o apache pode oferecer a você como algumas dores de cabeça ainda dar para dormir tranquilo ou mesmo fazer um patch rapidinho para ser um paliativo ao problema, mas com o IIS ai a coisa muda de figura.

  • douglas_martins

    Queijo suiço é pouco.

     

    mas como dizem…

     

    They have a plan…

  • http://keaton.wordpress.com/ Keaton

    w00t… vamos exploitar o orkut!1!!

    • Arthur Medeiros

      Vamo nessa!!!1!11!!1!onze!!

  • Feko

    “Eu te disse, eu te disse…” :P

    Quem sabe seja a hora de dar uma chance ao lighttpd?

  • http://bsrsoft.com.br andre_pereira

    Tem de ser muito louco pra rodar ainda com o IIS 6 por ai.

     

    É menos perigoso roubar 1 Kg de pó de Beiramar e xingar a mãe dele, tudo de uma sóz vez e desarmado.

     

    Recomendação: upgrade do IIS junto com o Windows Server ou então usar Apache / NGINX.

  • maiconfaria

    HaHa !

    Ainda bem que o código é fechado, imagine as brechas e os bugs que poderiam ser usados se pudessemos auditar o código !

    Código fechado serve para dois grupos opostos: os fodões, que fazem do software de qualidade um instrumento competitivo (ex: Intel e Nvidia ) e os pitocos (ex: microsoft ), que escondem para não passar vergonha.

     

    • Rogério Garcia

      Ou estou com tanto sono que não entendi a ironia, ou esse cara bateu um recorde e conseguiu falar mal tanto de código aberto, quanto da MS num mesmo post?:?

      • http://ceticismo.net Pryderi

        Vc reparou a insígnia dele?

        • maiconfaria

          Lá vem o pokechato !

          É claro que fui sarcastico na primeira frase, vou começar a legendar com smileys :D

           

          • http://ceticismo.net Pryderi

            Argumentum ad Meiobit

            Acontece quando algum postulante escreve besteira e é pego pelo pé. Daí, ele tenta se safar alegando que é sarcasmo.

          • maiconfaria

            Ah bom, eu ganhei um insignia de freetard, logo depois defendo o software proprietário como forma de aumentar a segurança.

            Ainda tenho que explicar o sarcasmo, Poke ?

             

          • http://ceticismo.net Pryderi

            “Tard” vem de “Retard”. Precisa explicação maior? ;)

          • maiconfaria

            Como eu sei que ninguém vai te moderar, é melhor eu não entrar nessa espiral contigo. Capaz de me expulsarem  !

            Seja Feliz !

  • Lem0nHead

    Permitir que um usuário envie e execute um ASP não é em si um problema de segurança muito grave; especialmente se o usuário com que o IIS executa ASPs não for um usuário com muitos privilégios…

    Mas é o tipo de vulnerabilidade que pode permitir que outras vulnerabilidades já existentes sejam exploradas.

  • mano_lima

    O autor da descoberta, Soroush Dalili, recomenda três medidas preventivas para impedir que o bug gere alguma catástrofe. Nenhuma delas envolve a necessidade de atualizar o IIS ou o Server, por isso, acho que nenhum admin precisa perder o sono no feriadão.

    Em tempo, um bom Ano Novo para toda galera do Meio Bit.

  • Wallacy

    Mais uma para os “raqui” de plantão! O que vai aprecer de gente tentando explorar esse bug…

  • http://oxenti.com GuZ

    Rápido! como faz um helloword em ASP.net? Quero ver se o orkut tá inseguro :P

    • shimatai

      #euri

  • peron

    Quanta ingenuidade!

    Fui obrigado a me cadastrar aqui só pra postar isso…

    O Orkut, assim como qualquer site pode, deixa a extensão AspX mas a tecnologia por trás disso pode ser qualquer uma.

    No caso do orkut, começou sendo em asp, mas como viram que não estava aguentando, partiram pra JAVA, Phython, só que mantiveram a extensão aspx para compatibilidade de Links.. imaginou trocar? todos os links para orkut não funcionarem mais? comunidades, perfis? não da, né?

    É muito usado por desenvolvedores, alem de esconder a extensão, mudar, pra tentar enganar invasores menos experientes, que vão tentar invadir um windows onde tem um linux…

    Mas nada é perfeito…

     

     

    • http://keaton.wordpress.com/ Keaton

      …?

      É sério que você levou tão a sério o que eu disse sobre o Orkut?

    • Jones_Nathan

      [quote=peron]

      [...] imaginou trocar? todos os links para orkut não funcionarem mais? comunidades, perfis? não da, né? [...]

      [/quote]

      É possível. Já ouviu falar em redirecionamento?

      Trocar não seria inviável, afinal trocaram já faz um tempinho o esquema de URL das páginas, de Page.aspx para Main#Page. E como eles mantêm a compatibilidade com os links antigos? Através do redirecionamento, claro.

      De resto, totalmente nonsense o que você falou.

      • http://cognostech.posterous.com/ Ramon E. Ritter

        Jones,

        Não é tão incomum essa estratégia de trocar a extensão das páginas para tentar enganar os invasores (se isso realmente funciona eu não sei). Eu conheço 2 bancos cujo internet banking usa apache/java e tem todas as páginas com extensão ASP para tentar enganar algum scriptkid de plantão.

         

         

      • Marco Freitas

        [quote=Jones_Nathan]

        É possível. Já ouviu falar em redirecionamento?

        [/quote]

        Ah, sim. Aquele que é nativo no Apache dende tempo imemoriais mas que precisa de um “componente” adicional para o IIS?

    • http://oxenti.com GuZ

      • http://keaton.wordpress.com/ Keaton

        Em português não tem graça.

    • Marco Freitas

      ‘Tenho um roteador Wireless que usa “.asp” em suas páginas de configuração. Deve ser um WinCE rodando IISCE num processador MIPS.’

    • http://www.fabiocardoso.com.br Fabião

      Nada é mais característico de um noob do que chegar ensinando o pai nosso a rezar o padre.

    • davidkwast

      Sim, quase todo mundo sabe disto sobre o Orkut.

      Phython ???????? http://python.org/

  • luctimm

    Sistemas arcaicos confiam em arquivos baseados em extensões…

    • http://oxenti.com GuZ

      Tipo o Ubuntu?

      • Jason Manchest

        Nada, tipo windows mesmo. Mas tenho de concordar o pessoal do Ubuntu/gnome realmente anda aceitando o uso de reconhecimento por extensões no nautilus.

      • maiconfaria

        [Aceita água de radiador  ?] Ops, desculpe, os comentários abaixo esclareceram o que querias dizer !

      • luctimm

        Não sei, não sou careta e digo não as drogas. Mas o Linux (leia-se distribuições de gente), a extensão é perfurmaria, e o que importa é o mime-type.

         

         

      • shimatai

        Desde quando o Ubuntu liga pra extensões? :?

        • http://oxenti.com GuZ

          Desde a versão 8 até hoje. ;)

          • shimatai

            Eu uso o Ubuntu 9.10 e tenhoa alguns arquivos sem extensão e ele abre numa boa no programa correto.

          • http://bsrsoft.com.br andre_pereira

            Ídem. O Ubuntu, como todo Linux, abre arquivos sem se importar com a extensão. Ele checa o mime type interno.

             

            Voce pode abrir um DOC renomeado para uma extensão do tipo FDT dando um duplo clique nele. Ele vai abrir normalmente no editor de textos.

          • http://oxenti.com GuZ

            Tente renomear um .gif pra .doc

             

            Tentei agora no 9.10 e nao abriu :P

  • http://raelmaxi.wordpress.com raelmaxi

    Bonito hein?

    • http://gabrielotavio.com gotavio

      Eu trabalho um tempinho com servidores WEB, e constantemente vejo uma situação onde é necessário rodar PHP, ASP e ASPx no mesmo serviço.

      Nesse caso não tem solução, é IIS mesmo.  Pq rodar um ASP em ambiente Unix/Linux é COMPRICADO!

      Pra esse caso o “de graça” não funciona!  :(

      • Marco Freitas

        [quote=gotavio]

        Eu trabalho um tempinho com servidores WEB, e constantemente vejo uma situação onde é necessário rodar PHP, ASP e ASPx no mesmo serviço.

        Nesse caso não tem solução, é IIS mesmo.  Pq rodar um ASP em ambiente Unix/Linux é COMPRICADO!

        Pra esse caso o “de graça” não funciona!  :(

        [/quote]

         

        Situação conhecida como “arrumar sarna para se coçar”.

        • http://gabrielotavio.com gotavio

          Pior ainda meu caro.

          É a única sarna que existe pra se coçar!

  • http://gabrielotavio.com gotavio

    Não entendi o “Subir” do post.  Qual protocolo foi usado para subir a falsa imagem? o famoso e horroroso FTP?

    Bom, como tenho o privilégio de transitar tanto no mundo Open Source quanto no proprietário resolvi fazer um teste básico aqui.

    Tenho um Server IIS com o PHP instalado (Rodando sob o IIS).

    Subi (via FTP) dois duas pseudo-imagens como descrito no post e olha só o resultado:

    ASP

    http://gabrielotavio.com.br/teste_img.asp;jpg

    PHP

    http://gabrielotavio.com.br/teste_img.php;jpg

    Ambas foram processadas pelo navegador como SCRIPT e não como imagem.

    Provavelmente um sistema de publicação feito em ASP ou PHP (rodando no IIS) pode por engano aceitar a “postagem” de uma pseudo-imagem e gerar isso aí.  

     

    Só posso dizer que é muito, MUITO, MUUUUUITTOOOO PERIGOSO!

    • Wallacy

      Qual sua versão do IIS?

      E bem, se seu teste também funcionou com o .php mostra que o problema é mesmo do IIS e não da linguagem.

      Sabe-se lá quantos scripts ele também pode executar em imagens “de verdade”, ou em videos, ou dentro de qualquer coisa… Tem muito uso para uma falha assim.

      • http://gabrielotavio.com gotavio

        Versão  6  com todas a atualizações possíveis instaladas.

        Quanto ao script é como executar um vírus num computador.  mas normalmente em uma pasta de imagens não damos permissão total (escrita por exmplo)  somente em pastas com arquivos de transações tipo XML e tal.  Mas pode-se ter acesso ao SMTP, FTP e outros serviços (PERIGO) como o Banco de dados (uaia).

        Lembro quando o IIS ainda se chamava Internet Information Server(e não services) que tinha um esquema de puxar o código fonte de um arquivo em ASP, ou seja, ver o código-fonte de um site.

         

        • http://bsrsoft.com.br andre_pereira

          IIS 6 continua o mesmo queijo suiço de sempre.

          Complicadissima uma situação dessas.

          • http://www.fabiocardoso.com.br Fabião

            Você sabe que eu tenho uma predileção pelos seus comentários pró-qualquer troço que seja FOSS, né? Secunia:

            IIS6 – 9 Vulnerabilidades

            Apache 2.0 – 26 Vulnerabilidades

            Apache 2.2 – 28 Vulnerabilidades

             

            Se vossa senhoria considera um software com 9 vulnerabilidades um queijo suíço, que diria de um com 28?

            É este tipo de profissional que leva uma empresa pro buraco: Escolhas baseadas em paixão, que não se preocupam nem em se informar se o que estão dizendo tem algo de acordo com a realidade ou não.

            Tapando o sol com a peneira? De jeito nenhum, o bug é péssimo. A questão é que TODO BENDITO SERVIDOR é uma “peneira”, com vulnerabilidades por todos os lados. E quando falamos de servidores Linux, por exemplo, em que tudo é descentralizado, o Server Admin precisa fritar o Apache de olho no Sendmail, Postfix, MySQL e todas as tranqueiras de fabricantes diferentes que formam o ecossistema do negócio.

            Eu uso servidores Linux, pra deixar claro. O que não sou é mal informado de dizer que é devido ao concorrente ser um “queijo suíço” porque não é.

          • shimatai

            Mas quantidade não quer dizer nada. Eu prefiro um software com 99 vulnerabilidades sem gravidade do que um software com uma única vulnerabilidade grave (ou gravíssima).

             

          • http://www.fabiocardoso.com.br Fabião

            Ambos tem como vulnerabilidades mais graves não patcheadas “Less Critical”.

            Não dá pra chamar o IIS de queijo suíço sem chamar o Apache de algo pior. E não acho que nenhum dos dois deveria ser chamado de qualquer uma destas denominações.

          • davidkwast

            Concordo. Nem vamos lembrar daquela falha do SSL do Debian e derivados por 2 anos. Aquilo sim um belo fazedor de furos.

          • http://bsrsoft.com.br andre_pereira

            Olá Fabião.

             

            Todos sentimos sua falta nesse período em que você ficou menos ativo por aqui.

             

            Vamos lá:

            Não trabalho com paixões. Só aspectos técnicos e de mercado.

            O IIS 6 é um verdadeiro queijo suiço, com falhas bizarras como essa da extensão (motivo do artigo do autor do post).

            Comparar somente o número de bugs/falhas para dizer que um software é mais seguro do que outro é a típica tática tendênciosa e desinformativa. Ela camufla a severidade dos bugs exibindo apenas números, que em si, não dizem nada.

            Todos nós aqui (imagino) conhecemos a fama do IIS 6. Todo admin de servidores sabe, pelo menos.

            Veja bem que estou falando do IIS 6 e não das versões mais recentes. Meu comentário não é anti software proprietário e pró FOSS, portanto. Meu comentário só fala dessa versão do IIS.

            Defender o IIS 6 hoje é o mesmo que dizer que o Windows 95 é tão seguro quanto o Win7. Sabemos que não é.

            O design é diferente.

  • luizfelipestang

    Nossa somente isso. é de se esperar que arquivos upados pelo usuario não ganhem nenhuma permissão de execução, portanto, eles não rodariam por falta de permissao mesmo sendo .asp

    • Marco Freitas

      [quote=luizfelipestang]

      Nossa somente isso. é de se esperar que arquivos upados pelo usuario não ganhem nenhuma permissão de execução, portanto, eles não rodariam por falta de permissao mesmo sendo .asp

      [/quote]

       

      Isso é facilmente resolvido com um mero .htaccess no diretório de upload. Ainda tem gente que usa IIS em hospedagem compartilhada?

    • Wallacy

      Somente isso? Não subestime a criatividade humana… Isso é só a ponta do icebearg.

      Muita gente dizia a mesma coisa sobre SQL injection… Os sistemas não possuem varias camadas de segurança à toa. Se uma camada só fosse suficiente, bem…

      • Marco Freitas

        [quote=Wallacy]

        Somente isso? Não subestime a criatividade humana… Isso é só a ponta do icebearg.

        Muita gente dizia a mesma coisa sobre SQL injection… Os sistemas não possuem varias camadas de segurança à toa. Se uma camada só fosse suficiente, bem…

        [/quote]

         

        Coisas que acontecem quando você deixa o trabalho de criar as consultas para o cliente.

        • luizfelipestang

          Por isso, para a segurança, é melhor usar uma camada que esconde o endereço verdadeiro das paginas. e não usar o asp e sim aspx. assim, mesmo que a pagina seja upada, ela não vai rodar pois o seu endereço não sera aceito.

          Fora aquele arquivo htaccess para não deixar rodar executaveis. mais permissões NTFS configuradas corretamente.

          Eu ainda usaria uma abordagem de colocar na pagina que recebe o arquivo, uma função para ela salvar com o nome aleatorio, e o verdadeito nome fica um Dicionario no banco de dados.

          E por ultimo, talvez ate validar se o cabecalho dela é mesmo um jpg, se a pagina é de upar imagens, então melhor é verifica a palavra magica que a maioria dos arquivos do windows tem no começo, igual o linux faz, em vez de usar a extensão.

          Nunca confie a segurança em um unico ponto de sua arquitetura.

          • http://www.twitter.com/aerogabriel GabrielSO

            Existe um equivalente ao htaccess em IIS? Lembro que precisei uma vez e não achei nada do tipo.