Nous avons écrit sur PHP Ecosystème packagiste avant.
Comme PyPI pour les Pythonistas, Gems pour les fans de Ruby, NPM pour les programmeurs JavaScript ou LuaRocks pour les Luaphiles, Packagist est un référentiel où les contributeurs de la communauté peuvent publier les détails des packages PHP qu'ils ont créés.
Cela permet aux autres codeurs PHP de se procurer facilement le code de la bibliothèque qu'ils souhaitent utiliser dans leurs propres projets et de maintenir ce code à jour automatiquement s'ils le souhaitent.
Contrairement à PyPI, qui fournit ses propres serveurs où le code de bibliothèque réel est stocké (ou LuaRocks, qui stocke parfois le code source du projet lui-même et parfois des liens vers d'autres référentiels), Packagist établit des liens vers, mais ne conserve pas lui-même des copies du code que vous besoin de télécharger.
Il y a un avantage à procéder de cette façon, notamment que les projets gérés via des services de code source bien connus tels que GitHub n'ont pas besoin de conserver deux copies de leurs versions officielles, ce qui permet d'éviter le problème de « dérive de version » entre les système de contrôle du code source et le système de conditionnement.
Et il y a un inconvénient, notamment qu'il y a inévitablement deux manières différentes pour que les paquets puissent être piégés.
Le gestionnaire de packages lui-même pourrait être piraté, où la modification d'une seule URL pourrait suffire à égarer les utilisateurs du package.
Ou le référentiel de code source auquel il est lié pourrait être piraté, de sorte que les utilisateurs qui suivraient ce qui ressemblait à la bonne URL se retrouveraient de toute façon avec du contenu malveillant.
Anciens comptes considérés comme nuisibles
Ce attaquer (nous l'appellerons ainsi, même si aucun code piégé n'a été publié par le pirate concerné) a utilisé ce que l'on pourrait appeler une approche hybride.
L'attaquant a trouvé quatre comptes Packagist anciens et inactifs pour lesquels ils avaient en quelque sorte acquis les mots de passe de connexion.
Ils ont ensuite identifié 14 projets GitHub auxquels ces comptes inactifs étaient liés et les ont copiés dans un compte GitHub nouvellement créé.
Enfin, ils ont modifié les packages du système Packagist pour qu'ils pointent vers les nouveaux référentiels GitHub.
Le clonage de projets GitHub est incroyablement courant. Parfois, les développeurs souhaitent créer un véritable fork (version alternative) du projet sous une nouvelle direction, ou proposant des fonctionnalités différentes ; à d'autres moments, les projets bifurqués semblent être copiés pour ce que l'on pourrait appeler de manière peu flatteuse des « raisons volumétriques », faisant paraître les comptes GitHub plus grands, meilleurs, plus occupés et plus engagés envers la communauté (si vous pardonnez le jeu de mots) qu'ils ne le sont réellement.
Bien que le pirate ait pu insérer du code malveillant dans la source PHP clonée de GitHub, comme ajouter des trackers, des enregistreurs de frappe, des portes dérobées ou d'autres logiciels malveillants, il semble que tout ce qu'ils ont changé était un seul élément dans chaque projet : un fichier appelé composer.json
.
Ce fichier comprend une entrée intitulée description
, qui contient généralement exactement ce que vous attendez : une chaîne de texte décrivant à quoi sert le code source.
Et c'est tout ce que notre hacker a modifié, en changeant le texte de quelque chose d'informatif, comme Project PPP implements the QQQ protocol so you can RRR
, de sorte que leurs projets rapportaient à la place :
Pwned par XXX@XXXX.com. Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist.
La deuxième phrase, écrite moitié en russe, moitié en anglais, signifie :
Je cherche un emploi dans la sécurité des applications... etc.
Nous ne pouvons pas parler pour tout le monde, mais au fur et à mesure des CV (résumés), nous n'avons pas trouvé celui-ci très convaincant.
Également L'équipe de l'emballage dit que toutes les modifications non autorisées ont maintenant été annulées et que les 14 projets GitHub clonés n'ont été modifiés que pour inclure la sollicitation d'emploi du propriétaire.
Pour ce que ça vaut, le compte GitHub de l'expert potentiel en sécurité des applications est toujours actif et contient toujours ces projets «fourchus».
Nous ne savons pas si GitHub n'a pas encore décidé de supprimer le compte ou les projets, ou si le site a décidé de ne pas les supprimer.
Après tout, les projets de bifurcation sont monnaie courante et autorisés (lorsque les conditions de licence le permettent, au moins), et bien que décrivant un projet de code non malveillant avec le texte Pwned by XXXX@XXXX.com
est inutile, ce n'est pas illégal.
Que faire?
- Ne fais pas ça. Vous n'allez certainement pas attirer l'intérêt d'employeurs légitimes, et (si nous sommes honnêtes) vous n'allez même pas impressionner les cyber-escrocs non plus.
- Ne laissez pas les comptes inutilisés actifs si vous pouvez l'aider. Comme nous l'avons dit hier sur Journée mondiale du mot de passe, pensez à fermer les comptes dont vous n'avez plus besoin, car moins vous utilisez de mots de passe, moins il y en a à vous faire voler.
- Ne réutilisez pas les mots de passe sur plus d'un compte. L'hypothèse de Packagist est que les mots de passe abusés dans cette affaire traînaient dans les enregistrements de violation de données d'autres comptes où les victimes avaient utilisé le même mot de passe que sur leur compte Packagist.
- N'oubliez pas votre 2FA. Packagists exhorte tous ses propres utilisateurs à activer 2FA, donc un mot de passe seul ne suffit pas pour qu'un attaquant se connecte à votre compte, et recommande de faire de même sur votre compte GitHub également.
- N'acceptez pas aveuglément les mises à jour de la chaîne d'approvisionnement sans en vérifier l'exactitude. Si vous avez un réseau complexe de dépendances de packages, il est tentant de jeter vos responsabilités de côté et de laisser le système récupérer automatiquement toutes vos mises à jour, mais cela vous expose, ainsi que vos utilisateurs en aval, à un risque supplémentaire.
VOICI LES CONSEILS DE LA JOURNÉE MONDIALE DU MOT DE PASSE
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoAiStream. Intelligence des données Web3. Connaissance Amplifiée. Accéder ici.
- Frapper l'avenir avec Adryenn Ashley. Accéder ici.
- Achetez et vendez des actions de sociétés PRE-IPO avec PREIPO®. Accéder ici.
- La source: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 14
- 15%
- 2FA
- a
- Qui sommes-nous
- Absolute
- Accepter
- Compte
- hybrides
- a acquise
- infection
- ajoutant
- Supplémentaire
- conseils
- Tous
- permettre
- seul
- alternative
- Bien que
- an
- ainsi que
- tous
- Application
- sécurité de l'application
- une approche
- SONT
- autour
- AS
- hypothèse
- At
- auteur
- auto
- automatiquement
- éviter
- Backdoors
- image de fond
- BE
- était
- before
- Améliorée
- jusqu'à XNUMX fois
- plus gros
- BleepingComputer
- aveuglément
- frontière
- Bas et Leggings
- violation
- mais
- by
- Appelez-nous
- appelé
- CAN
- maisons
- Canaux centraux
- chaîne
- modifié
- Modifications
- en changeant
- fermeture
- code
- Couleur
- COM
- engagé
- Commun
- Communautés
- compliqué
- concerné
- Considérer
- considéré
- contient
- contenu
- contributeurs
- des bactéries
- copies
- pourriez
- couverture
- engendrent
- créée
- CVS
- cyber
- la cyber-sécurité
- données
- violation de données
- Date
- décidé
- certainement, vraiment, définitivement
- détails
- mobiles
- différent
- Commande
- do
- Ne fait pas
- faire
- Ne pas
- down
- download
- inconvénient
- chacun
- Easy
- non plus
- employeurs
- emploi
- fin
- Anglais
- assez
- entrée
- etc
- Pourtant, la
- tout le monde
- exactement
- attendre
- .fans
- Fonctionnalités:
- compagnon
- moins
- Déposez votre dernière attestation
- Trouvez
- suivi
- Pour
- fourche
- Fourchette
- trouvé
- quatre
- de
- véritable
- obtenez
- GitHub
- Go
- aller
- piraté
- pirate
- ait eu
- Half
- Vous avez
- la taille
- aider
- aide
- appuyez en continu
- flotter
- HTTPS
- Hybride
- i
- identifié
- if
- Illégal
- met en oeuvre
- in
- inactif
- comprendre
- inclut
- incroyablement
- inévitablement
- informatif
- plutôt ;
- intérêt
- développement
- IT
- SES
- lui-même
- JavaScript
- Emploi
- juste
- XNUMX éléments à
- Savoir
- au
- Laisser
- à gauche
- légitime
- Bibliothèque
- Licence
- comme
- lié
- Gauche
- le travail
- enregistrer
- vous connecter
- Style
- regardé
- recherchez-
- maintenir
- FAIT DU
- Fabrication
- malware
- gérés
- gestion
- manager
- Marge
- largeur maximale
- veux dire
- pourrait
- modifié
- PLUS
- Besoin
- Nouveauté
- aucune
- Ordinaire
- notamment
- maintenant
- of
- offrant
- officiel
- Vieux
- on
- ONE
- or
- Autre
- nos
- ande
- propre
- paquet
- Forfaits
- l'emballage
- Mot de Passe
- mots de passe
- paul
- pénétration
- PHP
- Platon
- Intelligence des données Platon
- PlatonDonnées
- Point
- position
- Poteaux
- PPP
- Problème
- Programmeurs
- Projet
- projets
- protocole
- fournit
- publier
- publié
- Puts
- vraiment
- recommande
- Articles
- de Presse
- supprimez
- Signalé
- dépôt
- responsabilités
- examen
- Analyse
- Round
- russe
- Saïd
- même
- Deuxièmement
- sécurité
- sur le lien
- sembler
- semble
- phrase
- Services
- unique
- site
- So
- sollicitation
- solide
- quelque chose
- Identifier
- code source
- parler
- spécialiste
- Encore
- volé
- stockée
- STORES
- Chaîne
- tel
- la quantité
- chaîne d'approvisionnement
- SVG
- combustion propre
- équipe
- conditions
- que
- qui
- La
- Les projets
- La Source
- leur
- Les
- puis
- Là.
- Ces
- l'ont
- this
- ceux
- bien que?
- fois
- à
- trop
- top
- mélanger
- Trackers
- transition
- communication
- TOUR
- deux
- sous
- inutilisé
- Actualités
- Upside
- pulsions
- URL
- utilisé
- d'utiliser
- utilisateurs
- d'habitude
- version
- via
- victimes
- souhaitez
- était
- Façon..
- façons
- we
- web
- bien connu
- ont été
- Quoi
- que
- qui
- WHO
- sera
- comprenant
- sans
- world
- vaut
- pourra
- code écrit
- encore
- you
- Votre
- zéphyrnet