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.
A segurança e a privacidade nunca devem ser uma reflexão posterior ao desenvolver software seguro. Tem de ser implementado um processo formal para garantir que a equipa de desenvolvimento considera a segurança e a privacidade em todos os pontos do ciclo de vida do produto. O Ciclo de Vida de Desenvolvimento de Segurança (SDL) da Microsoft incorpora requisitos de segurança abrangentes, ferramentas específicas da tecnologia e processos obrigatórios no desenvolvimento e funcionamento de todos os produtos de software. Todas as equipas de desenvolvimento da Microsoft têm de cumprir os processos e requisitos do SDL. Esta adesão resulta num software mais seguro, com vulnerabilidades cada vez 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 destas fases contém verificações e aprovações obrigatórias para garantir que todos os requisitos de segurança e privacidade e melhores práticas são devidamente abordados. As duas atividades de segurança de suporte, preparação e resposta, são realizadas antes e depois das fases principais, respetivamente, para garantir que são implementadas corretamente e que o software permanece seguro após a implementação.
Treinamento
Todos os funcionários da Microsoft são obrigados a concluir a formação geral de segurança e sensibilização para a privacidade, bem como formação específica relacionada com a sua função. Os novos funcionários recebem formação inicial após a contratação e é necessária formação anual de atualização em todo o seu emprego na Microsoft.
Os programadores e engenheiros também têm de participar na formação específica de funções para mantê-los informados sobre as noções básicas de segurança e tendências recentes no desenvolvimento seguro. Todos os funcionários a tempo inteiro, estagiários, funcionários contingentes, subcontratados e terceiros também são encorajados e fornecidos com a oportunidade de procurar formação avançada de segurança e privacidade.
Requisitos
Cada produto, serviço e funcionalidade que a Microsoft desenvolve começa com requisitos de segurança e privacidade claramente definidos. Estes requisitos formam a base de aplicações seguras e informam a sua conceção. As equipas de desenvolvimento definem estes requisitos com base em fatores como o tipo de dados que o produto processa, ameaças conhecidas, melhores práticas, regulamentos e requisitos do setor e lições aprendidas com incidentes anteriores. Uma vez definido, a equipa de desenvolvimento documenta e controla 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 alterações na funcionalidade e no panorama das ameaças.
Design
Depois de definir os requisitos de segurança, privacidade e funcionalidade, pode começar a estruturar o software. Como parte do processo de conceção, crie modelos de ameaças para ajudar a identificar, categorizar e classificar potenciais ameaças de acordo com o risco. Mantenha e atualize modelos de ameaças ao longo do ciclo de vida de cada produto à medida que efetua alterações ao software.
O processo de modelação de ameaças começa por definir os diferentes componentes de um produto e como interagem entre si em cenários funcionais fundamentais, como a autenticação. Crie Fluxo de Dados Diagramas (DFDs) para representar visualmente as principais interações de fluxo de dados, tipos de dados, portas e protocolos utilizados. Utilize DFDs para identificar e atribuir prioridades a ameaças de mitigação que adiciona aos requisitos de segurança do produto.
As equipas de serviços utilizam o Threat Modeling Tool da Microsoft para criar modelos de ameaças, que permitem à equipa:
- Comunicar sobre o design de segurança dos respetivos sistemas
- Analisar designs de segurança para potenciais problemas de segurança com uma metodologia comprovada
- Sugerir e gerir a mitigação para problemas de segurança
Antes de lançar qualquer produto, reveja todos os modelos de ameaças quanto à precisão e à totalidade, incluindo a mitigação para riscos inaceitáveis.
Implementação
A implementação começa com os programadores a escrever código de acordo com o plano que criaram nas duas fases anteriores. A Microsoft fornece aos programadores um conjunto de ferramentas de desenvolvimento seguras para implementar eficazmente todos os requisitos de segurança, privacidade e função do software que concebem. Estas ferramentas incluem compiladores, ambientes de desenvolvimento seguros e verificações de segurança incorporadas.
Verificação
Antes de lançar qualquer código escrito, tem de concluir várias verificações e aprovações para verificar se o código está em conformidade com o SDL, cumpre os requisitos de estrutura e está livre de erros de codificação. Uma revisão manual é realizada por um revisor que não é o engenheiro que desenvolveu o código. A separação de deveres é um controlo importante neste passo para minimizar o risco de escrita e libertação do código que origina danos acidentais ou maliciosos.
Também tem de executar várias verificações automatizadas incorporadas no pipeline para analisar o código durante marcar e quando as compilações são compiladas. As verificações de segurança utilizadas na Microsoft enquadram-se nas seguintes categorias:
- Análise de código estático: analisa o código fonte para potenciais falhas de segurança, incluindo a presença de credenciais no código.
- Análise binária: avalia as vulnerabilidades ao nível do código binário para confirmar que o código está pronto para produção.
- Scanner de credenciais e segredos: identifica possíveis instâncias de exposição de credenciais e segredos em ficheiros de configuração e código fonte.
- Análise de encriptação: valida as melhores práticas de encriptação no código fonte e na execução de código.
- Teste de fuzz: utiliza dados incorretos e inesperados para exercer APIs e analisadores para marcar para vulnerabilidades e validar o processamento de erros.
- Validação da configuração: analisa a configuração dos sistemas de produção em relação às normas de segurança e às melhores práticas.
- Governação de Componentes (CG): deteção de software open source e verificação da versão, vulnerabilidade e obrigações legais.
Se o revisor manual ou as ferramentas automatizadas encontrarem problemas com o código, notificam o submetidor. O submetidor tem de fazer as alterações necessárias antes de submeter novamente o código para revisão.
Além disso, tanto os fornecedores internos como externos realizam regularmente testes de penetração no Microsoft serviços online. Os testes de penetração fornecem outro meio para descobrir falhas de segurança que outros métodos não detetaram. Para obter mais informações sobre testes de penetração na Microsoft, consulte Simulação de ataques no Microsoft 365.
Lançar
Depois de passar todos os testes e revisões de segurança necessários, as compilações não são imediatamente lançadas para todos os clientes. O processo de lançamento lança sistematicamente e gradualmente compilações para grupos maiores e maiores, referidos como anéis, no que é chamado de processo de implementação segura (SDP). Geralmente, os anéis SDP podem ser definidos como:
- Cadência 0: a equipa de desenvolvimento responsável pelo serviço ou funcionalidade
- Anel 1: Todos os funcionários da Microsoft
- Anel 2: utilizadores fora da Microsoft que tenham configurado a sua organização ou utilizadores específicos para estarem no canal de lançamento direcionado
- Anel 3: lançamento padrão mundial em sub fases
As compilações permanecem em cada um destes anéis durante um número adequado de dias com períodos de carga elevados, exceto a Cadência 3, uma vez que a compilação é devidamente testada para estabilidade nos anéis anteriores.
Resposta
Após o lançamento, todos os serviços Microsoft são amplamente registados e monitorizados. Um sistema de monitorização quase em tempo real proprietário centralizado identifica potenciais incidentes de segurança. Para obter mais informações sobre a monitorização de segurança e a gestão de incidentes de segurança na Microsoft, consulte Descrição geral da monitorização de segurança e gestão de incidentes de segurança da Microsoft.