5 Práticas DevOps para aprimorar a segurança na engenharia de software

Quem nunca passou por isso? Um novo aplicativo ou recurso precisa ser implementado para ontem e a última coisa que alguém deseja fazer é levantar os requisitos de segurança do projeto. Por outro lado, a última coisa que alguém deseja resolver depois é uma violação de segurança ou um custo associado à não conformidade. Tal cenário não só é uma dor de cabeça enorme, como também é algo extremamente caro. De acordo com o X-Force Threat Intelligence Report 2016, da IBM, o custo médio de uma violação de dados em 2015 foi de US$ 154,20 por registro – US$ 363 na área da saúde – com o custo total médio de uma violação estimado em US$ 3,79 milhões.

Uma violação não é só cara em termos de custos que possam ser facilmente quantificados, mas também embute custos que são mais difíceis de precisar, como o impacto na imagem da marca e na fidelidade do cliente. De acordo com o relatório da consultoria de pesquisa FireEye, 76% dos entrevistados provavelmente levariam seus negócios para outro lugar devido a práticas negligentes de manipulação de dados. Em um ecossistema tecnológico incrivelmente competitivo, nenhuma organização pode se arriscar a fazer vista grossa à segurança, se desejar atrair clientes com novos recursos e mantê-los com base na confiança e na credibilidade.

A segurança parece ser um daqueles temas que os DevOps amam ou odeiam. Na terra dos unicórnios, queremos que todos os desenvolvedores (de infraestrutura e aplicativos) tenham maior participação na segurança, mas agendas apertadas combinadas com a falta de experiência e controles confiáveis muitas vezes podem tornar a estratégia impraticável. Para piorar a situação, um sistema e um aplicativo seguro não é algo que está sempre claramente visível para o usuário final ou o product owner do projeto. Como resultado, a segurança pode facilmente perder prioridade em face a algo que “pode ser corrigido mais tarde”. A estratégia de “corrigir mais tarde” pode ser uma decisão perigosa, já que muitos cibercriminosos ativamente aproveitam a vantagem daqueles que rapidamente implementam um projeto sem controles adequados.

Como equilibrar o desejo do cliente de possuir novos recursos entregues rapidamente com o fato de que necessitam de sistemas seguros para proteger seus dados contra ameaças?

Várias práticas DevOps comuns inerentemente fornecem um pipeline de desenvolvimento e entrega contínua que podem melhorar a postura da segurança em geral. O DevOps combinado com o SecOps inclui práticas que elevam os aspectos operacionais e de gestão de um sistema para garantir uma entrega confiável e o gerenciamento de sistemas mais seguros.

5 Práticas de segurança que valem a pena considerar

Uma lista das 5 melhores práticas e ferramentas DevOps que podem ajudar a melhorar a segurança global quando incorporadas diretamente em um pipeline de integração/entrega contínua de ponta a ponta inclui:

  • Colaboração
  • Automação de teste de segurança
  • Gerenciamento de configuração e patches
  • Monitoramento contínuo
  • Gerenciamento de identidade

A compilação de forma iterativa baseada em práticas de segurança na medida em que se move infraestrutura e código do aplicação através do pipeline de implementação aumenta muito a postura envolvendo a segurança do projeto, e também diminui o custo de retrabalho futuro.

Colaboração em requisitos de segurança

Muitos DevOps são obrigados a seguir uma política de segurança. Pode ser na forma de uma política corporativa de segurança, uma política de segurança do cliente e/ou um conjunto de padrões de conformidade (ex. SOX, HIPAA etc). Mesmo que o desenvolvedor não seja obrigado a seguir uma política específica ou padrão de regulação, todos desejam garantir que seguem as melhores práticas na segurança de sistemas e aplicações. A chave é identificar as fontes de informação para o expertise em segurança, colaborar cedo e compreender antecipadamente os requisitos de segurança que possam ser incorporados na solução como um todo.

Automação de testes de segurança

