Skip to main content

Feliz aniversário de 1 ano, Snyk Code!

Escrito por:
Frank Fischer
wordpress-sync/feature-happy-birthday-snyk-code

6 de maio de 2022

0 minutos de leitura

O Snyk Code está completando um ano! Alcançamos muitas conquistas nos últimos 12 meses, e hoje temos o prazer de convidar você para participar da comemoração e conhecer o futuro da segurança do código.

Da DeepCode ao Snyk Code

O Snyk Code é alimentado por um mecanismo exclusivo e processos orientados por pesquisas líderes do setor. Suas raízes remontam ao movimento “big code” em 2013.

wordpress-sync/blog-snyk-code-chart-1

Big code é um termo usado para descrever a crescente disponibilidade de programas encontrados em repositórios de código aberto. Por exemplo, o GitHub hospedava 30 milhões de repositórios públicos no início de 2016. Quatro anos depois, em março de 2020, esse número cresceu para mais de 128 milhões.

As discussões sobre o potencial do big code para promover o avanço da programação com o conhecimento da comunidade de desenvolvimento do mundo inteiro têm agitado os círculos acadêmicos desde 2007.

No entanto, houve vários obstáculos. O big code herda todos os problemas do big data e mais outros devido à natureza do código-fonte, como tempos de execução infinitos e a necessidade de aproximação. Tratar o código-fonte como texto simples, como fazem as ferramentas modernas de machine learning, é uma abordagem muito simplista.

A base do Snyk Code começou no SRIlab do Professor Martin Vechev, na Swiss Federal Technical University (ETH) de Zurique. Em 2013, o estudante de doutorado Veselin Raychev (agora chefe de inteligência artificial da Snyk) e o professor Vechev conduziram pesquisas em machine learning e desenvolveram protótipos para sistemas baseados em IA em parceria com outros estudiosos. Essas IAs aprenderam com programas de código aberto, combinando análises de código estático baseadas em raciocínio simbólico com métodos de machine learning orientados por dados.

Raychev recebeu a medalha da ETH de Zurique por sua excelente tese de PhD, bem como o prestigioso prêmio ACM de dissertação de doutorado com menção honrosa por sua tese de doutorado sobre machine learning com big code. Ele foi o terceiro europeu (e o primeiro búlgaro) a ser reconhecido em 40 anos por esse prêmio.

Com base nas descobertas da sua tese de doutorado, Raychev formou uma parceria com Vechev e Boris Paskalev (agora chefe de produto de IA para código da Snyk) para fundar a DeepCode em 2016, com o objetivo de transformar a pesquisa em uma ferramenta acessível.

Um obstáculo do aprendizado com big code é o dimensionamento. É preciso ter capacidade de processar grandes quantidades de código do mundo real com rapidez suficiente para executar iterações. A DeepCode contribuiu para várias das melhorias que transformaram a indústria que temos hoje. O machine learning, por exemplo, é alimentado pela capacidade de realizar análises semânticas profundas sem sacrificar a velocidade. Esses recursos aprimorados permitiram que o mecanismo de última geração da DeepCode construísse e mantivesse o conjunto de regras para dar suporte à sua base de conhecimento precisa e sempre crescente. Para mais detalhes, confira a postagem sobre as tecnologias por trás do Snyk Code e as amostras de análise de publicações e sistemas de pesquisa.

wordpress-sync/blog-snyk-code-founders
Da esquerda para a direita: Veselin Raychev (fundador da DeepCode), Boris Paskalev e Martin Vechev.

O objetivo da DeepCode era simplificar a análise semântica profunda, ocultando as complexidades e fornecendo uma ferramenta intuitiva e acessível. A julgar pelo feedback de centenas de milhares de desenvolvedores, essa meta foi concretizada com êxito. A velocidade de verificação e os conjuntos de regras confiáveis foram elementos importantes para o sucesso da DeepCode. O pilar final de uma base global de usuários foi uma abordagem centrada no desenvolvedor, que o mecanismo baseado em IA da DeepCode foi capaz de satisfazer completamente. O machine learning permitiu que a DeepCode explicasse suas descobertas aos usuários e fornecesse exemplos de correções recomendadas, o que ajudou os desenvolvedores a entender por que seus códigos eram vulneráveis e como corrigi-los.

Quando a Snyk e a DeepCode começaram a discutir a união de forças em 2020, tudo deu certo. O mecanismo da DeepCode foi um avanço técnico que mudou fundamentalmente o espaço das análises estáticas. A Snyk tinha uma plataforma técnica madura, experiência em segurança, departamentos de vendas e marketing estabelecidos e uma rede internacional. Acima de tudo, ambas as empresas priorizavam a cultura interna e uma mentalidade que coloca o desenvolvedor em primeiro lugar. Assim, a DeepCode tornou-se parte da Snyk.

