[THE BEGINNINGS] Manifiesto por una Red Neutral

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad</strong>.

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

  1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.

  2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.

  3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.

  4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.

  5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.

  6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.

  7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.

  8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.

  9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.

  10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.

  11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

Si te sientes representado por este manifiesto te pedimos encarecidamente que lo copies y lo publiques en tu blog o que lo menciones en tu cuenta de Twitter o en Facebook usando el hashtag #redneutral.

¡Muchas gracias!

[THE BEGINNINGS] Seguridad: comprometiendo un switch (Parte 1 de 2)

Cuando nos encontramos con una red no domestica, con varios host conectados a la red entre los que podemos encontrar alguna impresora, equipos finales como PC’s o teléfonos VoIP, algún servidor web o de correo; como podría ser la red de una pequeña o mediana empresa tenemos que tener como mínimo un router y un dispositivos intermediario entre el router y los equipos finales, lo más eficiente es encontrarnos con un switch.

Podemos pensar que para qué poner un switch pudiendo poner un hub que es más económico y a nivel de instalación es Plug&Play, y la respuesta es bien sencilla, un hub a nivel informática de red es como un ladrón a nivel de electricidad, es decir, envía por todos los puertos la misma información vaya para el host que este conectado a ese puerto o no, por lo que es el equipo final el encargado de descartar la información que no es para él (o no). Esto nos puede parecer una razón poco poderosa a la hora de decantarnos entre un aparato o otro, pero tenemos que tener en cuenta lo que significa que un hub envía toda la información por todos lo puertos y es que si un usuario malintencionado quisiera saber todo lo que hacemos a través de la red con colocar un simple sniffer podría monitorizar todas las conexiones de la red, con lo que esto supondría para la seguridad de nuestra red, recordemos que aunque en nuestra red solo se conecten empleados tenemos que tener siempre en cuenta que el 80% de los ataques a una red siempre se producen desde dentro de esta.

Hay otras dos razones de porque nunca debemos de poner un hub, una de ellas es por eficiencia, un hub reparte el ancho de banda de la red entre sus puertos haya equipos conectados a estos o no, por lo que si necesitamos conexión para seis equipos y ponemos un hub de ocho puertos, perderemos un 25% del ancho de banda. La otra razón también es por eficiencia de la red, ya que un hub al enviar toda la información a todos los puertos aumentaría la posibilidad de colisión de datos exponencialmente (red tipo bus), lo que haría que el rendimiento de nuestra red cayera en picado.

Dicho todo lo anterior y ya decantados por la opción de instalar un switch tenemos que tener claro que un switch mal configurado es un agujero de seguridad tan grande como un hub, expliquemos porque. Como hemos explicado antes un switch es un dispositivo intermedio de capa 2 es decir trabaja con direcciones MAC, dirección MAC destino y dirección MAC origen y de esta forma establece la conexión entre los dos hosts (puertos del switch) correctos, por defecto el switch es un dispositivo que “aprende”, es decir nada más encenderlo enviará toda la información por todos los puertos al igual que un hub, pero irá memorizando la MAC del dispositivo que hay conectado a ese puerto de forma que creara una tabla interna en la RAM en la que asociará una dirección MAC a un puerto (o interfaz).

Hasta aquí todo parece sencillo, ahora imaginemos que tenemos una red tipo árbol en la que tenemos varios switch conectados unos a otros, en este caso en la tabla descrita anteriormente nos encontraríamos con varias MAC’s asignadas al mismo puerto. En la imagen podemos ver una tabla ARP de un switch, como podemos observar tenemos direcciones de tipo estáticas y dinámicas (lo explicaremos más adelante):

