Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/02/2015, à 12: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, à 14:25

metalux

Re : Faille WebRTC ?

Bonjour,
Cette faille ne concerne pas Gnu/Linux à priori mais Windows.

Hors ligne

#3 Le 21/02/2015, à 15:26

lynn

Re : Faille WebRTC ?

metalux a écrit :

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, à 15: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, à 16: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, à 16: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, à 16:59

lynn

Re : Faille WebRTC ?

metalux a écrit :

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, à 17:03)


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#7 Le 21/02/2015, à 17: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, à 18: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, à 19: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, à 11: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... neutral


«C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!»

Coluche

Hors ligne

#11 Le 22/02/2015, à 11: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, à 13:04)

#12 Le 23/02/2015, à 12: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, à 12:49)

Hors ligne

#13 Le 23/02/2015, à 15: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, à 15:07)

Hors ligne

#14 Le 27/02/2015, à 14: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