Como desenvolver um plano defensivo para o seu projeto de software de código aberto

O software de código aberto está se tornando cada vez mais popular. Veja como você pode criar um plano para garantir que sua implementação de código aberto seja segura e eficaz.

O software de código aberto está se tornando cada vez mais popular. Uma pesquisa recente da Forrester Research descobriu que o modelo de código aberto é agora preeminente no desenvolvimento de aplicativos e que o código escrito sob medida agora geralmente constitui apenas 10 a 20% da maioria das aplicações.

 

À medida que o modelo de código aberto se torna um padrão de fato para os desenvolvedores, as preocupações com sua segurança tornaram-se mais proeminentes. Como o CIO afirmou em 2017,"a velocidade de implantação de código aberto por empresas em todos os lugares coloca a segurança do software em questão". Este tem sido um debate que ressurgiu perenemente na última década, com vários comentaristas afirmando que o código aberto é mais seguro do que o código proprietário ou menos.

 

Na realidade, o código de código aberto pode ser feito tão seguro quanto o código proprietário mais rigorosamente desenvolvido, mas para conseguir isso, os desenvolvedores precisam colocar em prática um plano defensivo igualmente rigoroso. Isso é fundamental não apenas para evitar fraquezas de segurança em trechos de código, mas também para sua própria sanidade: é difícil evitar o burnout se você for constantemente chamado para corrigir os danos causados por hacks.

 

Neste artigo, vamos executar através de quatro princípios fundamentais que devem formar a base de qualquer plano defensivo para projetos de código aberto.

 

1. Inventário de seus repositórios

 

Apesar da frequência com que o código-fonte aberto é usado, o fato é que muitos desenvolvedores são incapazes de listar todos os componentes de código aberto que atualmente empregam. Uma vez que você não pode proteger o que você não está rastreando, o primeiro passo para defender seus sistemas deve ser um inventário completo de todo o código de código aberto que você está executando. Ao fazer este inventário, você também deve lembrar que os componentes que você está usando têm dependências, por isso é importante realizar um inventário que cubra estes também.

 

Embora este nível de pesquisa possa parecer um exagero em relação a, digamos, um amado jogo de Paciência, ele assume maior preocupação ao considerar o fundamento técnico de características comuns de processamento de pagamentos, que se tornaram dependentes de um nível cada vez mais alto de código nos últimos anos. O mesmo vale para uma nomeação, faturamento, software de CRM e muitos outros. Quando o código falho coloca em risco o resultado final ou o funcionamento de uma pequena empresa, torna-se mais sério com pressa.

 

Este inventário deve levar em conta todos os aspectos do seu software. Em um nível muito básico, muitos aplicativos fazem uso de bancos de dados de código aberto,mas a própria centralidade desses sistemas para o seu software torna isso fácil de ignorar. Na outra ponta da sua pilha, sistemas focados no cliente, como o software de lembrete de nomeação, geralmente contêm componentes de código aberto, mesmo onde esses pacotes são proprietários. Seu inventário deve avaliar minuciosamente cada parte do seu software até mesmo para a menor peça de código-fonte aberto. 

 

2. Mapear vulnerabilidades de chaves

 

Armado com uma lista de todos os códigos-código aberto que você está usando, você pode usar fontes públicas como o National Vulnerability Database (NVD) para coletar informações sobre as vulnerabilidades conhecidas nesses componentes. Apenas esteja ciente de que nem todos os problemas de segurança são relatados ao NVD em tempo hábil, então você não deve confiar nele como sua única fonte de informação.

 

Você pode complementar sistemas públicos como o NVD com mais técnicas de investigação, fazendo uso de fóruns e relatórios do setor para encontrar mais relatórios de vulnerabilidade. Há até muito a ser aprendido com violações de dados de alto perfil, como relatado na mídia, uma vez que até mesmo grandes empresas podem cair em desacordo com vulnerabilidades de código aberto.

 

