- Accueil
- » Forum
- » Sécurité
- » Faille WebRTC ?
Pages : 1
#1 Le 21/02/2015, à 11:40
- pingouinux
Faille WebRTC ?
Bonjour,
On m'a transmis ce lien vers un message de Korben qui date du 20-02-2015 : https://korben.info/proteger-faille-webrtc.html
N'en ayant pas vu référence sur le Forum, je fais suivre cette information.
Hors ligne
#2 Le 21/02/2015, à 13:25
- metalux
Re : Faille WebRTC ?
Bonjour,
Cette faille ne concerne pas Gnu/Linux à priori mais Windows.
Hors ligne
#3 Le 21/02/2015, à 14:26
- lynn
Re : Faille WebRTC ?
Cette faille ne concerne pas Gnu/Linux à priori mais Windows.
Ca concerne GNU/Linux également puisque après avoir fait le test (Ubuntu 14.10), j'ai vu mon ip locale ainsi que deux adresses ip s'afficher; Celle de mon vpn et celle de mon fai. C'est réellement une faille qui ne concerne pas que W$ ou Mac.
A suivre.
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#4 Le 21/02/2015, à 14:55
- metalux
Re : Faille WebRTC ?
@lynn
C'est bien pour ça que j'ai mis "à priori" car je n'en avais pas la certitude.
Pour ma part, je ne l'ai constaté sur aucune machine sous Gnu/Linux et je n'ai trouvé aucun témoignage de cette faille avec cet O.S. Tu es le 1er que j'entends dire qu'il est concerné par cette faille avec Ubuntu.
Pour info, de quel VPN s'agit-il, quel navigateur et quel protocole (openVPN,pptp...)?
Hors ligne
#5 Le 21/02/2015, à 15:23
- 89paladins
Re : Faille WebRTC ?
@ Metalux :
En allant avec Firefox sur le site prouvant la faille webRTC, ça t'affiche ton IP locale (genre 192.168.X.X), sauf si tu as pris soin dans about:config de mettre à false la variable media.peerconnection.enabled..
Dans mon cas, c'est Firefox 35, Ubuntu 14.04.
Dernière modification par 89paladins (Le 21/02/2015, à 15:23)
Qui que nous soyons au fond de nous, nous ne sommes jugés que d’après nos actes. Rachel Dawes.
Hors ligne
#6 Le 21/02/2015, à 15:59
- lynn
Re : Faille WebRTC ?
Pour info, de quel VPN s'agit-il, quel navigateur et quel protocole (openVPN,pptp...)?
J'utilise vpntunnel et ça le fait sous chromium et firefox et le protocole est openvpn 2.3.2.
Edit : Je viens de tester avec Opera: Même verdict.
Dernière modification par lynn (Le 21/02/2015, à 16:03)
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#7 Le 21/02/2015, à 16:26
- pingouinux
Re : Faille WebRTC ?
Chez moi, mêmes symptômes que 89paladins #6 : Firefox 35.0.1, Ubuntu 14.04.2 LTS
Hors ligne
#8 Le 21/02/2015, à 17:20
- metalux
Re : Faille WebRTC ?
Egalement la même chose que pingouinux et 89paladins.
Firefox 35.0.1, Ubuntu 12.04 ainsi que Xubuntu 14.04.
En effet, ça affiche bien l'Ip locale mais je ne vois pas ce qu'on peut en faire. Peut-être avez-vous des explications qui me permettraient de considérer cela comme une faille.
L'Ip publique quant à elle est bien celle du VPN et la faille se situe là à mon avis, lorsque l'Ip retournée est celle attribuée par son Fai.
Ce qui est étonnant, c'est que lynn est affecté par cette faille avec Ubuntu.
Hors ligne
#9 Le 21/02/2015, à 18:34
- lynn
Re : Faille WebRTC ?
Je viens de tester sur une installation de vivid vervet et il n'y a pas de problème. Ca donne les même résultats que vous: l'ip locale + ip du vpn
Je ne comprends pas pourquoi, en plus de l'ip locale, j'ai les deux adresses ( F.A.I et V.P.N ) qui s'affichent avec Ubuntu 14.10..?
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#10 Le 22/02/2015, à 10:19
- lynn
Re : Faille WebRTC ?
J'ai trouvé pourquoi j'ai les deux ip qui apparaissent. C'est à cause des règles que j'ai ajouté pour pouvoir me connecter depuis l'extérieur à mon pc fixe qui est derrière un vpn.
# ref: http://forum.ubuntu-fr.org/viewtopic.php?id=1523581
#!/bin/bash
ip route add default via 192.168.0.254 dev eth0 table connection
ip route add 192.168.0.0/24 dev eth0 src 192.168.0.38 table connection
ip rule add from 192.168.0.38 table connection
Si je les enlève, c'est bon. Il n'y a que mon ip locale et celle de mon vpn qui s'affichent par contre je ne peux plus accéder à mon pc quand je suis à l'extérieur...
«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»
Coluche
Hors ligne
#11 Le 22/02/2015, à 10:23
- Compte anonymisé
Re : Faille WebRTC ?
ce n'est pas une faille et cela ne concerne pas spécialement webrtc, mais tous les sites qui obligent à activer javascript, on sait tous que java-script d'un navigateur peut faire beaucoup de choses, cela confirme simplement qu'il faut le désactiver par défaut et l'autoriser que si nécessaire en connaissance de cause...
(après pour webrtc, il a besoin de connaître les adresses IP respectives de chaque utilisateur afin de connecter leur web-socket, le script est donc indispensable pour le bon fonctionnement, pour ne pas dévoiler son adresse, il faut alors héberger son propre serveur webrtc, pas d'autres alternatives..)
Adblock + ne le voit même pas, quand à NoScript , pas de problème il fait bien son boulot.. d'ou son utilité..
le script en question qui renvoit l'ip publique:
10:11:14.157
Script : https://diafygi.github.io/webrtc-ips/
Ligne : 22
Nombre d'appels : 1
Temps moyen d'exécution (ms) : 154
//get the IP addresses associated with an account
function getIPs(callback){
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
//bypass naive webrtc blocking
if (!RTCPeerConnection) {
var iframe = document.createElement('iframe');
//invalidate content script
iframe.sandbox = 'allow-same-origin';
iframe.style.display = 'none';
document.body.appendChild(iframe);
var win = iframe.contentWindow;
window.RTCPeerConnection = win.RTCPeerConnection;
window.mozRTCPeerConnection = win.mozRTCPeerConnection;
window.webkitRTCPeerConnection = win.webkitRTCPeerConnection;
RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
}
//minimal requirements for data connection
var mediaConstraints = {
optional: [{RtpDataChannels: true}]
};
//firefox already has a default stun server in about:config
// media.peerconnection.default_iceservers =
// [{"url": "stun:stun.services.mozilla.com"}]
var servers = undefined;
//add same stun server for chrome
if(window.webkitRTCPeerConnection)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
};
//create a bogus data channel
pc.createDataChannel("");
//create an offer sdp
pc.createOffer(function(result){
//trigger the stun server request
pc.setLocalDescription(result, function(){}, function(){});
}, function(){});
}
//insert IP addresses into the page
getIPs(function(ip){
var li = document.createElement("li");
li.textContent = ip;
//local IPs
if (ip.match(/^(192\.168\.|169\.254\.|10\.|172\.(1[6-9]|2\d|3[01]))/))
document.getElementsByTagName("ul")[0].appendChild(li);
//assume the rest are public IPs
else
document.getElementsByTagName("ul")[1].appendChild(li);
});
10:11:14.157
Script : https://diafygi.github.io/webrtc-ips/
Ligne : 24
Nombre d'appels : 1
Temps moyen d'exécution (ms) : 154
function getIPs(callback){
var ip_dups = {};
//compatibility for firefox and chrome
var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
//bypass naive webrtc blocking
if (!RTCPeerConnection) {
var iframe = document.createElement('iframe');
//invalidate content script
iframe.sandbox = 'allow-same-origin';
iframe.style.display = 'none';
document.body.appendChild(iframe);
var win = iframe.contentWindow;
window.RTCPeerConnection = win.RTCPeerConnection;
window.mozRTCPeerConnection = win.mozRTCPeerConnection;
window.webkitRTCPeerConnection = win.webkitRTCPeerConnection;
RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
}
//minimal requirements for data connection
var mediaConstraints = {
optional: [{RtpDataChannels: true}]
};
//firefox already has a default stun server in about:config
// media.peerconnection.default_iceservers =
// [{"url": "stun:stun.services.mozilla.com"}]
var servers = undefined;
//add same stun server for chrome
if(window.webkitRTCPeerConnection)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection
var pc = new RTCPeerConnection(servers, mediaConstraints);
//listen for candidate events
pc.onicecandidate = function(ice){
//skip non-candidate events
if(ice.candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
};
//create a bogus data channel
pc.createDataChannel("");
//create an offer sdp
pc.createOffer(function(result){
//trigger the stun server request
pc.setLocalDescription(result, function(){}, function(){});
}, function(){});
}
10:11:14.484
Script : https://diafygi.github.io/webrtc-ips/
Ligne : 87
Nombre d'appels : 1
Temps moyen d'exécution (ms) : 0
function (result){
//trigger the stun server request
pc.setLocalDescription(result, function(){}, function(){});
}
10:11:14.487
Script : https://diafygi.github.io/webrtc-ips/
Ligne : 90
Nombre d'appels : 1
Temps moyen d'exécution (ms) : 0
function (){}
10:11:20.151
Script : https://diafygi.github.io/webrtc-ips/
Ligne : 66
Nombre d'appels : 1
Temps moyen d'exécution (ms) : 1
function (ice){
//skip non-candidate events
if(ice.candidate){
//match just the IP address
var ip_regex = /([0-9]{1,3}(\.[0-9]{1,3}){3})/
var ip_addr = ip_regex.exec(ice.candidate.candidate)[1];
//remove duplicates
if(ip_dups[ip_addr] === undefined)
callback(ip_addr);
ip_dups[ip_addr] = true;
}
}
Dernière modification par sirius007 (Le 22/02/2015, à 12:04)
#12 Le 23/02/2015, à 11:29
- Kreuzi
Re : Faille WebRTC ?
Faille WebRTC?... bloquer UDP en sortie dans le navigateur avec UFW, seule l'IP locale apparait dans le test à Korben, ça marche avec Windows, ça doit être pareil pour Linux.
UDP ne sert à rien pour surfer ( à part parfois pour le port 53 DNS ), et ça peut demander un payload.
Dernière modification par Kreuzi (Le 23/02/2015, à 11:49)
Hors ligne
#13 Le 23/02/2015, à 14:06
- voxdemonix
Re : Faille WebRTC ?
Intéressant, ça ne fonctionne pas sur Tor Bundle même en activant javascript (étonnant vu que le site d'arte lui arrive a détecter et bloquer les gens non résident français (chaîne raciste))
Dernière modification par voxdemonix (Le 23/02/2015, à 14:07)
Hors ligne
#14 Le 27/02/2015, à 13:56
- Kreuzi
Re : Faille WebRTC ?
Sous Ubuntu, dans GUFW vous faites une règle " bloquer en sortie UDP sur le port 3478 (STUN) ", seule l'IP locale apparait dans le test Korben.
Hors ligne
Pages : 1