En la imagen podemos ver una tabla muy sencilla y con pocas direcciones. Imaginemos ahora por un momento que pasaría si la memoria que tiene destinada el switch a guardar esta información se llenara con muchas MAC’s, se produciría un desbordamiento de buffer (buffer overflow) y el switch al ver que no puede acceder a la información de su tabla procedería a comportarse como un hub, es decir empezaría a enviar toda la información por todos los puertos, esto en un switch solo se daría si se esta produciendo un ataque con lo que si no tenemos monitorizada la red, estaremos ante un ataque de robo de información que no podremos detectar facilmente si no somos muy perspicaces (como usuarios finales).

Para protegernos de este tipo de ataques basta con asignar todas las direcciones MAC a un puerto determinado y configurar la tabla de forma estática, claro que en un sitio donde hay movimiento de equipos y de usuarios, es normal que tengamos que tener algunos puertos o dispositivos totalmente configurados de manera dinámica, esto no quita que podamos poner restricciones a los puertos como n MAC’s diferentes por puerto, o si se detecta que un puerto en el que sabemos que solo podría ir conectado un host empieza a enviar información de varias MAC’s en un periodo de tiempo ridículo  tirar la conexión automáticamente. De esta forma nos estaremos quitando un gran porcentaje de ataques de este tipo.

Para comprobar si nuestra red esta a salvo de este tipo de ataques lo mejor es probar atacándola, si tenemos un windows podemos usar WinArpAttacker, si tenemos un sistema basado en Linux podemos usar ARPTools, los dos nos ayudaran a llenar la RAM de nuestro switch (ataque ARP-Flood) y comprobar simplemente con WireShark como empezamos a recibir paquetes destinados a otros host de la red. Si queremos ocultar nuestra MAC durante la auditoría, si tenemos un LINUX bastaría con:

 ifconfig eth0 down
 ifconfig eth0 hw ether 00:AA:BB:CC:DD:00
 ifconfig eth0 up[/sourcecode]

Si tenemos un windows bastaría con usar alguna utilidad como MacShift

En otra próxima entrega entraremos más a ver como solucionar esto con diferentes métodos según nuestras necesidades.

[THE BEGINNINGS] Qué es y cómo funciona un escaneo de puertos Idle

Hoy vamos a hablar de los escaneos de puertos, ya todos más o menos conocemos o hemos oído hablar de escaneos tipo TCP, SYN, UDP, ACK, ICMP, etc pero hay un tipo de escaneo muy curioso y muy especial que se llama Idle (del inglés vago) en este post os voy a intentar explicar las principales características para entender como funciona.

Para entender un poco el funcionamiento de este método hay que conocer o tener unas nociones básicas de como funciona la conexión en el protocolo TCP.

Cuando se realiza un escaneo de puertos sobre un host, si este esta minimamente securizado detectara que esta siendo víctima de un escaneo de puertos y la IP del atacante quedará grabada en los logs con lo que no seria difícil localizarle, aqui es donde nace el escaneo idle, en el que introduce una variante más en la ecuación, un tercer host que actuara de zombie, es decir hará el trabajo sucio por el supuesto atacante. Veamos un resumen de una conexión TCP normal entre dos host:

En una conexión normal el cliente envia un paquete con un valor SYN al servidor, el servidor devuelve un paquete con un valor SYN + un valor ACK y un valor SEQ, si todo ha ido correctamente el cliente devolvera un paquete con un valor ACK+1 y una valor SEQ+1. Esto se llama negociación en tres pasos. Si el puerto al que se lanza la conexión esta cerrado el servidor cancelara la conexión, enviara un paquete con el bit del valor RST activado lo que significa que rechaza la conexión y lo que nos interesa es que al no completar la conexión el valor ACK del cliente no varia.

Explicado el método de conexión es donde entra nuestro host zombie, como hemos dicho antes, si se realiza un escaneo de este tipo el host “atacante” seria facilmente localizable, pero ¿qué pasaría si entre el host atacante y la víctima se metiera un zombie? Si nosotros controlamos el valor SEQ de un equipo zombie podríamos mediante una tecnica de suplantación de identidad (spoofing) construir un paquete TCP que al mandarlo al host víctima devolviera la conexión con éxito (SEQ+1) o la rechazada (RST=1) al equipo zombie y el atacante pudiera comprobar de nuevo mediante un paquete TCP el valor de SEQ y saber si ese puerto esta abierto o cerrado sin enviar ni un solo paquete al host víctima (el único que se envia tiene como ip origen la del host zombie). Lo entenderemos mejor con este esquema:

