Serão as más práticas dos programadores a próxima catástrofe de segurança tecnológica?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

As más práticas dos programadores estão a surgir como uma preocupação crítica de segurança, aumentando frequentemente as vulnerabilidades. Este artigo explora as armadilhas comuns e soluções práticas para que as organizações capacitem os programadores a constituírem a primeira linha de defesa contra as ciberameaças.

Key Takeaways

O fator humano na segurança: As pessoas são o elo mais fraco da segurança informática. Os erros humanos, frequentemente ignorados, podem comprometer gravemente até as melhores defesas tecnológicas. Um quadro de segurança sólido para os programadores é essencial.

Desenvolvimento rápido: uma corrida arriscada: A pressão para implementar rapidamente e integrar continuamente incentiva os programadores a dar prioridade à velocidade em detrimento da segurança, conduzindo à complacência e ao aumento da vulnerabilidade perante potenciais ameaças.

Problemas de privilégios: os riscos do acesso de administrador: Os privilégios de administrador desnecessários atribuídos aos programadores criam desafios de segurança, permitindo alterações não autorizadas, complicando os esforços de conformidade e expondo os ambientes a potenciais violações.

Vulnerabilidades no código: um recreio para os piratas informáticos: As vulnerabilidades comuns de codificação, como as injeções SQL e os ataques XSS, representam riscos significativos. Os programadores devem seguir práticas de codificação segura para mitigar estas ameaças e proteger os dados sensíveis.

Confiar, mas verificar: atenção ao código aberto: A crescente dependência de componentes de código aberto e de código gerado por IA pode introduzir riscos de segurança se os programadores não avaliarem cuidadosamente estas ferramentas, exigindo vigilância contínua e formação em práticas seguras.

Já foi dito que o elo mais fraco da segurança informática são as pessoas. Mais falível do que um computador e menos cumpridor em situações de pressão, o fator humano é frequentemente ignorado no processo de segurança.

Tradicionalmente, o erro humano tem sido tratado com uma atitude indiferente. Sabemos que cria desafios, mas nunca os abordamos totalmente, concentrando-nos frequentemente em áreas como as ferramentas, em vez de desenvolver um quadro de segurança robusto para as pessoas. No entanto, à medida que o desenvolvimento de software evolui, também evoluem as ameaças que o visam, e as falhas nesta área podem comprometer até as medidas de segurança mais avançadas.

As más práticas dos programadores estão a emergir como uma preocupação significativa para a segurança de uma organização, e os avanços tecnológicos não conseguem atenuar este problema. Os algoritmos de encriptação, a gestão automatizada de correções e a análise de vulnerabilidades são componentes úteis na defesa da sua infraestrutura tecnológica, mas encontrámo-nos numa era de complacência relativamente à forma como equipamos os nossos programadores, com as consequentes más práticas a colocarem a conformidade em risco.

O que está a conduzir às más práticas dos programadores?

Historicamente uma disciplina com pouco tempo disponível, os programadores têm-se deparado com cada vez mais responsabilidades. Os programadores têm ao seu dispor um arsenal de ferramentas, o que proporciona resultados mais imediatos. As implementações e atualizações de software mais frequentes alteraram as expectativas dos clientes e utilizadores, e esta expectativa recai firmemente sobre os ombros dos programadores — com a necessidade de inovar de forma rápida e constante. Aos olhos da segurança, esta é uma receita para o desastre. 

Os pedidos de implementação rápida e a crescente ênfase na integração contínua e na entrega contínua (CI/CD) fazem com que os programadores confiem excessivamente nos mecanismos de automatização das suas cadeias de CI/CD, expondo-se a riscos de segurança e violações. A metodologia ágil, tão popular no espaço do desenvolvimento, incentiva os programadores a dar prioridade à rapidez e à eficiência e, por sua vez, conduz ao afastamento natural das medidas de segurança. Em teoria, os mecanismos de automatização no âmbito de CI/CD deveriam fornecer verificações de segurança, mas os programadores sem tempo não têm disponibilidade para os auditar e manter regularmente.

Outro fator que contribui para as más práticas dos programadores é a complexidade dos atuais ambientes de software. Com o passar do tempo, os programadores obtêm frequentemente privilégios administrativos desnecessários e têm de gerir arquiteturas de terceiros e dependências complexas. A chave para o sucesso das organizações é a conformidade, mas muitos programadores encontram-se com privilégios elevados para realizar implementações. 

