Attaque de la chaîne d'approvisionnement : des paquets Laravel Lang ciblés par un malware voleur d'identifiants
Une attaque sophistiquée de la chaîne d'approvisionnement a compromis les paquets de localisation **Laravel Lang**, exposant les développeurs à un malware voleur d'identifiants. Les attaquants ont abusé des balises de version **GitHub** pour distribuer du code malveillant via des paquets **Composer**, affectant plusieurs dépôts.

Les sociétés de sécurité **StepSecurity**, **Aikido Security** et **Socket** ont émis des avertissements concernant le compromis, soulignant que les attaquants ont réécrit les balises **GitHub** sur quatre dépôts maintenus par l'organisation **Laravel Lang**, plutôt que de publier de nouvelles versions malveillantes. Cela leur a permis d'injecter du code malveillant dans ce qui semblait être des versions légitimes.
### Paquets affectés
Les paquets affectés incluent `laravel-lang/lang`, `laravel-lang/http-statuses`, `laravel-lang/attributes`, et potentiellement `laravel-lang/actions`. Ce sont des paquets de localisation tiers et ne font pas partie du projet officiel **Laravel**.
**Aikido Security** a rapporté que les attaquants ont compromis 233 versions sur trois dépôts, tandis que **Socket** a indiqué qu'environ 700 versions historiques pourraient avoir été impactées.
### Mécanisme d'attaque
La caractéristique distinctive de l'attaque réside dans le fait que le code source du projet n'a pas été directement modifié. Au lieu de cela, les attaquants ont exploité une fonctionnalité **GitHub** qui permet aux balises de pointer vers des commits dans des forks du même dépôt.
**StepSecurity** a expliqué : « Plutôt que de publier une nouvelle version malveillante, l'attaquant a réécrit chaque balise git existante dans chaque dépôt pour pointer vers un nouveau commit malveillant. »
Cette technique a permis aux attaquants de publier ce qui semblait être des balises de version légitimes pour le projet, qui menaient en réalité à des commits malveillants stockés dans un fork du dépôt contrôlé par l'attaquant. Lorsque les développeurs installaient le paquet via **Composer**, il téléchargeait le code malveillant tout en semblant installer des versions légitimes de **Laravel Lang**.
### Exécution du voleur d'identifiants
Les chercheurs ont découvert que les versions malveillantes introduisaient un fichier nommé `src/helpers.php`, automatiquement chargé par **Composer**.

*Payload helpers.php ajouté à la section autoload de composer.json*
Le code injecté agissait comme un dropper, téléchargeant un second payload depuis le serveur de commande et contrôle de l'attaquant à l'adresse `flipboxstudio[.]info`.
Le payload PHP téléchargé était un grand voleur d'identifiants multiplateforme pour Linux, macOS et Windows. Il récolte des identifiants cloud, des secrets Kubernetes, des tokens Vault, des identifiants Git, des secrets CI/CD, des clés SSH, des données de navigateur, des portefeuilles de cryptomonnaies, des gestionnaires de mots de passe, des configurations VPN et des fichiers de configuration locaux `.env`.

*Motifs d'expressions régulières utilisés pour voler des secrets. Source : BleepingComputer*
Le malware contient également des motifs d'expressions régulières pour extraire les clés **AWS**, les tokens **GitHub**, les tokens **Slack**, les secrets **Stripe**, les identifiants de base de données, les JWT, les clés privées SSH et les phrases de récupération de cryptomonnaies à partir de fichiers et de variables d'environnement.
Sur les systèmes Windows, le payload PHP extrait un exécutable encodé en base64, écrit dans le dossier `%TEMP%` sous un nom de fichier `.exe` aléatoire, puis lancé.
L'analyse de **BleepingComputer** a identifié l'infostealer Windows comme 'DebugElevator', ciblant Chrome, Brave et Edge pour extraire les clés de chiffrement liées aux applications (App-Bound Encryption keys) afin de déchiffrer les identifiants stockés dans le navigateur.

*Exécutable DebugElevator. Source : BleepingComputer*
Un chemin PDB intégré fait référence au nom de compte Windows 'Mero' et contient 'claude', indiquant potentiellement une assistance IA dans le développement du malware Windows :
C:\Users\Mero\OneDrive\Desktop\stuff\claude\Chromium-DebugElevator\x64\Release\DebugChromium.pdb
Une fois extraites, les données sensibles sont chiffrées et renvoyées au serveur C2.
### Atténuation
**Aikido Security** a signalé l'incident à **Packagist**, qui a rapidement supprimé les versions malveillantes et temporairement retiré les paquets affectés de la liste.
Les développeurs utilisant les paquets **Laravel Lang** sont invités à :
* Vérifier les versions des paquets installés.
* Changer les identifiants exposés.
* Inspecter les systèmes à la recherche d'indicateurs de compromission.
* Vérifier les connexions sortantes historiques vers `flipboxstudio[.]info`.
<div>
<p><a rel="noopener nofollow" href="https://hubs.li/Q048zztN0"><img src="https://www.bleepstatic.com/c/p/validation-gap.jpg" data-src="https://www.bleepstatic.com/c/p/validation-gap.jpg" alt="article image"></a></p>
<div>
<h2><a rel="noopener nofollow" href="https://hubs.li/Q048zztN0">Le fossé de validation : le pentesting automatisé répond à une question. Vous en avez besoin de six.</a></h2>
<p>Les outils de pentesting automatisés apportent une réelle valeur, mais ils ont été conçus pour répondre à une seule question : un attaquant peut-il se déplacer sur le réseau ? Ils n'ont pas été conçus pour tester si vos contrôles bloquent les menaces, si vos règles de détection se déclenchent, ou si vos configurations cloud tiennent bon.</p>
<p>Ce guide couvre les 6 surfaces que vous devez réellement valider.</p>
<p><a rel="noopener nofollow" href="https://hubs.li/Q048zztN0">Télécharger maintenant</a></p>
</div>
</div>