Fernando Correia

Segurança no Windows Azure

In Dicas on 20 mar 2012 at 22:21

Desenvolver aplicações seguras é um grande desafio. Se forem conectadas à Internet, então, as ameaças se multiplicam. E aplicações na nuvem, distribuídas e em ambientes compartilhados, trazem ainda mais desafios. Mas são desafios que precisam ser compreendidos e dominados, porque segurança não é opcional, é pré-requisito.

seguranca_nuvem

Bruce Kyle, arquiteto evangelista da Microsoft, escreveu uma série de 7 artigos esmiuçando qual é a segurança da nuvem e, especialmente, do Windows Azure, e o que precisamos fazer para proteger uma aplicação.

Esta série de artigos aborda os desafios ao projetar uma aplicação segura e o que pode ser feito para assegurar o acesso a quem tem direito e impedi-lo a quem não tem.

Eu não vejo utilidade em tentar resumir estes artigos, pinçando algumas dicas mais relevantes. Os artigos são um mapa da mina para um assunto muito amplo. Eles precisam ser lidos com calma e analisados com profundidade, fazendo um checklist de requisitos a serem considerados no projeto de uma nova aplicação, ou a serem revisados em aplicações já existentes. O que eu vou fazer é fornecer aqui um mapa do mapa, ou seja, ponteiros para cada um destes artigos.

Na parte 1, Bruce fala sobre os desafios da segurança de aplicações na nuvem, mapeia as ameaças e indica a estratégia geral para lidar com eles: a já bem conhecida teoria da defesa em profundidade. Na prática, essa estratégia assume a forma de sucessivas barreiras e mecanismos redundantes e complementares de proteção. Por exemplo, desde a proteção física, passando pela proteção das comunicações de rede, proteção dos dados, gerenciamento de identidade e acesso, segurança de aplicações.

A parte 2 explica a segurança que a plataforma Windows Azure fornece por si mesma. Bruce reforça o conceito de que a segurança de uma aplicação na nuvem é uma responsabilidade compartilhada. O Windows Azure fornece mecanismos de proteção, mas ao mesmo tempo as características da computação em nuvem geram vulnerabilidades que devem ser consideradas. Aqui são expostas com mais detalhes as várias camadas de proteção e como elas podem ser empregadas em um plano para aplicar a estratégia de defesa em profundidade.

A parte 3 avança para um tópico muito importante, que é determinar o perfil de segurança da aplicação. A idéia é examinar a arquitetura da aplicação e identificar ameaças e respostas, antes mesmo de começar a fase de implementação. Este capítulo também indica uma forma de introduzir a segurança como parte do processo de desenvolvimento de aplicações.

Na parte 4, Bruce reforça o esclarecimento de quais questões de segurança precisam ser tratadas pelos desenvolvedores de aplicações, e quais questões são responsabilidade da plataforma Windows Azure. São abordadas ameaças como adulteração de dados, vazamento de credenciais, negação de responsabilidade, vazamento de informações, negação de serviço, elevação de privilégio, acesso indevido.

A parte 5 entre em detalhes do modelo de segurança, explicando mecanismos como identidade baseada em declarações (claims-based identity) e autenticação integrada (single sign-on). Estes modelos possibilitam, por exemplo, integrar o gerenciamento de identidades e permissões de uma aplicação na nuvem a um ambiente interno.

A parte 6 trata de como os serviços do Azure extendem a segurança das aplicações na nuvem. São analisados serviços como Windows Azure Active Directory (que inclui o Access Control Service) para lidar com identidades e autenticação, o Windows Azure Connect para conexões seguras entre a nuvem e ambientes internos, e Service Bus para troca de mensagens seguras.

Finalmente, a parte 7dicas, fala sobre ferramentas e menciona várias boas práticas complementares às explicadas anteriormente. São vários temas, de tratamento de erros a criptografia.

Em resumo, esta série de artigos é um verdadeiro tratado sobre desenvolvimento de aplicações seguras para a nuvem. O material referenciado é uma fonte quase inesgotável de conhecimentos e práticas. Os arquitetos de aplicações para Azure têm uma nova referência obrigatória sobre segurança. Eu pretendo criar um check-list para usar como guia nas aplicações que estou ajudando a projetar.

Como você vê a questão da segurança de aplicações nestes tempos de computação na nuvem? Continue a conversa nos comentários abaixo ou pelo Twitter.