Talento

Uma ferramenta de código aberto para segurança de software
A startup r2c, fundada por ex-alunos do MIT, oferece um banco de dados de verificações de segurança de software para simplificar o processo de proteção de código.
Por Zach Winn - 10/02/2022


A inicialização r2c ajuda os profissionais de segurança a escanear bases de código e identificar vulnerabilidades de segurança em seus softwares. Na foto estão os fundadores, da esquerda para a direita: Luke O'Malley '14; Isaac Evans '13, SM '15; e Drew Dennison '13. Imagem: Cortesia de r2c, editado pelo MIT News

A triste realidade da indústria de segurança de software é que é muito mais fácil atacar um sistema do que protegê-lo. Os hackers só precisam encontrar uma vulnerabilidade para ter sucesso, enquanto os desenvolvedores de software precisam proteger seu código contra todos os ataques possíveis.

A assimetria significa que, quando um programador solo involuntariamente cria um aplicativo popular, ele rapidamente se torna um peixe vulnerável em um oceano de ameaças. Empresas maiores têm equipes de segurança de software, mas desenvolveram uma reputação entre os desenvolvedores por retardar as implantações à medida que revisam minuciosamente as linhas de código para se proteger contra ataques.

Agora, a startup r2c está procurando tornar o software seguro uma experiência mais perfeita com uma ferramenta de código aberto para revisão de código. Da mesma forma que o Grammarly encontra erros gramaticais ou oportunidades de melhoria em redações e e-mails, a ferramenta da r2c, chamada Semgrep, analisa linhas de código para verificar milhares de possíveis bugs e vulnerabilidades.

No coração do Semgrep está um banco de dados com mais de 1.500 regras pré-escritas que os profissionais de segurança podem incorporar em suas varreduras de código. Se eles não virem uma que desejam, eles podem escrever suas próprias regras usando a interface intuitiva do r2c e adicioná-las ao banco de dados para outros.

“Se você sabe programar em uma linguagem, agora pode escrever regras e estender o Semgrep, e é aí que você basicamente democratiza esse campo que só era acessível a pessoas com habilidades altamente especializadas”, diz o chefe de produto da r2c, Luke O'Malley '14, que cofundou a empresa com Isaac Evans '13, SM '15 e Drew Dennison '13. “Agora que qualquer um pode escrever uma regra, você pode aproveitar o conhecimento especializado das pessoas em seus campos. Esse é o grande avanço. Semgrep é um projeto de código aberto feito por desenvolvedores, para desenvolvedores.”

Além de simplificar o processo de implementação de padrões de código, a r2c promoveu uma comunidade de profissionais de segurança que podem compartilhar ideias e soluções para as ameaças mais recentes. Esse ecossistema de suporte provou ser crucial em um setor em rápida evolução, no qual os profissionais de segurança podem acordar em qualquer manhã e ler sobre novas vulnerabilidades expostas por hacks para algumas das maiores empresas de tecnologia do planeta.

“Pode ser frustrante ver que os computadores são tão inseguros mesmo tendo 40 ou 50 anos”, diz Dennison. “Gosto de me lembrar dos automóveis. Sessenta anos no mundo automotivo, ainda não tínhamos cintos de segurança ou airbags. Foi realmente quando começamos a medir a segurança e ter padrões que a indústria melhorou. Agora seu carro tem todos os tipos de recursos de segurança sofisticados. Adoraríamos fazer o mesmo com software.”

Aprendendo a hackear

Como estudantes de graduação no MIT, Evans, O'Malley e Dennison moravam um ao lado do outro em Simmons Hall. Os três estudantes de engenharia elétrica e ciência da computação logo começaram a trabalhar juntos em vários programas do campus e projetos paralelos. Durante o Período de Atividades Independentes de 2011, eles conseguiram um contrato para ajudar militares do Exército a usar aplicativos em telefones Android com mais segurança.

“Isso realmente cimentou nossos papéis porque Drew era o CTO do projeto, Isaac era CEO e eu estava trabalhando no produto, e esses são os papéis em que caímos na r2c”, diz O'Malley. “Não era oficialmente uma empresa, mas nos demos um nome e a tratamos como se fôssemos uma startup.”

