Uma entrevista com o OSTIF, a equipe por trás da auditoria OpenVPN

O OSTIF está auditando o OpenVPN para o benefício de todos.


Contents

Você acabou de concluir sua auditoria de segurança do OpenVPN. Duas pessoas trabalharam por quase dois meses neste projeto. Como funciona essa auditoria?

Na verdade, acabou sendo três pesquisadores trabalhando um total de 50 dias (cerca de 1000 horas) na revisão de segurança.

Quando planejamos auditar um software, há uma quantidade substancial de trabalho que envolve o planejamento do momento da auditoria, quem fará o trabalho e quais áreas do software abordaremos.

Para o OpenVPN, esperamos até o lançamento do OpenVPN 2.4, que apresentava algumas alterações importantes no código. Poderíamos então avaliar os novos recursos, bem como muitas mudanças ocultas.

Atualizações que contêm alterações significativas de código são bons momentos para avaliar o software, porque os erros de codificação podem passar por testes ou as regressões nos recursos de borda podem passar despercebidas..

O OpenVPN é um software único, pois é um código monolítico com muitos recursos que devem ser compatíveis com versões mais antigas. Garantir a compatibilidade de legado diminui a velocidade do processo de revisão de segurança. Temos que navegar em uma rede complexa de funções, e não em um design modular, em que o aplicativo pode ser avaliado em blocos. O OpenVPN também conta com duas bibliotecas diferentes (OpenSSL e PolarSSL) para criptografia, o que significa que existem dois ambientes criptográficos completamente diferentes para alimentar a segurança.

Ainda mais, há o OpenVPN 3.0, que é uma versão exclusiva que não é totalmente de código aberto. O OpenVPN 3.0 foi criado devido a problemas de licenciamento na Apple App Store que impedem o software livre na loja. O código OpenVPN 3.0 é usado para o OpenVPN Connect para Android e iOS. Se avaliarmos todo esse ecossistema, muitos pesquisadores levarão muitos meses para analisar todas essas variações do OpenVPN, e eles ainda terão que considerar todas as diferentes configurações de rede e hardware que esses vários aplicativos podem enfrentar. A complexidade e o custo seriam tremendos.

Consultamos especialistas e trabalhamos com a equipe do OpenVPN e o QuarksLab para descobrir o que focar. Foi decidido que o OpenVPN 2.4 para Windows e Linux cobria a maioria dos usuários e faria o melhor. A maioria dos provedores de VPN comerciais usa o código OpenVPN 2.4 para seus clientes VPN personalizados devido à estrutura de licença em torno dele.

Também decidimos nos concentrar em qualquer criptografia criada pelo próprio OpenVPN e na segurança do aplicativo. Isso significa procurar erros de lógica, erros de alocação de memória, manipulação inadequada de buffer ou outras vulnerabilidades incorretas de estado de erro.

Uma auditoria separada do OpenSSL nos permitirá avaliar de perto a criptografia OpenVPN propriamente dita para garantir que a criptografia e o aplicativo sejam sólidos. É importante criar um aplicativo seguro e difícil de explorar para que os usuários desfrutem.

Quanto ao processo de auditoria real, a QuarksLab faz um excelente trabalho de documentação dos processos e ferramentas usados ​​na avaliação de software. Nosso trabalho se concentra no planejamento do escopo da auditoria e no estabelecimento de metas atingíveis. Em seguida, reunimos as comunidades de código aberto, segurança e privacidade em torno da causa para arrecadar dinheiro para fazê-lo.

Existem descobertas surpreendentes / dignas de nota da sua auditoria que você possa compartilhar conosco agora?

Como estamos no estágio de blecaute do processo de auditoria do OpenVPN, não poderei discutir detalhes específicos que possam levar as pessoas aos resultados, mas elas estarão disponíveis ao público em breve. Estamos aguardando o OpenVPN 2.4.2.

Qual é a lógica por trás dessa auditoria? Você está sendo avisado de possíveis brechas de segurança ou simplesmente quer dar uma olhada mais de perto no software em que confia regularmente?

Nossa estratégia como organização é cobrir diferentes áreas de segurança e privacidade e selecionar aplicativos amplamente usados.

O VeraCrypt foi um sucessor muito necessário do TrueCrypt, no qual a comunidade confiava muito, mas as pessoas que administravam o projeto eram relativamente desconhecidas e estavam assumindo um projeto maciço com código complexo. Fazia sentido lógico abordá-lo como nossa primeira auditoria, porque poderíamos avaliar as alterações no código que foi inserido no TrueCrypt 7.1a e compará-lo com a versão atual do VeraCrypt. Esse escopo restrito nos permitiu reduzir drasticamente os custos e mostrar às pessoas que a organização é eficaz na obtenção de resultados.

O OpenVPN é a nossa primeira auditoria “ampla” de um aplicativo. Exigia um orçamento muito maior, mas também tinha uma grande comunidade de provedores de VPN (que são ativistas da privacidade). Os provedores de VPN estão interessados ​​tanto na privacidade de seus usuários quanto diretamente na segurança do OpenVPN, o que nos permitiu captar recursos de interesses comerciais do OpenVPN e usuários privados simultaneamente.

