IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

L’écosystème Java de nouveau touché par une faille


Sujet :

Spring Java

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut L’écosystème Java de nouveau touché par une faille
    L’écosystème Java de nouveau touché par une faille
    la vulnérabilité dans le Framework Spring permet d’exécuter du code à distance

    Décidément, l’écosystème Java n’en finit pas avec les vulnérabilités.

    Cette fois, ce n’est plus le plug-in Java qui est pointé du doigt, mais Spring, le célèbre Framework open source utilisé pour construire et définir l’infrastructure des applications Java critiques.




    Les experts en sécurité du cabinet Aspect Security ont découvert une faille critique dans l’outil, pouvant être exploitée par des pirates distants pour exécuter du code arbitraire sur les machines affectées.

    Baptisée « remote code with Expression Language injection », la vulnérabilité se situe au niveau de la fonction « expression language » du Framework et peut entrainer la corruption des applications sous Spring et la perte du contrôle de tout système reposant sur le Framework.

    Se référant aux données de Sonatype, qui exploite le référentiel central pour des composants open source, Aspect Security estime que plus de 1,3 million de versions vulnérables de Spring ont été téléchargées par plus de 22 000 organisations à travers le monde.

    La communauté Spring travaille déjà sur un correctif pour cette faille qui s’avère, cependant, difficile à patcher rapidement. Pour l’instant, il est conseillé aux personnes utilisant le Framework Java de désactiver la fonction « expression language ».

    La vulnérabilité, qui n’est pas facilement exploitable, ne serait pas activement utilisée pour l’instant. Mais, pour combien de temps ?


    Source : Aspect Security
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 245
    Points : 320
    Points
    320
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function ExpressionLanguage()
    {
         return false;
    }
    et c'est patché

  3. #3
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Plop,

    Je pense qu'il ne faut pas faire de rapprochements entre cette faille et les dernières en date. Elle touche un framework Java et non la plateforme. Quand une faille est découverte dans le Zend Framework, on n'assimile pas cette faille à PHP.

    Quoiqu'il en soit, bon courage pour le patch.

  4. #4
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    oui mais ça continue à salir l'image de java. L'amalgame est vite fait.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    J'ai un peu du mal à saisir où est la vulnérabilité dans cette histoire. L'idée de vulnérabilité, c'est quand même que quelqu'un de l'extérieur, aux intentions pas forcément bonnes, puisse injecter de l'information dans un système, provoquant des traitements éventuellement néfastes.

    Expression Language est un langage de script interne à Spring. De quelle manière peut-on injecter un script dans une application Java utilisant Spring de manière à ce qu'il soit exécuté ? A moins que l'exploit de la vulnérabilité, ça ne soit que le programmeur qui créé l'application "vulnérable" n'exécute du code passé en paramètre à une servlet ou un truc du genre, mais avec ce genre de conditions, on pourrait dire que Linux possède une vulnérabilité appelée bash, alors...

    Secundo, pour qu'un script ainsi injecté puisse s'exécuter en produisant le moindre effet, ça nécessite la connaissance du code source de l'application, sinon, ça ne risque pas de faire grand chose.

    Bref, cette vulnérabilité reste largement à démontrer, je pense...

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    Expression Language est un langage de script interne à Spring.
    Non, Expression Language est un langage de script interne à J2EE, plus exactement les JSP et dérivés.

    Le problème ici est le Double Expression Language de Spring, en gros, une Expression Language qui construit une autre Expression Language et le moteur d'exécution qui évalue l'une après l'autre.

    Cela est exposé en interne et en externe dès lors qu'un paramètre d'entrée de l'utilisateur est utilisé à l'intérieur d'une Expression Language. C'est un mécanisme très puissant mais très dangereux, et pas mal de gens l'avaient vu dès le début. Mais on ne nous avait pas pris au sérieux...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    De quelle manière peut-on injecter un script dans une application Java utilisant Spring de manière à ce qu'il soit exécuté ?
    L'exemple est donné dans le lien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <spring:message text="" code="${param['message']}"></spring:message>
    et un appel comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://vulnerable.com/foo?message=${applicationScope}
    Montre que applicationScope est bel est bien résolu même si passé en paramètre
    L'article montre même qu'il arrive à injecter une classe java de son cru dans le serveur.

  8. #8
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    pour qu'un script ainsi injecté puisse s'exécuter en produisant le moindre effet, ça nécessite la connaissance du code source de l'application, sinon, ça ne risque pas de faire grand chose.
    Pas forcément, en suivant ce qui est dit ici :
    L'article montre même qu'il arrive à injecter une classe java de son cru dans le serveur.
    Avec des notions comme l'injection de dépendances, il est très simple de récupérer un DataSource ou une ressource propre au serveur et de faire n'importe quoi avec.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 49
    Points : 20
    Points
    20
    Par défaut
    Je pense qu'il ne faut pas faire de rapprochements entre cette faille et les dernières en date. Elle touche un framework Java et non la plateforme. Quand une faille est découverte dans le Zend Framework, on n'assimile pas cette faille à PHP.
    C’est disons plus facile d’avoir des failles dans tous les sens avec ce genre de langages. Tu as cité les deux plus parlants, d’ailleurs Ça ne peut pas être un hasard !

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par olivier.pitton Voir le message
    Avec des notions comme l'injection de dépendances, il est très simple de récupérer un DataSource ou une ressource propre au serveur et de faire n'importe quoi avec.
    Si j'arrive a injecter une classe de mon cru dans le serveur, ce sera d'office un remote terminal, bien plus simple et de là je pourrais faire ce que je veux

  11. #11
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 320
    Points : 3 740
    Points
    3 740
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par Wikipedia
    Un indicateur paradoxal de la popularité de PHP est le nombre de failles de sécurité concernant des applications PHP [...]. Ces failles représentent 12 % du total en 2003, 20 % en 2004, 28 % en 2005, 43 % en 2006, 36 % en 2007, 34,8 % en 2008, 29,9 % en 2009, 27,2 % en 2010.
    Plus un langage est populaire, plus on lui découvre des failles.
    Je pense qu'on atteint un pic de ces découvertes en ce moment avec Java, mais qu'ils diminueront avec le temps.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Non, Expression Language est un langage de script interne à J2EE, plus exactement les JSP et dérivés.
    C'est juste. On va mettre ça sur le compte de la fatigue du vendredi soir...

  13. #13
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2005
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 218
    Points : 311
    Points
    311
    Par défaut
    Quelqu'un a t-il reproduit la faille sur un projet?
    Sur mon projet grails je n'arrive pas à reproduire ce pb.
    Le ${... n'est pas réinjecté. A moins que je n'ai loupé qqchose.

  14. #14
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ce ne se produit que sur certains tags spring, comme indiqué dans les liens.

Discussions similaires

  1. Réponses: 18
    Dernier message: 09/03/2011, 08h22
  2. La Banque de France touchée par une campagne de phishing
    Par Katleen Erna dans le forum Actualités
    Réponses: 7
    Dernier message: 21/12/2010, 15h09
  3. Réponses: 0
    Dernier message: 29/11/2010, 01h42
  4. remplacer une touche par une autre
    Par iam dans le forum Delphi
    Réponses: 9
    Dernier message: 06/08/2006, 15h48
  5. Simuler une touche par une autre sous Windows
    Par sdelaunay dans le forum Windows
    Réponses: 2
    Dernier message: 05/05/2006, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo