Recursos/White Papers

Tecnologia

É 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

Publicada em 04 de abril de 2018 às 08h20

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."



Reportagens mais lidas

Acesse a comunidade da CIO

LinkedIn
A partir da comunidade no LinkedIn, a CIO promove a troca de informações entre os líderes de TI. Acesse aqui