continuous-and-automated-security-testing
Seja na construção de uma nova solução ou atualização de uma solução existente, é grande a probabilidade de haver várias considerações de segurança a serem incorporadas. Devido à natureza rápida e iterativa do desenvolvimento ágil, endereçar todas as questões de segurança de uma só vez em uma abordagem “big bang” provavelmente resultará em atrasos no projeto. Para garantir que o projeto siga caminhando iterativamente, uma abordagem em camadas muitas vezes pode ser útil para garantir a construção contínua de camadas adicionais de segurança no pipeline à medida que avança no desenvolvimento para o “go live”. Um exemplo de construção na medida que o pipeline avança é mostrado abaixo. A automação de testes de segurança pode garantir a qualidade em todo o pipeline de implementação, fornecendo feedback imediato para as partes envolvidas no projeto sobre a postura quanto à segurança e permitindo a reparação rápida desde o início do pipeline.

Gerenciamento de configuração

No desenvolvimento tradicional, servidores/instâncias são provisionados e desenvolvedores são capazes de trabalhar nos sistemas. Às vezes, há uma “imagem de ouro” que os desenvolvedores usam para garantir que os servidores provisionados/instâncias possuam um sistema operacional mais robusto. No entanto, assim como quaisquer atividades de desenvolvimento e de configuração adicionais operadas nesses servidores, os mesmos não são “de ouro”. Para garantir que os servidores sejam provisionados e gerenciados usando padrões consistentes, repetíveis e confiáveis, é fundamental assegurar uma estratégia de gerenciamento de configuração. A estratégia pode incluir Chef para uma situação, Salt para outra, infraestrutura imutável ou uma combinação de práticas. A chave é garantir que seja possível assegurar e gerenciar com confiança as configurações consistentes nos ambientes.

Gerenciamento de patches

5287-easy-patch-management-png-550x0Similar às preocupações com o gerenciamento de configuração, é preciso assegurar um método para corrigir sistemas com rapidez e confiabilidade. A ausência de patches é uma causa comum de vulnerabilidades exploradas, incluindo ataques de malware. A capacidade de entregar um patch rapidamente através de um grande número de sistemas pode reduzir as exposições globais de segurança drasticamente.

Monitoramento contínuo

monitoramento-continuoGarantir o monitoramento em todos os ambientes com feedback transparente assegura o rápido alerta para potenciais violações ou problemas de segurança. É importante identificar as necessidades de vigilância em toda a infraestrutura e aplicação, e depois tirar proveito de algumas das ferramentas existentes para identificar rapidamente, isolar, desligar, prevenir e corrigir possíveis problemas antes que eles aconteçam ou antes que sejam explorados. Parte da estratégia de monitoramento também deve incluir a capacidade de coletar e analisar os logs automaticamente. A análise dos logs em execução pode ajudar a identificar exposições rapidamente. Coletar e analisar logs de segurança pode identificar problemas que exigem remediação, bem como fornecer a coleta automática de evidências de conformidade. Atividades de conformidade podem tornar-se extremamente caras se não forem automatizadas antecipadamente.

Gerenciamento de identidade

identity-managementPráticas DevOps permitem colaborar antecipadamente com especialistas em segurança, aumentar o nível de testes de segurança e automação para reforçar a qualidade na segurança, proporcionando melhores mecanismos para atividades em curso de gerenciamento de segurança e conformidade. Embora doloroso para alguns, tem que ser importante para todos para evitar surpresas desagradáveis – como manchetes de jornais sobre vulnerabilidades exploradas que geram gigantescos prejuízos para as corporações.

É difícil manter-se absolutamente atualizado em todos os assuntos envolvendo novas tecnologias, por isso confiar em ferramentas e fontes de informação com as melhores reputações no mercado pode ser extremamente benéfico. Algumas fontes na área são o OWASP e a SC Magazine e o perfil da Shelbee no Twitter. 

Fonte: DevOps.com

21