O OpenSSL é maior novamente, mas tem suporte da indústria, pois o código OpenSSL (e outras bibliotecas derivadas dele) alimenta cerca de 70% dos 1.000.000 sites. Isso nos dá muitos interesses comerciais que podemos solicitar financiamento para ajudar a avaliar o OpenSSL 1.1.1, que será a primeira versão do OpenSSL com o novo código TLS 1.3.

À medida que avançamos na lista de aplicativos, planejamos auditar; fica mais difícil arrecadar fundos. Ou porque as comunidades ao seu redor são menores ou porque não há interesse comercial no sucesso do aplicativo.

Esperamos que, após sucessos repetidos, consigamos garantir patrocinadores corporativos maiores, que nos permitirão direcionar fundos com mais eficiência para esses projetos sem depender inteiramente de pequenas doações públicas. Isso também nos ajudaria muito a estabelecer nossos outros programas, que envolvem o trabalho com projetos para facilitar o uso de seus aplicativos, aprimorando métodos e ferramentas de teste e a criação de guias fáceis de seguir para softwares de privacidade e segurança que suportamos.

Em suma, agora faz parte de uma estratégia maior oferecer suporte a um aplicativo de cada área principal de privacidade e segurança e expandir a partir daí. Nosso critério é a força percebida do software, combinada com o uso generalizado.

Para o seu projeto OpenVPN, você recebeu suporte amplamente do setor de VPN. Você esperava apoio além disso? Você está satisfeito com este suporte??

Também recebemos uma grande quantidade de apoio da comunidade, tanto de boca em boca quanto em doações diretas.

Nossa meta foi superada surpreendentemente rapidamente, pois acreditávamos originalmente que a janela de um mês que alocamos para angariação de fundos seria insuficiente. Mas ultrapassamos nossa meta e aumentamos substancialmente mais do que o planejado em 20 dias. Esse dinheiro foi reservado para o programa de recompensas por insetos que está planejado para começar no verão / outono.

Fiquei surpreso com a resposta positiva da comunidade e com o apoio do projeto. Realmente foi notável! Estou muito feliz com o apoio da comunidade ao projeto, mas também fiquei surpreso com o número de organizações maiores que não responderam às nossas perguntas ou que não tinham nenhum ponto de contato para o gerenciamento delas..

No entanto, no geral, o bem superou o mal, e esperamos trabalhar com todos os nossos apoiadores nas iniciativas OpenVPN e além!

Você mudou de um modelo de captação de recursos com recursos agrupados para um modelo de captação direta de recursos, no qual você arrecada fundos para cada projeto separadamente. Isso parecia ter funcionado bem no projeto OpenVPN, onde a indústria de VPN estava feliz em doar. Você espera que futuros projetos sejam financiados de maneira semelhante e como isso funcionará para projetos de software que não possuem um setor comercial em torno deles, como o OTR?

A mudança no modelo de financiamento deveu-se ao feedback da comunidade sobre o choque dos adesivos. Durante nossa primeira rodada de captação de recursos, planejamos um ano de atividades e, em seguida, tentamos captar recursos através do KickStarter. Isso levou a obstáculos financeiros, como oferecer recompensas por doações, taxas do KickStarter e serviços de pagamento, retirando dinheiro das doações. Além disso, os oito projetos planejados combinados elevaram a meta a milhões de dólares. Como um novato na indústria sem histórico, a enorme quantidade de dinheiro envolvida e, após algumas falhas proeminentes do KickStarter, estava condenado desde o início.

Nossa mudança de estratégia reduziu as despesas gerais e os números e estabeleceu metas mais atingíveis, mas também exige muito mais trabalho para cada captação de recursos. Esperamos que, depois de criar uma reputação de responsabilidade e eficácia, consigamos garantir doadores maiores, o que nos permitirá focar mais em fazer as coisas e menos em solicitar diretamente doações. Doações maiores também terão o benefício adicional de nos permitir financiar projetos menos interessantes comercialmente, como OTR, Nginx, Tunnelblick e mais.

Como você vê a privacidade e a tecnologia de melhoria da segurança evoluindo? Especialmente em relação a telefones celulares e sistemas proprietários?

Vimos várias vezes através de vários vazamentos de agências governamentais que se a criptografia em torno da informação é boa, eles não podem quebrá-la em massa.

Esse fato, pelo menos, desativa a forma de “vigilância de todos” que escuta a todos, que se tornou difundida nos últimos anos. À medida que essas ferramentas de privacidade continuam a melhorar e a criptografia se torna mais difícil de quebrar e mais fácil de usar, veremos esforços consideravelmente maiores para atacar e comprometer dispositivos.

Há evidências disso através do roubo maciço de chaves do cartão SIM com a Gemalto, enormes listas de chaves RSA roubadas em vazamentos da NSA, backdoors inseridos nos sistemas Cisco e Juniper e assim por diante..

