Home > Tendências

É preciso mais zelo na segurança open source

O uso de componentes de código aberto economiza tempo e dinheiro das empresas. Em outras palavras, chegou para ficar. Mas os desafios de segurança persistem

Maria Korolov, CSO/EUA

04/04/2018 às 8h08

opensource_329576177.jpg
Foto:

A violação de segurança da Equifax foi um lembrete de que software e os componentes de código aberto
representam um risco gigantesco para a segurança da empresa, apesar de
seus diversos benefícios, especialmente quando não são mantidos
adequadamente.

Em abril, pesquisadores da Flashpoint Intelligence disseram que
criminosos estavam usando ataques de senhas de força bruta contra a
popular plataforma de comércio eletrônico Magento, aproveitando o acesso
comprometido para roubar registros de cartão de crédito e instalar
malwares focados na mineração com criptomoedas.

Os pesquisadores descobriram pelo menos mil painéis de administração
Magento comprometidos e disseram que o interesse na plataforma na deep
web e dark web continua inabalável desde 2016. Além disso, há também um
interesse notável no Powerfront CMS e no OpenCart.

Open source tem crescido em popularidade ao longo dos anos e é usado por empresas de todos os tamanhos, em todos os verticais da indústria.

Além dos sistemas operacionais de código aberto amplamente conhecidos
no mercado, os usuários corporativos também utilizam software de
produtividade de código aberto, ferramentas para administradores e
desenvolvedores e várias bibliotecas de código usadas para construir seu
próprio software. Mesmo o software comercial é normalmente construído
sobre uma base de código-fonte aberto.

"Estou vendo uma adoção mais ampla do software de código aberto nas
empresas", diz Andrew Howard, CTO da Kudelski Security. "À medida que as
companhias estão migrando para metodologias ágeis, o código aberto se
torna mais valioso e há mais ferramentas disponíveis para elas. Se você
observar novos desenvolvedores de software entrando no mercado hoje,
eles serão treinados para se sentirem muito à vontade com as tecnologias
de código aberto".

Vantagens de segurança em software open source
Os desenvolvedores dependem muito do software de código aberto e as
empresas estão confortáveis ​​com os principais projetos de código
aberto que têm grandes grupos mantendo-os, diz Howard. Além disso, há a
abordagem "muitos olhos" para a segurança. "Essa é a grande vantagem de
usar software de código aberto - além de ser de menor custo", diz ele.
"Você teoricamente tem mais olhos para isso."

Embora ele acrescente que isso não se aplica a projetos menores ou
bibliotecas de código. "Alguns softwares não têm nenhuma comunidade",
diz ele.

Outra vantagem de segurança do código-fonte aberto é que, se houver
um problema, uma empresa pode abri-lo e consertá-lo imediatamente. "Se o
código é licenciado sob acordos proprietários, eles geralmente precisam
esperar que os fornecedores respondam", diz Mel Llaguno, gerente de
soluções de código aberto da Synopsys.

Por que software de código aberto representa uma ameaça à segurança?
A Synopsys gerencia o Coverity, um serviço gratuito que examina
defeitos no código-fonte aberto. "No geral, a qualidade do software de
código aberto vem melhorando", diz Llaguno. "Temos cerca de 750 milhões
de linhas de código aberto que participam de nossos projetos de
varredura e identificamos 1,1 milhão de defeitos - e 650 mil defeitos já
foram resolvidos". Ele acrescenta que muitos projetos, especialmente os
menores, não examinam seu código em busca de possíveis pontos fracos de
segurança.

A Black Duck Software, por exemplo, rastreia mais de 10 bilhões de
linhas de open source em mais de 550 mil projetos. Mesmo isso não é uma
imagem completa. A Fundação Linux informa que 31 bilhões de linhas de
código foram confirmadas para repositórios de código aberto.

Quem está usando todo esse código-fonte aberto? Todo mundo. De acordo
com o último relatório da Black Duck, os componentes de código aberto
estão agora presentes em 96% dos aplicativos comerciais. O aplicativo
médio tinha 147 componentes de código aberto diferentes - e 67% dos
aplicativos usavam componentes com vulnerabilidades conhecidas.