La utilidad que en un principio se le puede ver a esta técnica es saber si tiene determinados puertos abiertos, pero si le damos una vuelta de rosca a la técnica nos daremos cuenta de un uso mucho mas práctico.

Imaginemos la red de una empresa algo parecido a esto:

Cuando tenemos una red de este tipo con una zona DMZ los host de la LAN pueden acceder al los servidores HTTP, J2EE, etc de la zona DMZ, para acceder a ella tienen que pasar por un firewall que a buen seguro tendra un filtrado de IP’s y de puertos determinado con lo que un host externo con una IP desconocida por el firewall será “tirado” cuando intente realizar una conexión (escaneo de puertos por ejemplo). Una forma de saber que puertos están abiertos en el firewall para poder descubrir una vulnerabilidad es realizar un escaneo idle usando como zombie un host con una ip perteneciente a la zona de confianza del firewall de esta forma el escaneo nos devolvera una lista de puertos abiertos para una ip determinada.

Una forma de hacer que los escaneos de este tipo no sean validos viene por parte de los desarrolladores de los sistemas operativos,  el valor SEQ se incrementa de uno en uno, si este valor se reseteara de alguna forma o diera algún valor aleatorio según el momento o la conexión estos escaneos serian inviables.

La fuente de este articulo ha sido la web del manual de Nmap, podeis conseguir muchísima más información y ejemplos de implementación de este tipo de escaneo con Nmap en su web.

[THE BEGINNINGS] Análisis de redes: Enumeración de sistemas Windows

Dentro de una red encontramos diferentes host que dan un determinado servicio a la red, ya sean servidores de correo, servidores de impresión, servidores de dominio, o simplemente equipos que comparten carpetas o impresoras. Podríamos decir que las técnicas de enumeración nos ayudaran a descubrir todos estos recursos y indicarnos qué usuarios pueden acceder a ellos. Debido a que cada sistema operativo tiene unos servicios y una forma de gestionarlos diferente, estas técnicas las tenemos que dividir según el sistema operativo que corran. Antes de pasar a explicar los distintos métodos de enumeración citaremos los tres protocolos en los que nos basaremos para recopilar esta información: NetBIOS, SNMP y LDAP.

Enumeración NetBIOS

  • Listar maquinas de nuestra red C:\>net view

  • Listar recursos compartidos en nuestra red. Para este caso tenemos diferente opciones, C:\>net view <NOMBRE_HOST>

Nos mostrara los recursos compartidos de esa maquina, este es el comando más completo ya que también podemos usar: C:\>nbtstat -a <NOMBRE_HOST> o C:\>nbtstat -A <IP_HOST>

Estos dos comandos solo nos indican que la máquina tiene servicios corriendo, pero no especifica cuales.

  • Listar dominios accesibles de una red C:\>net view /domain

  • Listar máquinas de un dominio determinado C:\>net view /domain:<NOMBRE_DOMINIO>

  • Listar recursos compartidos en maquinas de diferentes dominios C:\>net view /domain:<NOMBRE_DOMINIO> \<NOMBRE_HOST>

Cabe destacar que en todos los comandos podemos sustituir el nombre de la maquina por la IP de la misma y como ya sabemos Internet no es mas que una gran red por lo que podemos sustituir las IP’s de nuestra red por IP’s que pertenezcan a redes y servidores externos de Internet.

También es importante comentar que en un servidor linux que tenga implementado y activo el protocolo samba también se podrán ejecutar estos comandos contra el y averiguar información.

Enumeración SNMP

