6 de octubre de 2014

Pueden los medios de comunicación en Internet ser usados como arma de ciber-espionaje público ?



Es normal ser paranoico si se trabaja en temas de seguridad (de cualquier tipo). Manejar información delicada, protegida y/o confidencial, aumenta dicha paranoia y lo lleva a uno a ser muy cuidadoso con todo lo que usa y hace. Yo siempre he prestado especial atención a mis hábitos y características de navegación web en Internet, y aun así, siempre me he “encontrado” posiciones vulnerables o vectores de ataque a los que podría sucumbir. Mantener protegida nuestra información privada no es una tarea fácil.

Se podría pensar que las víctimas más propicias para estos ataques contra la privacidad son precisamente quienes manejamos información que puede ser valiosa para otros, y de los que se podría obtener una ventaja económica, de reputación, estratégica, o táctica. Y en cierta medida fue así por mucho tiempo.

Lamentablemente, con la llegada a fondo de Internet a cada rincón de nuestras vidas, todos somos víctimas insospechadas de ataques a la privacidad cada vez que estamos navegando, ya que toda información hoy por hoy, de quien quiera que sea, es valiosa para alguien más.

Los medios de comunicación (generalmente muy cercanos a los círculos políticos), siempre en su afán de enriquecerse con la noticia de último minuto, han migrado poco a poco a minar la información de comportamiento y conducta de sus usuarios en Internet, como fuente de ingresos principal en la era digital. Algunos de estos medios venden nuestra información a terceros, les dan acceso directo a nuestro navegador, o pueden inclusive estar capturando nuestros comportamientos, conductas y hábitos en Internet, que son extremadamente valiosos para hacer un perfilamiento (profiling) de ciudadanos (i.e. a nivel del gobierno de turno).

Especulo que esto puede existir, especialmente en un país hoy polarizado como Colombia (o como Venezuela), en el que existen enlaces directos reconocidos entre algunos medios y el gobierno, y hasta sospechas de entregas de dinero a periodistas/analistas por sus “servicios” de generación/moldeamiento de la opinión pública, a favor del mandatario de turno.

Cuánto creen Ud. que puede valer para un gobierno información sobre un opositor, como:

  • Qué páginas/foros/blogs visita regularmente?
  • En qué horarios usa Internet?
  • Qué tipo de noticias le interesan más?
  • Ha opinado en alguna noticia del medio?

Ahora, si vuelve Ud. a leer esas preguntas, no cree que servirían también para “clasificar” a un navegante “anónimo” como “seguidor”, “opositor”, “conspirador”, “hacker”, etc.? Podría Ud. ya estar “clasificado”? Seguramente, en algún nivel, ya todo usuario normal lo está.

Estas capacidades se vuelven evidentes en más de un medio de comunicación en Internet, pero saltaron más a mi vista hace un par de meses cuando el periódico El Tiempo (Link no recomendado: http://www.eltiempo.com) empezó a prohibir al público entrar a leer sus noticias después de cierto número de visitas al mes, para impulsar su suscripción paga o su registro con cuenta personal (es decir, sus datos personales como nombre real, documento de identificación, etc.). Más adelante, seguro pedirán la dirección y el teléfono.



Que esto sea un mecanismo irrisoriamente fácil de evadir (modo incógnito en Chrome, modo privado en Firefox, borrar los cookies, usar un navegador o proxy anonimizador, etc.) no hace que sea algo que podamos darnos el lujo de ignorar.

Decidí “chismosear” a cuantos terceros se les está permitiendo acceso a mi sesión de navegación cuando visito ciertos medios de comunicación, como medida cualitativa de la privacidad que ofrece cada portal, y este fue el resultado (en orden de menos riesgoso para tus datos privados, a más riesgoso:

1) caracol.com: 20 sitios

Lista de sitios con quienes tus datos son compartidos o a quienes permiten acceso a tu sesión de navegación:
    scorecardresearch.com
    googletagservices.com
    doubleclick.net
    googlesyndication.com
    soycapaz.org
    saymedia.com
    prisacom.com
    2o7.net
    tribalfusion.com
    cxense.com
    miseleccion.co
    serving-sys.com
    grupolatinoderadio.com
    linkedin.com
    twitter.com
    cxpublic.com
    google.com
    facebook.com
    vizu.com
    doubleverify.com

2) semana.com: 22 sitios
* Esta captura de pantalla se realizó posteriormente, y sólo registro 16 sitios.