Esta prática revela uma série de desafios, uma vez que concede a qualquer pessoa com privilégios administrativos a capacidade de efetuar alterações não autorizadas, dificultando os esforços de auditoria e conformidade e criando trabalho adicional para os programadores ao tentarem identificar estas alterações. Mais preocupante ainda, esta prática expõe os ambientes de desenvolvimento a violações de segurança caso um agente mal-intencionado obtenha acesso a uma conta com privilégios administrativos reforçados. 

O espaço do desenvolvimento de software já é, por si só, complexo e, à medida que a tecnologia avançou, também este ambiente e a estratégia empresarial evoluíram. À medida que as empresas da Global 2000 consolidam as suas operações empresariais em torno de plataformas abrangentes e integradas, como Pega, ServiceNow, Salesforce e outras, o tipo de aplicações que é necessário desenvolver e suportar representa uma mudança em relação às aplicações tradicionais desenvolvidas com código. 

Além disso, os privilégios, as cadeias de entrega e as práticas de desenvolvimento, como o desenvolvimento ágil e a entrega contínua, que fazem parte de DevOps, precisam de ser adaptados. No contexto desta tendência para as plataformas, até os programadores e administradores mais experientes podem introduzir inadvertidamente riscos de segurança.

Get Free Access
Get regular tech leadership wisdom for delivering better software and systems.
Get Free Access

Have an account? Log In

Como uma única linha de código pode paralisar a sua operação

A segurança é uma preocupação constante para as organizações, e a tecnologia permitiu que as ameaças tivessem origem em qualquer lugar. Um ataque bem-sucedido pode causar inúmeros problemas, tanto financeiros como legais, e travar rapidamente a inovação.

Uma das áreas mais significativas no que diz respeito às vulnerabilidades encontra-se na fase de programação, incluindo ataques como:

  • Injeções SQL envolvem a introdução de código por parte de um atacante, capaz de destruir registos ou esquemas de bases de dados. Estas técnicas são utilizadas para eliminar, roubar ou alterar dados sensíveis dentro das organizações e constituem uma das técnicas de pirataria informática mais comuns. Recentemente, especialistas em segurança informática demonstraram a sua capacidade de contornar as verificações da TSA através de injeções SQL. 
  • Programação entre sites (XSS) visa aplicações ou sites de confiança, o que significa que os danos reputacionais podem ser graves. Os ataques consistem na adição de scripts maliciosos ao site de uma empresa, que são posteriormente executados quando um utilizador carrega o site. Normalmente, são anexados ao final de um URL e a vítima é incentivada a clicar neles ou, de forma mais complexa, trata-se de um ataque de injeção incorporado no código de uma empresa.
  • Transbordamentos de buffer ocorrem quando um programa tenta introduzir num buffer mais dados do que este consegue armazenar. Sem outro local para onde ir, os dados adicionais transbordam para a memória, correndo o risco de corromper ou substituir informações importantes nesse espaço. Este erro de programação de software permite que os atacantes explorem vulnerabilidades, roubem ou alterem dados e obtenham acesso a informações sensíveis de clientes ou empresas.

Estes tipos de ataques são mais populares e, como tal, são bem compreendidos pelos programadores. Podem ser amplamente mitigados através da adesão a práticas de programação seguras, Testes Contínuos e Monitorização Contínua. Apesar disso, as organizações não podem acomodar-se e precisam de verificar regularmente a validade das suas diretrizes de programação e formar os programadores sobre como evitar formas mais recentes de pirataria informática.

Além disso, uma maior dependência de componentes de código aberto, bibliotecas de terceiros e geração de código apoiada por IA pode levar os programadores a envolverem-se involuntariamente em práticas de programação inseguras. Os programadores têm pouco tempo e estão a integrar estes componentes para acelerar a entrega. Como tal, podemos esperar que se abra a porta a maiores riscos de segurança e exploração, com os programadores a confiarem em componentes de código aberto, bibliotecas e IA sem verificarem cuidadosamente a sua validade. 

Dito isto, existem inúmeras ferramentas que automatizam este processo de verificação, mas talvez seja altura de começar a verificar a identidade e a autenticidade dos colaboradores de projetos de código aberto para reduzir o risco de agentes mal-intencionados apoiados por Estados. Uma única linha de código inseguro numa biblioteca pode comprometer uma aplicação inteira, desperdiçando inúmeras horas e recursos e expondo uma organização, uma nação e o público a vulnerabilidades. E, apesar dos grandes avanços da IA no desenvolvimento de código, o código gerado por IA tem de passar por procedimentos, práticas e protocolos estabelecidos antes da implementação em produção.

A educação contínua e a aquisição de novas competências são fundamentais para manter a segurança

