Nós escrevemos sobre PHP's Ecossistema empacotador antes.
Assim como PyPI para Pythonistas, Gems para fãs de Ruby, NPM para programadores de JavaScript ou LuaRocks para Luaphiles, Packagist é um repositório onde colaboradores da comunidade podem publicar detalhes de pacotes PHP que eles criaram.
Isso torna mais fácil para outros programadores PHP obter o código da biblioteca que desejam usar em seus próprios projetos e manter esse código atualizado automaticamente, se desejarem.
Ao contrário do PyPI, que fornece seus próprios servidores onde o código da biblioteca real é armazenado (ou LuaRocks, que às vezes armazena o próprio código-fonte do projeto e às vezes vincula a outros repositórios), o Packagist vincula, mas não mantém cópias do código que você precisa baixar.
Há uma vantagem em fazer isso dessa maneira, principalmente porque os projetos gerenciados por meio de serviços de código-fonte conhecidos, como o GitHub, não precisam manter duas cópias de seus lançamentos oficiais, o que ajuda a evitar o problema de "desvio de versão" entre os sistema de controle de código-fonte e o sistema de embalagem.
E há uma desvantagem, principalmente porque há inevitavelmente duas maneiras diferentes de armadilhas para os pacotes.
O próprio gerenciador de pacotes pode ser invadido, onde a alteração de um único URL pode ser suficiente para desviar os usuários do pacote.
Ou o repositório de código-fonte ao qual está vinculado pode ser hackeado, de modo que os usuários que seguiram o que parecia ser o URL correto acabariam com conteúdo não autorizado de qualquer maneira.
Contas antigas consideradas prejudiciais
Esta ataque (vamos chamá-lo assim, mesmo que nenhum código armadilhado tenha sido publicado pelo hacker em questão) usou o que você pode chamar de abordagem híbrida.
O invasor encontrou quatro contas Packagist antigas e inativas para as quais, de alguma forma, adquiriram as senhas de login.
Eles então identificaram 14 projetos do GitHub vinculados a essas contas inativas e os copiaram para uma conta do GitHub recém-criada.
Por fim, eles ajustaram os pacotes no sistema Packagist para apontar para os novos repositórios do GitHub.
A clonagem de projetos do GitHub é incrivelmente comum. Às vezes, os desenvolvedores desejam criar uma bifurcação genuína (versão alternativa) do projeto sob novo gerenciamento ou oferecendo recursos diferentes; em outras ocasiões, projetos bifurcados parecem ser copiados pelo que pode ser chamado de forma pouco lisonjeira de “razões volumétricas”, fazendo com que as contas do GitHub pareçam maiores, melhores, mais ocupadas e mais comprometidas com a comunidade (com o perdão do trocadilho) do que realmente são.
Embora o hacker possa ter inserido um código malicioso na fonte PHP clonada do GitHub, como adicionar rastreadores, keyloggers, backdoors ou outro malware, parece que tudo o que eles mudaram foi um único item em cada projeto: um arquivo chamado composer.json
.
Este arquivo inclui uma entrada intitulada description
, que geralmente contém exatamente o que você esperaria ver: uma string de texto descrevendo para que serve o código-fonte.
E isso é tudo que nosso hacker modificou, mudando o texto de algo informativo, como Project PPP implements the QQQ protocol so you can RRR
, para que seus projetos relatassem:
Pwned por XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
A segunda frase, escrita metade em russo, metade em inglês, significa:
Estou procurando emprego em segurança de aplicativos... etc.
Não podemos falar por todos, mas no que diz respeito aos currículos (currículos), não achamos este muito convincente.
Também o A equipe de empacotadores diz que todas as alterações não autorizadas foram revertidas e que os 14 projetos clonados do GitHub não foram modificados de nenhuma outra forma além de incluir a solicitação de emprego do proprietário.
Pelo que vale a pena, a conta do GitHub do aspirante a especialista em Segurança de Aplicativos ainda está ativa e ainda tem aqueles projetos “bifurcados” nela.
Não sabemos se o GitHub ainda não decidiu eliminar a conta ou os projetos, ou se o site decidiu não removê-los.
Afinal, bifurcar projetos é comum e permitido (onde os termos de licenciamento permitem, pelo menos) e, embora descreva um projeto de código não malicioso com o texto Pwned by XXXX@XXXX.com
é inútil, dificilmente é ilegal.
O que fazer?
- Não faça isso. Você definitivamente não vai atrair o interesse de nenhum empregador legítimo e (se formos honestos) também não vai impressionar nenhum cibercriminoso por aí.
- Não deixe contas não utilizadas ativas se puder evitar. Como dissemos ontem em Dia Mundial da Senha, considere fechar contas que você não precisa mais, alegando que quanto menos senhas você tiver em uso, menos haverá para serem roubadas.
- Não reutilize senhas em mais de uma conta. A suposição do Packagist é que as senhas abusadas neste caso estavam nos registros de violação de dados de outras contas nas quais as vítimas usaram a mesma senha de sua conta do Packagist.
- Não se esqueça do seu 2FA. Packagists pede a todos os seus próprios usuários que ativem o 2FA, portanto, uma senha por si só não é suficiente para um invasor fazer login em sua conta e recomenda fazer o mesmo em sua conta do GitHub também.
- Não aceite cegamente as atualizações da cadeia de suprimentos sem revisá-las para ver se estão corretas. Se você tem uma rede complicada de dependências de pacotes, é tentador deixar suas responsabilidades de lado e deixar o sistema buscar todas as suas atualizações automaticamente, mas isso apenas coloca você e seus usuários downstream em risco adicional.
AQUI ESTÁ O CONSELHO DO DIA MUNDIAL DA SENHA
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoAiStream. Inteligência de Dados Web3. Conhecimento Amplificado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Compre e venda ações em empresas PRE-IPO com PREIPO®. Acesse aqui.
- Fonte: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :tem
- :é
- :não
- :onde
- $UP
- 1
- 14
- 15%
- 2FA
- a
- Sobre
- absoluto
- ACEITAR
- Conta
- Contas
- adquirido
- ativo
- acrescentando
- Adicional
- conselho
- Todos os Produtos
- permitir
- sozinho
- alternativa
- Apesar
- an
- e
- qualquer
- Aplicação
- segurança da aplicação
- abordagem
- SOMOS
- por aí
- AS
- suposição
- At
- autor
- auto
- automaticamente
- evitar
- Backdoors
- background-image
- BE
- sido
- antes
- Melhor
- entre
- maior
- BleepingComputer
- cegamente
- fronteira
- Inferior
- violação
- mas a
- by
- chamada
- chamado
- CAN
- casas
- Centralização de
- cadeia
- mudado
- Alterações
- mudança
- encerramento
- código
- cor
- COM
- comprometido
- comum
- comunidade
- complicado
- preocupado
- Considerar
- considerado
- contém
- conteúdo
- contribuintes
- ao controle
- cópias
- poderia
- cobrir
- crio
- criado
- CVS
- cibernético
- cíber segurança
- dados,
- violação de dados
- Data
- decidido
- definitivamente
- detalhes
- desenvolvedores
- diferente
- Ecrã
- do
- Não faz
- fazer
- não
- down
- download
- desvantagem
- cada
- fácil
- ou
- empregadores
- emprego
- final
- Inglês
- suficiente
- entrada
- etc.
- Mesmo
- todos
- exatamente
- esperar
- fãs
- Funcionalidades
- companheiro
- menos
- Envie o
- Encontre
- seguido
- Escolha
- garfo
- Bifurcação
- encontrado
- quatro
- da
- genuíno
- ter
- GitHub
- Go
- vai
- hackeado
- cabouqueiro
- tinha
- Metade
- Ter
- altura
- ajudar
- ajuda
- segurar
- pairar
- HTTPS
- HÍBRIDO
- i
- identificado
- if
- Ilegal
- implementa
- in
- inativo
- incluir
- inclui
- incrivelmente
- inevitavelmente
- informativo
- em vez disso
- interesse
- para dentro
- IT
- ESTÁ
- se
- JavaScript
- Trabalho
- apenas por
- Guarda
- Saber
- mínimo
- Deixar
- esquerda
- legítimo
- Biblioteca
- Licenciamento
- como
- ligado
- Links
- viver
- log
- entrar
- olhar
- olhou
- procurando
- a manter
- FAZ
- Fazendo
- malwares
- gerenciados
- de grupos
- Gerente
- Margem
- max-width
- significa
- poder
- modificada
- mais
- você merece...
- Novo
- não
- normal
- notavelmente
- agora
- of
- oferecendo treinamento para distância
- oficial
- Velho
- on
- ONE
- or
- Outros
- A Nossa
- Fora
- próprio
- pacote
- pacotes
- acondicionamento
- Senha
- senhas
- Paul
- penetração
- PHP
- platão
- Inteligência de Dados Platão
- PlatãoData
- ponto
- posição
- POSTAGENS
- PPP
- Problema
- Programadores
- projeto
- projetos
- protocolo
- fornece
- publicar
- publicado
- Coloca
- clientes
- recomenda
- registros
- Releases
- remover
- Informou
- repositório
- responsabilidades
- revendo
- Risco
- volta
- russo
- Dito
- mesmo
- Segundo
- segurança
- Vejo
- parecem
- parece
- sentença
- Serviços
- solteiro
- local
- So
- solicitação
- sólido
- algo
- fonte
- código fonte
- falar
- especialista
- Ainda
- roubado
- armazenadas
- lojas
- Tanga
- tal
- supply
- cadeia de suprimentos
- SVG
- .
- Profissionais
- condições
- do que
- que
- A
- Os projetos
- A fonte
- deles
- Eles
- então
- Lá.
- Este
- deles
- isto
- aqueles
- Apesar?
- vezes
- para
- também
- topo
- lançar
- Trackers
- transição
- transparente
- VIRAR
- dois
- para
- não usado
- Atualizações
- upside
- impulsos
- URL
- usar
- usava
- usuários
- geralmente
- versão
- via
- vítimas
- queremos
- foi
- Caminho..
- maneiras
- we
- web
- bem conhecido
- foram
- O Quê
- se
- qual
- QUEM
- precisarão
- de
- sem
- mundo
- Equivalente há
- seria
- escrito
- ainda
- Você
- investimentos
- zefirnet