Análisis de servidores web en dominios ".es" (I)

Hace unas semanas veíamos que casi 100.000 dominios «.es» están mal configurados y permiten la transferencia de zona. Siguiendo con la entrada anterior, ésta sobre la vulnerabilidad a heartbleed o ésta sobre la vulnerabilidad a FREAK de los dominios «.es», el siguiente paso consistió en obtener la información de:

  • Servidores Web.
  • CMS Instalados.
  • Tecnologías web (ASP, PHP…) existentes.

Para ello se ejecutó el script python whatweb contra todos los dominios «.es», de manera que se almacenaran en una base de datos MySQL los resultados. El proceso tardó más de un mes (del 19 de marzo al 28 de Abril) en realizarse (estamos hablando de 1.7 millones de dominios .es) y la verdad es que los resultados fueron muy interesantes.

Como disclaimer previo, decir que la información obtenida para el estudio es accesible para cualquier usuario de Internet y que los datos fueron obtenidos de la manera menos agresiva posible, con una única petición HTTP.

Whatweb dispone de una opción que permite introducir los datos directamente en una base de datos MySQL, pero la estructura de la base de datos que crea no es especialmente útil. Por ejemplo, si un dominio .es redirige hacia otro, los datos los obtiene del segundo y en ningún momento almacena el dominio .es original. Los dominios a los que redirige, whatweb los llamaba «targets«. Hubo que realizar una serie de procesos posteriores para asociar los targets a su dominio correspondiente.

Como decía, se realizaron peticiones a 1.7 millones de dominios «.es», pero solo se consiguió obtener información de 1.291.713 targets. El resto no respondieron a las peticiones, dieron un timeout o no respondieron lo que se esperaba. Solo 914.903 de esos targets se pudieron asociar a un dominio «.es», el resto hasta 1.291.713 son casos en que varios dominios «.es» redirigen a un mismo «target» o donde las URLs no son fácilmente asociables a dominios «.es» (distintos nombres de dominio). Usaremos como base los 914.903 targets para medir la información obtenida.

Los resultados

1. HTTP Servers
De acuerdo a lo que he indicado, los datos obtenidos por tanto se basarán en estos 914.903 dominios «.es» de los que hay datos «fiables» y verificables. En cuanto a los servidores web, se encontraron:

  • Apache: 646.216 servidores.
  • IIS: 114.725 servidores.
  • NGINX: 80.571 servidores.
  • Big IP : 6362 servidores.
  • Tomahawk: 5553.
  • GHS (De Google Hosting Services): 5082.
  • Zeus Web Server: 4551.
  • LiteSpeed: 4096 servidores.
  • Light httpd: 2415.
  • Otros: 45332.

Los 45332 restantes son en buena parte servidores propietarios de grandes hostings, pero tambien existen servidores HTTP casi desconocidos y algunos ampliamente pasados de moda como «Netscape-Enterprise 6.0» que encontramos en al menos 75 dominios.

1.a Apache

Si contamos los más de 646.000 dominios que podemos certificar que usan Apache, la gran mayoría no ofrecieron información alguna sobre la versión de Apache implantada (como debe ser). Otros 498.787 únicamente contestaron «Apache», pero 147.429 sí nos dieron algún tipo de información:

  • 119.785 pertenecían la rama Apache 2.2 (la más común de lejos).
  • 8090 pertenecían la rama Apache 2.4.
  • 5339 pertenecían la rama Apache 2.0.
  • 2012 pertenecían la rama Apache 1.3.
  • 1101 eran Apache-Coyote/1.1.
  • Otros 11012 dieron otra información de poco interés (no aportaban información de versión).

Sobre esos 147.429 Apaches que nos dieron datos, podemos ver las versiones y sistemas operativos más usados:

  • 29824 Apache 2.2.29 (28137 sobre UNIX, según indica el propio Apache).
  • 24771 Apache 2.2.14, (24365 de ellos sobre Ubuntu).
  • 16166 Apache 2.2.22, (7672 sobre Debian y 4838 sobre Ubuntu).
  • 11939 Apache 2.2.3 (9788 de ellos sobre CentOS).
  • 8692 Apache 2.2.16 (7028 de ellos sobre Debian).

