A nossa economia atualmente é moldada pela tecnologia, especialmente pelo desenvolvimento de software e aplicativos. As empresas enfrentam o desafio de lançar novas versões mais rapidamente, corrigir bugs críticos em tempo real, melhorar a qualidade e agilizar a inovação.
No entanto, a velocidade no desenvolvimento de software tem seus limites. As empresas precisam realizar verificações para minimizar riscos, melhorar a segurança e garantir a conformidade com as diretrizes do mercado.
Todas essas variáveis confrontam todos aqueles que trabalham com desenvolvimento de software e aplicativos. Sejam desenvolvedores, especialistas em segurança, gerentes e arquitetos, todos buscam por maneiras de desenvolver software de forma rápida e segura.
Para isso, é necessário planejar o desenvolvimento para reduzir os silos organizacionais e culturais e encontrar formas de introduzir verificações que funcionem com a alta velocidade do desenvolvimento.
Assim, surgiu o DevSecOps como um processo para desenvolver software e aplicativos de uma forma mais rápida alinhada com as boas práticas de segurança cibernética e desenvolvimento de software.
O DevSecOps é sobre a criação de uma cultura em que a segurança faz parte do trabalho de todos, não apenas das pessoas que trabalham especificamente em funções de segurança e operação.
A segurança deve estar como prioridade na mente de cada desenvolvedor conforme eles desenvolvem, testam e lançam novas funcionalidades para produção.
De acordo com a LGPD (Lei Geral de Proteção de Dados), as empresas precisam saber onde e como os dados privados são armazenados e acessados. As empresas devem provar que esses dados são protegidos com as preocupações de segurança apropriadas ao longo de todo o ciclo de vida do desenvolvimento de software.
Neste artigo, oferecemos um guia inicial sobre o DevSecOps e explicamos ao longo do texto maneiras que o DevSecOps pode facilitar o seu processo de conformidade com a LGPD e outras regulamentações do mercado.
Continue a leitura deste artigo e conheça os benefícios do DevSecOps para o processo de desenvolvimento de software e segurança contínua com as regulamentações do mercado.
DevOps é um conjunto de melhores práticas entre as áreas de Desenvolvimento e Operação, consideradas por muito tempo como áreas separadas e concorrentes. Ao tratar de segurança cibernética, a área de infraestrutura (Ops) assume o papel de segurança com seus firewalls, controles de acesso, backups, contingência, disponibilidade e outros processos. Já o desenvolvimento (Dev) se concentra mais no versionamento, na integridade dos dados e em outras ações ligadas ao código.
Por outro lado, ter uma equipe de segurança (Sec) atuante também é uma necessidade no mundo DevOps. É preciso antecipar os requisitos de segurança desde o início do projeto para que a segurança da informação não seja vista como uma barreira na hora da implantação de novas features.
O problema da integração das atividades de segurança no ciclo de desenvolvimento de software serviu como motivação para a criação da terminologia DevSecOps. Com o DevSecOps é preciso criar um ambiente de alta disponibilidade, confiabilidade e produtividade para obter um melhor resultado para os clientes.
Ou seja, o DevSecOps permite que as organizações gerenciem seu processo de desenvolvimento para incluir avaliações de segurança de software como um componente-chave em todos os estágios do ciclo de desenvolvimento.
Embora o termo DevSecOps seja mencionado em algumas literaturas, é importante destacar que o nome original DevOps já contempla as iniciativas e práticas de segurança da informação no início do desenvolvimento.
No passado, o desenvolvimento e segurança eram funções segregadas. Um produto ou software em desenvolvimento seria codificado primeiro pelos desenvolvedores, apenas para que as equipes de segurança de software executassem verificações antes da implantação ou, pior, após a implantação, deixando as empresas vulneráveis às ameaças externas.
Nesse cenário, é comum o retrabalho quando são encontrados problemas de segurança, e dessa forma, o código precisa ser corrigido antes de ser implementado. O retrabalho costuma ser mais caro quando esses códigos já estão em produção e precisam ser retirados, corrigidos e, em seguida, reimplantados.
Para realmente entender sobre DevSecOps, é preciso assimilar que ele não é um conjunto de regras e procedimentos rígidos. O DevSecOps é uma mentalidade que precisa ser absorvida por todos os membros da equipe de desenvolvimento.
Em vez de abordar a segurança como uma reflexão tardia, todos os membros do time devem ser ensinados a adotar uma mentalidade de segurança cibernética em primeiro lugar em coexistência com outros requisitos.
Há que se constatar que a proporção de desenvolvedores, analistas de operações e analistas de segurança da informação em uma organização de tecnologia típica no mercado é de 100 Devs, 10 Ops e 1 InfoSec, respectivamente. Essa diferença entre a quantidade dos integrantes das equipes é muito grande nas empresas.
Quando a segurança da informação está em menor número, sem automação e com pouca integração no trabalho diário do Dev e Ops, ela consegue fazer muito pouco, às vezes só consegue fazer o básico, que é a verificação de conformidade no momento pré-produção.
Sendo assim, o objetivo é que a equipe de segurança da informação participe ativamente desde o início do ciclo de desenvolvimento, com grande foco em automação dos controles, o chamado shift-left.
Em outras palavras, é preciso que as empresas eduquem seus times de desenvolvimento sobre as ameaças de segurança mais recentes e a importância de consertar essas ameaças e incentive o teste de segurança no início do processo de desenvolvimento.
A figura acima apresenta como se pode implementar o shift-left da segurança da informação no ciclo DevSecOps, por meio da implantação do conceito de segurança contínua ou Continuous Security (CS) com o uso de ferramentas automatizadas, monitoramento contínuo de segurança e métricas bem estabelecidas.
Ao transitar a equipe de uma abordagem DevOps para DevSecOps, a resistência deve ser comum. No entanto, é fundamental enfatizar o propósito da troca, que é aliar a velocidade de entrega à segurança.
Essa separação de tarefas impede que os engenheiros Dev e Ops assumam total responsabilidade pela qualidade de seu trabalho e reduz a capacidade de uma empresa de gerar aprendizagem organizacional.
Por isso, deve-se evitar sempre que possível o uso da separação de tarefas como controle. Em vez disso, é preferível optar por controles como programação em par, inspeção contínua de verificações de códigos e revisão de códigos.
Conheça a seguir algumas práticas e controles que podem ser adotados em uma cultura DevSecOps com o objetivo de integrar a segurança da informação no ciclo de desenvolvimento de software.
Esta é uma maneira fácil de impedir que a segurança da informação seja um problema no final do projeto. Convide a equipe de segurança para demonstrações dos produtos no final de cada intervalo de desenvolvimento. Isso ajuda todos a entender as metas da equipe relacionadas às metas organizacionais, ver suas implementações durante o processo de desenvolvimento e oferecer informações sobre o que é necessário para atingir os objetivos de segurança e conformidade enquanto ainda há tempo suficiente para fazer correções.
Alguns dos benefícios que são alcançados com essa aproximação:
Os problemas de segurança deveriam ser registrados e acompanhados usando a mesma ferramenta de Dev e Ops.
Assim, o trabalho de segurança da informação deve ter a mesma visibilidade de todos os outros trabalhos no fluxo de desenvolvimento, facilitando a priorização frente aos outros trabalhos das equipes envolvidas.
Por isso, a importância de ter tudo registrado no mesmo sistema de acompanhamento de trabalho que o Desenvolvimento e Operações usam diariamente.
As mesmas técnicas para reunião post mortem “sem culpa” podem ser aplicadas nos incidentes de segurança. Isso torna visível o trabalho de todas as equipes e aumenta a empatia e a colaboração entre elas.
Os repositórios compartilhados de código-fonte são uma maneira fantástica de permitir que qualquer pessoa descubra e reutilize o conhecimento coletivo da organização. Não apenas para código, mas também para repositório, pipeline de implementação, padrões de segurança e entre outros.
Assim, as equipes poderiam deixar homologadas uma biblioteca de código e configurações recomendadas. Por exemplo, autenticação de dois fatores, ferramentas para criptografias e entre outros.
A equipe de InfoSec pode utilizar mecanismos ou ferramentas que automatizam a segurança dos sistemas e ambientes, como segurança para sistemas operacionais, padrões de configurações automatizados, por exemplo Chef, Puppet e Ansible.
A inclusão de testes de segurança no pipeline de implementação permite ao desenvolvedor e ao operacional um feedback rápido e notificação imediata em caso de vulnerabilidade.
Ferramentas agilizam avaliações que ajudam a evitar que a segurança seja verificada somente no final do ciclo. O Sonar é uma ótima ferramenta que pode ajudar nesse processo.
Idealmente, esses testes devem ser executados em cada código verificado por um desenvolvedor ou alguém de operação e até mesmo nos estágios iniciais de um projeto de software.
Os testes ocorridos em desenvolvimento costumam priorizar o fluxo lógico positivo, conhecido como o “caminho feliz”. Para aumentar a segurança, devemos executar também os testes do “caminho triste”, “caminho ruim” ou “caminhos ruins”, que são explorados pelo pessoal de QA, InfoSec e Fraude, principalmente erros ligados à segurança.
Como exemplo, ao testar o preenchimento de um formulário que tenha um campo para o cartão de crédito, é necessário incluir números incorretos para avaliar o comportamento da aplicação e verificar se há alguma falha de segurança.
A telemetria ajuda a garantir que os nossos ambientes estejam em um estado definido como hardening adequado e com riscos controlados. Isso envolve a geração de testes automatizados para garantir que todas as configurações apropriadas tenham sido corretamente aplicadas para proteção de configuração, segurança de banco de dados, comprimentos de chaves criptográficas e assim por diante. Também envolve o uso de testes para verificar ambientes em busca de vulnerabilidades conhecidas e usar um scanner de segurança para mapeá-los.
Códigos maliciosos podem ser injetados nas infraestruturas que suportam CI / CD. Por isso, é preciso revisar todas as alterações introduzidas no controle de versão e impedir que servidores de integração contínua executem código não autorizado.
E para que esses códigos potencialmente mal-intencionados sejam detectados, uma análise estática pode ser realizada considerando critérios específicos de segurança e garantindo a remoção dos erros antes mesmo da execução do build e minimizar os problemas de segurança que poderiam ser encontrados mais tarde no pipeline de implantação.
O DevSecOps tem a capacidade de produzir ótimos resultados na hora de construir softwares modernos com o máximo de qualidade e agilidade. Ao implementar esse modelo cultural no processo de desenvolvimento de software, qualquer organização pode aproveitar os benefícios da combinação de segurança e agilidade para promover a colaboração e a transparência dos projetos.
Outros benefícios associados ao DevSecOps são:
Além de todos os pontos, ainda vale lembrar que esse é o tipo de mentalidade que permite a escalabilidade dos projetos, enquanto se exerce um controle minucioso sobre toda a cadeia de processos, sendo a união entre velocidade, segurança e resultado.
O mundo da TI adotou o DevSecOps não apenas como um modelo de desenvolvimento de software, mas também como uma filosofia para trazer mudanças por meio de integração e entrega contínuas.
A adoção do DevSecOps não o torna automaticamente compatível com os regulamentos da LGPD, mas preenche muitos requisitos. Ele promove uma mentalidade voltada para a segurança que pode se adaptar facilmente às regulamentações existentes e futuras sem sacrificar a velocidade de desenvolvimento.
Envolver as equipes de segurança nas fases iniciais do desenvolvimento do software ou aplicativo oferece a eles um entendimento muito melhor do projeto e uma boa oportunidade para aplicar princípios como a minimização de dados.
Outro requisito importante é a implementação das medidas técnicas adequadas para garantir a segurança dos dados do cliente. O DevSecOps cuida disso automatizando o teste de segurança e integrando-o ao pipeline de CI / CD, impondo controles de acesso estritos com base em funções, treinamento e conscientização de segurança em todas as equipes.
O monitoramento e registro proativos também estão entre os princípios básicos do manifesto DevSecOps para permitir a detecção precoce e a resposta a muitas ações não autorizadas.
Além de estar alinhado com a LGPD e qualquer outra regulamentação de proteção de dados, o DevSecOps ajuda você a criar um software mais seguro. Com o treinamento de segurança apropriado, tornando todos responsáveis pela segurança, juntamente com testes de segurança automatizados frequentes irão diminuir suas vulnerabilidades e permitir que você detecte mais problemas mais rapidamente.
Isso se traduz em um ótimo custo-benefício para a empresa, pois quanto mais cedo um problema for detectado, mais fácil e barato será corrigi-lo.
O delicado equilíbrio entre privacidade e segurança é a chave para a criação de aplicativos e serviços de sucesso que normalmente requerem dados do usuário. A má implementação de padrões de segurança pode colocar os usuários e dados em risco.
Os dispositivos móveis armazenam uma grande quantidade de informações confidenciais, como registros de contato, chaves de criptografia, dados de localização e dados bancários.
As preocupações maiores incluem onde esses dados são coletados, por quanto tempo são armazenados e se são usados para qualquer outro propósito.
Muitas vezes, as empresas têm pressa em lançar novos aplicativos, atualizações e serviços sem testá-los adequadamente para garantir que sejam seguros. No entanto, para acelerar o ritmo da transformação digital, a segurança deve ser uma parte fundamental do desenvolvimento de software e ser considerada em todo o seu ciclo de vida.
Segurança e privacidade de dados é um ato de equilíbrio e pode ser difícil de alcançar, mas incorporando a segurança em todos os aspectos do processo de desenvolvimento de software para identificar vulnerabilidades mais cedo.
O DevSecOps permite que esse equilíbrio seja alcançado e garante que os dados do usuário sejam protegidos. A falha em integrar DevSecOps ao ciclo de desenvolvimento significa que a segurança permanecerá em segundo plano e as vulnerabilidades de segurança continuarão a crescer.
Para mais textos a respeito de privacidade, segurança e LGPD acesso nosso blog e caso tenha o interesse em estruturar o DevSecOps na sua empresa, entre em contato conosco agora mesmo.
Referências:
KIM, Gene; DEBOIS, Patrick; WILLIS, John; HUMBLE, Jez. The DevOps Handbook: how to create world-class agility, reliability, and security in technology organizations. Portland: IT Revolution Press, 2016.
MUNIZ, ANTONIO; SANTOS, RODRIGO;IRIGOYEN, ANALIA; MOUTINHO, RODRIGO. Jornada DevOps. Editora Brasport, 2019.
Nenhum comentário aprovado.
Deixe um comentário