Todos os três fundadores também participaram do Programa Gordon-MIT Engineering Leadership (GEL).

“O GEL realmente me ajudou a pensar em como uma equipe trabalha em conjunto e como você se comunica e ouve”, diz Dennison. “Também me deu pessoas para admirar. Joel Schindall [Professor Bernard M. Gordon do MIT em Engenharia de Produto] foi um grande mentor. Perguntei a ele se deveríamos transformar a coisa do Exército em uma startup, e seu conselho foi bom. Ele disse: 'Vá cometer erros com o dinheiro de outra pessoa por alguns anos. Há muito tempo.'”

Seguindo esse conselho, os fundadores seguiram caminhos separados após a formatura, ingressando em diferentes empresas, mas sempre mantendo suas colaborações bem-sucedidas no fundo de suas mentes.

Em 2016, os fundadores começaram a explorar oportunidades no espaço de segurança de software. No MIT, Evans havia escrito sua tese de mestrado sobre técnicas avançadas de segurança de software, mas os fundadores queriam construir algo que pudesse ser usado por pessoas sem esse conhecimento técnico profundo.

Os fundadores exploraram vários projetos diferentes relacionados à digitalização de código antes de um hackathon interno em 2019, quando um colega mostrou a eles um antigo projeto de código aberto em que trabalhou no Facebook para ajudar a analisar o código. Eles decidiram passar o hackathon revivendo o projeto.

Os fundadores decidiram adicionar amplitude à ferramenta, tornando-a compatível com mais linguagens, e profundidade, permitindo que ela entendesse o código em níveis mais altos. Seu objetivo era fazer com que o Semgrep se encaixasse perfeitamente nos fluxos de trabalho de segurança existentes.

Antes de um novo código ser implantado por uma empresa, ele normalmente é revisado pela equipe de segurança (embora os fundadores digam que os especialistas em segurança estão em desvantagem de 100 para um pelos desenvolvedores em muitas empresas). Com o Semgrep, a equipe de segurança pode implementar regras ou verificações que são executadas automaticamente no código para sinalizar possíveis problemas. O Semgrep pode se integrar ao Slack e a outros programas comuns para entregar os resultados. Ele funciona com mais de 25 linguagens de codificação hoje relacionadas à codificação móvel, back-end, front-end e desenvolvimento web.

Além do banco de dados de regras, o r2c oferece serviços para ajudar as empresas a tirar o máximo proveito do mecanismo de localização de bugs, garantindo que cada base de código seja verificada em busca das coisas certas sem causar atrasos desnecessários.

“A Semgrep está mudando a maneira como o software pode ser escrito, de modo que de repente você pode ser rápido e seguro, e isso não era possível para a maioria das equipes antes”, diz O'Malley.

Um efeito de rede

Quando uma grande vulnerabilidade a uma estrutura de software amplamente usada conhecida como Log4Shell foi exposta recentemente, o canal Slack da comunidade r2c ganhou vida.

“Todo mundo dizia: 'Ok, aqui está uma nova ameaça, o que estamos fazendo para detectá-la?'”, lembra O'Malley. “Eles rapidamente disseram: 'Aqui está a variante A, B, C para todos.' Esse é o poder de democratizar a escrita de regras.”

Os fundadores são constantemente surpreendidos com o uso do Semgrep. Grandes clientes incluem empresas como Slack, Dropbox e Snowflake. O ministério do interior de um grande governo estadual recentemente enviou uma mensagem a eles sobre um importante projeto no qual eles estavam usando a Semgrep.

À medida que a popularidade da Semgrep continua a crescer, os fundadores acreditam que poderão desenvolver suas análises para fornecer aos desenvolvedores insights sobre a segurança de suas bases de código instantaneamente.

“O setor de segurança mais amplo não tem muitas métricas sobre o quão bem estamos indo”, diz Dennison. “É difícil responder a perguntas como estamos melhorando? Nosso software está melhorando? Estamos progredindo contra os atacantes? Então, como chegamos a um ponto em que podemos fornecer uma pontuação de qualidade de código? Então, de repente, você está simplificando a segurança do software.”

 

.
.

Leia mais a seguir