O governo dos EUA patrocina a lista de enumerações de
vulnerabilidades comuns e o National Vulnerability Database. Em 2017,
mais de 8 mil novas vulnerabilidades foram adicionadas à lista CVE, um
recorde.

Então por que as empresas estão usando software de código aberto? "Na
aplicação média, mais de um terço da base de código é de código
aberto", diz Mike Pittenger, estrategista de segurança da Black Duck na
Synopsys. "Para substituir esse terço da base de código, você terá que
aumentar sua equipe de desenvolvimento ou tempo de desenvolvimento em
50% - e não acho que essas opções sejam viáveis ​​no mundo de hoje."

Tomemos, por exemplo, a Skyscanner, com sede em Londres, que faz um
mecanismo de busca de viagens. A empresa costumava rodar em plataformas
proprietárias e fechadas como o .NET. Ao longo dos últimos anos, migrou
para uma gama mais ampla de idiomas e tecnologias, incluindo o código
aberto, afirma o engenheiro de segurança do Skyscanner, Alex Harriss.
"Isso significou que nossos engenheiros agora são capazes de extrair
dependências de várias fontes e implantar seu código em minutos", diz.

Isso também criou desafios de segurança, lembra Harriss. "Eu acho que
há uma confiança equivocada no fato de que, sendo de código aberto,
essas bibliotecas estão sendo revisadas por bugs de segurança pela
comunidade. Na realidade, parece que nem sempre é esse o caso."

Existem vulnerabilidades bem documentadas em muitas das bibliotecas
mais comuns, diz ele. Como os engenheiros simplesmente puxavam o código
dessas bibliotecas e o implantavam, isso criava um problema de
visibilidade. "Simplesmente desconhecíamos o número de dependências em
nossos produtos", comenta.

O Skyscanner não estava sozinho. De acordo com o último relatório da
Veracode, apenas 28% das organizações fazem qualquer tipo de análise
regular para descobrir quais componentes são integrados em seus
aplicativos. À medida que o uso do código-fonte aberto cresce, essa
superfície de risco se expande.

Novas vulnerabilidades são constantemente encontradas no código-fonte
aberto e muitos projetos não possuem mecanismos para localizar e
corrigir problemas. De acordo com uma pesquisa recente da Snyk com
mantenedores de código aberto, 44% nunca fizeram uma auditoria de
segurança e apenas 17% disseram que tinham um alto nível de segurança em
know-how.

Também não há uma maneira padrão de documentar a segurança em
projetos de código aberto. Nos 400 mil principais repositórios públicos
do GitHub, apenas 2,4% tinham documentação de segurança em vigor.

Então, se o problema for resolvido, muitas vezes não há como
encontrar e notificar todos os usuários do código antigo. "A comunidade
de código aberto não tem idéia de quem está usando seus componentes",
diz Pittenger, da Black Duck.

De acordo com a pesquisa da Snyk, 88% dos mantenedores de
código-fonte aberto adicionam anúncios relacionados à segurança nas
notas de lançamento, e 34% afirmam que desaprovam a versão mais antiga e
insegura. Vinte e cinco por cento dizem que não fazem esforço algum
para notificar os usuários sobre vulnerabilidades e apenas 10% arquivam
um CVE.

Opensource

Encontre e corrija
Em um mundo ideal, todos os aplicativos se atualizariam no instante
em que um patch de segurança se tornasse disponível, sem qualquer
intervenção necessária. Na prática, no entanto, isso nem sempre é
possível.

Em vez disso, as empresas precisam encontrar uma maneira de localizar
todas as instâncias de código aberto em seus ambientes, atualizar
continuamente essa lista, afastar os desenvolvedores de bibliotecas
antigas e inseguras e, finalmente, implantar patches sempre que novas
vulnerabilidades forem descobertas.

"Remover bibliotecas vulneráveis ​​de seus produtos só é possível
quando você sabe onde eles estão, e quanto mais cedo você fizer isso no
ciclo de vida, mais barato e mais fácil é fazer", diz Harriss.

