+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    mars 2013
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : mars 2013
    Messages : 2 593
    Points : 54 276
    Points
    54 276

    Par défaut Un bogue dans Java et Python permettrait à des attaquants de contourner les défenses des pare-feu

    Un bogue dans Java et Python permettrait à des attaquants de contourner les défenses des pare-feu,
    selon des chercheurs en sécurité

    Des chercheurs ont rapporté l’existence d’une faille dans Java et Python qui permettrait à des attaquants de contourner les défenses fournies par les pare-feu. Alexander Klink et Timothy Morgan ont assuré que la principale vulnérabilité s'est produite parce que Java ne vérifie pas la syntaxe des noms d'utilisateurs dans son protocole FTP.

    « Le code (probablement ancien) a un bogue : il ne vérifie pas la syntaxe du nom d'utilisateur. RFC 959 spécifie qu'un nom d'utilisateur peut se composer d'une séquence de n’importe lequel des 128 caractères ASCII sauf <CR> et <LF>. Devinez ce que les exécutants de JRE ont oublié ? Précisément de vérifier la présence de <CR> ou <LF>. Cela signifie que si nous mettons %0D%0A n'importe où dans la partie nom d’utilisateur de l'URL (ou dans la partie mot de passe), nous pouvons terminer la commande USER (ou PASS) et injecter une nouvelle commande dans la session FTP », a expliqué Klink.

    Pour rappel, CR et LF désigne respectivement le retour chariot (Carriage Returns - caractère 13 (0x0D)) et le saut de ligne (Line Feeds caractère 10 (0x0A)).

    Aussi, si nous avons par exemple l’intention de nous servir de la commande USER sur un serveur mail au lieu d’un serveur FTP, nous obtiendrons une génération d’erreur (étant donné que USER n’est pas une commande SMTP valide), mais notre session va continuer. Combiné avec le bogue mentionné, un attaquant sera alors en mesure de lancer des commandes SMTP arbitraires qui vont forcer l’envoi de courriels.

    « Cette attaque est particulièrement intéressante dans un scénario où vous pouvez accéder à un serveur de messagerie interne sans restriction sur une machine faisant du parsing XML. De plus, cette attaque va vous permettre d’envoyer des pièces jointes étant donné que la taille de l’URL semble ne pas être limitée en dehors de la limite imposée par la quantité de RAM disponible », a estimé Klink.

    La vulnérabilité peut également être exploitée pour faire du parsing de fichiers JNLP malveillants, conduire des attaques man-in-the-middle (MiTM) ou des campagnes SSRF (Server-Side Request Forgery).

    Selon Morgan, « cette injection de protocole FTP permet de tromper le pare-feu d'une victime en autorisant des connexions TCP d'Internet vers le système de l'hôte vulnérable ».

    Dans le cas de Java, l'attaque peut être effectuée contre des utilisateurs de desktop même s'ils n'ont pas le plugin de navigateur Java activé.

    Le chercheur dit également qu'un bogue « presque identique » existe aussi dans les bibliothèques urllib2 et urllib de Python. Cependant, bien que la faille de sécurité Java ne soit pas limitée aux attaques basées sur des noms de répertoires répertoriés dans des URL malveillantes, le bogue Python semble être limité de cette manière.

    Morgan affirme que les fournisseurs ont jusqu'à présent échoué à réparer le bogue, bien que l'équipe de sécurité de Python ait été informée en janvier 2016 et que l'équipe d'Oracle ait été informée en novembre 2016.

    Le chercheur recommande la désactivation du mode classique FTP par défaut et propose que les applications en entreprise soient auditées pour vérifier si elles sont vulnérables à ces attaques.

    Source : billet Alexander Klink, billet Timothy Morgan

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : juillet 2008
    Messages : 48
    Points : 142
    Points
    142

    Par défaut Une petite pincée de FUD

    En fait ce bug n'en est pas vraiment un. Celui qui code en Java ou en Python pour aller faire de l'injection FTP sait très bien ce qu'il fait et n'a pas besoin de ce bug pour envoyer les commandes qu'il a envie. Et de toute façon, FTP n'a pas été conçu à une époque où l'on s'occupait de sécurité. L'utiliser aujourd'hui c'est s'exposer à bien des problèmes.

  3. #3
    Expert éminent Avatar de Uther
    Homme Profil pro
    Inscrit en
    avril 2002
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2002
    Messages : 3 468
    Points : 7 993
    Points
    7 993

    Par défaut

    C'est un peu plus compliqué que ça. Il n'y a pas d'objet officiel pour se connecter directement en FTP dans la bibliothèque standard Java. Mais on peut bien en faire de manière indirecte via l'objet URLConnection. Si on ne fait pas les contrôles adéquats, il y a donc moyen de faire une injection en utilisant une URL de type FTP en remplacement de http par exemple.

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/09/2010, 11h16
  2. Réponses: 13
    Dernier message: 22/04/2009, 16h43
  3. Réponses: 0
    Dernier message: 13/04/2009, 23h40
  4. Réponses: 4
    Dernier message: 16/08/2006, 09h19
  5. Réponses: 1
    Dernier message: 21/07/2006, 05h56

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