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
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
Similar à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
Garantir 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
Prá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
Gostou do conteúdo? Tem alguma dúvida? Entre em contato com nossos Especialistas Mandic Cloud, ficamos felizes em ajudá-lo.