Muitas empresas recorrem a fornecedores como Snyk, Black Duck e
Veracode para obter ajuda. Isso é o que o Skyscanner fez também. "Snyk
nos permitiu ver quais pacotes estavam sendo usados ​​em quais projetos,
as vulnerabilidades que eles continham e como eles eram introduzidos em
nosso código. Além disso, a Snyk imediatamente sinalizaria
vulnerabilidades aos desenvolvedores enquanto eles escreviam código,
para que os problemas pudessem ser resolvidos antes que o código
entrasse em produção", explica Harriss.

A integração de varreduras de vulnerabilidades de software livre no
processo de desenvolvimento é especialmente importante para grandes
empresas, pois pode ser difícil rastrear todo o código que está em uso.
"A maioria das empresas com as quais lidamos não sabe o inventário
completo de aplicativos que possui, o que é um pouco assustador", diz
Chris Eng, vice-presidente de pesquisa da Veracode.

Quando o Veracode faz uma varredura de vulnerabilidades, as empresas
fazem upload de seu código binário e o Veracode o verifica no banco de
dados nacional de vulnerabilidades -
National Vulnerability Database.
Para ajudar as empresas a descobrirem quais aplicativos eles têm em
execução que podem não conhecer, o Veracode também pode verificar o
perímetro da empresa. "Não vai encontrar outros aplicativos internos que
não estejam expostos, mas, de qualquer maneira, esses riscos serão
menores por causa da exposição", diz Eng.

Há também ferramentas de rede que as empresas podem usar para
descobrir o que está sendo executado internamente, acrescentou ele, mas
pode haver pontos cegos se a rede estiver segmentada. As empresas também
podem instalar agentes em dispositivos endpoint para rastrear o que
está sendo executado. "E você ainda pode ter alguns pontos cegos se não
tiver o agente instalado em todos os lugares. Não há uma maneira única
de conseguir tudo isso, e é por isso que é um problema tão difícil."

Foi certamente um problema difícil para a Equifax. Em outubro, o
ex-CEO Richard Smith disse ao Congresso que o departamento de segurança
da informação da empresa fazia varreduras procurando a vulnerabilidade
do Apache Struts que eventualmente levou à violação. As varreduras "não
identificaram nenhuma versão do Apache Struts que estava sujeita a esta
vulnerabilidade, e a vulnerabilidade permaneceu em um aplicativo da Web
Equifax por muito mais tempo do que deveria", disse ele.

"Você precisa ter certeza de que conhece todos os servidores em seu
ambiente para digitalizá-los com essa ferramenta", diz Pittenger, da
Black Duck. Mesmo quando as varreduras são completas e precisas, elas
criam uma grande sobrecarga de gerenciamento para as organizações. Sem
as verificações de segurança integradas no processo de desenvolvimento,
essas verificações devem ser executadas continuamente e os aplicativos
verificados e verificados novamente quanto a vulnerabilidades.

Os desenvolvedores não apenas introduzem novas bibliotecas
vulneráveis ​​em seus aplicativos, como as atualizam, mas novas
vulnerabilidades são descobertas em bibliotecas antigas que antes eram
consideradas seguras. "O software não envelhece como o vinho. Envelhece
como leite", afirma Eg.

Os desenvolvedores raramente voltam e revisam as bibliotecas usadas
em projetos antigos, diz Eng. "Eu faço o download de qualquer versão
atual, incorpore-a ao meu aplicativo e nunca mais pense nisso
novamente", completa.

Em um sinal de quão importante este tópico é agora, a Black Duck foi
comprada pela Synopsys este mês por mais de US$ 500 milhões. "Isso é uma
grande validação de mercado, eu diria", diz John Dickson, diretor da
Denim Group, que se diz surpreso com o tamanho do acordo. "Eu pensei que
era um espaço quente, mas não achei tão quente. Aquela aquisição virou
muita coisa."

Junte-se a nós e receba nossas melhores histórias de tecnologia. Newsletter Newsletter por e-mail