Nótese la antigüedad de la fecha de lanzamiento de estas versiones de Apache (obtenida de aquí):

  • Apache 2.2.29 (03/09/2014): 29824.
  • Apache 2.2.14 (05/10/2009): 24771.
  • Apache 2.2.22 (31/01/2012): 16166.
  • Apache 2.2.3 (28/07/2006): 11939.
  • Apache 2.2.16 (25/07/2010): 8692.
  • Apache 2.2.15 (05/03/2010): 12056.

Si solo nos fijamos en sistemas operativos, veremos que los Apache aparentan estar instalados sobre sistemas UNIX y sobre Ubuntu:

  • UNIX: 46794.
  • Ubuntu: 33432.
  • Debian: 19326.
  • CentOS: 17856.
  • Fedora: 3730.
  • Red Hat: 1496.

El resto (unos 24000) no indican el sistema operativo o son minoritarios, como ocurre con «Win32». Es de destacar que en muchas de estas consultas, también se proporcionaba información de versiones de los módulos de Apache.

Así, hemos sabido que de 24690 dominios que aportaron su version de mod_ssl, 7396 usaban la 2.2.29 (la última), 2712 usaban la 2.2.27, 1655 la 2.2.26 y 1114 la 2.2.25. Es decir, predominan versiones actualizadas del módulo (como debería ser). Otros módulos de Apache fáciles de encontrar con sus respectivas versiones fueron mod_bwlimited, mod_fcgid, mod_auth_pgsql, mod_perl, proxy_html y mod_layout. Veamos una imagen:




Si calculamos aquellas versiones que tienen más de 1 año de antigüedad (desde el momento de obtención de los datos en Abril de 2015), éstas son las versiones anteriores a la 2.2.27 (18/03/2014) y a la 2.4.9 (17/03/2014). Por tanto:

  • Apaches con más de un año de antigüedad: 109715.
  • Apaches con menos de un año de antigüedad: 37714.

CVE details nos informa de que por ejemplo, la segunda versión de Apache más instalada, la 2.2.14 con 24771 instalaciones en dominios .es tiene la friolera de 28 vulnerabilidades conocidas:

1.b IIS

Whatweb detectó 114.725 servidores IIS cuyas versiones fueron:

  • IIS/6.0 : 69040 (Windows Server 2003).
  • IIS/7.5 : 29302 (Windows Server 2008).
  • IIS/7.0: 6743 (Windows Vista).
  • IIS/8.0 (2012): 5598 (Windows 8 y Server 2012).
  • IIS/8.5 (2013): 3201 (Windows 8.1 y Server 2012).
  • IIS/5.0: 532 (Windows XP).
  • IIS/4.0: 245 (Windows NT).
  • Otros: 64.

Entre parentesis se ha añadido el sistema operativo con el que suele implantarse. Las versiones anteriores a la 8.0 tienen ya varios años de antiguedad y podríamos considerarlas inseguras (De hecho la v7.5 tiene 5 vulnerabilidades registradas con su CVE, una de ellas de peligrosidad 10). Así, recontando, nos saldrían:

  • 8799 dominios usarian IIS actualizados.
  • 105926 usan IIS antiguos y potencialmente vulnerables.

  • 1.c NGINX

    Los servidores nginx no aportaron información referente a sus versiones (un punto para ellos) por lo que no podemos decir nada sobre su antigüedad. Esto, que debería ser la norma, se ha demostrado una peculiaridad.

    Como vemos, los administradores todavía tienen mucho trabajo, ya sea para actualizar los servidores web o, cuando esto no sea posible por temas de compatibilidad, tratar de ocultar información que puede ser relevante para un visitante sin nuestras buenas intenciones.

    En la segunda y última entrada de la serie (en breve) veremos las estadísticas relacionadas con las tecnologías web (PHP, ASP, Plesk, etc.) y los CMS (WordPress, Joomla!, Dripal, etc.).

    Trackbacks

    1. […] unos días veíamos las estadísticas que habíamos obtenido de los servidores web, lo que evidenciaba la gran cantidad de trabajo que queda por hacer. Sin embargo, como veremos a […]