Lista de sitios con quienes tus datos son compartidos o a quienes permiten acceso a tu sesión de navegación:
    jetset.com.co
    navdmp.com
    google-analytics.com
    soycapaz.org
    iris.net.co
    e-planning.net
    cxense.com
    doubleclick.net
    twitter.com
    cxpublic.com
    facebook.com
    facebook.net
    scorecardresearch.com
    pinterest.com
    linkedin.com
    google.com
    sharedcount.com
    googlesyndication.com
    jwpltx.com
    youtube.com
    publicacionessemana.com
    serving-sys.com 

3) rcn.com: 23 sitios


Lista de sitios con quienes tus datos son compartidos o a quienes permiten acceso a tu sesión de navegación:
    rcnmundo.com
    googletagmanager.com
    soycapaz.org
    ennovva.com
    facebook.com
    antena2.com.co
    e-planning.net
    tynt.com
    gstatic.com
    doubleclick.net
    google-analytics.com
    twimg.com
    google.com
    twitter.com
    ajax.googleapis.com
    addthis.com
    co.s3.amazonaws.com
    rcnradio.com
    rlcdn.com
    adnxs.com
    mathtag.com
    addthisedge.com
    collective-media.net

4) elespectador.com: 25 sitios

Lista de sitios con quienes tus datos son compartidos o a quienes permiten acceso a tu sesión de navegación:
    navdmp.com
    elespectador.co
    polldaddy.com
    scorecardresearch.com
    twitter.com
    google.com
    facebook.net
    e-planning.net
    windows.net
    google-analytics.com
    cxpublic.com
    caracoltv.com
    canalclima.com
    soycapaz.org
    doubleclick.net
    chartbeat.net
    facebook.com
    cxense.com
    ajax.googleapis.com
    newrelic.com
    d1ros97qkrwjf5.cloudfront.net
    mediaplex.com
    com.s3.amazonaws.com
    twimg.com
    iadb.org

5) eltiempo.com: 110 sitios !!!

Lista de sitios con quienes tus datos son compartidos o a quienes permiten acceso a tu sesión de navegación:
    navdmp.com
    windows.net
    facebook.com
    google.com
    2o7.net
    wipmania.com
    addthis.com
    realmediadigital.com
    scorecardresearch.com
    adnxs.com
    doubleclick.net
    ybpangea.com
    hiro.tv
    bing.com
    chartbeat.net
    newrelic.com
    yahoo.com
    mookie1.com
    rubiconproject.com
    pubmatic.com
    openx.net
    mathtag.com
    jumptap.com
    criteo.com
    quantserve.com
    rfihub.com
    adsafeprotected.com
    turn.com
    nexac.com
    cxense.com
    cxpublic.com
    tentaculos.net
    batanga.com
    batanga.net
    adap.tv
    as.com
    sascdn.com
    googlesyndication.com
    twimg.com
    facebook.net
    quebuenacompra.com
    contextweb.com
    casalemedia.com
    farlex.com
    adsrvr.org
    vindicosuite.com
    ooyala.com
    ru4.com
    cedexis.com
    youtube.com
    bluekai.com
    p-td.com
    liverail.com
    demdex.net
    mlnadvertising.com
    skimresources.com
    advertising.com
    simpli.fi
    zenoviaexchange.com
    mdotlabs.com
    adadvisor.net
    media6degrees.com
    w55c.net
    adsymptotic.com
    exelator.com
    connexity.net
    agkn.com
    tidaltv.com
    moatads.com
    securepaths.com
    adgrx.com
    burstnet.com
    dotomi.com
    chango.com
    eqads.com
    everesttech.net
    mediaplex.com
    domdex.com
    tubemogul.com
    googleadservices.com
    crwdcntrl.net
    rlcdn.com
    btrll.com
    triggit.com
    adtechus.com
    bit.ly
    akamai.net
    tapad.com
    legolas-media.com
    adventori.com
    omtrdc.net
    googletagmanager.com
    ib-ibi.com
    google-analytics.com
    revsci.net
    content.ad
    krxd.net
    d2o3gnwdwywtvm.cloudfront.net
    bizographics.com
    ixiaa.com
    adform.net
    twitter.com
    gstatic.com
    eyereturn.com
    afy11.net
    acuityplatform.com
    wtp101.com
    smartadserver.com
    carroya.com
    voicefive.com

Comparación:


Conclusión:

Aunque los pocos (pocos?) pecados de Caracol, Semana, RCN y El Espectador, y los muchos pecados de El Tiempo, aparentemente tienen un fin meramente comercial, más que un fin gubernamental, a primer vista, si se puede evidenciar que los medios en Colombia han sabido aprovechar las técnicas de tracking de comportamientos de sus usuarios, y las están explotando para su beneficio comercial (seguramente ellos dirán "para ofrecer al lector una experiencia más personalizada, y afinada a sus intereses y gustos").

Los dejo con la siguiente reflexión personal: Para qué se necesita que cuando miramos uno cualquiera de cuatro de estos cinco sitios, se ejecute en mi navegador un frame de publicidad gubernamental (soycapaz.org):

