Explication des vulnérabilités
Apache Superset, un outil de visualisation et d’exploration de données open source, a été récemment découvert avec une configuration par défaut dangereuse.
Selon les recherches menées par la société de cybersécurité Horizon3.ai, deux tiers de tous les serveurs Superset – soit plus de 2 000 instances – ont été trouvés avec cette configuration par défaut dangereuse, laissant les serveurs exposés aux attaquants avec des privilèges administratifs.
Le problème réside dans le SECRET_KEY de Superset, qui est utilisé pour la gestion des états d’utilisateur. Le SECRET_KEY est censé être généré aléatoirement et stocké dans un fichier de configuration local. Cependant, lors de l’installation de Superset, la valeur par défaut du SECRET_KEY est souvent utilisée, rendant l’application vulnérable aux attaques.
Les attaquants peuvent exploiter cette vulnérabilité pour se connecter au serveur Superset en tant qu’administrateur et accéder et modifier les données connectées à ces serveurs, collecter des informations d’identification et exécuter du code à distance.
De plus, Horizon3.ai a découvert plusieurs chemins d’attaque permettant l’exécution de code à distance et le vol de données d’identification, y compris les hachages de mot de passe utilisateur et les identifiants de base de données.
Bien que la société ne divulgue pas les méthodes d’exploitation spécifiques, elle a averti que les attaquants intéressés pourraient facilement les trouver.
La solution pour corriger cette vulnérabilité consiste à générer un SECRET_KEY de manière sécurisée et à le configurer en suivant les instructions fournies.En outre, les informations sensibles telles que les mots de passe de base de données doivent également être ré-encryptées avec le nouveau SECRET_KEY.
La version la plus récente de Superset a également été mise à jour pour empêcher le serveur de démarrer s’il est configuré avec un SECRET_KEY par défaut.
Il est important de noter que même si un serveur Superset est derrière un SSO, il est toujours recommandé de corriger la vulnérabilité car il peut y avoir d’autres chemins d’attaque qui exposent les identifiants utilisateur.
Les utilisateurs de Superset sont encouragés à vérifier si leur serveur est vulnérable et à prendre les mesures de correction nécessaires immédiatement.
La société Horizon3.ai a fourni un script pour vérifier si le cookie de session Superset est signé avec l’un des SECRET_KEY par défaut connus.
Génération d’une SECRET_KEY
Voici quelques étapes à suivre pour générer une SECRET_KEY sécurisée :
Utilisez un générateur de nombres aléatoires cryptographiques pour générer une chaîne de caractères aléatoire.
Par exemple, vous pouvez utiliser la bibliothèque secrets de Python pour générer une chaîne aléatoire :
import secrets
print(secrets.token_hex(16))
Cette commande génère une chaîne de 32 caractères hexadécimaux aléatoires.
- Stockez cette chaîne aléatoire dans un fichier de configuration ou dans une variable d’environnement. Assurez-vous que le fichier de configuration ou la variable d’environnement est accessible uniquement aux utilisateurs autorisés.
- Utilisez cette chaîne aléatoire comme SECRET_KEY dans votre application Flask. Par exemple, dans votre fichier d’application Flask, vous pouvez ajouter :arduinoCopy code
app.config['SECRET_KEY'] = 'ma_chaine_secrete'
Remplacez ‘ma_chaine_secrete’ par la chaîne aléatoire générée dans l’étape 1.
En suivant ces étapes, vous pouvez générer une SECRET_KEY sécurisée pour votre application Flask.
Il est important de noter que la SECRET_KEY doit être régulièrement changée pour renforcer la sécurité de votre application.
Conclusion
La configuration par défaut dangereuse dans Apache Superset expose les utilisateurs à des risques de sécurité considérables, y compris la possibilité d’exécuter du code à distance et de collecter des informations d’identification.
Bien que les mises à jour aient été apportées pour remédier à cette vulnérabilité, il est important pour les utilisateurs de vérifier si leur serveur Superset est toujours vulnérable en utilisant le script de vérification fourni et de générer une nouvelle clé secrète pour leur instance.
Il est également important de noter que la vulnérabilité peut être exploitée même si le serveur Superset est derrière SSO, et que les utilisateurs doivent donc toujours rester vigilants et prendre des mesures pour se protéger contre les cyberattaques.
Enfin, cette vulnérabilité souligne l’importance de la sécurité dès la conception, ainsi que l’importance de s’assurer que les clés secrètes et les identifiants ne sont pas laissés à leur configuration par défaut.
Voici une liste de liens utiles en rapport avec l’article :
- CVE-2023-27524 sur le site du NIST : https://nvd.nist.gov/vuln/detail/CVE-2023-27524
- Le dépôt GitHub d’Apache Superset : https://github.com/apache/superset
- Le guide de configuration de Superset : https://superset.apache.org/docs/installation/configuration/
- Le toolkit Flask Unsign pour vérifier la sécurité des cookies : https://github.com/mitsuhiko/flask-unsign