La tâche des défenseurs qui n’ont pas été directement touchés par les attaques d’Uber et de Rockstar est de permettre à leurs équipes de progresser en se mettant à la place des entreprises ciblées.
Les professionnels de la sécurité décrivent souvent la sécurité comme un processus et un système, et non comme un objectif en soi, et l’actualité récente d’Uber et de Rockstar Games ne fait que le confirmer. Les détails continuent d’émerger, mais nous pouvons toujours analyser ces violations à un niveau plus élevé et appliquer certains enseignements à nos propres programmes de cybersécurité.
Tout comme l’attaque de Lapsus$ contre Electronic Arts en juillet 2021, il semble que les attaquants aient acheté leurs identifiants volés auprès de courtiers en accès initiaux (Initial Access Brokers : IAB). Les IAB récupèrent généralement les identifiants en masse par le biais d’attaques lancées via des emails de phishing et en infectant les appareils avec des chevaux de Troie voleurs d’informations via diverses méthodes. Ils utilisent un malware pour rassembler tous les mots de passe stockés, les cookies de session et même les portefeuilles de crypto-monnaie qu’ils peuvent trouver sur le PC de la victime et ensuite ils mettent le lot en vente sur le dark web.
Dans un communiqué, Uber a affirmé que l’attaque avait commencé lorsque les identifiants d’un sous-traitant pour accéder au réseau interne d’Uber avaient été achetés par Lapsus$ auprès d’un IAB. Les attaquants ont ensuite tenté d’utiliser les identifiants à plusieurs reprises, déclenchant ainsi de nombreuses notifications push multi-facteur au niveau de l’application Duo Security sur le téléphone du sous-traitant jusqu’à ce que ce dernier ciblé massivement succombe finalement au déluge et accepte l’une d’entre elles, permettant ainsi aux attaquants de pénétrer.
Uber estime que les intrus ont élevé leurs privilèges, mais dans une conversation sur Telegram, ils ont affirmé avoir trouvé un script PowerShell contenant un mot de passe administratif pour l’outil PAM (Privileged Access Management) d’Uber. Ce précieux mot de passe leur a donné un accès “uber” au réseau interne d’Uber.
Ce niveau d’accès a permis aux intrus de parcourir à leur guise le réseau en récupérant des captures d’écran d’outils internes, des tableaux de bord de services Cloud, des tableaux de bord de sécurité et même d’accéder au système de gestion du programme de sécurité Bug Bounty.
Comment empêcher que des attaques similaires ne soient lancées contre vos systèmes ? Examinons certains détails qui ont permis à cette attaque de réussir, pour voir si certaines organisations ne pourraient pas en tirer des leçons afin d’améliorer leur posture de sécurité.
L’authentification multi-facteur peut s’avérer insuffisante
Alors que les entreprises continuent d’adopter l’authentification multi-facteur, les attaquants apprennent à mieux la contourner. Uber avait déployé Duo, un service de notification push de Cisco, pour protéger son service d’accès à distance VPN, ce qui est une très bonne chose. Le problème est que les cybercriminels ont compris que s’ils spammaient à plusieurs reprises une cible avec des alertes, le plus souvent, la cible en question pouvait simplement céder et appuyer sur ‘Accepter’.
Comment réagir ? Eh bien, dans un monde parfait, nous utiliserions tous l’authentification FIDO2 qui nécessite un jeton matériel ou un smartphone qui doit être physiquement proche de l’appareil qui s’authentifie.
Cependant, tout le monde n’est pas prêt à adopter cette technologie, donc les services multi-facteur comme Duo offrent également une approche push hybride, où l’application vous demandant de vous authentifier VOUS donne le code à 6 chiffres et, au lieu d’appuyer sur ‘Accepter’ sur votre appareil, vous devez saisir le code secret. Une telle précaution obligerait le cybercriminel à interagir avec la victime et à la convaincre d’entrer le code en son nom. Pas impossible, mais il s’agit tout de même d’un obstacle beaucoup plus important que le simple fait d’appuyer sur un gros bouton vert brillant.
Élévation de privilèges : Ralentir la progression (sur votre réseau)
Avec suffisamment de temps, il existe presque toujours un moyen pour un utilisateur autorisé d’obtenir des privilèges au niveau d’un compte auquel il ne devrait pas avoir accès. La clé pour se défendre contre ce type d’attaque est de faire en sorte que l’opération prenne suffisamment de temps pour permettre de détecter la présence des attaquants et les expulser avant qu’ils ne réussissent leur tentative.
L’attaquant affirme avoir trouvé le mot de passe administrateur de la solution PAM (Privileged Access Management) d’Uber dans un fichier PowerShell sur un partage de fichiers accessible par l’utilisateur. Une telle situation n’est clairement pas souhaitable, mais elle débouche sur la question suivante : Une telle situation est-elle suffisante pour faire causer de sérieux dégâts ?
Sans connaître, pour l’instant, les spécificités du système Uber concerné, la plupart d’entre nous se demanderaient pourquoi l’authentification multi-facteur n’était pas en place. En retournant la question : avez-vous besoin d’une authentification multi-facteur pour vous connecter aux systèmes internes ? Pour des fonctions aussi critiques que la gestion des privilèges, le code source, les RH ou la finance, vous devez faire preuve de la même prudence que lors de l’authentification des utilisateurs pour l’accès au réseau lui-même et vous ne devez jamais partir du principe qu’une personne sur le réseau est autorisée à accéder aux systèmes sensibles simplement parce qu’elle s’est authentifiée au niveau du réseau global.
Tout comme la réalisation d’un test d’intrusion externe sur une base semestrielle, il est également important de faire un audit de votre environnement interne. Il s’agissait certainement d’une solution de contournement temporaire ou d’une ancienne pratique qui avait été oubliée, mais ce genre d’évènement a lieu dans presque tous les réseaux raisonnablement complexes.
Une authentification unique n’est plus suffisante et la zone “interne” n’existe plus
Le modèle ZTNA (Zero-Trust Network Access) offre un accès uniquement à ce dont vous avez précisément besoin, quand vous en avez besoin, et de plus il ne doit jamais croire que vous êtes qui vous dites être. Authentifiez les autorisations de chaque utilisateur au moment de l’accès pour vous assurer que tout est en ordre, comme vous le feriez pour une application externe.
En fait, l’un des avantages de cette approche est que vous pouvez, en fait, éliminer entièrement le périmètre, ou du moins vous pouvez cesser de compter sur des solutions de type VPN, en réduisant les couches de protection à grande échelle concernant les ressources se trouvant derrière le pare-feu et le WAF. Vos ressources seront, certes, moins emmaillotés dans des couches de “protection”, mais le fait de vérifier sérieusement et soigneusement que chaque demande d’accès soit authentifiée et autorisée est, en fin de compte, une bien meilleure gestion des actifs, facilitant ainsi la détection des problèmes lorsqu’ils surviennent.
Votre réseau ne doit pas ressembler à un bonbon avec une coque extérieure dure et un centre tout mou. Comme je l’ai mentionné lors de notre bref podcast sur les incidents ayant ciblé Uber, au moment de leur première divulgation publique, les réseaux les mieux gérés partent du principe qu’une violation aura lieu à un moment donné. Aucun élément dangereux ne doit être négligé car il pourrait bien vous porter préjudice si ce dernier devait se retrouver dans les mains d’un individu mal intentionné.
Conclusion
Je trouve que c’est une bonne pratique, chaque fois que la sécurité fait la une de l’actualité, d’essayer d’en tirer des leçons et d’imaginer comment ma propre équipe pourrait s’en sortir face à un adversaire similaire. Une défense réseau véritablement efficace est difficile à obtenir, mais en utilisant de tels enseignements pour affiner vos outils, votre objectif sera, au fil du temps, un peu plus facile à atteindre.
Le but de nos couches de défense ne devrait pas être de s’attendre à ce que l’une d’entre elles stoppe, comme par magie, un attaquant déterminé. Au contraire, chacune d’entre elles devrait être considérée comme une opportunité supplémentaire de gagner du temps.
Ce temps permet à l’équipe qui surveille vos systèmes de repérer l’anomalie et de commencer à investiguer. L’objectif est que ces couches vous permettent de gagner suffisamment de temps pour trouver le point d’entrée, le traiter et expulser les attaquants avant qu’ils n’atteignent leurs objectifs.
Lorsque l’objectif de l’attaquant est d’implanter des malwares, de voler une propriété intellectuelle spécifique ou même de déclencher une attaque de ransomware/d’extorsion, ce processus prend généralement quelques jours et cette stratégie devrait suffire à les stopper dans leur élan.
Malheureusement, comme dans le cas d’Uber, de Rockstar et d’autres victimes de Lapsus$, l’attaquant cherchait tout et n’importe quoi, simplement pour faire la une de l’actualité et mettre les victimes en difficulté. Une telle compromission prend très peu de temps pour l’attaquant et nécessite ainsi que le réseau et la surveillance soient en parfait état en termes de prévention.
Les dégâts causés par ces incidents seront temporaires, et j’espère qu’en fin de compte, nous pourrons tous en bénéficier en les utilisant pour améliorer nos propres processus et architectures. La sécurité est un domaine en constante évolution et le mieux que nous puissions faire, c’ est de travailler ensemble, d’apprendre de nos erreurs et de continuer à placer la barre toujours plus haut en matière de sécurité pour freiner les cybercriminels.
Billet inspiré de Uber, Rockstar fall to social engineering attacks; and you?, sur le Blog Sophos.