La enumeración de sistemas mediante SNMP no es tan trivial como la enumeración NetBIOS. El protocolo SNMP (Simple Network Managent Protocol). Este protocolo se usa para poder monitorizar y controlar el estado de los diferente dispositivos conetados a una red, normalemente se usa para routers, switchs, servidores de impresión, correo o web; pero se puede usar también sobre cualquier dispositivo que tenga disponible ese protocolo, es un protocolo multiplataforma y se podrá usar siempre que el dispositivo desde el que queramos monitorizar tenga el paquete de software instalado correctamente. En entornos windows existe un programa llamado Getif con un entorno grafico desde el que podemos obtener de una manera sencilla toda la información, mientras que en entornos linux tenemos Scotty y Cheops.

Enumeración LDAP

LDAP (Lightweight Directory Access Protocol) es un protocolo diseñado para trabajar con TCP/IP y junto a un directorio jerárquico. Esto puede proporcionar una determinada información sobre los usuarios de esa red como nombres, teléfonos, direcciones de correo, etc. este tipo de objetos se les conoce como AD (Active Directory). Recordemos que tanto los dominios dentro de Windows 2000 Server y Windows 2003 Server trabajan con este tipo de objetos por lo que LDAP nos ayudara a extraer facilmente gran cantidad de información. Para poder sacar información de este tipo podemos usar la aplicación ldp.exe que se encuentra en las herramientas de soporte de Windows XP. Cabe destacar que el manejo de esta herramienta no es trivial y se requiere un alto conocimiento sobre este protocolo.

Nota: Para poder realizar estos rastreos utilizaremos comandos NET integrados en sistemas operativos Windows NT.

[THE BEGINNINGS] Wireshark: Instalación en Mac OS y manual de uso

Wireshark es el analizador de trafico de red más famoso, se usa en muchos ámbitos, educativo, profesional, empresa, etc. Es un programa multiplataforma, muy fácil de instalar en linux ya que esta disponible en todos los repositorios, muy sencillo de instalar en Windows simplemente ejecutando el .exe, pero no tan trivial en Mac OS. En este post explicaremos como se instala wireshark en Mac OS, estamos acostumbrados a arrastrar y soltar en la carpeta de aplicaciones para hacer que un programa se instale pero en el caso del sniffer por excelencia, la instalación no es tan simple, os explicare de forma sencilla cómo instalarlo y hacerlo funcionar. Además os enlazo a un manual de la Universidad central de Venezuela.

Lo primero es ir a la web de descarga y elegir el archivo que se adapte a vuestro sistema (fijaos que hay versión de 64bits para Leopard). Una vez descargado:

  • Arrastramos el archivo Wireshark.app a la carpeta de aplicaciones

  • Tenemos que dar permisos de ejecución a una serie de dipositivos dentro de nuestro mac, para ello abrimos el terminal y ejecutamos el siguiente comando: sudo chmod 755 /dev/bpf*

  • (nos pedira la contraseña de administrador, la ponemos y pulsamos enter)

  • Por último tenemos que copiar todos los archivos de la carpeta Utilities/Command Line a un directorio del Mac para que el programa pueda funcionar correctamente, para ello en el terminal ejecutamos el siguiente comando: sudo cp /Volumes/Wireshark/Utilities/Command\ Line/* /usr/local/bin/

  • (nos pedirá la contraseña de administrador, la ponemos y pulsamos enter)

Con estos dos últimos sencillos casos el programa funcionará correctamente, y aquí os dejo un sencillo manual de uso (viene la instalación en windows también pero los comandos y el modo es idéntico en las tres plataformas)

Nota: Si abris la aplicación y no encontrais interfaces de red en las que ejecutar Wreshark, es porque no tiene permisos de ejecucion sobre las mismas, volved a ejecutar:

sudo chmod 755 /dev/bpf*

Nota2: Otra opción seria ejecutar como root wireshark, para según que uso y donde estemos puede ser más util, para ello:

sudo ./Applications/Wireshark.app/Contents/Resources/bin/wireshark

Page 4 of 5