RTPBleed et Asterisk : les appels d'Asterisk sous écoute

Asterisk souffre d'un problème assez grave permettant à un attaquant d'écouter simplement vos conversations. Une attaque de l'homme du milieu (man-in-the-middle), sans être vraiment au milieu d'ailleurs, permet de rediriger les flux RTP assez facilement. L'annonce a été faite il y a quelques jours (31/08/2017). Il s'agit en fait d'un vieux bug datant de 2011 qui a été réintroduit au premier trimestre 2013. Le premier report annonçant la régression date de mai dernier ainsi que le patch (fournit pour test). L'annonce officielle a été faite le 31 août dernier. Quelles sont les versions vulnérables ? Toutes les versions d'Asterisk entre la 11.4.0 à la 14.6.1 sont malheureusement touchées. Dans quel cas le serveur Asterisk est vulnérable ? Quand le serveur Asterisk fonctionne avec des postes derrière un routeur NAT, il est nécessaire de mettre en oeuvre des actions afin de router correctement les paquets voix. Le protocole SIP s'appuie sur le protocole RTP afin de transporter la voix et le protocole SDP afin que les user-agents (UA) puissent négocier entre eux des éléments comme les codecs, adresses et ports. Ces éléments sont échangés en clair sur le réseau. Pour permettre ces négociations, le serveur Asterisk est configuré (fichier sip.conf) avec les options nat=yes et strictrtp=yes. De plus, ces options sont configurées ainsi par défaut ! Comment exploiter la faille ? Un attaquant doit envoyer des paquets RTP au serveur Asterisk sur un port alloué pour recevoir un flux RTP. Si le serveur est vulnérable, alors le serveur Asterisk répond à l'assaillant en relayant les paquets RTP du destinataire véritable. Il est ensuite aisé avec des outils comme Wireshark de décoder le flux audio. Quelles sont les actions de mitigation envisageable ?

  • La première recommandation est de ne pas transporter les flux SIP et RTP sur internet en clair, mais d'utiliser un tunnel VPN. Si cela n'est pas possible pour diverses raisons bonnes ou mauvaises, voici d'autres solutions :
  • application du patch fournit par Asterisk (https://raw.githubusercontent.com/kapejod/rtpnatscan/master/patches/asterisk/too-short-rtcp-bugfix.diff) qui actuellement limite la fenêtre temps de l'attaque aux toutes premières millisecondes.
  • éviter l'option nat=yes si possible
  • chiffrer les flux RTP avec SRTP (je vous invite aussi à chiffrer les flux SIP et à utiliser le protocole de transport TCP uniquement pour ce dernier afin de fiabiliser les échanges au lieu de l'UDP)
  • ajouter une option de configuration à vos peers SIP afin de prioriser les paquets RTP venant de l'adresse IP apprises au travers de l'échange initial effectué via le protocole SIP.

Par ailleurs, si vos postes IP et vos fournisseurs de trunk SIP utilisent des adresses IP fixes et connues, la mise en oeuvre d'une règle sur votre firewall bloquant l'accès aux ports UDP 10000 à 20000 (ports RTP utilisés par défaut par un serveur Aterisk) uniquement à partir de ces adresses apporte une protection suffisante. Comment vérifier si mon serveur Asterisk est vulnérable ? L'outil rtpnatscan permet de tester votre serveur Asterisk. Références :

Vus : 38
Publié par Mathias : 159