3. Políticas de uso

 

As políticas de uso são muito importantes para garantir código de código aberto, mas muitas vezes são esquecidas pelos desenvolvedores. As políticas de uso são uma parte fundamental da documentação do seu software e devem conter informações detalhadas sobre quais outros componentes você o testou. Eles podem ajudar os usuários a manter os componentes seguros, garantindo que eles não os usem com outras peças de software não testadas. Idealmente, os desenvolvedores devem se relacionar estreitamente com o gerenciamento para elaborar políticas de uso rigorosas e seguras para cada peça de software que for lançada, e estes devem cobrir especificamente protocolos de acesso e autenticação.

 

É claro que, em um ambiente de código aberto, você não pode impedir que seus usuários finais usem software ao lado do seu ou substituam seus componentes recomendados por outros. No entanto, você também deve reconhecer que os funcionários muitas vezes procuram burlar as medidas de segurança usando software extra não aprovado. Às vezes, esses softwares são golpes diretos de software, e às vezes são meramente inseguros. Se você fez grandes esforços para garantir a segurança do seu próprio software, você também deve encorajar os usuários finais a usar componentes que você testou para segurança.

 

4. Monitoramento contínuo

 

Embora a lista de vulnerabilidades comuns de software e hardware seja, por si só, bastante curta, isso desmente o número bruto de vulnerabilidades que são identificadas a cada ano. Há mais de 3600 casos individuais de vulnerabilidades da variedade de código aberto descobertas a cada ano: são quase 100 por dia. Por causa disso, você precisa construir monitoramento contínuo em seu plano defensivo. O monitoramento contínuo pode significar uma variedade de coisas para diferentes desenvolvedores e empresas. 

 

Alguns farão uso de um software dedicado que digitaliza boletins para novas vulnerabilidades. Outros simplesmente vão verificar as notícias toda semana. Em todos os casos, no entanto, o monitoramento contínuo significa que você precisa de um sistema para capturar completamente todas as vulnerabilidades à medida que surgem, mesmo para softwares que foram enviados anos atrás.

 

De fato, o monitoramento deve ocorrer durante o desenvolvimento do software, mas também — criticamente — depois que um software for lançado. Corrigir novas vulnerabilidades à medida que elas surgem é tão importante quanto evitá-las durante o desenvolvimento. O monitoramento também deve ocorrer em articulação com a equipe de gestão e deve fazer parte integrante dos processos de desenvolvimento de produtos. Embora sua equipe de desenvolvimento de negócios possa ser ótima em idear variações das mais recentes empresas online populares, provavelmente não tem ideia de como isso afeta a segurança do software que você já tem em vigor (ou em desenvolvimento). Uma avaliação de risco de cada novo produto, antes de ser lançado, pode ajudar a evitar problemas mais tarde.

 

Aprendendo a aprender

 

Todas as etapas acima são componentes críticos de qualquer plano defensivo para o desenvolvimento de software de código aberto. Além disso, eles não se aplicam apenas a equipes de dev e segurança. Planos defensivos eficazes exigem a entrada de todos os níveis organizacionais: não apenas desenvolvedores, mas também gerenciamento e usuários finais. 

 

Esse tipo de integração organizacional é uma parte crítica da cibersegurança em 2020 porque permite que a segurança seja incorporada em todas as etapas da conceituação, desenvolvimento e manutenção contínua de cada peça de software. É por isso que a ligação organizacional desse tipo é um componente importante do DevSecOps, uma abordagem relativamente nova para a segurança cibernética que tenta combinar processos de desenvolvimento com funções operacionais de negócios.

 

Isso pode ser uma grande mudança na maneira como você trabalha no momento. Mas, como já apontamos antes, ser desenvolvedor em 2020 é tudo sobre abraçar a mudança e ser ágil. Em outras palavras, trata-se de aprender a aprender.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 בלוג פוסטים

הערות