Como proteger o desenvolvimento de próxima geração: lições do Trust Bank e da TASConnect
Gerald Crescione
5 de junho de 2024
0 minutos de leituraHoje, uma aplicação típica contém milhares de componentes interconectados. As organizações fazem implantações em ambientes multinuvem com contêineres e microsserviços, usando uma combinação de código escrito por equipes internas, gerado por IA e selecionado por terceiros.
As equipes de segurança têm um grande desafio para proteger essas aplicações complexas, especialmente diante do aumento dos ataques à cadeia de suprimentos de software. Elas precisam encontrar maneiras de incorporar a segurança a novas práticas padrão, como o uso de código gerado por IA, sem perder de vista a velocidade de desenvolvimento e o sucesso dos negócios.
A Snyk teve a oportunidade de apresentar uma sessão na Black Hat Asia sobre as melhores práticas para lidar com essas novas complexidades e desafios. A conversa contou com dois especialistas do setor: Jerome Walter, CISO do Trust Bank Singapore, e Madhi Periannan, CTO da TASConnect Singapore.
Continue lendo para conhecer algumas das experiências dos palestrantes e saber como eles enfrentaram e superaram os desafios de segurança do desenvolvimento de software de próxima geração.
O que é o desenvolvimento de software de próxima geração e como ele afeta a segurança de aplicações?
Segundo os palestrantes, o desenvolvimento de software de “próxima geração” costuma ser caracterizado por três fatores.
Arquitetura complexa
Uma aplicação típica reúne vários elementos arquitetônicos, como microsserviços, e se conecta a inúmeras bibliotecas externas e plataformas SaaS. As equipes de desenvolvimento criam essas aplicações com agilidade e rapidez. Essa complexidade dificulta o trabalho das equipes de segurança para reduzir os riscos presentes nas aplicações atuais. Walter afirmou: “O software de hoje é composto por bibliotecas externas e conexões com plataformas SaaS que não controlamos totalmente… por isso, ao trabalhar com segurança de software, é preciso dominar a infraestrutura e entender de SaaS e de softwares de terceiros.”
Ferramentas de IA que surgem rapidamente
As equipes de desenvolvimento de hoje também usam ferramentas de IA generativa, como o GitHub Copilot e o Google Gemini, para produzir código com mais rapidez. Embora essa velocidade possa beneficiar a agilidade dos negócios, ela também faz com que código seguro e inseguro entre no pipeline em uma velocidade sem precedentes.
Distribuição em vários ambientes de nuvem e localidades geográficas
Além disso, o software de próxima geração costuma funcionar em um ambiente multinuvem, acessado por funcionários e clientes de todo o mundo. Periannan afirma: “Hoje, as aplicações precisam ser implantadas em várias nuvens e em vários países. É aí que surge a complexidade. Por isso, precisamos contar com ferramentas melhores para gerenciar a segurança em diferentes localidades geográficas.”
Como equilibrar pessoas, processos e ferramentas para proteger aplicações de próxima geração
Para enfrentar esses desafios, é preciso encontrar o equilíbrio certo entre pessoas, processos e ferramentas. Parte desse equilíbrio envolve a responsabilidade compartilhada entre as equipes de desenvolvimento e segurança — uma abordagem de DevSecOps. Ao capacitar as equipes de desenvolvimento para corrigir problemas durante esses ciclos de vida complexos, as organizações podem reduzir os riscos que chegam à produção. Walter e Periannan compartilharam algumas recomendações para criar uma cultura de responsabilidade pela segurança, incluindo:
Adotar uma abordagem proativa em vez de reativa.
Segundo os palestrantes, a segurança precisa ser proativa, não reativa. Walter explicou que essa abordagem consiste em enxergar a segurança como uma jornada — não como uma mudança que acontece de um dia para o outro. Para começar essa jornada de segurança proativa, o ideal é “implementar ferramentas, como a Snyk, que fornecem feedback e análises imediatos”.
Essas ferramentas capacitam os desenvolvedores a corrigir problemas, oferecendo o nível certo de feedback e orientações para a correção. Em alguns casos, a segurança exige mais do que apenas lançar um patch. Às vezes, os desenvolvedores precisam analisar a arquitetura e reformulá-la para reduzir os riscos. Como estão mais próximos do código, as equipes de desenvolvimento podem implementar as melhores correções possíveis.
Essa abordagem proativa também promove uma relação melhor entre as equipes de segurança e desenvolvimento. Periannan explicou: “Com as ferramentas e os modelos de ameaças certos, não entramos em pânico nem precisamos ‘apagar incêndios’, o que não é uma boa experiência para os desenvolvedores.”
Outras maneiras de adotar uma abordagem proativa incluem:
Usar a modelagem de ameaças para entender o possível impacto das vulnerabilidades existentes e priorizar os riscos com mais eficiência
Identificar métodos de correção para cada etapa do ciclo de vida do desenvolvimento de software
Promover uma cultura de shift left, que prioriza a segurança desde o início do pipeline e já na fase de design
Adotar uma mentalidade que prioriza os desenvolvedores
Walter também destacou a importância de facilitar o trabalho dos desenvolvedores. Ele afirmou: “Os desenvolvedores passam muito tempo com operações de segurança, como trocar senhas, implementar patches etc. Queremos ajudar essas pessoas a dedicar mais tempo aos negócios, automatizando parte das tarefas de higiene de segurança.”
Algumas maneiras de facilitar o dia a dia dos desenvolvedores incluem:
Automatizar o máximo possível de tarefas rotineiras, como a troca de senhas
Fornecer aos desenvolvedores as informações de que precisam para ter sucesso, como treinamentos periódicos de segurança e orientações para correções
Dedicar tempo para priorizar os riscos com precisão permite que os desenvolvedores se concentrem nas correções mais importantes
Uma mentalidade que prioriza os desenvolvedores também significa resolver diretamente os atritos entre as equipes de desenvolvimento e segurança. Para melhorar a relação entre elas, é preciso abrir um diálogo e entender de verdade os desafios dos desenvolvedores, seus fluxos de trabalho diários etc. Também é importante que a equipe de segurança demonstre valorizar o tempo dos desenvolvedores e trabalhe ativamente para encontrar abordagens melhores. Uma dessas abordagens fundamentais é evoluir a segurança de aplicações para priorizar mais a priorização precisa dos riscos, considerando o contexto e a possibilidade de exploração, em vez de simplesmente enviar longas listas de vulnerabilidades aos desenvolvedores.
Como medir o sucesso da segurança de aplicações em um ambiente de software complexo
Outro componente do sucesso em segurança é acompanhar as métricas certas. Walter e Periannan recomendaram cinco pontos de partida, incluindo:
Implementação de treinamentos de segurança, com acompanhamento para garantir que todas as pessoas envolvidas no ciclo de vida de desenvolvimento de software concluam o treinamento
Cobertura de testes de segurança em todas as camadas de desenvolvimento, como código próprio, componentes de código aberto, infraestrutura como código, contêineres etc., para acompanhar o avanço da cobertura das diferentes funções de desenvolvimento em todo o pipeline
Testes de vulnerabilidades críticas e de alta gravidade para avaliar o sucesso da organização em reduzir vulnerabilidades ao longo do tempo
Tempo para aplicar patches e corrigir problemas, para medir se o programa ficou mais eficiente ao longo do tempo
Quantidade de automações de segurança, para demonstrar que a equipe de segurança está buscando uma abordagem mais rápida e eficaz
Embora essas métricas estejam relacionadas à segurança, elas também podem se conectar diretamente aos KPIs dos negócios. Essa relação entre segurança e objetivos de negócio pode surpreender, como aconteceu com um cliente da Snyk do setor financeiro. A organização queria aumentar o Net Promoter Score (NPS), e recorreu às ferramentas de segurança da Snyk para atingir esse objetivo. Como a Snyk tornou mais eficiente o processo de identificação e correção de vulnerabilidades, a equipe conseguiu implantar patches em janelas de manutenção mais curtas, o que levou ao aumento do NPS.
Walter também explicou: “O tempo para corrigir é um fator importante para nossa capacidade de entregar software. Ele está diretamente ligado à capacidade da empresa de entregar novos recursos. Quanto mais ágil você for no desenvolvimento de software, mais ágil será para aplicar patches. Se você consegue implantar um novo recurso até amanhã, também consegue aplicar um patch até amanhã. Entender que ganhar velocidade é do interesse tanto da segurança quanto dos negócios é uma ótima forma de promover uma conversa produtiva com a empresa.”
Assista à sessão completa da Black Hat Asia
Para aprimorar a segurança de aplicações diante da evolução das ameaças cibernéticas e dos avanços tecnológicos, as organizações precisam priorizar práticas proativas e que facilitem o trabalho dos desenvolvedores. Segundo os palestrantes, essa abordagem começa com algumas mudanças de mentalidade.
Primeiro, as equipes precisam entender que o segredo é manter a segurança continuamente — não basta seguir as melhores práticas, como fazer a modelagem de ameaças uma única vez. É preciso executar e monitorar continuamente os controles de segurança.
Além disso, as equipes de segurança devem repensar a relação entre os desenvolvedores e a segurança. Como estão mais próximos do código e de outros componentes da aplicação, as equipes de desenvolvimento costumam ter as ideias e os métodos mais inovadores para corrigir problemas.
Para saber mais sobre como fortalecer a relação entre as equipes de segurança e desenvolvimento no contexto do desenvolvimento de software de próxima geração, ouça a sessão “Como proteger o desenvolvimento de software de próxima geração: desafios e soluções”.

