Introdução ao desenvolvimento e operação de segurança dos Serviços Online da Microsoft
O SDL (Security Development Lifecycle) da Microsoft é um processo de garantia de segurança focado no desenvolvimento e operação de software seguro. O SDL fornece requisitos de segurança detalhados e mensuráveis para desenvolvedores e engenheiros da Microsoft reduzirem o número e a gravidade das vulnerabilidades em nossos produtos e serviços. Todos os Serviços Online da Microsoft têm de seguir os requisitos de SDL e atualizamos continuamente o SDL para refletir o panorama das ameaças em mudança, as melhores práticas do setor e as normas regulamentares de conformidade.
Fases do SDL da Microsoft
A Microsoft criou práticas de SDL no modelo de DevOps para garantir que a segurança e a privacidade continuam a ser um dos principais focos dos nossos produtos e serviços. Para salvaguardar os clientes e os dados do Microsoft Online Services, todo o desenvolvimento na Microsoft ocorre em ambientes de desenvolvimento completamente segregados de ambientes de produção sem qualquer acesso aos inquilinos dos clientes. Além disso, o acesso aos ambientes de produção é limitado aos engenheiros que operam os serviços, e esses ambientes são separados da rede corporativa da Microsoft.
O processo de SDL na Microsoft pode ser pensado em termos de cinco fases de desenvolvimento:
- Requisitos: são definidos requisitos de segurança, privacidade e funcionais, que servem de base ao qual o serviço foi concebido.
- Estrutura: a arquitetura do serviço foi concebida para cumprir os requisitos definidos e os modelos de ameaças são criados para ajudar a identificar, categorizar e classificar potenciais ameaças.
- Implementação: o código é escrito seguindo as especificações de conceção definidas através de ferramentas de desenvolvimento seguras aprovadas.
- Verificação: o código de serviço é revisto automaticamente e manualmente para garantir que cumpre os requisitos definidos e está livre de erros de codificação e falhas de segurança.
- Versão: a compilação aprovada é gradualmente implementada com um processo de implementação seguro, começando com ambientes de teste internos e terminando com o âmbito de produção completo.
Além das cinco fases de desenvolvimento principais descritas acima, existem duas atividades de segurança relacionadas que suportam o SDL. O pessoal da Microsoft que desenvolve os nossos produtos e serviços é obrigado a concluir a formação orientada para a segurança para compreender o SDL e cultivar uma mentalidade defensiva. Após o lançamento, os novos serviços de produção são monitorizados através dos processos de monitorização de segurança e gestão de vulnerabilidades da Microsoft para garantir que a sua postura de segurança é mantida e a Microsoft pode responder a potenciais ameaças ao longo do ciclo de vida.
Nas unidades a seguir, exploraremos como a Microsoft implementa os requisitos de SDL:
- Exigir treinamento para conscientização de segurança e práticas de desenvolvimento seguras.
- Definir requisitos de segurança e privacidade, manter modelos de ameaça atualizados e exigir revisão manual de código.
- Executar ferramentas SDL automaticamente para detectar problemas de segurança no código como parte do processo de build.
- Impor e testar requisitos de segurança operacional para manter as práticas recomendadas de segurança.
- Executar revisões de segurança e privacidade antes do lançamento.
- Usar a CG (Governança de Componentes) para gerenciar software livre.