A comunidade de segurança há muito tempo pede uma “pilha completa” de código-fonte aberto em torno dos dispositivos que contêm nossas informações mais privadas. O maior obstáculo agora é o financiamento e a organização do apoio para realmente fazê-lo.

Algumas empresas parecem estar fazendo um excelente trabalho no lado proprietário, mas aprendemos repetidamente que não podemos confiar em uma caixa preta de código. Veja o excedente acumulado deste mês no iOS: https://googleprojectzero.blogspot.com/2017/04/exception-oriented-exploitation-on-ios.html

O Android tem muitos problemas relacionados ao ecossistema relacionados a atualizações atrasadas, criando milhões de dispositivos vulneráveis. Ou empresas negligentemente interrompendo as atualizações de seus telefones quando as vendas param. Existem ainda problemas mais profundos, como o vulnerável firmware de rádio Broadcom que nunca serão corrigidos, como demonstrado recentemente pelo Projeto Zero.

Um telefone verdadeiramente de código aberto é uma grande pergunta, mas certamente podemos tentar levar a comunidade de código aberto na direção certa, desenvolvendo peças do quebra-cabeça de forma independente. Eu realmente espero que possamos chegar lá, pois a situação atual é uma bagunça. Estou chocado que ainda não exista uma Mirai baseada em smartphone derrubando torres de celular em todo o mundo com inundações de dados.

A Apple tem divulgado muitas notícias positivas com seus sistemas proprietários sobre segurança e privacidade. O que você acha que os projetos de código aberto desempenham no sentido de levar a tecnologia utilizável às massas, respeitando os direitos do usuário?

A Apple investiu imensos recursos na construção de um ecossistema de telefones focado na segurança. O problema é que a Apple não abre essa tecnologia, então estamos lidando com o mesmo problema que afeta o software comercial, como o Windows.

Temos uma caixa preta com milhões de linhas de código de qualidade desconhecida, todas interagindo umas com as outras de maneiras conhecidas. A Apple está confiando na incapacidade de fabricantes de malware e pesquisadores de segurança de fazer engenharia reversa de seu código e encontrar falhas. Parte dessa motivação é bloquear o software nos telefones, para que o iOS possa ser instalado apenas em hardware Apple genuíno. Outra motivação é bloquear os telefones no software, para que você não possa comprar um iPhone e instalar um sistema operacional alternativo, preservando a capacidade de sacar dinheiro através da loja de aplicativos com um público cativo.

Para deixar claro, a partir de agora, eles estão fazendo um trabalho objetivamente melhor do que o Google quando se trata de segurança geral. O problema é que essa caixa preta não é confiável. Possui bugs, como todo software – milhares de bugs. Como esse software é proprietário e a fonte não está disponível, esses erros aguardam a descoberta por uma equipe de segurança da Apple ou por qualquer outra pessoa no mundo que os encontre primeiro.

O software de código aberto pode ser revisado. Ele remove a solicitação “apenas confie em mim” que nenhuma pessoa interessada em privacidade possa aceitar objetivamente.

Espero que o Google avance na direção da Apple, para que as atualizações sejam forçadas em todos os dispositivos, independentemente do fornecedor, e os requisitos de hardware precisarão ser mais rígidos para que isso aconteça. Espero também que possamos abrir o código-fonte das partes atualmente fechadas do firmware do Google e seus drivers relacionados, para que possamos confiar na pilha completa em que o telefone se baseia para segurança. Isso colocaria uma solução aberta em posição de liderar o mercado com boas práticas de segurança e privacidade.

Você olha muito para o código de outras pessoas. Que erros comuns você observa? Que tipo de bugs são os mais comuns?

Na verdade, eu não faço as análises de segurança, isso é deixado para os auditores contratados. Mas os problemas mais comuns são problemas com o gerenciamento de memória e exclusão adequada de dados relacionados à segurança quando não estão mais em uso.

O outro grande erro é tentar escrever sua própria criptografia. É extremamente complicado e existem muitas, muitas maneiras de derrotar a criptografia que foi inventada nas últimas décadas. Você deve considerar cuidadosamente todos eles e seguir muitos padrões para criar criptografia forte. O uso de bibliotecas já compatíveis evita esse campo minado de segurança inteiramente.

Você tem algum conselho para compartilhar com os muitos codificadores que estão lendo este?

Apoie uma iniciativa de segurança ou privacidade de código aberto. Oferecer seu tempo e conhecimento como codificador é extremamente valioso, mesmo que você apenas faça um único compromisso por mês em um projeto digno.

A soma das habilidades e do tempo das comunidades se soma a aplicativos que podem mudar a Internet e o mundo para melhor. Se você não possui experiência em segurança, faça uma pequena doação recorrente para uma organização que ajude a criar e melhorar essas ferramentas e bibliotecas. Não estou falando apenas do OSTIF, mas da Free Software Foundation ou de qualquer um desses botões de doação que você vê ao baixar um software de código aberto.

Você ficará chocado com o quanto alguns dólares ajudam a pequenos projetos a funcionarem e melhorarem. Pequenas contribuições contribuem para um mundo digital melhor para todos nós.

Kim Martin Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map