Ensine os fundamentos de segurança dos desenvolvedores para reforçar a resiliência da cadeia de suprimentos, argumenta Wheeler
Lidar com uma deficiência de décadas nos currículos de codificação pode ter um efeito profundo na segurança da cadeia de suprimentos de software, diz um dos principais especialistas no assunto. O gole diário.
Em particular, David A Wheeler, diretor de segurança da cadeia de suprimentos de código aberto da Linux Foundation, traça uma ligação entre a falha em incorporar a segurança nos cursos de desenvolvedor de nível básico e a grande maioria das vulnerabilidades pertencentes a um pequeno número de classes de bugs comuns.
O PhD em TI e Certified Information Systems Security Professional (CISSP) também atua como professor adjunto de ciência da computação na George Mason University, na Virgínia, e em 2020 concluiu um período de 33 anos no Instituto de Análises de Defesa dos EUA.
Daily Swig: David, você pode resumir sua formação e o que suas funções atuais envolvem?
David A Wheeler: Eu amo computadores desde o ensino médio e paguei minha faculdade fazendo consultoria de informática. Eu também mantive brevemente o primeiro jogo de RPG multiplayer comercial, inteiramente baseado em texto, Cetro de Gótico.
Agora ensino na Universidade George Mason sobre como desenvolver software seguro – que estudei ao longo de muitas décadas.
A maior parte do meu trabalho é com a Open Source Security Foundation, OpenSSF [whose members include AWS, Google, and Microsoft]. Vejo meu papel como uma espécie de catalisador ou acelerador. Posso correr como um especialista no assunto para ajudar as organizações a melhorar a segurança de seus softwares.
David A Wheeler estudou a desenvolvimento seguro de software por décadas
DS: E quais são as maiores barreiras para melhorar segurança do aplicativo?
DAW: O problema fundamental é que não ensinamos aos desenvolvedores de software como escrever software seguro.
Eu não me importo se é um curso separado ou incorporado [in other coding courses] – essa não é a questão. A questão é: quando os desenvolvedores de software estão aprendendo o básico de seu ofício, eles aprendem o básico do desenvolvimento de software seguro? E a resposta é principalmente “não”.
Um 2019 Estudo da Forrester descobriram que nenhuma das principais escolas de codificação dos EUA e nenhuma das cinco principais escolas de ciência da computação fora dos EUA estavam ensinando isso. Outro estudo descobriu que apenas uma escola o fez – na UC, San Diego. Tão bom para eles, vergonha para o resto.
DS: Vamos imaginar que todas as escolas de codificação imediatamente reformularam seus cursos para incorporar os fundamentos de segurança. Veríamos uma queda constante nas vulnerabilidades à medida que uma nova onda de desenvolvedores experientes em segurança surgisse?
DAW: Geralmente, estima-se que algo entre 90% e 95% de todas as vulnerabilidades estejam em um conjunto relativamente pequeno de vulnerabilidades comuns [classes].
Portanto, se você educar os desenvolvedores para preveni-los sistemicamente e, em seguida, usar ferramentas para encontrar os retardatários, podemos reduzir drasticamente em pelo menos uma ordem de magnitude – e talvez duas – o número de vulnerabilidades que realmente escapam.
Eles também podem encontrar e corrigir os problemas criados no passado.
No momento, a detecção, a resposta e a recuperação estão sobrecarregadas pelo grande número de vulnerabilidades que entram nos sistemas implantados, portanto, será muito mais fácil combater os invasores quando as vulnerabilidades forem muito mais raras. E esse é realmente o argumento do ‘desvio à esquerda’ em geral: quanto mais cedo você puder se livrar dos problemas, melhor.
DS: Por que a segurança é negligenciada no currículo de codificação, dadas as consequências potencialmente graves das vulnerabilidades de software?
DAW: Nosso sistema educacional nem sempre responde às necessidades da sociedade. Houve uma carta aberta escrita pela Oracle e algumas outras pessoas 10, 15 anos atrás, onde basicamente imploravam às universidades [to educate them properly].
Mas às vezes eles [universities] querem ensinar o que querem ensinar, e não importa quais são as necessidades da sociedade.
DS: Isso poderia refletir parcialmente o fato de que muitos educadores aprenderam seu ofício quando as ameaças cibernéticas eram menos numerosas e graves?
DAW: No [early] as pessoas da internet estavam conectadas principalmente a pessoas em quem sentiam que podiam confiar. Mas uma vez que você viu esse crescimento da internet e da web mundial rodando em cima dela nos anos 90, então muito rapidamente [they realized] não, você não pode simplesmente confiar em computadores arbitrários aos quais se conecta.
Mas o conservadorismo educacional não é de todo ruim. Na verdade, é sensato ensinar coisas que resistiram ao teste do tempo, como a segurança. O fundamental [computing] princípios de design são conhecidos [about] desde a década de 1970.
DS: Pode haver um incentivo comercial no trabalho que favoreça a codificação rápida em vez da codificação segura?
DAW: Talvez até certo ponto para fins lucrativos, mas acho que o maior problema para fins lucrativos é que, se você souber como fazer [secure development]você provavelmente pode ganhar o dobro ou o triplo na indústria [compared to teaching]. Você não vai ensinar.
Eu ensino, mas essa é a minha agitação lateral. Eu gosto de ensinar. A George Mason University fica a 20 minutos de mim e mais conectada à indústria do que algumas outras universidades.
DS: Como persuadimos ou incentivamos os provedores de educação a incorporar a segurança nos cursos de codificação?
DAW: Acho que esse é um problema solucionável – basicamente, a sociedade precisa gritar mais alto.
Os EUA gastam uma quantidade enorme de dinheiro financiando diplomas, incluindo ciência da computação. Se vamos pagar, talvez possamos ter alguns critérios?
DS: O ímpeto por trás da ‘mudança à esquerda’ ou do DevSecOps pode ajudar a persuadir os provedores de educação a mudar a ênfase?
DAW: Eu gostaria de pensar que sim, mas acho que é muito mais a pressão da sociedade e da indústria continuando por um período de tempo [that will make the difference].
Agora DevSecOps [is practised properly by] uma minoria, e temos de garantir que [secure development is practised] não apenas a maioria, mas é [a baseline] expectativa [of all developers].
Os desenvolvedores não estão aprendendo princípios gerais de segurança – muito menos como aplicá-los, diz Wheeler
Anos atrás, eu me esforcei muito para adicionar segurança a um curso de engenharia de software e depois de muita pressão e debate [the provider] finalmente adicionei a palavra ‘segurança’ – sem conteúdo, só que a segurança pode ser importante!
O ACM Orientação curricular de engenharia de software pelo menos fala sobre saber como desenvolver software seguro, mas carece de especificidades importantes.
Mas estou disposto a acreditar que, com ênfase contínua, podemos envolver a academia e muitas outras organizações, garantindo que os desenvolvedores de software conheçam os fundamentos.
DS: Quais fundamentos os desenvolvedores iniciantes devem aprender?
DAW: Quais são os problemas comuns? Como podemos preveni-los em geral? Como você projeta software para que seja menos provável de ser atacado? E que tipo de ferramentas podem ajudar os desenvolvedores a lidar com isso?
Esses princípios gerais e a capacidade de aplicá-los são importantes [skills] mas falta hoje.
Leia mais notícias de desenvolvimento de software seguro
A primeira coisa que fiz quando entrei na Linux Foundation em 2020 como funcionário foi desenvolver um curso sobre desenvolvimento de software seguro fundamentos. Milhares de pessoas já se inscreveram.
A Universidade George Mason inicialmente concordou em fazer meu curso a cada dois semestres e, muito rapidamente, está em todos os semestres – está em demanda.
Mas é um curso de pós-graduação opcional. Precisamos, na sociedade, de pessoas que perfumam mais profundamente e [become experts]mas também precisamos que todos os desenvolvedores conheçam o básico.
DS: Quão importante é que os desenvolvedores entendam como usar as ferramentas de segurança?
DAW: Se você estiver fazendo DevOps, precisará de um pipeline de CI, e esse é um lugar óbvio para inserir ferramentas de segurança. Mas se o desenvolvedor não souber o que está fazendo, não saberá o que a ferramenta está dizendo e o que fazer a respeito.
Um tolo com uma ferramenta ainda é um tolo. Eles não são estúpidos – é só que ninguém lhes disse. Educação e ferramentas andam de mãos dadas.
As ferramentas vão perder coisas ou relatar coisas que não são realmente problemas no contexto. Os programas de computador não sabem – não podem – conhecer o contexto completo.
Mas desde que os desenvolvedores saibam quais ferramentas usar e como, eles podem fazer [some] coisas incríveis.
DS: Finalmente, algo a dizer sobre as várias iniciativas do OpenSSF destinadas a reforçar a segurança da cadeia de fornecimento de software?
DAW: Seja na indústria, academia ou governos, todos nós estamos usando software de código aberto, então meu primeiro argumento seria: envolver-se com o OpenSSF. Gostaríamos de ver mais pessoas envolvidas.
Eu estava profundamente envolvido nos guias concisos para desenvolvimento de software seguro e avaliação de software de código aberto. E anteriormente, o OpenSSF publicou guias para projetos de código aberto e pesquisadores de segurança sobre [handling] coordenado [vulnerability] divulgação.
o Projeto Alfa-Ômega financiou a Python Software Foundation e está financiando Eclipse, Node… Eles anunciaram uma nova parceria com Rust. Eles lançaram algumas ferramentas para encontrar vulnerabilidades – novamente, tentando mudar para a esquerda.
Há também algum financiamento para o trabalho SBOM, uma ferramenta para uma biblioteca Python para SPDX [Software Package Data Exchange]e um [enterprise] grupo de trabalho de usuários finais começando.
RELACIONADO Desenvolvedores ainda lutam com problemas de segurança durante revisões de código, segundo estudo