Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Segurança e privacidade nunca devem ser uma reflexão tardia ao desenvolver software seguro. Um processo formal deve estar em vigor para garantir que a equipe de desenvolvimento considere a segurança e a privacidade em todos os pontos do ciclo de vida do produto. O Security Development Lifecycle (SDL) da Microsoft incorpora requisitos de segurança abrangentes, ferramentas específicas de tecnologia e processos obrigatórios no desenvolvimento e na operação de todos os produtos de software. Todas as equipes de desenvolvimento da Microsoft devem aderir aos processos e requisitos do SDL. Essa adesão resulta em software mais seguro, com menos vulnerabilidades e menos graves a um custo de desenvolvimento reduzido.
O SDL da Microsoft consiste em sete componentes, incluindo cinco fases principais e duas atividades de segurança de suporte. As cinco fases principais são requisitos, design, implementação, verificação e lançamento. Cada uma dessas fases contém verificações e aprovações obrigatórias para garantir que todos os requisitos de segurança e privacidade e as melhores práticas sejam devidamente abordados. As duas atividades de segurança de suporte, treinamento e resposta, são conduzidas antes e depois das fases principais, respectivamente, para garantir que sejam implementadas corretamente e que o software permaneça seguro após a implantação.
Treinamento
Todos os funcionários da Microsoft devem concluir um treinamento geral de segurança e conscientização sobre privacidade, bem como treinamento específico relacionado à sua função. Os novos funcionários recebem treinamento inicial após a contratação, e o treinamento anual de atualização é necessário durante todo o emprego na Microsoft.
Desenvolvedores e engenheiros também devem participar de treinamento específico para sua função para mantê-los informados sobre os fundamentos de segurança e as tendências recentes no desenvolvimento seguro. Todos os funcionários em tempo integral, estagiários, funcionários temporários, subcontratados e terceiros também são incentivados e têm a oportunidade de buscar treinamento avançado em segurança e privacidade.
Requisitos
Cada produto, serviço e recurso que a Microsoft desenvolve começa com requisitos de segurança e privacidade claramente definidos. Esses requisitos formam a base de aplicativos seguros e informam seu design. As equipes de desenvolvimento definem esses requisitos com base em fatores como o tipo de dados que o produto manipula, ameaças conhecidas, práticas recomendadas, regulamentos e requisitos do setor e lições aprendidas com incidentes anteriores. Uma vez definido, a equipe de desenvolvimento documenta e rastreia claramente os requisitos.
O desenvolvimento de software é um processo contínuo, o que significa que os requisitos de segurança e privacidade associados mudam ao longo do ciclo de vida do produto para refletir as mudanças na funcionalidade e no cenário de ameaças.
Design
Depois de definir os requisitos de segurança, privacidade e funcionais, você pode começar a projetar o software. Como parte do processo de design, crie modelos de ameaças para ajudar a identificar, categorizar e classificar ameaças potenciais de acordo com o risco. Mantenha e atualize modelos de ameaças durante todo o ciclo de vida de cada produto à medida que você faz alterações no software.
O processo de modelagem de ameaças começa definindo os diferentes componentes de um produto e como eles interagem entre si em cenários funcionais importantes, como autenticação. Crie Diagramas de Fluxo de Dados (DFDs) para representar visualmente as principais interações de fluxo de dados, tipos de dados, portas e protocolos usados. Use DFDs para identificar e priorizar ameaças para mitigação que você adiciona aos requisitos de segurança do produto.
As equipes de serviço usam a Threat Modeling Tool da Microsoft para criar modelos de ameaças, o que permite que a equipe:
- Comunique-se sobre o design de segurança de seus sistemas
- Analise projetos de segurança para possíveis problemas de segurança usando uma metodologia comprovada
- Sugerir e gerenciar a mitigação de problemas de segurança
Antes de lançar qualquer produto, analise todos os modelos de ameaça quanto à precisão e integridade, incluindo a mitigação de riscos inaceitáveis.
Implementação
A implementação começa com os desenvolvedores escrevendo o código de acordo com o plano que criaram nas duas fases anteriores. A Microsoft fornece aos desenvolvedores um conjunto de ferramentas de desenvolvimento seguro para implementar com eficácia todos os requisitos de segurança, privacidade e função do software que eles projetam. Essas ferramentas incluem compiladores, ambientes de desenvolvimento seguros e verificações de segurança internas.
Verificação
Antes de liberar qualquer código escrito, você precisa concluir várias verificações e aprovações para verificar se o código está em conformidade com o SDL, atende aos requisitos de design e está livre de erros de codificação. Uma revisão manual é conduzida por um revisor que não é o engenheiro que desenvolveu o código. A separação de tarefas é um controle importante nesta etapa para minimizar o risco de código sendo gravado e liberado que leva a danos acidentais ou mal-intencionados.
Você também precisa executar várias verificações automatizadas internas no pipeline para analisar o código durante a marcação e quando os builds são compilados. As verificações de segurança usadas na Microsoft se enquadram nas seguintes categorias:
- Análise de código estático: analisa o código-fonte em busca de possíveis falhas de segurança, incluindo a presença de credenciais no código.
- Análise binária: avalia vulnerabilidades no nível do código binário para confirmar se o código está pronto para produção.
- Verificação de credenciais e segredos: identifica possíveis instâncias de exposição de credenciais e segredos no código-fonte e nos arquivos de configuração.
- Verificação de criptografia: valida as práticas recomendadas de criptografia no código-fonte e na execução de código.
- Teste difuso: usa dados malformados e inesperados para exercitar APIs e analisadores para marcar vulnerabilidades e validar o tratamento de erros.
- Validação de configuração: analisa a configuração dos sistemas de produção em relação aos padrões de segurança e às melhores práticas.
- CG (Governança de Componentes): detecção de software de software livre e verificação de versão, vulnerabilidade e obrigações legais.
Se o revisor manual ou as ferramentas automatizadas encontrarem algum problema com o código, elas notificarão o remetente. O remetente deve fazer as alterações necessárias antes de enviar o código para revisão novamente.
Além disso, provedores internos e externos realizam regularmente testes de penetração nos serviços online da Microsoft. Os testes de penetração fornecem outro meio de descobrir falhas de segurança que outros métodos não detectaram. Para obter mais informações sobre testes de penetração na Microsoft, consulte Simulação de ataque no Microsoft 365.
Lançar
Depois de passar em todos os testes e análises de segurança necessários, os builds não são liberados imediatamente para todos os clientes. O processo de lançamento libera sistemática e gradualmente builds para grupos cada vez maiores, chamados de anéis, no que é chamado de processo de implantação segura (SDP). Os anéis SDP geralmente podem ser definidos como:
- Anel 0: a equipe de desenvolvimento responsável pelo serviço ou recurso
- Anel 1: todos os funcionários da Microsoft
- Anel 2: Usuários fora da Microsoft que configuraram sua organização ou usuários específicos para estar no canal de lançamento de destino
- Anel 3: lançamento padrão mundial em subfases
As compilações permanecem em cada um desses anéis por um número adequado de dias com períodos de alta carga, exceto no Anel 3, pois a compilação é testada adequadamente quanto à estabilidade nos anéis anteriores.
Resposta
Após o lançamento, todos os serviços Microsoft são amplamente registrados e monitorados. Um sistema de monitoramento proprietário centralizado quase em tempo real identifica possíveis incidentes de segurança. Para obter mais informações sobre monitoramento de segurança e gerenciamento de incidentes de segurança na Microsoft, consulte Visão geral do monitoramento de segurança e Gerenciamento de incidentes de segurança da Microsoft.