Os artigos refletem a opinião pessoal do autor, e não de seus empregadores.

sexta-feira, 19 de outubro de 2007

Segurança da Web 2.0 - Como Proteger

No último post discuti sobre as vulnerabilidades e riscos na Web 2.0. Para lembrarmos do assunto, o termo “web 2.0” foi criado há cerca de quatro anos por Tim O’Reilly, no que ele chama de revolução na indústria da computação pelo movimento para a Internet como plataforma. Como vimos, os riscos da web 2.0 são inerentes à própria plataforma, caracterizada pela independência das aplicações em relação ao sistema operacional, pelo fato das aplicações serem criadas para executar sobre uma nova camada (WebOS) baseada no browser Internet e pelo usuário executar uma aplicação que “está” na Internet e não em seu computador. Para possibilitar a web 2.0 uma série de tecnologias e protocolos foram criados ou agrupados, como o AJAX, CSS, RSS/Atom, XACML e SOAP. O artigo “Top 10 Web 2.0 Attack Vectors”, disponível em http://www.net-security.org/article.php?id=949&p=1 é uma boa referência sobre os principais problemas.

Nesse post irei abordar a pergunta que vem imediatamente depois: como proteger uma aplicação criada em web 2.0 e como proteger-se de um eventual ataque via uma aplicação em web 2.0. Infelizmente não há uma resposta clara e fácil para isso. Como qualquer outra nova aplicação, os riscos, vulnerabilidades e meios de proteção não estão claros. Não há ainda um pacote definitivo de proteção para a web 2.0 e suas tecnologias, embora muitos dos problemas e vulnerabilidades sejam detectados e evitados por ferramentas de segurança. Isso ocorre porque muitas das tecnologias nas novas aplicações web são tecnologias já conhecidas utilizadas de outra maneira, ou simplesmente reutilizadas. Esse fato também recuperou antigas vulnerabilidades, como o cross-site scripting (para quem quiser conhecer mais: http://www.cgisecurity.com/articles/xss-faq.shtml).

Esssas antigas vulnerabilidades e ataques a elas relacionados podem ser detectados por sistemas tradicionais de proteção. Sistemas IPS de primeira linha, por exemplo, possuem proteção para ataques explorando cross-site scripting. Da mesma forma, sistemas de antivírus tradicionais podem detectar alguns exploits. No entanto é importante lembrar que o conjunto de tecnologias que formam a web 2.0 vão muito mais além dessas tecnologias e protocolos reutilizados, e esse conjunto ainda não é inteiramente protegido. Nesse sentido a web 2.0 é um exemplo perfeito de como novas tecnologias de negócio não são integralmente protegidas por tecnologias de segurança mais antigas. Infelizmente as empresas continuam mais lentos que a indústria do crime em adotar novas tecnologias, e geralmente aceitam soluções “good enough” (boas apenas o suficiente) para aperfeiçoar sua proteção.

Nesse momento é essencial que a proteção comece na fase de planejamento e depois no desenvolvimento da aplicação. Os desenvolvedores devem estar cientes das implicações de segurança e escrever as aplicações com elas em mente. Da mesma forma a empresa deve estar preparada para a necessidade de horas de desenvolvimento dedicadas ao teste e revisão de segurança das aplicações, assim como em treinamento específico. Novamente, todos esses cuidados devem começar na fase de planejamento. Infelizmente muitos se preocupam com segurança depois, e nesses casos o estrago já está feito. Para ajudar nesta parte uma nova categoria de produtos de segurança foi criada, com o intuito de testar as aplicações web e identificar erros de programação. Não é por acaso que duas entre as principais empresas do setor foram recentemente adquiridas: a SPI Dynamics pela HP, e a Watchfire pela IBM. Outras empresas de segurança vem anunciando novos produtos ou extensão de produtos atuais.
Outra camada de segurança deve ser implementada no lado oposto da conexão, ou seja, no computador do usuário. Nesse caso o antivírus tradicional de assinaturas é bastante limitado e nem todas as técnicas são eficientes. Em muitos casos a detecção restringe-se a exploits já conhecidos, o que é completamente inócuo contra exploits montados “on the fly” (um excelente artigo sobre isso está disponível em
http://blogs.iss.net/archive/x-MorphicAttackEngin.html). As apostas para a proteção efetiva do usuário estão na tecnologia de detecção de aplicações maliciosas por comportamento.

A base da tecnologia está no comportamento do programa, sobreo qual o software de segurança pode dizer se há um comportamento maligno ou não. Ainda há necessidade, para esses programas, de atualizar os tipos de comportamentos, tal qual as assinaturas de vírus que fazemos hoje, no entanto comportamento é algo muito mais abrangente e eficiente. Pode parecer que a detecção comportamental será a panacéia para a segurança. Não a vejo como panacéia, mas como uma solução possível para um problema que a cada dia se torna mais complicado.

quinta-feira, 18 de outubro de 2007

Segurança na Web 2.0

Novas aplicações trazem novas ameaças. Essa é uma verdade universal em segurança da informação, e sempre que algo novo é lançado ela se confirma. Há cerca de quatro anos Tim O’Reilly cunhou o termo “web 2.0” para o que ele chama de revolução na indústria da computação pelo movimento para a Internet como plataforma. Essa última definição pode ser encontrada no link http://radar.oreilly.com/archives/2006/12/web_20_compact.html. Para os usuários, web 2.0 tem outros significados: abertura, colaboração e participação. Para os hackers e invasores de plantão, o significado é outro: oportunidade.

Há hoje alguma polêmica sobre o significado e impacto da web 2.0, mas é fato que um de seus componentes principais já é realidade hoje: a utilização da web, ou melhor, da plataforma web como plataforma para execução de software. É como se o navegador se tornasse o novo sistema operacional sobre o qual os sistemas são executados e com o qual interagem diretamente. Não é por acaso que o nome dado a essa plataforma é justamente Web Operating System, ou só WebOS. Também há muita discussão da definição correta de Web Operating System, no entanto há pontos que claramente definem essa plataforma:
  • Independência do sistema operacional (o aplicativo é criado para o WebOS e não para o sistema operacional)
  • Os WebOS são executados sobre o navegador, e não interagem diretamente com o hardware e drivers
  • O computador do usuário executa uma aplicação que “está na Internet” e não em seu computador.

Os riscos da web 2.0 são inerentes à própria plataforma. Apenas o fato de introduzir uma nova camada já traz um risco potencial, pois os hackers poderão utilizar essa nova camada como meio de acesso aos seus alvos, o que é aliás a maneira como qualquer invasor atua. Muitas pessoas acreditam que os hackers estão a margem da “sociedade digital”, como em uma espécie de submundo na Internet. Grande engano! Os hackers utilizam completamente a Internet e seus infindáveis recursos, assim como toda a tecnologia nela existente. Ou seja, qualquer serviço ou tecnologia existente serve tanto para fins benéficos como para fins maléficos. O correio eletrônico é o melhor exemplo: não precisamos proteger a infraestrutura de email contra tecnologias de invasão. Precisamos protegê-la contra ela mesma, contra suas vulnerabilidades e facilidades que permite o seu uso para o crime e outros propósitos.

Há alguns exemplos de ataques que se utilizaram da plataforma da web 2.0, e já documentados inclusive com plena cobertura da mídia. Um deles foi o worm Yamanner, lançado em junho de 2006. O alvo do ataque eram usuários do Yahoo Mail, que recebiam o worm codificado em Java Script em mensagens HTML. O script mal-intencionado era automaticamente processado e começava a enviar mensagens para os endereços cadastrados pelo usuário, entre outras ações de impacto limitado. Vejam que aqui o worm explorou diretamente uma vulnerabilidade no aplicativo do Yahoo, sem nenhuma dependência de sistema operacional da vítima. Outros foram o Samy e o Spaceflash que tiveram como alvo o MySpace, e atacaram usuários do site alterando o perfil deles e os incluindo como amigos do autor do ataque, entre outros.

Para piorar, mais do que usar a camada WebOS como meio de acesso, hackers vem utilizando os serviços de web 2.0 como ferramentas de trabalho para a criação de malware. O site GNUCITIZEN lista na página ao lado cinco serviços de grande utilidade para hackers. http://www.gnucitizen.org/blog/the-top-5-most-popular-web20-services-hackers-cannot-live-without. O site lista como os hackers estão usando o Yahoo Pipes, Dapper, Feed43, Zoho Creator e Google Reader em benefício próprio. Um exemplo o utilitário Jitko, uma ferramenta de varredura de vulnerabilidades para web sites. A diferença para as ferramentas tradicionais é que o Jitko é executado sobre o navegador, e não sobre o sistema operacional. Ou seja, é uma típica aplicação de web 2.0, baseada em WebOS. Ele pode ser embutido dentro de um web site e executar mesmo contra o desejo do proprietário do computador. Uma descrição da ferramenta está em http://www.zone-h.org/content/view/14660/31.

Um dos principais vetores de ataque é o AJAX, acrônimo para Asynchronous JavaScript and XML. O AJAX é uma das principais tecnologias existentes, e talvez a mais usada, para permitir a colaboração e interação nos web sites. A maneira como as aplicações são executadas no AJAX, com interações diretas entre o navegador, o servidor e outros web sites, permite que código e usos mal-intencionados sejam adicionados sem muita dificuldade, além da vantagem da execução de tais códigos ocorrer longe dos olhos do usuário. Quando é possível o usuário perceber algo, a aplicação já está rodando em seu navegador. Os ataques via AJAX ocorrem através de um velho problema, o cross-site scripting ou XSS. O cross-site scripting era considerada uma vulnerabilidade já equacionada, e a web 2.0 a resgatou dando a ela uma nova dimensão. Via cross-site scripting é possível ao invasor quase tudo, como roubar dados confidenciais, executar código arbitrário e até assumir o controle do computador do usuário.
Mas o AJAX não é infelizmente o único vetor de ataque. Outro bastante utilizado é XML, no que se chama de envenenamento de XML (Extensible Markup Language). A função do XML é justamente facilitar o compartilhamento de dados entre diferentes aplicações, o que inclui é claro as aplicações web. Pelo envenenamento de XML é possível provocar queda de serviço (DoS) ou executar código arbitrário no computador da vítima. Há ainda o chamado RSS Injection. RSS como todos sabemos é uma das coisas mais legais que a web 2.0 trouxe para os usuários: a possibilidade de mantê-los notificados de atualizações de conteúdo em seus sites preferidos. Mas há o lado negro: a possibilidade de embutir código Javascript mal-intencionado e executá-lo arbitrariamente no computador da vítima, permitindo por exemplo roubo de informação. Além destes há ainda riscos em SOAP, WSDL (Web Services Definition Language) e RIA (Rich Internet Applications). Todos são linguagens, protocolos, interfaces ou serviços que permitem a web 2.0 existir.

A existência de tantas vulnerabilidades novas, além do resgate de antigas vulnerabillidades, mostra o maior desafio para a segurança digital: ela sempre vem em segundo plano, seja no desenvolvimento de novas aplicações, seja na implementação dela por empresas usuárias. Depois que é tudo desenvolvido e instalado, e os problemas começam a aparecer, é que todos passam a pensar no assunto, como se não fosse algo possivel de prever com antecipação. É claro que a prevenção não resolve tudo, mas reduz bastante o problema. Depois de tantos anos lidando e sofrendo com ataques e o crime cibernético, poderiamos fazer com que a frase “novas aplicações trazem novas ameaças” deixasse de ser uma verdade inquestionável.

quarta-feira, 10 de outubro de 2007

Storm Worm

A praga mais presente de 2007 continua sendo o Storm Worm. A primeira notícia do malware apareceu em Janeiro e ele continua não só ativo como variando seus métodos de infecção. Os autores do ataque mostraram possuir cartas sob a manga para confundir e dificultar a detecção. Uma descrição bem completa do ataque pode ser encontrada em alerta do X-Force na página http://iss.net/threats/W32.Worm.Nuwar.Gen.html. O alerta é do dia 19 de Janeiro porém está atualizado. Há duas reflexões a partir do Storm Worm: a grande quantidade de opções de variação que está nas mãos dos hackers e o incrível poder de fogo das redes bot (ou zumbis). Estatísticas sobre o ataque desde o seu início estão em blog da Websense: http://www.websense.com/securitylabs/blog/blog.php?BlogID=147

A primeira onda de ataque ocorreu exclusivamente por spam em massa, com anexos que infectavam o computador da vítima ao ser executados. Nas ondas adicionais as mensagens de correio eletrônico foram alteradas a fim de iludir suas vítimas. Também desde o inicio os autores do ataque inundaram a Internet com variantes do programa inicial responsável por baixar os programas adicionais que compõem o ataque (o downloader) , assim como variantes dos próprios programas adicionais.

A última onda, ocorrida em Setembro, foi baseada em técnicas de invasão via web. O web site legítimo de um congresso no estado de Wisconsin (USA) foi invadido e nele foi inserido uma linha de código que inicia o download do malware. Eles também criaram um site falso da liga americana de futebel americana para infectar usuários que chegaram a ela a partir de um email de phishing. Um determinado vídeo disponível do YouTube também serviu de isca. Os autores de malware certamente lançarão mão de todas as opções possíveis, alavancados sem dúvida pelos novos fornecedores de kits de invasão.

O Storm Worm criou uma rede bot que continua em expansão. Um artigo na Information Week chegou a comparar o poder de processamento dessa rede com um supercomputador da IBM –
http://www.informationweek.com/news/showArticle.jhtml?articleID=201804528&pgno=1&queryText= . A questão é como lidar com essas formidáveis redes com milhares e até milhões de computadores. Ocorrências como a que ocorreu na Estônia em Maio, na qual o país saiu literalmente no ar, nos levam a pensar nas possíveis implicações dessas redes usadas para atacar países (http://www.informationweek.com/news/showArticle.jhtml?articleID=199701774 ).

sábado, 6 de outubro de 2007

Previsões para 2008 (pela Universidade Georgia Tech)

Na medida que nos aproximamos de 2008 começam a aparecer análises de tendências para as principais ameaças para o ano. Uma análise apontando as cinco ameaças que seriam as principais para 2008 foi publicado pelo grupo de segurança da Universidade Georgia Tech (Georgia Tech Information Security Center). O relatório está disponível na página http://www.gtisc.gatech.edu/pdf/GTISC%20Cyber%20Threats%20Report.pdf e aponta as seguintes ameaças como tendência para 2008:
  • Ataques em web 2.0 e realizados no nível dos clientes
  • Ataques via mensagens de eMail
  • Botnets
  • Ameaças focando na convergência de mobilidade
  • Ameaças a sistemas de identificação por rádio-frequência (RFID)

Vale a pena dar uma olhada. Em especial nos próximos posts irei comentar as ameaças, e comparando as conclusões do grupo da Georgia Tech com a de outros analistas.