Plusieurs chercheurs en sécurité ont repéré la semaine dernière sur les réseaux des scans recherchant des serveurs d’applications Oracle WebLogic vulnérables à une faille qui n’avait pas encore été corrigée. Oracle a depuis publié une alerte et fourni un correctif. La faille est identifiée sous le numéro CVE-2019-2725. Elle est exploitable à distance, et peut permettre l'exécution de code sans authentification. Les scans constatés par les chercheurs étaient sans doute une étape préparatoire à de prochaines attaques. La vulnérabilité concerne un bug de désérialisation qui réside dans un package particulier appelé wls9_async_response. Celui-ci n’est pas inclus par défaut dans toutes les builds de WebLogic server. C’est sans doute pour cette raison que les attaquants effectuaient ces explorations préalables afin d’identifier les serveurs qui disposent de ce composant qui pourrait leur permettre de mener une attaque plus tard. 

Les premiers à avoir informé sur cette faille zero-day ont été des chercheurs basés en Chine de l’entreprise KnownSec. Toutefois, le billet qu’ils ont posté sur Medium n’a pas été vraiment remarqué jusqu’à ce que des chercheurs d’autres spécialistes de la sécurité, tels que F5 Networks ou Waratek diffusent à leur tour des alertes. Selon une analyse de SANS Internet Storm Center (ISC), il ne s’agit peut-être pas d’une vulnérabilité entièrement nouvelle, mais d’une nouvelle méthode utilisée pour contourner les protections mises en place l’an dernier par Oracle sur une ancienne faille, CVE-2018-2628, qui a été corrigée il  a un an, selon un billet du gestionnaire du centre ISC Rob VandenBrink.

Une parade de type blacklist 

En programmation, la sérialisation est le processus de conversion de données au format binaire pour assurer une transmission sécurisée à travers le réseau. Quand une application reçoit ce type de données, elle les reconvertit dans leur format original suivant un processus de désérialisation. La recherche d’entrées de données n’ayant pas été vérifiées par l’utilisateur a toujours été l’une des principales causes de failles dans les applications et la désérialisation n’est pas différente parce que les attaquants peuvent générer des entrées sérialisées malveillantes pour qu’elles soient traitées par une application. 

Il semble qu’Oracle avait choisi une approche de type blacklist pour corriger ce problème. Celle-ci passe par le blocage potentiel de commandes dangereuses. Mais les corrections de faille qui reposent sur ces blacklists sont rarement fiables dans la durée parce que les attaquants peuvent trouver des façons de contourner ces restrictions et c’est déjà arrivé avec des correctifs pour WebLogic

Restreindre certains accès ou supprimer le composant vulnérable 

Il y a deux semaines, Oracle a livré sa mise à jour de sécurité trimestrielle en corrigeant 297 failles dont 53 critiques. Trois concernaient déjà WebLogic, avec un score de 9.8. Une 4ème était notée 8.8. WebLogic est utilisé par de nombreuses entreprises pour déployer leurs applications. Sa popularité et sa large diffusion en ont déjà fait une cible par le passé. Par exemple, une ancienne faille de désérialisation de données XML dans WebLogic (identifiée sous le numéro CVE-2017-10271) a été utilisée pour compromettre des serveurs d’entreprise et y installer un malware de mining de monnaie virtuelle.

Mais les risques sont bien plus importants. Comme les applications déployées à l’aide de WebLogic contiennent généralement de nombreuses données sensibles gérées par les entreprises qui les utilisent, l’exploitation de telles failles peut aussi déboucher sur de graves fuites de données. Avant que le correctif soit livré, SANS ISC conseillait aux administrateurs de restreindre l’accès aux chemins Z/_async/* et /wls-wsat/* sur leurs serveurs ou de supprimer le composant wls9_async_response.war.