Após alguns meses de trabalho rápido, o Snyk Code foi construído e implementado como parte da plataforma da Snyk usando o mecanismo da DeepCode e revisando o conjunto de regras existente. A equipe, expandida com os principais pesquisadores de segurança e desenvolvedores de plataforma da Snyk, adicionou elementos como conteúdo extenso selecionado e visualização do fluxo de dados, e preparou o produto para execução na Snyk. Antes do seu lançamento beta, o Snyk Code já tinha uma fila de clientes pagantes. Isso comprovou que a solução atendia às necessidades vitais do mercado e demonstrou a profunda confiança que a comunidade deposita na Snyk. Os clientes existentes receberam acesso ao Snyk Code no início de 2021 e, em abril do mesmo ano, o Snyk Code entrou no programa “freemium”. Essa combinação de detalhes complicou a escolha de uma data de aniversário para o Snyk Code. Embora houvesse várias boas opções (quando a Snyk e a DeepCode uniram forças, acesso para clientes existentes, etc.), optamos pelo dia em que o Snyk Code se tornou disponível para todos, 6 de maio.

O Snyk Code hoje em dia!

wordpress-sync/blog-snyk-code-banner

Qual é a situação do Snyk Code após um ano de jornada? Vamos analisar algumas estatísticas:

O Snyk Code informou mais de 2,5 milhões de problemas em mais de um quarto de milhão de projetos só no último mês. No momento, mais de mil organizações no mundo inteiro confiam no Snyk Code para verificar seus projetos.

Começamos com três linguagens e agora expandimos o suporte para JavaScript, Typescript, Java, PHP, C#, Ruby, Python, Swift, Kotlin e Go.

Integrações com IDEs foram adicionadas para Visual Studio Code, IntelliJ, WebStorm, PyCharm, GoLand e Visual Studio.

A inovação contínua produziu uma análise de código semântico profunda e sensível ao contexto em velocidades líderes do setor. Nosso mecanismo versátil oferece suporte para segurança do GraphQL e pode detectar e evitar ataques Trojan Source em qualquer linguagem compatível. A lógica do Snyk Code também oferece aos desenvolvedores a capacidade de ignorar sugestões que não são aplicáveis.

A equipe por trás do Snyk Code cresceu enormemente, com vários grupos de engenharia trabalhando nas integrações com IDEs, no conjunto de regras, no mecanismo e na Web. Embora seja justo dizer que Zurique ainda desempenha um papel fundamental, temos pessoas espalhadas pela América do Norte, Ásia, Austrália e Europa na equipe do Snyk Code.

O desenvolvimento do Snyk Code está dividido em quatro equipes principais: desenvolvimento do mecanismo, criação e manutenção do conjunto de regras para a base de conhecimento, experiência front-end dos usuários e plug-ins para IDE. Cada uma dessas equipes se divide em subequipes, o que torna o Snyk Code um produto fundamental para a plataforma.

No primeiro ano, o Snyk Code se integrou à plataforma da Snyk, construiu uma sólida base de linguagens de programação e IDEs, adicionou novas funcionalidades de verificação e se consolidou como um dos principais produtos da Snyk. Porém, estamos apenas começando…

O panorama

O Snyk Code é uma criança de 1 ano bastante ativa, e o próximo ano será outro grande avanço. Alguns destaques que você pode esperar:

  • Geração de relatórios:a TopCoat se uniu recentemente à Snyk e levará os recursos de geração de relatórios da plataforma Snyk a patamares inéditos.

  • Linguagens: embora o Snyk Code tenha acumulado uma coleção impressionante de linguagens com suporte logo no seu primeiro ano, adicionaremos outras em breve, como Swift e Apex. Também adicionamos alguns recursos para tornar o desenvolvimento de regras ainda mais rápido nas linguagens compatíveis.

  • Recursos do mecanismo: estamos nos estágios finais da inclusão de novos recursos que ampliarão o limite do que você pode esperar dos seus testes estáticos de segurança de aplicativos (SAST).

  • Integrações com IDEs: a nossa prioridade é interagir com os desenvolvedores e oferecer resultados diretamente nas ferramentas que usam. No decorrer do próximo ano, planejamos ampliar e fortalecer nossa presença em IDEs.

  • Crescimento da comunidade: o Snyk Code é gratuito e está disponível para avaliação em todos os projetos de código aberto, mas a verificação de SAST ainda está longe de ser algo comum. Continuaremos trabalhando para oferecer à comunidade o conhecimento e os produtos de que ela precisa.

  • Recursos do produto: o SAST é o meio termo entre desenvolvedores, profissionais de segurança e gerência, e cada função tem necessidades específicas. Nossos relacionamentos estreitos com os usuários nos ajudaram a identificar pontos problemáticos específicos e a desenvolver um roteiro para abordá-los com novos recursos para o produto.

  • A visão da Snyk: em sua palestra na SnykCon 2021, Guy Podjarny, um dos fundadores da Snyk, expôs sua visão para o futuro da empresa. O Snyk Code e seu poderoso mecanismo lógico terão um grande papel na concretização dessa visão.

O Snyk Code tem sido uma criança brincalhona e tem um crescimento ainda mais acentuado à espera no seu segundo ano de vida. Com muitos planos interessantes em perspectiva, não há melhor momento para experimentar e se juntar à família que sempre coloca os desenvolvedores em primeiro lugar.