A Microsoft divulgou ontem 8 novos boletins de segurança, corrigindo 23 vulnerabilidades diferentes. Algumas das vulnerabilidades corrigidas já tinham tido divulgação pública e estavam sendo exploradas em ataques na Internet:

■  O boletim MS09-009 corrige uma vulnerabilidade crítica que permitia a execução remota de código no Microsoft Excel (CVE-2009-0238), reportada originalmente em 24 de fevereiro no advisory 968272.

■  O boletim MS09-010 corrige uma vulnerabilidade crítica que permitia a execução remota de código em versões antigas do Microsoft Word e do Wordpad (CVE-2008-4841), reportada originalmente em 9 de dezembro de 2008 no advisory 960906.

■  O boletim MS09-015 protege o sistema contra uma ameaça “blended”, que combina vulnerabilidades em dois softwares diferentes para fazer o ataque. No caso o ataque era feito através de uma vulnerabilidade no Apple Safari que permitia um atacante colocar sem aviso arquivos de sua escolha no desktop do usuário, e uma outra vulnerabilidade no Windows que fazia com que o arquivo pudesse ser executado sem conhecimento do usuário. Esta é uma vulnerabilidade moderada reportada originalmente em 30 de maio de 2008 no advisory 953818.

O foco deste post no entanto é no boletim MS09-012, que corrige uma outra vulnerabilidade publicamente divulgada chamada de Token Kidnapping. Publicada originalmente pelo argentino Cesar Cerrudo em março do ano passado (que depois divulgou um exploit chamado “churrasco”), esta vulnerabilidade permite que serviços rodando no sistema possam elevar os seus privilégios para o nível de administrador e vinha sido ativamente explorada na Internet, principalmente contra serviços de hosting de páginas web.

Apesar de não ter a mesma criticidade das outras vulnerabilidades, boletim MS09-012 foi provavelmente a atualização de segurança mais complicada e trabalhosa já desenvolvida pela Microsoft, e envolve mudanças significativas na arquitetura de serviços do Windows. O que torna a correção tão complexa é que esta não é uma vulnerabilidade de código, isto é, não existe nenhum erro na programação. Esta é uma falha de design, na arquitetura e especificação do Windows. Falhas de design só podem ser corrigidas mudando o design, e é isto o que este boletim fez.

Muito do trabalho envolvido foi causado pelo backport (implementação de uma funcionalidade de uma versão mais nova em uma versão mais antiga) da funcionalidade de SID de Serviço existente no Windows Vista e Windows Server 2008 para as versões anteriores do Windows. 

Este é o tipo de mudança que a Microsoft somente faz normalmente em um Service Pack ou em uma nova versão do produto, e a boletim requereu um esforço hercúleo de teste para garantir que nenhuma aplicação ou serviço fosse negativamente afetado. O MSRC rodou 600 mil diferente cenários de teste, incluindo 2500 testes de compatibilidade com aplicações de terceiros. Foi feito também um beta privado em computadores da Microsoft e de outras empresas para verificar também a compatibilidade com aplicativos desenvolvidos internamente.

Os detalhes técnicos deste boletim e as alterações feitas na arquitetura do Windows serão motivo de um outro (e mais longo) post neste blog. A Microsoft recomenda que todas as organizações validem e instalem esta correção nos seus sistemas, particularmente aqueles rodando o servidor Web Internet Information Server (IIS).

Importante: Se você ou a sua organização desenvolvem softwares que implementam serviços Windows ou componentes COM+ fora de processo (COM Server) rodando como LocalService ou NetworkService, ou implementam provedores WMI (WMI Providers), verique se a sua aplicação é vulnerável ao Token Kidnapping seguindo as instruções do artigo 956572, e em caso positivo implemente as chaves de registro recomendadas neste artigo.

Mais informações sobre o boletim MS09-012 no blog do Microsoft Security Research and Defense. Cesar Cerrudo escreveu também um post sobre a correção no blog da Microsoft Blue Hat.