Le risque croissant des applications tierces : rester en sécurité dans le cloud.

Exécution d'applications tierces dans un nuage est devenu un risque de sécurité croissant pour les organisations, mettant les charges de travail à un plus grand risque, en particulier lorsque le logiciel tiers expose certaines fonctions d'API au Web public. Le manque de gestion, de contrôle et de visibilité sur ces applications tierces et la chaîne d'approvisionnement logicielle en général explique pourquoi les attaquants les ciblent de plus en plus pour recueillir des informations et infiltrer les organisations.
Les cyber-attaquants d'aujourd'hui font constamment évoluer leurs techniques, faisant des charges de travail natives du cloud modernes une cible très tentante. En plus d'exploiter les API Web pour lancer des campagnes de cryptominage, ils abusent également des offres de niveau gratuit des plates-formes CI/CD cloud populaires pour convertir facilement la puissance de calcul en pièces numériques.
En fait, l'équipe de recherche d'Aqua a récemment découvert des dizaines de milliers de jetons d'utilisateur qui sont exposés via l'API Travis CI, qui permet à quiconque d'accéder aux journaux historiques en texte clair. Plus de 770 millions de journaux d'utilisateurs de niveau gratuit sont disponibles, à partir desquels vous pouvez facilement extraire des jetons, des secrets et d'autres informations d'identification associées à des fournisseurs de services cloud populaires. Les attaquants peuvent utiliser ces données sensibles pour lancer des cyberattaques massives et se déplacer latéralement dans le cloud.
Dans ce cas, les résultats ont été signalés à Travis CI et aux prestataires de services concernés, certains ayant initié une large rotation des clés. Cependant, pour comprendre comment les vulnérabilités des scripts tiers permettent aux cybercriminels d'accéder et de mener une attaque, nous devons examiner les méthodes utilisées par les acteurs malveillants pour dissimuler leurs activités et éviter d'être détectés.
Pour cela, décomposons une autre attaque intéressante capturée par l'équipe de recherche d'Aqua, cette fois sur un conteneur Apache Struts 2.
Étape 1 : Accès initial et évasion de la défense
Apache Struts 2 est un populaire open source Framework d'application Web multiplateforme utilisé par de nombreux développeurs dans leur travail quotidien. L'équipe a analysé comment les attaquants s'y prenaient pour exploiter une vulnérabilité Apache Struts 2 qui permet l'exécution de code à distance (RCE) sous les privilèges du serveur Web Apache.
Après avoir lancé une requête HTTP GET pour vérifier si un serveur est vulnérable, les pirates ont lancé une deuxième requête HTTP GET contenant une ligne de commande d'exécution qui télécharge et exécute un script shell dans le conteneur de cette organisation.
Une fois l'attaque d'accès initiale terminée, le premier objectif du script shell est de saper les défenses de sécurité et de préparer le terrain pour ses prochaines actions. En plus de désactiver les pare-feu, d'autoriser le trafic et de supprimer LD_PRELOAD, le script exécute plusieurs commandes kill pour éliminer tout logiciel malveillant ou processus concurrents tels que les cryptomineurs et les agents cloud.
Après avoir terminé toutes ces tâches, les attaquants suppriment ensuite les fichiers journaux dans le but de couvrir leurs traces et d'éviter d'être détectés après coup.
Étape 2 : Exécution
Alors que les pirates ont ouvert la voie à l'attaque globale, le script configure des variables et une fonction "get" qui est utilisée pour télécharger et exécuter le principal binaire du logiciel malveillant - un cryptomineur. Emballé par UPX pour éviter la détection via des hachages, ce binaire a deux fonctions.
En plus d'effectuer du cryptominage, il cherche également activement à exécuter plus de cryptomineurs sur plus d'instances de conteneurs. Pour ce faire, il rassemble toutes les informations d'identification disponibles contenues dans le conteneur lui-même et utilise une boucle pour se connecter aux systèmes voisins, afin de pouvoir télécharger et exécuter le même script malveillant sur ces systèmes latéraux. L'analyse que nous avons entreprise sur cette attaque spécifique a révélé que le malware a exécuté une analyse massive dans le but de trouver des ports SSH (port 22) et Redis (port 6379) ouverts dans le réseau de conteneurs interne, envoyant plus de 24,000 XNUMX paquets à ces deux ports.
Étape 3 : charge utile
Maintenant installé en toute sécurité dans le conteneur, le malware exécute une instance différente du même binaire avec un nom de processus différent, se reconnectant au serveur de commande et de contrôle (C&C) des attaquants pour télécharger et exécuter une variante « coinminer ». Pour soutenir et améliorer les efforts de cryptominage, l'attaquant a également tenté de charger un module de noyau MSR pour augmenter la vitesse globale du processus de minage.
Des facteurs de risque croissants
Les organisations font face à des cybercriminels modernes qui recherchent en permanence de nouvelles façons d'exploiter les vulnérabilités connues des logiciels tiers. L'année dernière, les cas de logiciels malveillants de cryptominage ont grimpé de 300 %. Une fois qu'une vulnérabilité est identifiée, les attaquants peuvent installer des logiciels malveillants cyptominer sur des organisations sans méfiance. Mener le processus de minage en utilisant les ressources de traitement de quelqu'un d'autre permet aux attaquants de générer des trésors numériques rentables.
Les attaques contre les logiciels d'extraction de crypto-monnaie peuvent entraîner des problèmes de performances importants dans les serveurs, les bases de données et les cadres de développement d'applications et même des scénarios de déni de service (DoS).
Cependant, une fois qu'un pied initial a été pris dans l'environnement d'une organisation, il n'y a pas grand-chose pour empêcher les mauvais acteurs de faire pivoter leurs efforts pour se concentrer sur d'autres actifs de plus grande valeur.
Les attaquants d'aujourd'hui perfectionnent toujours leurs tactiques pour cacher leurs activités de cryptominage. En plus de désactiver les pare-feu, ils désactivent l'interruption non masquable qui signale l'attention pour les erreurs matérielles non récupérables et les réinitialisations du système. De plus, ils téléchargent des scripts shell codés et masqués pour empêcher les outils de sécurité de comprendre leur intention. En fin de compte, leur objectif est d'échapper à la détection aussi longtemps que possible et de maximiser le potentiel de retour.
Sécuriser votre environnement cloud
Les organisations ont la lourde tâche de suivre toutes les charges de travail et les logiciels exécutés dans un environnement cloud, en particulier en raison de la vitesse incessante du cycle DevOps moderne. Les organisations doivent envisager d'appliquer une authentification à deux facteurs pour tous les utilisateurs, de définir des restrictions de protection des succursales et de restreindre l'exécution des demandes d'extraction dérivées sur la plate-forme CI afin d'améliorer la sécurité. Outre la détection et la correction des CVE et des failles de sécurité connues, la surveillance continue des conteneurs et le dépannage des modèles de comportement suspects sont essentiels. L'utilisation de l'analyse d'exécution, avec des outils qui comportent des ensembles de règles intégrés, sur des applications tierces comme Apache Struts 2 aidera à signaler le potentiel
attaques et exploits d'exécution. À long terme, une solution dédiée qui régit correctement l'accès des tiers dans la chaîne d'approvisionnement logicielle d'une organisation peut aider à éviter ce risque à l'avenir.