Selon une analyse détaillée du problème par le chercheur en sécurité Tobias Neitzel, les services Java RMI peuvent être attaqués par des attaques de falsification de requête côté serveur (SSRF).

Java RMI est un mécanisme d’appel de procédure distante (RPC) orienté objet disponible dans la plupart des installations Java. Les développeurs de logiciels peuvent utiliser la technologie pour rendre les fonctions disponibles sur un réseau.

Pour la communication, Java RMI s’appuie sur des objets Java sérialisés – un mécanisme que les attaquants sont souvent capables de cibler, malgré le fait que la technologie a traversé un processus de durcissement et de trempe au cours des dernières années, a découvert Neitzel.

Dans un détail article de blog technique, le chercheur explique comment les composants RMI par défaut peuvent être attaqués avec des résultats variables. Les résultats potentiels peuvent entraîner l’exécution de code à distance, a déclaré Neitzel La gorgée quotidienne.

Les attaques SSRF permettent en général à un attaquant de tromper une application côté serveur pour envoyer des requêtes HTTP à un domaine sélectionné par un attaquant, un comportement qui ouvre la porte à toutes sortes de malversations.

« Comme avec toutes les techniques SSRF, le problème majeur est que les attaquants peuvent être en mesure d’attaquer les services RMI qui ne sont censés être accessibles qu’à partir de réseaux de confiance », a expliqué Neitzel.

« Sécuriser RMI correctement n’est pas si intuitif et il y a beaucoup de surface d’attaque cachée. Au lieu de le configurer correctement, les administrateurs choisissent souvent la voie la plus simple et n’autorisent l’accès qu’à partir de réseaux ou de clients de confiance.

TU POURRAIS AUSSI AIMER Le libraire universitaire indien Oswaal Books corrige les prétendues RCE et d’autres vulnérabilités graves avec la relance de Shopify

Les recherches de Neitzel ont démontré qu’un attaquant externe « peut être capable d’exploiter des services internes configurés non sécurisés en utilisant une vulnérabilité SSRF dans un service externe », entre autres techniques.

Le service RMI le plus couramment utilisé est JMX. Neitzel a montré qu’il était possible de compromettre un service JMX backend via SSRF, mais uniquement à condition que le système renvoie des réponses du service backend et accepte des octets arbitraires en leur sein.

De même, les attaques basées sur SSRF sur les composants RMI par défaut, tels que le registre RMI, sont également possibles, mais uniquement lorsque le système autorise l’envoi d’octets arbitraires au service principal.

« Java RMI est un protocole binaire et nécessite toutes sortes de types de données différents lors de la communication », a déclaré Neitzel.

Atténuations

La susceptibilité aux attaques SSRF est symptomatique d’insécurités plus larges qui sont bien trop courantes.

« Les services peuvent exposer des méthodes dangereuses, n’implémentent pas de filtres de désérialisation ou sont obsolètes et contiennent des vulnérabilités connues (par exemple, le chargement de classes à distance) », a déclaré Neitzel. La gorgée quotidienne.

Le billet de blog du chercheur allemand énumère ensuite les meilleures pratiques de sécurité et les contre-mesures pour les services RMI contre les attaques potentielles.

Celles-ci incluent l’activation de la communication protégée par TLS pour tous les points de terminaison RMI, l’utilisation de filtres de désérialisation et l’ajout de contrôles d’authentification renforcés.