Cinco práticas recomendadas do DevSecOps para priorizar
O DevSecOps bem-sucedido não se trata apenas de código seguro, mas de proteger os fluxos de dados através de código, métodos e ferramentas. Confira essas cinco dicas de segurança para melhorar seu trabalho de DevOps.
As organizações adotam o DevOps porque aproxima as disciplinas de desenvolvimento e operações. Este modelo de desenvolvimento cria uma maneira eficaz e responsiva de alcançar a entrega contínua de código para o mundo real, preservando verificações e equilíbrios vitais.
Uma das verificações que nem sempre é tratada efetivamente é a segurança do DevOps. Especificamente, as organizações geralmente lutam para manter os níveis certos de segurança quando o código se move rapidamente do desenvolvimento para as operações. Uma maneira de combater essa vulnerabilidade é adotar a abordagem DevSecOps, que garante que o ônus da segurança não seja deixado para um ou dois participantes. Em vez disso, a segurança é tecida em todas as facetas do processo, contando com a responsabilidade compartilhada desde o desenvolvimento até as operações, automação de testes, comunicação eficaz e outras técnicas.
Para gerenciar a segurança de forma eficaz no modelo DevOps, considere essas cinco práticas recomendadas importantes do DevSecOps.
1. Determine o que deve ser mantido seguro
É notável quantas empresas lutam com a questão básica do que exatamente manter seguro. Em certa medida, a segurança do código em si pode não ser no que você precisa se concentrar. O código é código; a menos que tenha um valor específico como propriedade intelectual para a empresa, não tem valor. No entanto, os dados que o código trata é o que diferencia uma organização de seus concorrentes. E é aqui que está o valor.
Portanto, o foco deve ser proteger os dados. Um serviço bem codificado deve ser capaz de separar diferentes fluxos de dados dentro de si mesmo. Qualquer serviço moderno que funcione como um jardim cercado no qual os usuários, uma vez dentro do serviço, podem acessar dados que não são seus já falhou. Portanto, é imprescindível que o serviço isole cada fluxo de dados e o proteja de outros usuários usando o mesmo serviço subjacente. O desenvolvimento deve garantir que este seja o caso através de código que mantém a segurança do fluxo de dados, e as operações devem monitorar continuamente todos os movimentos de dados e, se necessário, acelerar ou bloquear atividades suspeitas. Quando tal atividade é observada, os administradores devem fornecer imediatamente feedback ao grupo de desenvolvimento para substituir o código seguro, evitando assim uma repetição.
2. Manter a segurança entre os serviços
Uma arquitetura baseada em micro-serviços dependerá das interfaces de programação de aplicativos (APIs) entre os vários serviços envolvidos. A segurança das APIs, tanto na forma como a equipe de desenvolvimento escreve o código de serviço, quanto nos serviços externos chamados, deve ser mantida e continuamente verificada. Os desenvolvedores devem incluir a segurança apropriada em todo o código de serviço. A equipe de operações deve garantir que as APIs sejam monitoradas para manter as comunicações seguras o tempo todo.
Observe que as APIs chamadas por um serviço podem mudar com pouco ou nenhum aviso. Como tal, o pessoal de operações deve identificar quando e onde as alterações da API ocorrem e tomar as medidas apropriadas para manter a segurança dos dados. O uso de ferramentas de gerenciamento de API pode automatizar e gerenciar isso, muitas vezes resolvendo o problema em tempo real e minimizando o efeito sobre a própria organização.
3. Implementar as ferramentas certas
Não assuma que as ferramentas DevOps existentes gerenciarão a segurança para você. Muitos não têm recursos de segurança em si, ou se concentram apenas na segurança dos fluxos de trabalho entre o pessoal de desenvolvimento e operações. Para aderir às práticas recomendadas do DevSecOps, procure ferramentas que possam verificar a segurança do seu código contra problemas conhecidos e, de preferência, problemas de zero-day em tempo real. Procure também recursos de teste de penetração; estes permitem que você automatize muito os testes de segurança. Os testes de caneta devem fornecer relatórios abrangentes e conectar-se a loops de feedback de desenvolvimento para que os problemas possam ser resolvidos rapidamente.
4. Garanta a segurança entre o dispositivo de acesso e os serviços de backend
Embora o foco no DevSecOps deva ser na criação e consumo de dados, certifique-se de observar como o dispositivo de acesso e seus clientes acessam serviços backend. Métodos simples de segurança de desafio e resposta não são mais fortes o suficiente para uso geral. Em vez disso, faça o seguinte:
- Adote autenticação multifatorial.
- Use criptografia para fluxos de dados.
- Vincule o ID do usuário a um sistema de diretório granular baseado não apenas no nome e na função da pessoa, mas também no local onde está localizado, no tipo de conexão que está sendo usada e no nível de valor definido em termos de acesso dos dados.
A equipe de desenvolvimento de software deve assumir a responsabilidade pela implementação desses controles de segurança. A equipe de operações deve ser capaz de usar o sistema de diretório para negar acesso em qualquer estágio, moderando ou rejeitando imediatamente o acesso.
5. Relatório, relatório, relatório
Um elemento-chave nas práticas recomendadas do DevSecOps é perceber que o trabalho de segurança nunca é concluído. O código terá defeitos. O que eu tinha certeza ontem pode ser inseguro hoje. Implementar ferramentas para monitorar a segurança em todos os níveis ao longo do caminho DevOps e informar sobre o que é encontrado.
Identifique ferramentas que forneçam feedback visualmente, como um semáforo. Além disso, pode ser útil se uma ferramenta calcular o impacto do negócio de um problema de segurança em relação a um conjunto de políticas. Quando um problema resulta em uma luz vermelha, seu processo deve remediar automaticamente e enviar feedback para os desenvolvedores, ou você deve trazer o assunto para a atenção da equipe de operações para que eles possam agir.
Uma organização que implementa o DevOps deve aceitar que precisará de segurança dinâmica contínua. Um aplicativo comprometido pode ser facilmente substituído ativando uma nova instância, mas os dados comprometidos é onde está o problema. A equipe de desenvolvimento e operações deve se concentrar nos fluxos de dados entre serviços próprios e de terceiros por meio de uma moderna plataforma de tecnologia híbrida.