Tal como acontece com qualquer tecnologia ou área de especialização, a educação regular é fundamental e é frequente esperar-se que os programadores melhorem a sua formação e educação durante o seu próprio tempo. As organizações que pretendem impedir que os seus programadores e administradores de sistemas adotem más práticas de segurança devem investir em formação, em vez de exigirem que as equipas de TI façam uma espécie de automedicação das suas estruturas de segurança. As lacunas de conhecimento têm um impacto real e pertinente na segurança de uma organização e, sem as resolver, os programadores podem não estar atualizados quanto à sua compreensão das implicações de segurança das suas ações quotidianas. 

Uma vez que as práticas dos programadores podem conduzir a riscos de segurança, as organizações devem também adotar uma visão abrangente das suas plataformas. Por exemplo, a Salesforce e a ServiceNow desempenham um papel fundamental ao permitir que programadores não tradicionais criem, forneçam e implementem soluções, mas será que o seu papel na segurança é plenamente compreendido? As organizações têm de aprender a manter a segurança na utilização destas plataformas e não ignorar o seu potencial enquanto janela aberta para ataques e violações de segurança.

More Articles

Superar os desafios de segurança para apoiar os programadores

É necessária uma abordagem multifacetada para evitar que más práticas dos programadores se transformem no próximo campo de batalha da segurança. 

Em primeiro lugar, as organizações devem promover uma cultura que coloque a segurança em primeiro lugar, garantindo que esta esteja integrada no processo de desenvolvimento. Isto pode incluir medidas automatizadas de qualidade e segurança, incluindo verificações de qualidade incorporadas, etapas de aprovação e ferramentas de testes contínuos, garantindo que cada implementação cumpre as normas de conformidade da organização. 

As organizações devem também aplicar o princípio do menor privilégio, garantindo que os programadores apenas têm acesso às implementações e estruturas de código de que necessitam, em vez de permitir uma proliferação generalizada de privilégios de administrador. Independentemente da plataforma e/ou serviço que uma organização utilize para a sua implementação, é importante tirar partido das vias automatizadas e da monitorização contínua que estes oferecem, identificando os problemas antes que se tornem críticos.

Em segundo lugar, as organizações devem investir numa maior formação dos seus programadores, em vez de os deixarem desorientados perante atacantes e ameaças à segurança cada vez mais sofisticados. É fundamental que os programadores de todos os níveis, especialmente os programadores cidadãos, estejam equipados com os conhecimentos necessários para identificar padrões irregulares e superar riscos de segurança. Este formato variará de organização para organização, mas tem de ser regular, estar em conformidade e ser testado para garantir que a sensibilização dos programadores para a segurança é reforçada.

Por último, as organizações que pretendam equipar os seus programadores na luta por uma melhor segurança devem utilizar apenas ferramentas que apoiem práticas de desenvolvimento seguras. Isto inclui ferramentas de análise de código, processos automatizados de gestão de dependências e sistemas de gestão de configuração (CMS) para impor medidas de segurança mais rigorosas. Tirar partido destas ferramentas garante maior consistência, conformidade e rastreabilidade nas implementações de uma organização, ajudando a manter uma cultura que coloca a segurança em primeiro lugar.

Dito isto, se recorrerem à subcontratação, a criação de uma cultura que coloque a segurança em primeiro lugar também pode começar frequentemente através da parceria com uma empresa de desenvolvimento de software de proximidade ou uma empresa de desenvolvimento de software à medida.

Mudar o rumo do próximo ponto crítico de segurança

Práticas inadequadas por parte dos programadores poderão ser o próximo problema prioritário de segurança no desenvolvimento de software, mas não têm de o ser. Embora seja verdade que os atacantes e as operações de pirataria informática estão a tornar-se mais sofisticados, temos a oportunidade de inverter esta tendência e melhorar os conhecimentos e os recursos a que os programadores têm acesso. Ao fazê-lo, as pessoas podem evitar ser o elo mais fraco e trabalhar em conjunto com a tecnologia para reforçar a segurança de uma organização. Ao incutirmos hoje uma mentalidade de desenvolvimento seguro, veremos a postura de segurança do software de amanhã reforçada.

Subscreva a newsletter do The CTO Club para conhecer mais boas práticas para programadores.

Scott Willson
Scott has over 20 years of technology experience that spans software development across financial services, manufacturing, government, and tech industries. Professionally, Scott has built software, managed professional services, sold and implemented software, and is currently applying that background to marketing. Scott is passionate about technology and helping businesses achieve value through technology and was leading DevOps at organizations before it was coined DevOps. He has also co-authored papers for the DevOps Enterprise Forum.
Follow the author:

You may also like