Segurança no desenvolvimento de software na Atlassian
Na Atlassian, a segurança é integrada a todas as fases do ciclo de vida do desenvolvimento para garantir que o código, produtos e clientes permaneçam protegidos. A gente executa práticas de desenvolvimento seguras em todas as fases do ciclo de vida do desenvolvimento.
- O desenvolvimento tem suporte de programas de treinamento de segurança de aplicativos e uma base de conhecimento de segurança mantida pela equipe de segurança.
- Na fase de design, as práticas incluem modelagem de ameaças, revisão de design e a biblioteca de padrões de segurança atualizada com frequência, o que garante que os requisitos de segurança adequados sejam considerados.
- Durante o desenvolvimento, a gente conta com um processo obrigatório de revisão de pares como a primeira linha de revisão de segurança. Esse processo tem suporte de verificações de análise estática automatizadas (SAST) e testes manuais de segurança (tanto por equipes internas quanto por parceiros de terceiros, conforme determinado pelo processo de avaliação de riscos).
- Os processos formais de prontidão operacional e controle de alterações garantem que só as alterações aprovadas sejam implementadas na produção. Após a implementação, a gente usa varreduras automatizadas regulares de vulnerabilidades e um programa de recompensa de bugs líder do setor para oferecer a garantia contínua dos aplicativos. A gente está sempre medindo a postura de segurança dos produtos ao longo do tempo com um sistema de indicadores de desempenho de segurança.
Cultura
Engajamento
Treinamento
Padrões
Práticas
PONTOS DE CONTROLE
Análise de segurança
Aprimoramento de segurança
Desenvolvimento de uma cultura de segurança
A Atlassian desenvolve a cultura de segurança capacitando as equipes por meio de treinamento robusto de segurança.
Treinamento de segurança de desenvolvedores
A gente usa conteúdo desenvolvido por nós e conteúdo de treinamento de terceiros para garantir que as equipes de desenvolvimento tenham o conhecimento de segurança necessário para criar aplicativos seguros. O programa de treinamento é monitorado sem interrupções para garantir a saúde do programa e evolui para atender ao cenário de ameaças em constante mudança.
Fase de design
Na fase de design, a gente usa modelagem de ameaças, revisão do design e a biblioteca de padrões de segurança para garantir que os requisitos de segurança adequados sejam considerados.
Modelagem de ameaças
A gente usa a modelagem de ameaças para entender melhor os riscos de segurança quando os projetos enfrentam ameaças complexas ou alteram funções essenciais para a segurança. Esse processo envolve uma sessão de brainstorming entre engenheiros, engenheiros de segurança, arquitetos e gerentes de produtos para identificar e priorizar ameaças relevantes. Essas informações são usadas no processo de design e garantem que os controles apropriados sejam implementados. Elas também dão suporte a revisão e testes direcionados em fases posteriores de desenvolvimento.
A modelagem de ameaças inclui:
- Aplicação de uma abordagem baseada em riscos para determinar a necessidade de realizar a modelagem de ameaças
- Um processo maduro de condução da modelagem de ameaças, incluindo materiais de suporte e ferramentas
- Vídeos de treinamento e material de leitura para ajudar as equipes de software a conduzir a modelagem de ameaças
Fase de desenvolvimento
Durante o processo de desenvolvimento, a gente usa vários processos e práticas de segurança para garantir que o código permaneça seguro.
Análise de segurança
A equipe de segurança executa um processo de análise de segurança para dar garantia de segurança em todos os projetos de software na Atlassian. Um processo de avaliação de riscos é usado para priorizar onde concentrar a análise de segurança e identificar quais atividades são necessárias para mitigar os riscos do projeto. Dependendo do nível de risco identificado, as atividades de garantia incluem uma combinação de:
- Análise de design e modelagem de ameaças
- Análise de código e testes de segurança
- Garantia independente usando pesquisadores e consultores especializados de terceiros
Revisão de pares
Durante o desenvolvimento, todo o código está sujeito ao processo de testes de Análise de colegas/Build verde (PRGB). Esse processo exige que vários desenvolvedores seniores ou líderes revisem todos os commits antes de serem enviados para a produção. Ele tem suporte de verificações de análise estática automatizadas (SAST) e testes manuais de segurança (tanto por equipes internas quanto por parceiros de terceiros, conforme determinado pelo processo de avaliação de riscos). O desenvolvimento também tem suporte de programas de treinamento de segurança de aplicativos e uma base de conhecimento de segurança mantida pela equipe de segurança.
Separação de ambientes
A gente mantém a separação lógica e física dos ambientes de produção e não produção (desenvolvimento) para todos os serviços críticos. O ambiente de staging é separado em sua estrutura lógica - mas não em sua física - e é gerenciado sob controle de mudanças de nível de produção e processos de acesso.
A Atlassian também tem políticas de segurança que proíbem o uso de dados de produção em ambientes que não sejam de produção. A gente mantém diretrizes sobre como retirar ou proteger dados restritos (incluindo dados pessoais) usando técnicas de anonimização, hash e tokenização.
Fase de manutenção
Antes de o código ser enviado para a produção, ele deve passar por processos formais de prontidão operacional e controle de mudanças.
Depois que um sistema é implementado, a gente executa verificações automatizadas de vulnerabilidades com frequência. Como foi discutido nas práticas de segurança, a Atlassian tem um programa de recompensas por bugs líder do setor que oferece garantia contínua de segurança ininterrupta para os sistemas usando um grupo confiável de pesquisadores de segurança por meio de crowdsourcing.
Placares de segurança
A gente criou um sistema automatizado de responsabilidade e monitoramento conhecido como indicadores de desempenho de segurança do produto, que são usados para medir a postura de segurança de todos os produtos na Atlassian. A gente usa uma ampla gama de critérios focados em segurança, como vulnerabilidades atuais, cobertura de treinamento e incidentes recentes de segurança para oferecer uma pontuação diária geral de segurança para cada um dos produtos.
Esse processo de pontuação dá a cada uma das equipes de produtos uma visão objetiva sobre quais áreas de segurança exigem atenção e identifica lacunas existentes que precisam ser tratadas e ações para resolver essas lacunas. O processo de placares de segurança também permite que a equipe de segurança da Atlassian acompanhe com facilidade o comportamento de todos os produtos de uma perspectiva de segurança ao longo do tempo, em especial quando o conjunto de produtos continua a escalar.