<iframe src="http://www.soycapaz.org/widget/300x400" name="300x400" width="300"
height="400" scrolling="no" frameborder="0" marginheight="0" marginwidth="0">
</iframe>

que al ser cargado ejecuta gran cantidad de Javascript (desconocido) diseñado por ENNOVA en nuestro navegador?




Espero que lo mediten y decidan navegar de forma más segura. No falta nada para que los medios se den cuenta de que con este tracking de usuarios pueden hacer más que dinero.

Recomendación:

Es necesario ser un usuario de Internet responsable y utilizar las medidas de protección mínimas.

Para usuarios con poco conocimiento técnico, recomiendo que usen navegadores que no dejen rastro del usuario en los servidores, y no memoricen cookies, como Aviator o Tor Browser Bundle. Para usuarios con conocimiento técnico bajo o medio, pero con rquerimientos de privacidad elevados, recomienda una versión de Linux "sin memoria", como TAILS (The Amnesic Incognito Live System).

Para usuarios con algo de conocimiento técnico, y/o con ánimo de aprender, recomiendo usar plugins de filtrado de Javascript/Flash como NoScript (para Firefox) o NotScripts (para Chrome), y el plugin de privacidad (anti-tracking) Disconnect (tanto en Firefox, como en Chrome).

Recuerde, nada es gratis en esta vida ... si le están "dándo algo gratis", el browser en este caso, es que el producto no es el browser, el producto es Ud.

F4Lc0N
    Twitter: @falcon_lownoise
    E-mail: falcon ^at^ lownoisehg {dot} org
    LowNoise Hacking Group
    Colombia/USA

=======================================

UPDATES

Comparación con Medios Internacionales: 
- cnn.com (CNN - EE.UU.): 24 sitios
- wsjcom (The Wall Street Journal - EE.UU.): 16 sitios
- theguardian.com (The Guardian - EE.UU/Reino Unido/Australia): 18 sitios
- nyt.com (The New York Times - EE.UU.): 10 sitios
- clarin.com (Clarín - Argentina): 10 sitios
- elpais.com (El País - España): 7 sitios

Sigo pensando que 110 sitios es exagerado, no ? ;) Ningún otro medio evaluado pasó de 30 conexiones a terceros, solo El Tiempo.


Inquietudes varias:
- Será que El Tiempo verifica todos los scripts que los terceros corren en tu navegador ?
- Cuánto cuesta que El Tiempo entregue acceso a los navegadores de sus lectores ?
- Qué hace El Tiempo si un tercero (i.e. publicidad) compra acceso y enviar scripts maliciosos a los lectores ? Se darán cuenta ?
- Desde el punto de vista de un atacante, esta es una excelente oportunidad de masificar un ataque, no ? Sólo es comprometer un sitio de estos terceros (i.e. soycapaz.org) y modificar los Javascripts que ElTiempo le "empuja" a todos sus lectores ;)
- Si mi computador/red/empresa/etc. es comprometido a través de un script ejecutado a través de El Tiempo, por un tercero (como soycapaz.org), y es comprobado con un análisis forense, quién es el responsable según la actual legislación ? Alguien ?

Lectura Adicional:
- Blog MuchoHacker

New tool released: Massive Web Fingerprinter (mwebfp)

Introduction

The "LowNoiseHG (LNHG) Massive Web Fingerprinter" ("mwebfp" from now on) was conceived in July 2013 after realizing the usefulness of webserver screenshots to pentesters, during an engagement with large external or internal IP address ranges, as a quick means of identification of critical assets, easily-exploitable services, forgotten/outdated servers and basic network architecture knowledge of the target.

Description

The basic operation of mwebfp consists of the processing of an input (targets and TCP ports) that is then used to identify open web server ports with the help of a powerful portscanner (nmap). All ports found open are then analyzed (on HTTP and HTTPS) and all relevant webserver information is recorded, as well as a screenshot of the rendered webpage (as if it is seen from a broswer).

Special Features

  • Input
    • Target(s) can be IP address(es), IP address range(s), server name(s), etc.
    • Target(s) can be provided directly on the command-line or on a file
  • Port Definition
    • Default ports are 80 (HTTP) and 443 (HTTPS), but any port can be easily configured at runtime
  • Output
    • All output files and related support files for the scan are saved on a directory configured at runtime by the user
    • Currently, mwebfp exports results on a CSV file (Easily usable on MS Excel) only
  • Virtual Hosts
    • If requested at runtime, mwebfp will find all virutally hosted domains and webpages for the target server
  • Webserver Screenshots
    • If requested at runtime, mwebfp will grab screenshots of all found web pages (Graphical UI under Linux is required)

