Eles descobriram 11 pacotes maliciosos no PyPI

Poucos dias atrás, a notificação de que 11 pacotes contendo código malicioso foram identificados no diretório PyPI (Índice de pacote Python).

Antes que os problemas fossem identificados, pacotes foram baixados cerca de 38 mil vezes no total Deve-se destacar que os pacotes maliciosos detectados se destacam pelo uso de métodos sofisticados para ocultar canais de comunicação com os servidores dos atacantes.

Os pacotes descobertos são os seguintes:

  • pacote importante (6305 downloads) e pacote importante (12897): esses pacotes estabelecer uma conexão com um servidor externo sob o pretexto de se conectar a pypi.python.org para fornecer acesso shell ao sistema (shell reverso) e use o programa trevorc2 para ocultar o canal de comunicação.
  • teste ppt (10001) e ipboards (946) usou DNS como um canal de comunicação para transferir informações sobre o sistema (no primeiro pacote, o nome do host, diretório de trabalho, IP interno e externo, no segundo, o nome de usuário e o nome do host).
  • lua coruja (3285) DiscordSegurança (557) y Yiffparty (1859) - Identifique o token de serviço Discord no sistema e envie-o para um host externo.
  • trrfab (287): Envia o identificador, nome do host e conteúdo de / etc / passwd, / etc / hosts, / home para um host externo.
  • 10cent10 (490) - Estabelecida uma conexão de shell reversa com um host externo.
    Yandex-yt (4183): mostrava uma mensagem sobre o sistema comprometido e redirecionava para uma página com informações adicionais sobre ações adicionais, emitida através de nda.ya.ru (api.ya.cc).

Diante disso, é mencionado que atenção especial deve ser dada ao método de acesso a hosts externos que são usados ​​em pacotes importantpackage e important-package, que usam a rede de entrega de conteúdo Fastly usada no catálogo PyPI para ocultar sua atividade.

Na verdade, as solicitações foram enviadas ao servidor pypi.python.org (incluindo a especificação do nome de python.org em SNI na solicitação HTTPS), mas o nome do servidor controlado pelo invasor foi definido no cabeçalho HTTP "Host ». A rede de distribuição de conteúdo enviou uma solicitação semelhante ao servidor do invasor, usando os parâmetros da conexão TLS para pypi.python.org ao transmitir dados.

A infraestrutura de O PyPI é alimentado pela Fastly Content Delivery Network, que usa o proxy transparente do Varnish para armazenar em cache solicitações típicas e usar processamento de certificado TLS no nível de CDN, em vez de servidores de terminal, para encaminhar solicitações HTTPS por meio do proxy. Independentemente do host de destino, as solicitações são enviadas ao proxy, que identifica o host desejado pelo cabeçalho HTTP "Host" e os nomes de host de domínio são vinculados aos endereços IP do balanceador de carga CDN típicos de todos os clientes Fastly.

O servidor do invasor também se registra no CDN Fastly, que oferece a todos planos de tarifas gratuitas e até permite o registro anônimo. Cabe ressaltar que um esquema também é usado para enviar solicitações à vítima ao criar um "shell reverso", mas iniciado pelo host do invasor. Visto de fora, a interação com o servidor do invasor parece uma sessão legítima com o diretório PyPI, criptografado com o certificado PyPI TLS. Uma técnica semelhante, conhecida como "fronting de domínio", foi usada anteriormente ativamente para ocultar o nome do host ignorando bloqueios, usando a opção HTTPS fornecida em algumas redes CDN, especificando o host fictício no SNI e passando o nome do host. Host solicitado no cabeçalho do host HTTP em uma sessão TLS.

Para ocultar a atividade maliciosa, foi utilizado adicionalmente o pacote TrevorC2, que torna a interação com o servidor semelhante à navegação normal na web.

Os pacotes pptest e ipboards usaram uma abordagem diferente para ocultar a atividade da rede, com base na codificação de informações úteis em solicitações ao servidor DNS. O software malicioso transmite informações executando consultas DNS, nas quais os dados transmitidos ao servidor de comando e controle são codificados usando o formato base64 no nome do subdomínio. Um invasor aceita essas mensagens controlando o servidor DNS do domínio.

Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar os detalhes no link a seguir.