Posts filed under ‘Seguridad’
Ataque tipo: Man in the middle
A pesar de que existen herramientas específicas usadas por los pentesters y auditores de seguridad (además de terceros con peores intenciones…) para realizar este tipo de operaciones, vamos a enfocar el proceso paso a paso con el fin de entenderlo y poder atajar sus efectos.
Herramientas como Cain, Nemesis o Ettercap hacen este tipo de procesos/ataques a las mil maravillas, con variantes e ingredientes añadidos, pero la base de un MITM (Man In The Middle), pasa por entender lo que ocurre cuando enviamos algo a otro sistema informático.
Normalmente, las personas retenemos mal una secuencia de números de cierto número de cifras pero nos es mucho mas fácil de retener una secuencia de letras porque le vemos mas sentido.
Por ello los dominios tienen nombres como: google.com
Esta cadena de caracteres («google.com»), nos resulta mas amigable que un 74.125.230.81
Ese conjunto de números es lo que denominamos IP y todos ya tenemos en nuestro vocabulario común. Más concretamente una IPv4 consistente en 32 bits agrupadas en 4 grupos de un byte cada uno (1 byte=8 bits), de ahí los puntos entre los números. Dado que este tipo de información es tan básico dejaremos que quien precise mas información sobre IPs vaya aquí.
El caso es que cuando introducimos una dirección como «www.google.com» en un programa, el ordenador no tiene la mas remota idea de donde está esa web, equipo, servicio o lo que quiera ser esa cadena de caracteres.
Por ello «pregunta» a otros ordenadores, denominados servidores DNS ago como (entiendase conversación entre ordenadores :-D):
Tu equipo: » –¿Sabría usted decirme la IP de esta cadena que me ha pedido el usuario?«
El servidor DNS: «-Si claro, como no… vaya a la dirección 74.125.230.81 y olvidese de lo que su usuario le ha pedido. Comprobara que pese a esto, su usuario se siente satifecho con lo que usted le ofrece…(porque es lo mismo)«
La cosa es que el equipo «va» a la dirección IP y no al nombre que el usuario ha pedido, porque si bien son lo mismo, podemos decir que el texto es la forma en la que se refieren los usuarios a un determinado sitio/equipo/web/servicio, mientras que los números (IP), es la forma de denominarlo que tienen los ordenadores…
Ahora la pregunta es:
¿Y que ocuriría si el servidor DNS al que preguntas…resulta ser un suplantador del original?
Podría dirigir cualquiera de las peticiones que el usuario efectúa, hacia cualquier otro lugar…
Ese suplantador, es uno de tantos tipos de man in the middle, si bien veremos otros tipos de forma mas profunda.
Este ataque es de fácil realización por várias técnicas, si bien la de modificar la configuracíón del router de acceso a internet del usuario o cambiar las DNSs de su equipo son las mas fáciles y utilizadas.
Sigamos profundizando algo más en la comunicación entre equipos.
Hemos visto que las cadenas de caracteres se transforman en IPs, pero hay pasos adicionales.
Veámoslo con ejemplos.
Si utilizas MS Windows (si usas Linux y no sabes que es una shell…mal lo llevamos…), pulsas inicio, ejecutar y tecleas «cmd» (+ enter), para abrir una de esas consolas negras «que no sirven para nada porque no tienen iconos…:-)»
Si en dicha consola (a la que denominaremos «shell»), tecleas hostname y verás el nombre de tu equipo y si introduces el comando «ipconfig» (ifconfig en Linux), verás la dirección IP de tu ordenador.
Pero hay más…
Si hacemos un ping (simplificando: comando para comprobar que el destinatario responde) a tu propia ip, comprobarás que responde a la petición.
Podríamos decir que la dirección IP es otro número «impuesto» al equipo (como el número de la seguridad social, o del carnét de conducir), si bien no es propio del equipo por construcción.
Hay otro número (hablando en binario), que SI que es intrinseco al equipo y que viene en su «ADN», pues se le otorga durante su contrucción y se supone único a nivel mundial… «:-/»
A este número se le denomina dirección MAC o dirección física y cada tarjeta de red tiene uno diferente.
Una vez que un ordenador sabe a que IP debe enviar su mensage/peticion/lo que sea…dentro de una LAN (red local) pregunta a dicho equipo por su dirección MAC.
Tu ordenador: «-Oye 192.168.1.23, te importa darme tu dirección física para enviarte los datos?, por cierto, la mía la tienes en mi propia petición«
El otro equipo/router/aparato: «-Si claro, mi MAC es esta: 00:1E:0B:00:2F:3C«
La representación se suele realizar en formato hexadecimal, ya que es mas corto que el mismo número en binario que sería este:
1111000001011000000000010111100111100
Que a su vez corresponde a este otro en decimal (formato numérico al que mas acostumbrado el está la mayoria de NO informáticos…)
129033580348
Así como el protocolo para resolver una IP, en base a una FQDN (Full Qualified Domain Name) como http://www.google.com, el algoritmo utilizado era DNS… existe otro algoritmo utilizado para resolver direcciones MAC en base a una dirección IP: Se denomina ARP (Address Resolution Protocol).
E xiste una forma de ver las direcciones MAC que un ordenador tiene en cache, o dicho de otro modo, las ultimas y mas habituales a las que ha contactado durante los ultimos instantes. El comando es «arp -a«. Con dicho comando veremos una lista de equivalencias entre IPs y MACs, que usa el equipo para no tener que resolver direcciones que ya haresuelto hace poco tiempo (segundos/minutos dependiendo de configuraciones).
Cualquier trama que un equipo envía, incluye la dirección MAC de éste (así como su IP), y por tanto un simple ping a la IP de un equipo, desencadena la resolución de su dirección física (a no ser que la tengamos ya en memoria, por una transmisión reciente anterior).
Ahora bien, el ataque del que hablamos, se cimenta en este mecanismo de resolución.
Supongamos que desde tu equipo estás conectado a internet mediante un router. Ello implica que tanto router como tu equipo tienen la IP y MAC del otro y de ese modo transmiten datos entre ambos (y tambien al resto del mundo).
Como sabemos, todo lo que se envía, se pasa en un momento u otro a binario (ceros y unos), y por tanto entre ese conjunto de ceros y unos debe estar incluida la información de la IP, la MAC y otros datos. Si sabemos exactamente donde y conseguimos realizar un falseado de los mismos…tendremos desencadenado el ataque y conseguiremos «ver» todo el tráfico que intercambien los equipos atacados (en este caso un equipo y su router de internet).
El esquema quedaría de este modo:
Veamos el proceso paso a paso:
1.- Cuando el equipo víctima y el router, quieren comunicar entre si, intercambian sus ips y direcciones MAC por medio de ARP
2.- Este mecanismo se realiza de vez en cuando para refrescar la información.
3.- El atacante consigue la ip y la mac de ambos (equipo victima y router), por medio de un simple ping a cada uno( u otro mecanismo cualquiera).
4.- Falsea la información de ambos equipos (equipo víctima y router) y ellos mismos empiezan a mandarle la información «creyendo» que
lo hacen a su legítimo interlocutor.
Ahora vamos a la práctica:
El atacante hace un simple ping a los equipos víctima:
Además captura una trama para modificarla:
Esta trama, almacenada en formato «pcap», puede almacenarse en un fichero y modificarse con un editor hexadecimal.
El atacante creará dos tramas «envenenadas».
En la trama que , el atacante, mandará al router, cambia la mac del equipo víctima por la suya,( manteniendo la ip del equipo víctima). De este modo cada vez que el router quiera mandar datos al equipo víctima, realmente la mandará a laMAC del atacante y este observará todo el tráfico.
En la trama que enviará al equipo víctima, cambiará la MAC del router por la suya propia, para que el tráfico generado por la víctima y con destino al router, realmente vaya a parar al atacante.
Posteriormente, solo tiene que crear un pequeño script que envíe cada pocos segundos estas tramas a ambas víctimas (equipo y router), porque sino en unos segundos, ellos mismos, mandarán los datos correctos al otro y el ataque cesará. Este envío contínuo de datos manipulados es lo que llamamos envenenamiento por ARP (ARP Spoofing o ARP Poisoning). (para los mas curiosos:el programita «file2cable», permitirá mandar por la red el contenido de los archivos manipulados como tramas).
La víctima ahora está a merced del atacante que puede ver todo el contenido de sus transmisiones con el router así como cortarlas, almacenarlas, modificarlas antes de que lleguen a su legítimo destino, reenviarlas…
Como contramedidas o forma de protegerse de este tipo de ataque, hay programas y software de seguridad que permite bloquear o avisar ante cambios de direcciones MAC. Hay quienes optan por tener fijas ciertas direcciones como las del router, evitando su cambio sin autorización. Hay varias formas de evitar este tipo de ataques, pero lo primero para ello, es conocer como se efectúa y como consecuencia entender que elementos deben ser vigilados en una red.
Backups, copias de seguridad y criticidad de los datos
Aun hoy en día, en el que la conciencia tecnológica está tan extendida, existen muchos casos en los que se realizan copias de seguridad de forma manual, sobre soportes como DVDs, Pendrives discos duros extraíbles. Estos procesos además se suelen realizar de forma manual y diaria al final de la jornada de trabajo (cuando no al final de la semana laboral…).
Si la mediana y no digamos gran empresa tiene una clara vocación de protección de sus datos y comprende la importancia de los mismos en la empresa, en la pequeña empresa aun hay muchos casos en los que se debe concienciar sobre los peligros de no disponer de un buen sistema de copias de seguridad.
Un sistema perfecto debería de ser aquel que:
- Ante un desastre permita una recuperación instantánea.
- Que incorpore las últimas modificaciones realizadas en los datos, hasta el último momento de trabajo.
- Que permita realizar búsquedas y recuperación de información en versiones anteriores de cada documento, fichero o base de datos.
- Que no exija de su realización a personal, sino que se realice en todo momento y de forma automática.
- Que no precise de adquisición de hardware y por tanto inversión y capital inmovilizado.
- Que realice las copias en caliente, mientras el personal trabaja.
- Que se adapte a la morfología de la empresa sin importar cuantas delegaciones, puestos, o la infraestructura tecnológica de cada lugar.
- Que garantice la confidencialidad de los datos mediante su encriptación con sistemas de alta seguridad.
- Con posibilidad de seleccionar el lugar donde residen nuestros datos y si lo harán en más de un destino remoto y/o local…
Algunas (que no todas), grandes empresas, pueden afirmar que cumplen varias de estas características en sus procesos de respaldo de datos, pero en entornos menores, lo mencionado en el párrafo anterior se ve como una utopía.
Ho en día contamos con servicios como BKOL de vSolutions.es, en el que garantizamos todas las características y funcionalidades mencionadas a un coste que incluso un autónomo puede asumir.
La forma tradicional de realizar copias de seguridad en la pequeña empresa ha consistido en obtener una copia de los datos originales durante la noche, pero un desastre (virus, hacker, incendio, error humano o de hardware entre otras muchas causas posibles), hará que como mínimo y en el mejor de los casos se tenga que restaurar la copia al estado del día anterior y se tenga que perder todo un día de trabajo en actualizar los datos a la última.
Así mismo, muchas empresas cuentan con cajas fuertes, peor que ante un incendio no ofrecen seguridad para los soportes que contienen los datos de copia de seguridad (DVDs, Cintas…) dado que la temperatura aumentará en el interior de la caja a mas de los 52 grados en los que la información se «desvanece», aun sin que se queme el medio en cuestión.
La adquisición de cajas ignífugas suele ser costosa y pocas empresas toman esta posibilidad en consideración, mientras que disponer de un sistema que permita realizar el respaldo de los datos en remoto, hace que no sea imprescindible la inversión en este elemento.
Las empresas con varias delegaciones suelen tener problemas con las copias, dado que suelen contar con infraestructura TIC en la central pero en menor grado en las delegaciones. Esto hace que las copias de las ubicaciones remotas no se traten del mismo modo que las de la central con los riesgos que ello conlleva.
Portátiles, con información valiosa que se pierden en taxis (le animo a que busque en internet estadísticas del número de portátiles que se pierden en taxis, solamente en la ciudad de Londres cada año.), sin respaldo actualizado, pendrives o discos usb con información confidencial sin copia efectiva… es algo que ocurre a diario.
vSolutions.es ofrece soluciones globales de respaldo para la empresa y a costes muy inferiores a otras alternativas.
Nuestros partners ofrecen servicios adicionales de consultoría global de respaldo y recuperación de desastres para empresas de todos los tamaños y a costes inferiores muchas veces a lo que cuesta la simple adquisición de los dispositivos de copia de seguridad, medios de copia y software tradicionales.
Aportando seguridad, y flexibilidad. Empezando siempre con periodos de prueba sin compromiso y con toda la funcionalidad incluida en las pruebas. Sin costes ocultos ni necesidad de complementar la solución con otras…
Nuestros partners suelen comentar que, tras la presentación de la solución, muchos clientes de pequeña empresa suelen sonreír de forma pícara, esperando un coste superior al que tienen previsto y terminan de sorprenderse cuando el consultor propone un coste menor al de su solución actual e incluyendo toda la funcionalidad descrita (y otras adicionales que no tiene sentido indicar en este artículo).
¿Goza su empresa de un sistema como el que le proponemos?
Rendimiento,RAID, Redundancia y otras «Rs» del mundo del almacenamiento
Nota: Trataremos el tema sin entrar en ciertas implicaciones técnicas y primando la comprensión del mismo
Cuando se almacena un fichero en un disco, las porciones de dicho archivo se distribuyen por la superficie de los platos.
Llegado el momento de recuperar la información, el disco gira y el cabezal va recuperando la información.
Se puede dar el caso de que se requiera mas espacio, mas rendimiento o ambas cosas y para ello se precisa distribuir la información de diferentes formas y atendiendo a ciertos esquemas.
Siguiendo con el ejemplo del fichero, imaginemos que podemos unir dos discos duros en una entidad lógica de modo que para el sistema operativo no sean vistos como dos discos de 1 TB sino que se comporten como un solo disco de 2TB.
Además de aprovechar mejor el espacio, esta unión permite un aumento de rendimiento. El porqué, reside en que a la hora de escribir en nuestro «disco lógico de 2 TB», la controladora distribuye la información entre ambos discos físicos con lo cual contamos con el doble de cabezales para escribir y/o leer la información y cada uno de éstos solo tiene que gestionar la mitad de la misma.
Si en vez de dos son 8… …queda claro que a mayor número de discos (o de «ejes», que es la expresión comúnmente utilizada), la velocidad y tamaño aumentan aproximadamente en la misma proporción.
Bien, el esquema descrito es uno de los sistemas mas simples de lo que se conoce como RAID (Conjunto de siglas cuyo significado es:»Redundant Array of Inexpensive Disks»).
Los tipos de RAID se describen según un número y el descrito anteriormente es el conocido como RAID0 («RAID CERO»).
A priori este sistema parece perfecto pues permite crecer en rendimiento y velocidad conforme se aumenta el número de discos, si bien tiene sus problemáticas asociadas…
Supongamos que queremos aprender una frase de memoria.
La frase podría ser: «El patio de mi casa es particular, cuando llueve se moja, como los demás»
Ahora piense que dicha frase se almacena en un conjunto de dos discos dispuestos en RAID0, pero por una eventualidad, uno de los discos se estropea. A partir de dicho momento la frase podría quedar del siguiente modo:
«E ptod m cs e priua, uad luv smj ,cm ls dms»
Queda patente que la información que podemos recuperar a partir del segundo disco es insuficiente para poder interpretarla y por tanto nos lleva a una conclusión:
«En un sistema RAIDo se crea una entidad lógica en la que no hay redundancia de información y por tanto la pérdida de uno de los discos, implica la pérdida del total de la información del conjunto RAID«.
Es por ello, que este tipo de disposición sea utilizado cuando se precisa gran velocidad y capacidad pero no como almacenamiento definitivo de los datos.
Si lo que buscamos es disponer de la información aun cuando un disco se estropee, existen otros tipos de RAID. En este caso veamos el denominado RAID1 («RAID UNO»).
Sencillamente un RAID1 se compone de dos discos de modo que lo que se escribe en uno se duplica en el otro. Esto implica que la información se duplica. Por tanto precisamos el doble de disco que el tamaño preciso a utilizar. (Disponemos de dos discos de 1 TB lo que hace que la inversión sea de DOS TERABYTES, aunque el sistema operativo solo ve un disco lógico de 1TB).
Con el RAID1, no se aumenta el rendimiento en escritura pero si se ve mejorado en lectura de los datos ya que cada uno de los discos puede leer la mitad de la información.
Una de dos: Si nos decidimos por RAID0 conseguimos espacio y rendimiento pero poca seguridad, mientras que con RAID1 seguridad pero sin aumentar ostensivamente el rendimiento.
Bien, existe la posibilidad de combinar ambos tipos de RAID en los que se conoce como RAID0+1 (no confundir con RAID10, similar pero no igual).
Con dicha configuración precisamos mas capital ya que el conjunto mínimo para poder realizarlo es de 4 discos.
Con los dos primeros creamos un RAID0.
Realizamos la misma operación con los otros dos.
Ahora disponemos de dos discos lógicos de 2 TB cada uno.
Con estos discos lógicos realizamos un RAID1, duplicando lo que haya en uno sobre el otro.
Conclusiones: invertimos en 4 TB de disco, resultando que la capacidad usable por el sistema operativo será de 2 TB, consiguiendo aumentar el rendimiento mediante los RAID0 y mantener la seguridad ante la rotura de un disco mediante el RAID1.
Esta configuración, es ampliamente utilizada en sistemas de CAD/CAM, diseño 3D, edición de vídeo profesional, donde se precisa un alto desempeño del sistema de disco conservando la seguridad de los datos, si bien exige adquirir el doble de capacidad física de disco que la que nos será necesaria y visible desde el sistema operativo.
Es por esto último que existen otros tipos de RAID, ampliamente utilizados como es el caso del RAID5.
En esta configuración, el conjunto mínimo de discos a utilizar es de 3.
La información se escribe por lo que denominamos «bandas», y se consigue aumentar el rendimiento (aunque no tanto como con el RAID0), y la seguridad ante roturas de un disco.
Esto se consigue mediante a adicion de un elemento de paridad en cada banda, que permita obtener la información perdida aun cuando falta parte de ésta.
Pongamos un ejemplo sencillo:
Imagine que la paridad es una suma (suele ser una operación binaria denominada XOR, pero para una mejor compresión usaremos una simple suma) y deseamos escribir en nuestro sistema de disco la siguiente secuencia de números: 1, 25, 30, 42, 14, 12
Recordemos que como mínimo el RAID5 tendrá 3 discos.
En el primer disco escribimos el primer dato 1
En el segundo disco escribimos el segundo dato 25
En el tercer disco ESCRIBIMOS LA PARIDAD DE LOS ANTERIORES 1 + 25 = 26 (el dato que escribimos en el tercer disco es el 26)
Hemos completado una banda de escritura.
Seguimos y fijémonos ahora además en que discos escribiremos los datos:
En el primer disco escribimos el dato 30
En el tercer disco escribimos el dato 42
En el segundo disco escribimos la paridad de los datos anteriores: 30+42= 72 (La paridad de esta banda se graba en el segundo disco)
Hemos completado otra banda, y seguimos escribiendo
En el segundo disco escribimos el dato 14
En el tercer disco escribimos el dato 12
En el primer disco escribimos la paridad de los datos anteriores: 14+12= 26 (La paridad de esta banda se graba en el primer disco)
De este modo la configuración queda del siguiente modo:
Disco1 Disco2 Disco3
D_______D______P
D_______P______ D
P______ D_______D
La información referente a la paridad de distribuye entre los discos.
En caso de rotura de un disco, podemos seguir operando ya que con la información y paridad restantes en los otros dos discos, la controladora puede calcular el dato que falta.
Disco1 Disco2 Disco3
1_______25_____26 BANDA1
30______72____ 42 BANDA2
26 ______14_____12 BANDA3
Supongamos que se estropea el disco 1.
Disponemos del segundo dato de la secuencia que es el 25 pero nos falta el primero. La controladora realiza esta operación:
Paridad menos dato del disco 2, dan como resultado el dato que residía en el disco que falta «1».
En la segunda banda Disponemos de la paridad en el disco 2 y uno de los datos en el disco3. La controladora realiza la operación: paridad menos dato de disco 3 resultan en el dato perdido del disco1 (72-42=30).
En la tercera banda, al perder el disco 1, lo que hemos perdido es la paridad de la banda pero conservamos ambos datos de la banda con lo que no es necesario realizar ninguna operación para disponer de la secuencia completa.
Con este sencillo ejemplo, queda demostrado como un conjunto RAID5 puede seguir operando aun después de la rotura de un disco.
En este tipo de RAID, el rendimiento, disponibilidad y fiabilidad es de los mas altos, si bien aumenta hasta ser óptimo en configuraciones de entre 7 y 9 discos (de este modo el porcentaje de espacio pedido por la paridad es únicamente una séptima o novena parte de la inversión realizada, disponiendo de un gran número de ejes para que el rendimiento sea especialmente eficaz).
Existen un RAID3 y 4, similares en concepción al RAID 5 si bien reservan un disco en concreto para la paridad y difieren entre ellos en detalles significativos. Se utilizan menos por ser mas específicos y destinados a soluciones mas concretas y menos polivalentes que el RAID5.
En sistemas de alta disponibilidad, se precisan niveles de RAID que permitan seguir trabajando aun cuando se produce el fallo simultáneo de dos discos (contra esto, ninguno de los sistemas descritos anteriormente puede salvar la información y se pierde todo el conjunto que funciona como un disco lógico).
Para este tipo de entornos, se ha dispuesto el RAID6 en el que se utiliza un doble sistema de paridad, y que hace que el conjunto mínimo de discos para la construcción de un grupo de este tipo sea de 4 (dos de datos y dos de paridad), si bien el rendimiento óptimo se produce cuando el grupo se compone de entre 8 y 12 discos (en función de la controladora y otros elementos), siendo de este modo (en el caso de ser 12) que el espacio dedicado a paridad es de un sexto con respecto al de datos y por tanto mucho mas rentable que un RAID1 , por ejemplo.
El rendimiento es similar al del RAID5 pero aumentando la seguridad (recordemos que aun con la rotura de dos de los discos, sigue operando normalmente).
No son estos los únicos sistemas para garantizar la seguridad de la información (hot spare disk, backups…), pero si algunos de los mas básicos que toda empresa debería de disponer en función de su carga de trabajo, volumen de datos, criticidad de los mismos, capacidad económica dedicable a este menester y otras consideraciones.
Particularmente nuestros sistemas se configuran sobre RAID6 para disponer del grado mas alto de confiabilidad pero cada empresa tiene que estimar el valor de los datos que residen en sus sistemas para realziar la inversión correcta en los sistemas de almacenamiento. Concretamente nuestro servicio BKOL, debe garantizar el máximo en cuanto a disponibilidad, seguridad y confiabilidad por lo que combinamos RAID6 y RAID60 junto al replicado de los sistemas y respaldo de los mismos a medios de segundo y tercer nivel.
Fallo ¿Irresoluble?, de seguridad en Windows 7
No es la primera vez que Vipin Kumar y Nitin Kumar descubren un fallo de seguridad, en principio irresoluble, en un sistema operativo de Microsoft.
El problema reside en la suposición del fabricante, de que durante el proceso de arranque, el sistema es seguro.
Esto se ha demostrado incierto ya que durante una conferencia, los investigadores, demostraron como un software podía tomar el control remoto del equipo durante dicho proceso y mantenerlo posteriormente.
El fallo parece, a estas alturas, irresoluble, sin grandes inversiones y retrasos en el desarrollo del sistema y no debería de ser posible solventarlo con un parche o service pack al que tan acostumbrados nos tiene el faricante.
Ya en la versión anterior del sistema operativo, «Vista», se descrubrío un fallo de ésta índole y que no ha sido resuelto, mientras empresas y particulares de todo el mundo lo usan entendiendo que su sistema es…¿seguro…?
Hace unos días , durante el desarrollo de un proyecto, un cliente me instó a utilizar, «para navegar», un portatil con Windows 7 Beta (SI, entiendo que es Beta, inacabado, inseguro…in..), tras varias horas sufriendo problemas, en principio, poco achacables al propio sistema, constatamos que así era. Habrá que ver como se comporta el sistema una vez nos ofrezcan el producto definitivo.
Mientras la estrategia del fabricante sea la de lanzar un producto cada X años para volver a llenar las arcas de Redmon, dejando aspectos como seguridad o contención de recursos son aspectos descuidados o de menor importancia y los usuarios de todo el mundo lo acepten como «normal», poco se podrá hacer el pos de productos realmente fiables y puestos en mercado una vez contrastada su solidez.
Los culpables? Por supuesto… nososotros, los consumidores.