Parameters

# LowNoiseHG Massive Web Fingerprinter
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to ET, c4an, Th3R3g3nt, ch0ks and ElJeffe311
# for inspiration, ideas and debugging/beta-testing help.

usage: mwebfp.py [-h]
                 [-i INPUT_RANGE | -n SERVER_NAME | -f INPUT_FILE | -r]
                 [-p HTTP_PORTS] [-s HTTPS_PORTS] [-o OUTPUT_DIR]
                 [-t {HTML,XLS,CSV,XML}] [-v {yes,no}] [-w {yes,no}]

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT_RANGE, --input-range INPUT_RANGE
                        input IP CIDR range
  -n SERVER_NAME, --server-name SERVER_NAME
                        name of server (DNS name)
  -f INPUT_FILE, --input-file INPUT_FILE
                        input file containing IP addresses and/or IP ranges
  -r, --recover         recover/continue previous process
  -p HTTP_PORTS, --http-ports HTTP_PORTS
                        TCP HTTP ports (Default: 80/tcp)
  -s HTTPS_PORTS, --https-ports HTTPS_PORTS
                        TCP HTTPS ports (Default: 443/tcp)
  -o OUTPUT_DIR, --output-dir OUTPUT_DIR
                        working directory
  -t {HTML,XLS,CSV,XML}, --output-format {HTML,XLS,CSV,XML}
                        output report format (Default: HTML)
  -v {yes,no}, --vhosts {yes,no}
                        choice of processing vhosts for each IP address
                        (Default: no)
  -w {yes,no}, --web-screenshots {yes,no}
                        choice of taking web schreenshots (Default: no)

Current State of Development

As most of the R&D done in LowNoiseHG (LNHG) this tool was designed and developed only for its usefulness and with no economic funds or time allocated to it. All development has been done on personal time only, and it will continue as interesting featurs come up, and if time is available taking into account other projects.
The current version works very well, even though there are still some minor wrinkles (bugs) to iron, and some basic features that can be improved:
  • Features on the works:
    • The recovery feature is non-functional yet
    • The output format for the report is currently CSV, HTML is done but not included yet. All others are non-functional
  • Known bugs:
    • There is a bug on the virtual host identification process, that has been identified and will be fixed soon

License

mwebfp and all its related code is released under the GPL v3 open-source license. The full license is attached in the LICENSE.md file.

Requirements

In order to run mwebfp "out-of-the-git", with all options enabled, you will need:
  • Python - Programming language (sudo apt-get instal python)
  • nmap - Port Scanner (sudo apt-get install nmap)
  • python-nmap - Python module (apt-get install python-nmap)
  • requests - Python module (apt-get install python-requests)
  • cutycapt - Qt WebKit Capture Utility (You will need the latest version to be able to capture HTTPS pages - do NOT do apt-get !!!) (Read further under Installation)
  • A graphical interface (GUI) on the *nix server you are running the script (I assume Linux)
NOTE: mwebfp has been developed and tested on Kali, Ubuntu and Debian. I am sure YOU can make it work in other platforms of your choice ;)

Installation

Install required software with apt-get:

$ sudo apt-get install -y nmap python python-nmap python-requests git

Install CutyCapt:

Do NOT use apt-get for this, or the version provided by your OS. You can check if the version you have works for mwebfp by running 'cutycapt --help' and checking if you have an '--insecure' option or not, or if the copyright is '2003-2010' or '2003-2013' (check last line of the help). You need to have '--insecure' or copyright '2003-2013' to be able to use cutycapt with mwebfp. If you need the latest version, uninstall your current version and take the next steps:
$ cd /opt
$ sudo apt-get install -y subversion g++ libqt4-webkit libqt4-dev 
$ sudo svn checkout svn://svn.code.sf.net/p/cutycapt/code/ cutycapt
$ cd cutycapt/CutyCapt
Modify the file ./CutyCapt.hpp, and include the following two lines after the '#include <QtWebKit>' on the first line:
#include <QNetworkReply>
#include <QSslError>
and then:
$ sudo qmake
$ sudo make
$ sudo cp CutyCapt /usr/local/bin/
You can test for the '--insecure' parameter or the '2003-2013' copyright with:
$ cutycapt --help

Install mwebfp

$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/mwebfp.git
$ cd mwebfp

Running (Example)

$ ./mwebfp -i 10.0.0.0/8 -o OutputDir -w yes -v no
You can check the full list of options at any time with:
$ ./mwebfp -h

Developer Team

LowNoiseHG:


   F4Lc0N
       Twitter: @falcon_lownoise
       E-mail: falcon ^at^ lownoisehg {dot} org
       LowNoise Hacking Group
       Colombia/USA