La semaine dernière, Progress Software Corporation, qui vend des logiciels et des services pour le développement d'interfaces utilisateur, les devops, la gestion de fichiers et plus encore, a alerté les clients de son Transfert MOVEit et connexe MOVEit Nuage produits sur un vulnérabilité critique doublé CVE-2023-34362.
Comme son nom l'indique, MOVEit Transfer est un système qui facilite le stockage et le partage de fichiers au sein d'une équipe, d'un service, d'une entreprise ou même d'une chaîne d'approvisionnement.
Dans son propres mots, "MOVEit fournit une collaboration sécurisée et des transferts de fichiers automatisés de données sensibles et des capacités avancées d'automatisation des flux de travail sans avoir besoin de scripts."
Malheureusement, le frontal Web de MOVEit, qui facilite le partage et la gestion de fichiers à l'aide d'un simple navigateur Web (un processus généralement considéré comme moins sujet aux fichiers mal acheminés ou « perdus » que le partage par e-mail), s'est avéré avoir un SQL vulnérabilité aux injections.
Les injections SQL expliquées
Des bogues d'injection SQL basés sur le Web surviennent lorsqu'une requête HTTP soumise à un serveur Web est converti de manière non sécurisée en une commande de requête qui est ensuite émise par le serveur lui-même pour faire une recherche dans la base de données afin de déterminer quelle réponse HTTP construire.
Par exemple, une recherche de base de données déclenchée à partir d'une page Web peut se terminer par une URL demandée par votre navigateur qui ressemble à ceci :
https://search.example.com/?type=file&name=duck
Le texte de la requête duck
pourrait ensuite être extrait du paramètre de nom dans l'URL, converti en syntaxe de requête de base de données et assemblé en une commande à soumettre au serveur de base de données.
Si les données backend sont stockées dans une base de données SQL, le serveur Web peut convertir cette URL en une commande SQL comme celle illustrée ci-dessous.
Les %
caractères ajoutés au texte duck
signifient que le terme de recherche peut apparaître n'importe où dans le nom de fichier récupéré et que les guillemets simples à chaque extrémité sont ajoutés en tant que marqueurs pour désigner une chaîne de texte SQL :
SELECT nom de fichier FROM filesdb WHERE nom LIKE '%duck%'
Les données qui reviennent de la requête pourraient ensuite être bien formatées, converties en HTML et renvoyées sous forme de réponse HTTP à votre navigateur, vous donnant peut-être une liste cliquable de fichiers correspondants à télécharger.
Bien sûr, le serveur Web doit être très prudent avec les noms de fichiers qui sont soumis comme terme de recherche, au cas où un utilisateur malveillant créerait et demanderait une URL comme celle-ci :
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Si ce terme de recherche a été aveuglément converti en une chaîne de requête, vous pourrez peut-être inciter le serveur Web à envoyer au serveur SQL une commande comme celle-ci :
SELECT filename FROM filesdb WHERE name LIKE '%duck';DROP TABLE filesdb;--%'
Parce qu'un point-virgule (;
) agit comme un séparateur d'instructions dans SQL, cette commande sur une seule ligne revient en fait à envoyer trois commandes consécutives :
SELECT filename FROM filesdb WHERE name LIKE '%duck' -- correspond aux noms se terminant par canard DROP TABLE filesdb -- supprime toute la base de données --%' -- commentaire, ne fait rien
Sournoisement, parce que chaque après --
est rejeté par SQL en tant que commentaire du programmeur, ces trois lignes sont identiques à :
SELECT nom de fichier FROM filesdb WHERE nom LIKE '% canard' DROP TABLE filesdb
Vous obtiendrez une liste de tous les noms de fichiers dans la base de données qui se terminent par la chaîne duck
(le caractère SQL spécial %
au début d'un terme de recherche signifie "correspond à tout jusqu'à ce point")…
… mais vous serez la dernière personne à tirer quelque chose d'utile du filesdb
base de données, car votre terme de recherche malveillant suivra la recherche avec la commande SQL pour supprimer toute la base de données.
Petites tables Bobby
Si vous avez déjà entendu des administrateurs système ou des codeurs faire des blagues sur Petites tables Bobby, c'est parce que ce type d'injection SQL a été immortalisé dans un Dessin animé XKCD de retour dans 2007:
Comme le dessin animé se termine dans la dernière image, vous devez vraiment nettoyer les entrées de votre base de données, ce qui signifie que vous devez faire très attention à ne pas permettre à la personne soumettant le terme de recherche de contrôler la façon dont la commande de recherche est interprétée par les serveurs principaux impliqués.
Vous pouvez comprendre pourquoi ce type d'astuce est connu sous le nom d'attaque par injection : dans les exemples ci-dessus, les termes de recherche malveillants entraînent l'injection d'une commande SQL supplémentaire dans le traitement de la requête.
En fait, ces deux exemples impliquent deux fommands injectés, suivant le caractère "guillemet fermant" inséré sournoisement pour terminer la chaîne de recherche plus tôt. La première commande supplémentaire est la commande destructrice DROP TABLE
instruction. La seconde est une "commande de commentaire" qui fait que le reste de la ligne est ignoré, mangeant ainsi astucieusement la fin %'
caractères générés par le générateur de commandes du serveur, qui auraient autrement provoqué une erreur de syntaxe et empêché l'injection DROP TABLE
commande de travailler.
De bonnes nouvelles et de mauvaises nouvelles
La bonne nouvelle dans ce cas est que Progress a corrigé toutes ses versions MOVEit prises en charge, ainsi que son service basé sur le cloud, une fois qu'il a pris connaissance de la vulnérabilité.
Donc, si vous utilisez la version cloud, vous êtes maintenant automatiquement à jour, et si vous exécutez MOVEit sur votre propre réseau, nous espérons que vous avez déjà corrigé.
La mauvaise nouvelle est que cette vulnérabilité était un jour zéro, ce qui signifie que Progress l'a découvert parce que les méchants l'avaient déjà exploitée, plutôt qu'avant de savoir comment le faire.
En d'autres termes, au moment où vous avez corrigé vos propres serveurs (ou que Progress a corrigé son service cloud), les escrocs ont peut-être déjà injecté des commandes malveillantes dans vos bases de données backend MOVEit SQL, avec une gamme de résultats possibles :
- Suppression des données existantes. Comme indiqué ci-dessus, l'exemple classique d'une attaque par injection SQL est la destruction de données à grande échelle.
- Exfiltration de données existantes. Au lieu de supprimer des tables SQL, les attaquants pourraient injecter leurs propres requêtes, apprenant ainsi non seulement la structure de vos bases de données internes, mais aussi extraire et voler leurs parties les plus juteuses.
- Modification des données existantes. Des attaquants plus subtils pourraient décider de corrompre ou de perturber vos données au lieu (ou en plus) de les voler.
- Implantation de nouveaux fichiers, y compris des logiciels malveillants. Les attaquants pourraient injecter des commandes SQL qui, à leur tour, lancent des commandes système externes, réalisant ainsi l'exécution arbitraire de code à distance à l'intérieur de votre réseau.
Un groupe d'attaquants, allégué par Microsoft pour être (ou être connecté avec) le tristement célèbre gang de rançongiciels Clop, ont apparemment utilisé cette vulnérabilité pour implanter ce qu'on appelle Webshells sur les serveurs concernés.
Si vous n'êtes pas familier avec les webshells, lisez notre explicateur en anglais simple que nous avons publié au moment des attentats gênants de HAFNIUM en mars 2021 :
Danger de la coque Web
En termes simples, les webshells offrent aux attaquants qui peuvent ajouter de nouveaux fichiers à votre serveur Web un moyen de revenir plus tard, de s'introduire à leur guise et de transformer cet accès en écriture seule en un contrôle à distance complet.
Les Webshells fonctionnent car de nombreux serveurs Web traitent certains fichiers (généralement déterminés par le répertoire dans lequel ils se trouvent ou par l'extension qu'ils ont) comme des scripts exécutables. utilisé pour générer la page à renvoyer, plutôt qu'en tant que contenu réel à utiliser dans la réponse.
Par exemple, IIS (serveur d'informations Internet) de Microsoft est généralement configuré de sorte que si un navigateur Web demande un fichier appelé, par exemple, hello.html
, le contenu brut non modifié de ce fichier sera lu et renvoyé au navigateur.
Donc, s'il y a des logiciels malveillants dans ce hello.html
fichier, cela affectera la personne naviguant sur le serveur, pas le serveur lui-même.
Mais si le fichier est appelé, disons, hello.aspx
(où ASP est l'abréviation de l'expression auto-descriptive Active Server Pages), alors ce fichier est traité comme un programme de script que le serveur doit exécuter.
Exécuter ce fichier en tant que programme, au lieu de simplement le lire en tant que données, générera la sortie à envoyer en réponse.
En d'autres termes, s'il y a des logiciels malveillants dans ce hello.aspx
fichier, cela affectera directement le serveur lui-même, et non la personne qui y accède.
En bref, déposer un fichier webshell comme effet secondaire d'une attaque par injection de commande signifie que les attaquants peuvent revenir plus tard, et en visitant l'URL correspondant au nom de fichier de ce webshell…
… ils peuvent exécuter leurs logiciels malveillants directement à l'intérieur de votre réseau, en n'utilisant rien de plus suspect qu'une requête HTTP sans prétention faite par un navigateur Web de tous les jours.
En effet, certains webshells se composent d'une seule ligne de script malveillant, par exemple, une seule commande qui dit "obtenir le texte d'un en-tête HTTP spécifique dans la requête et l'exécuter en tant que commande système".
Cela donne un accès de commande et de contrôle à usage général à tout attaquant qui connaît la bonne URL à visiter et le bon en-tête HTTP à utiliser pour livrer la commande malveillante.
Que faire?
- Si vous êtes un utilisateur MOVEit, assurez-vous que toutes les instances du logiciel sur votre réseau sont corrigées.
- Si vous ne pouvez pas patcher maintenant, désactivez les interfaces Web (HTTP et HTTP) vers vos serveurs MOVEit jusqu'à ce que vous le puissiez. Apparemment, cette vulnérabilité n'est exposée que via l'interface Web de MOVEit, et non via d'autres chemins d'accès tels que SFTP.
- Rechercher vos journaux pour les fichiers de serveur Web nouvellement ajoutés, les comptes d'utilisateurs nouvellement créés et les téléchargements de données volumineux de manière inattendue. Progress a une liste d'endroits à rechercher, ainsi que des noms de fichiers et à rechercher.
- Si vous êtes programmeur, désinfectez vos entrées.
- Si vous êtes un programmeur SQL, utilisé des requêtes paramétrées, plutôt que de générer des commandes de requête contenant des caractères contrôlés par la personne qui envoie la requête.
Dans de nombreuses attaques Webshell, sinon la plupart, étudiées jusqu'à présent, Les progrès suggèrent que vous trouverez probablement un fichier webshell malveillant nommé human2.aspx
, peut-être avec des fichiers malveillants nouvellement créés avec un .cmdline
extension.
(Les produits Sophos détecteront et bloqueront les fichiers webshell connus dès que Troj/WebShel-GO, qu'ils s'appellent human2.aspx
ou pas.)
N'oubliez pas, cependant, que si d'autres attaquants étaient au courant de ce jour zéro avant la sortie du correctif, ils ont peut-être injecté des commandes différentes, et peut-être plus subtiles, qui ne peuvent pas être détectées en analysant les logiciels malveillants qui ont été laissés ou en recherchant pour les noms de fichiers connus susceptibles d'apparaître dans les journaux.
N'oubliez pas de revoir vos journaux d'accès en général, et si vous n'avez pas le temps de le faire vous-même, n'ayez pas peur de demander l'aide!
En savoir plus sur Détection et réponse gérées par Sophos:
Recherche, détection et réponse aux menaces 24h/7 et XNUMXj/XNUMX ▶
Vous manquez de temps ou d'expertise pour vous occuper de la réponse aux menaces de cybersécurité ? Vous craignez que la cybersécurité finisse par vous distraire de toutes les autres choses que vous devez faire ?
- 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/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- :possède
- :est
- :ne pas
- :où
- $UP
- 1
- 15%
- 2021
- a
- Capable
- Qui sommes-nous
- à propos de ça
- au dessus de
- Absolute
- accès
- hybrides
- la réalisation de
- actes
- présenter
- actually
- ajouter
- ajoutée
- Supplémentaire
- Avancée
- affecter
- peur
- Après
- Tous
- permettre
- le long de
- déjà
- aussi
- an
- ainsi que le
- tous
- quoi que ce soit d'artificiel
- de n'importe où
- apparaître
- SONT
- AS
- At
- attaquer
- Attaques
- auteur
- auto
- Automatisation
- automatiquement
- Automation
- conscients
- RETOUR
- backend
- image de fond
- Mal
- BE
- est devenu
- car
- était
- before
- derrière
- ci-dessous
- aveuglément
- Block
- Bobby
- frontière
- tous les deux
- Bas et Leggings
- violation
- Pause
- navigateur
- Parcourir
- bogues
- mais
- by
- appelé
- venu
- CAN
- capacités
- les soins
- prudent
- dessin animé
- maisons
- Causes
- causé
- les causes
- Canaux centraux
- certaines
- chaîne
- caractère
- caractères
- classiques
- le cloud
- code
- collaboration
- Couleur
- comment
- vient
- commentaire
- Société
- complet
- connecté
- consécutif
- considéré
- construire
- contenu
- des bactéries
- contrôlée
- convertir
- converti
- SOCIÉTÉ
- Correspondant
- pourriez
- cours
- couverture
- engendrent
- créée
- Crooks
- Clients
- Cybersécurité
- données
- violation de données
- Base de données
- bases de données
- décider
- livrer
- Département
- détecté
- Détection
- déterminé
- Développement
- DevOps
- différent
- directement
- Commande
- Perturber
- do
- Ne pas
- download
- téléchargements
- Goutte
- Goutte
- doublé
- chacun
- "Early Bird"
- Easy
- fin
- erreur
- Pourtant, la
- JAMAIS
- de tous les jours
- exemple
- exemples
- exécuter
- exécution
- existant
- nous a permis de concevoir
- Exploiter
- exposé
- extension
- externe
- supplémentaire
- fait
- familier
- loin
- figuré
- Déposez votre dernière attestation
- Fichiers
- Trouvez
- Prénom
- suivre
- Abonnement
- Pour
- trouvé
- CADRE
- de
- avant
- L'extrémité avant
- Gang
- Général
- à usage général
- généralement
- générer
- généré
- générateur
- générateur
- obtenez
- donne
- Don
- Bien
- l'
- Réservation de groupe
- ait eu
- Maniabilité
- Vous avez
- entendu
- la taille
- d'espérance
- flotter
- Comment
- How To
- Cependant
- HTML
- http
- HTTPS
- Chasse
- if
- C'est
- in
- Y compris
- infâme
- d'information
- injecter
- entrées
- plutôt ;
- Interfaces
- interfaces
- interne
- Internet
- développement
- impliquer
- impliqué
- Publié
- IT
- SES
- lui-même
- juste
- juste un
- connu
- gros
- grande échelle
- Nom de famille
- plus tard
- lancer
- apprentissage
- à gauche
- moins
- comme
- Gamme
- lignes
- Liste
- LOOKS
- rechercher
- LES PLANTES
- a prendre une
- FAIT DU
- Fabrication
- malware
- gérer
- gérés
- gestion
- de nombreuses
- Mars
- Marge
- assorti
- largeur maximale
- Mai..
- signifier
- sens
- veux dire
- Microsoft
- pourrait
- PLUS
- (en fait, presque toutes)
- prénom
- Nommé
- noms
- Besoin
- Besoins
- réseau et
- Nouveauté
- nouvellement
- nouvelles
- Ordinaire
- rien
- maintenant
- of
- de rabais
- on
- une fois
- ONE
- uniquement
- or
- de commander
- Autre
- autrement
- nos
- ande
- les résultats
- sortie
- propre
- page
- paramètre
- les pièces
- Pièce
- paul
- être
- personne
- Des endroits
- Platon
- Intelligence des données Platon
- PlatonDonnées
- position
- possible
- Poteaux
- Probablement
- processus
- Produits
- Programme
- Programmeur
- Progrès
- fournir
- fournit
- publié
- mettre
- requêtes
- Devis
- gamme
- ransomware
- plutôt
- raw
- Lire
- en cours
- vraiment
- en relation
- relatif
- éloigné
- répondre
- nécessaire
- demandé
- demandes
- réponse
- REST
- Avis
- bon
- Courir
- pour le running
- même
- dire
- dit
- balayage
- scripts
- Rechercher
- recherche
- Deuxièmement
- sécurisé
- sur le lien
- Sells
- envoyer
- envoi
- sensible
- envoyé
- service
- Services
- Partager
- partage
- Shorts
- montrer
- montré
- simplement
- unique
- So
- jusqu'à présent
- Logiciels
- solide
- quelques
- spécial
- groupe de neurones
- SQL
- Injection SQL
- Commencer
- Déclaration
- Boutique
- stockée
- Chaîne
- structure
- soumettre
- soumis
- tel
- Suggère
- la quantité
- chaîne d'approvisionnement
- Appareils
- soupçonneux
- SVG
- syntaxe
- combustion propre
- table
- Prenez
- équipe
- terme
- conditions
- que
- qui
- Les
- leur
- Les
- puis
- Là.
- Ces
- l'ont
- des choses
- this
- menace
- trois
- tout au long de
- fiable
- à
- top
- transférer
- transferts
- transition
- communication
- traiter
- déclenché
- TOUR
- Tourné
- deux
- jusqu'à
- mise à jour
- URL
- utilisé
- d'utiliser
- Utilisateur
- Interface utilisateur
- en utilisant
- d'habitude
- version
- via
- Visiter
- vulnérabilité
- était
- Façon..
- we
- web
- navigateur web
- le serveur web
- Basé sur le Web
- semaine
- WELL
- ont été
- Quoi
- quand
- que
- qui
- WHO
- la totalité
- why
- sera
- comprenant
- sans
- des mots
- Activités principales
- faire des exercices
- workflow
- l'automatisation du workflow
- de travail
- inquiet
- pourra
- you
- Votre
- vous-même
- zéphyrnet