31 agosto 2008

MAGERIT


MAGERIT es el nombre árabe que tenía la antigua Madrid, pero también el acrónimo de la Metodología de Análisis y Gestión de Riesgos de IT (del inglés, Information Technologies) creada por el Ministerio de Administraciones Públicas español con el fin de sistematizar el análisis y la gestión de riesgos en el marco de la Administración. Sirve para realizar los pasos delineados en mi anterior artículo sobre análisis de riesgos pero siguiendo una serie de pasos determinados y concretados en la metodología, así en vez de que cada responsable de seguridad haga un análisis de riesgos a su manera se usará un método común de manera que no haya lugar para la improvisación ni para la arbitrariedad del analista. Este enfoque tiene la ventaja de la interoperabilidad que ofrece con otros actores. Por un lado las empresas conocerán al detalle el método que se va a usar, por lo que podrán realizar ofertas más personalizadas para colaborar en alguno de los pasos. Por otro lado, este marco común de análisis de riesgos facilita la realimentación de los resultados y conclusiones en otras organizaciones de la Administración al basarse el método en una estructura que todos conocen.

MAGERIT se basa en tres libros. Concretamente:
  • Método: Establece los conceptos básicos. Las tareas clave a realizar y la documentación resultante.
  • Catálogo: Se trata de una lista de elementos estándar de manera que se cuente con una nomenglatura común a todos los proyectos de análisis y gestión de riesgos donde se aplique MAGERIT. Así, se enumeran: tipos de activos, dimensiones de valoración de los activos, criterios de valoración de los activos, amenazas típicas sobre los sistemas de información y salvaguardas a considerar a la hora de proteger los sistemas de información.
  • Guía de técnicas: Explica una serie de técnicas útiles para cada uno de los pasos en los que se compone la metodología.
El libro sobre el Método es el más didáctico de todos y presenta unas definiciones de los activos, amenazas, riesgos, impactos, etc similares a las dadas en mi anterior artículo. Añade a las ya clásicas dimensiones de la seguridad (Confidencialidad, Integridad, Disponibilidad y Autenticidad) una nueva, la Trazabilidad, por la cual resulta indispensable establecer mecanismos que permitan saber quién presta los servicios y accede a los datos. Tiene bien presente la problemática que introduce en la valoración la interdependencia de los activos. Esto último le lleva definir dos tipos nuevos de impacto:
  • Impacto acumulado: Es el calculado en función de las amenazas a las que está expuesto el activo y en función del valor de dicho activo más el de los que dependen de él. Sirve para determinar qué pasaría si un activo cayese, por lo que resulta extremadamente útil para determinar qué puntos son prioritarios a la hora de establecer salvaguardas.
  • Impacto repercutido: Se calcula en función de su valor propio y de las amenazas a las que están sometidos los activos de los que depende. Sirve para determinar como le afectaría a un activo la caída de otros. Se utiliza a la hora de establecer los riesgos residuales.
Todas estas valoraciones son importantes ya que, como se puede ver en la figura, la implantación de salvaguardas permite reducir los riesgos a los que se ven sometidos los activos de la organización, lo que sirve para evitar los costes que suponen los impactos de las amenazas más frecuentes. Sin embargo si se busca obsesivamente la seguridad intentando evitar las amenazas menos frecuentes los costes de la organización se disparan por el esfuerzo necesario para establecer las salvaguardas. Si lo que se busca es reducir los costes económicos a los que se ve sometida la organización, se tratará de encontrar un punto de equilibrio, representado en la gráfica por el mínimo del coste total. Sin embargo hay organizaciones que no se pueden guiar (o no deberían) por el coste económico, por ejemplo en lo que se refiere a sistemas militares, por lo que tenderán al grado máximo de seguridad, aunque ello suponga disparar los costes monetarios.

El libro sobre el Método divide el Análisis y la Gestión del Riesgo (AGR) en tres procesos:
  • Planificación: De los medios materiales y humanos destinados a la realización del AGR, el ámbito del análisis y los plazos a los que se ceñirá.
  • Análisis de Riesgos: Valoración de los diferentes elementos (activos, amenazas y salvaguardas) y de sus interdependencias (riesgos, impactos y eficacia de las salvaguardas).
  • Gestión del Riesgo: Se elige entre las distintas opciones de salvaguarda identificadas en el proceso de Análisis. Se elabora el plan de seguridad y se prepara su implantación.
MAGERIT divide cada uno de estos procesos en una serie muy detallada de actividades, y estas a su vez en tareas, llegando incluso a determinar los productos de entrada y de salida de cada una de esas tareas, así como las técnicas aplicables a cada una de ellas.

Por último, no hay que olvidar MAGERIT está pensada para utilizarse conjuntamente con los Criterios de Seguridad, Normalización y Conservación, para los amigos Criterios SNC, y con la herramienta PILAR. Los Criterios SNC no son sino un recetario de buenas prácticas a la hora de plantear el desarrollo, despliegue y explotación de sistemas con el fin de mejorar su seguridad, integridad e interoperabilidad. Es un documento bastante interesante y, sobre todo, muy concreto y realista y debería ser de lectura obligada para cualquier ingeniero de seguridad que se precie independientemente de que trabaje para la Administración o no. En cuanto a PILAR es la herramienta automatizada de análisis de riesgos utilizada en la Administración española. Desgraciadamente, el uso de PILAR está restringido ya que el Centro Criptológico Nacional, responsable de la gestión de las licencias de PILAR, sólo las concede a las entidades de la Administración.

28 agosto 2008

Diseño de centros de respaldo

Las Tecnologías de la Información ya son verdaderos puntales de la actividad de muchas organizaciones, por lo que una simple interrupción de sus servicios puede resultar fatal para su cuenta de resultados. Para evitarlo no hay otra solución que dotar de redundancia a los sistemas de la organización. Esta redundancia tiene distintos enfoques y niveles. El primer enfoque es el más utilizado e implica la redundancia de los sistemas individuales lo que incrementa la disponibilidad de los servicios y, en algunos casos, su potencia si se consigue la redundancia activo-activo mediante clusters o granjas de servidores. El segundo enfoque es el que se tratará a lo largo de este artículo e implica la redundancia de todo el CPD de la organización en otro emplazamiento, por lo que es menos común dado el elevado coste que supone, pero es el que más seguridad ofrece por lo que suele ser la opción elegida por instituciones gubernamentales y grandes corporaciones (que además suelen asumir simultáneamente el primer enfoque en el CPD principal). La distancia entre el CPD y su réplica es variable y se pueden encontrar CPDs compartiendo pared con su réplica, mientras que otros se situan en edificios distintos o a muchos kilómetros de distancia. Cuanto más lejos estén el CPD y su réplica mejor, así una catástrofe (fuegos, explosiones, accidentes, etc) o ataque localizado (por ejemplo bombas) sólo afectará a uno de los dos, mientras que el otro podrá seguir funcionando. Lógicamente a mayor distancia entre los CPDs mayor será el coste de mantenerlos ya que , entre otras cosas se disparará el coste de la actualización de la réplica. Igual que la redundancia de sistemas puede ser de dos tipos - activo-activo y activo-pasivo - la de CPDs puede ser de actualización síncrona o asíncrona. La actualización síncrona implica que la réplica recibe en tiempo real los cambios que experimentan los sistemas del CPD de manera que cuando se de una conmutación, el CPD caiga y la réplica se haga cargo del servicio, la réplica este plenamente actualizada. Por contra la actualización asíncrona no traspasa los datos a la réplica en tiempo real sino por lotes. Por ejemplo, una política de actualización asíncrona podría ser hacer un clonado de los sistemas del CPD cada noche e instalar dichas copias en la réplica. El problema de la actualización asíncrona es que en el momento de la conmutación la réplica no estará plenamente actualizada sino que sólo contará con los datos hasta el momento del último volcado. En el ejemplo que hemos puesto de política de actualización asíncrona el caso peor podría ser una caída irrecuperable del sistema principal a última hora de la tarde lo que supondría la entrada de la réplica con los datos de la noche anterior, es decir se perderían todos los datos generados durante la mañana y la tarde. Por eso la actualización síncrona es mucho más segura, pero claro, también mucho más cara ya que supone el despliegue de enlaces entre el CPD y su réplica con la suficiente capacidad para permitir el envío masivo de datos en tiempo real a los sistemas de la réplica. Si además el CPD y su réplica están separados por una gran distancia los costes de interconexión se disparan. En el caso de las actualizaciones asíncronas lo normal es que se tenga que transmitir una cantidad muy elevada de datos pero que se asuma un intervalo de tiempo más o menos largo para realizar la transmisión (por ejemplo, clonado a comienzo de la noche y transmisión de los datos a lo largo de la noche), por tanto se necesitan enlaces con un ancho de banda elevado pero no tanto como en el caso síncrono en el que el requisito de actualización en tiempo real exigen enlaces fiables de alta capacidad que no se conviertan en cuellos de botella. Una tecnología comúnmente usada para establecer estos enlaces se basa en fibra óptica y por ello recibe el nombre de Fiber Channel, también utilizadas para el despliegue de redes SAN, con las que se pueden obtener velocidades superiores a los 400 MBps (sí, bytes) en distancias por debajo de 2 Km. Para distancias más grandes la fibra puede ofrecer hasta 200 MBps por debajo de los 50 Km. Cuando la réplica se encuentra en el mismo edificio o en el mismo complejo de edificios que el CPD resulta muy fácil establecer un enlace de fibra entre ellos, pero cuando están más alejados entre sí no queda más remedio que acudir a las empresas de telecomunicaciones para alquilarles sus fibras oscuras. Una alternativa más barata, pero también mucho más limitada en cuanto a distancias y velocidades, es iSCSI, una versión TCP/IP del protocolo SCSI, que permite utilizar equipamiento de red ethernet, mucho más barato que el de fiber channel. La pega de iSCSI es que no permite las altas velocidades de fiber channel pero lo cierto es que la llegada de Gigabit Ethernet ha reducido las diferencias, sobre todo si en los troncales se recurre al agregado de enlaces (ethernet channel en la terminología Cisco y trunking según otros). Eso a nivel de datos de almacenamiento, en lo que se refiere al necesario tráfico de red para el acceso a los sistemas, lo más usual es colocar un conmutador multicapa en el centro de respaldo unido por enlaces redundados (cada uno de ellos debería seguir una ruta distinta o, en su caso, estar contratados a un operador distinto) al conmutador multicapa del centro principal, de manera que las VLANs del CPD se extiendan a la réplica. Una vez que se ha afrontado el problema de la sincronización de los datos hay que estudiar otro muy importante: cómo hacer la conmutación de los servicios desde el CPD a la réplica. La verdad es que depende enormemente del tipo de servicios y sistemas que queramos replicar, aunque si estamos en un caso de actualización síncrona dadas las altas velocidades y la fiabilidad de las redes actuales resulta similar a la conmutación de equipos redundados dentro del mismo CPD ya que gracias a estos factores se pueden extender VLANs entre distintos edificios y localizaciones de manera transparente a los servidores. De esta manera no resulta complicado establecer clusters de equipos, cuyos nodos estén distribuidos a partes iguales entre los dos emplazamientos. Lo mismo se puede decir de las granjas de servidores. Este esquema (activo-activo) permite que no se desaproveche la potencia de los nodos desplegados en el centro de respaldo ya que se les utiliza en las tareas diarias. En caso de caída de uno de los emplazamientos los nodos del otro continuarán con el trabajo que venían haciendo y asumirán el del centro caído. Otra ventaja de los diseños de respaldo activo-activo es que como las máquinas del centro de respaldo funcionan constantemente se puede detectar cuando se estropea una, mientras que en los diseños activo-pasivo como el centro de respaldo está "apagado" no es raro encontrarse con la desagradable sorpresa de que alguno de los sistemas falla a la hora de "arrancarlos". En el caso de diseños de actualización asíncrona la puesta en marcha puede ser más compleja y menos automática ya que los equipos del centro de respaldo son meras copias de los del centro activo por lo que se mantienen en estado pasivo y suelen requerir cierta puesta a punto antes de asumir el servicio. Eso de cara a los servicios internos, de cara a los externos a veces hay que avisar al resto del mundo de que las máquinas que ofrecen los servicios pasan a ser las del centro de respaldo, lo que impica cambiar los registros de los DNS externos. En ese sentido existen empresas que ofrecen servicios de monitorización de sistemas mediante los cuales comprueban periodicamente que dichos servicios siguen en pie y, en caso contrario, cambian los registros DNS para que apunten a las máquinas de la réplica. De todos modos, hay que tener en cuenta que en este caso las actualizaciones en el DNS pueden tardar horas en extenderse por lo que la perdida de servicio a los clientes externos puede prolongarse.

26 agosto 2008

Análisis de riesgos

La labor de un ingeniero de seguridad consiste en garantizar la confidencialidad, integridad y disponibilidad de los activos de su organización de una manera eficaz, eficiente y económica. Suena mucho más fácil de lo que realmente es porque lo cierto es que no es raro encontrarse profesionales que aplican soluciones de seguridad inadecuadas ya sea porque no han entendido correctamente la naturaleza de las amenazas o porque son excesivamente caras en comparación con el valor de los activos a proteger. Por tanto resulta imprescindible para un ingeniero de seguridad realizar un pormenorizado análisis de riesgos de su organización con el fin tener bien claro:
  • Qué es lo que debe proteger (Activos).
  • Qué supone un peligro para lo que debe proteger (Amenazas).
  • Cual es la probabilidad de que esos peligros se materialicen (Riesgo).
  • Cual es el grado de incertidumbre que la organización está dispuesta a asumir (Riesgo residual)
  • Cual sería el coste para la organización si esos peligros se materializasen y afectasen a lo que debemos proteger (Impacto).
Con todos los puntos anteriores bien claros, resulta de sentido común efectuar lo que se denomina una comparación coste/beneficio o lo que es lo mismo: una comparación entre el impacto que tendría para la organización que se materializase el riesgo de una amenaza sobre un activo en particular y el coste que supondría desplegar la tecnología y los procedimientos necesarios para anular estos riesgos (salvaguardas). Como se puede ver no resulta una tarea sencilla. Un análisis de riesgos supone un análisis minucioso de la organización -para determinar los activos-, una comprensión plena de la naturaleza de su negocio -para ponderar cada uno de los activos-, un conocimiento exhaustivo y actualizado del campo de la seguridad -para localizar las amenazas y su riesgo de ocurrencia- y por último el apoyo completo y realista de todos los departamentos de la organización -para obtener unas estimaciones de impacto correctas- a través del imprescindible respaldo de la dirección de la organización. Intuitivamente los activos son todo aquello que pertenezca a la organización y su valor será directamente proporcional a la dependencia de los beneficios de la organización respecto a ese activo. Por ejemplo, el mobiliario es un activo de una empresa de telecomunicaciones al igual que los equipos de su CPD y por tanto deben ser protegidos por sistemas de seguridad perimétrica, pero dado que los beneficios de esta empresa no dependen de su mobiliario resulta lógico pensar que el valor como activo del mobiliario es menor que el valor como activo del CPD. No pasa lo mismo con un restaurante, para el que el mobiliario resulta infinitamente más valioso que su página web. Además, la valoración de activos no sólo sirve para priorizar su protección sino también para poner un tope a la inversión realizada en su defensa ¿qué sentido tiene instalar en nuestro hogar una caja fuerte de 12.000 euros si en nuestro caso particular no tenemos nada valioso y nunca juntamos en casa más de 200 euros de efectivo?. Este tipo de valoración intuitiva se denominaría cualitativa y es muy útil a la hora de hacer una primera estimación. Sin embargo, a la hora de sistematizar el proceso de análisis de riesgos y utilizar herramientas automatizadas especializadas en dicha labor, resulta imprescindible asignar a cada activo un valor numérico. Aquí el asunto se complica ya que el ingeniero deberá decidir qué utiliza para asignar dicho valor. Podría optar, por ejemplo, por cualquiera de los siguientes indicadores:
  • Coste para adquirir o desarrollar el activo.
  • Coste de mantenimiento del activo.
  • Valor del activo para los usuarios.
  • Valor de la propiedad intelectual utilizada para desarrollar el activo.
  • Valor que le daría la competencia al activo.
  • Responsabilidad legal que se daría en caso de pérdida o daño del activo.
  • Utilidad del activo para la organización.
Identificar las amenazas y, sobre todo, sus riesgos de ocurrencia resulta aún más complicado. Las amenazas no siempre estarán claras ya que pueden no ser intencionadas y pueden encontrarse tanto fuera como dentro de la organización. Además estas amenazas, en caso de que se materialicen, pueden dar lugar a otras amenazas en un efecto cascada difícil de evaluar y controlar. Por ejemplo, un empleado mal entrenado puede ser un peligro para la integridad de nuestro sistema, lo que le convierte en una amenaza, pero además puede dejar a su paso configuraciones deficientes que abran agujeros en la seguridad útiles para atacantes remotos. Una herramienta muy útil a la hora de estimar riesgos son los registros de incidencias que nos permitirán conocer el historial de incidentes de la organización y su frecuencia. En cuanto a la estimación de impactos hay que tener cierta perspectiva ya que el daño sufrido por la organización, en caso de que algunos de sus activos se vea afectado, puede no sólo ser inmediato sino también diferido. Es evidente que un servicio de banca on-line que sufra un incidente de seguridad sufrirá un impacto inmediato en función del incidente pero también otro diferido relativo a la merma de confianza de sus potenciales clientes acerca del servicio. Como ya hemos dicho, a la hora de combinar elementos tan complejos de una manera sistemática se hace necesario el uso de técnicas de análisis cuantitativo mediante la ponderación de los diversos factores implicados y su interrelación mediante ecuaciones que determinen los riesgos totales y residuales. Poner valor a todos los elementos anteriores es una tarea compleja, pesada y al final resulta imposible hacerlo de una manera 100% objetiva... pero es lo que hay y gracias a este tipo de técnicas se pueden usar herramientas automatizadas como PILAR que, una vez configuradas con el modelo de nuestra organización, nos permitirán realizar cálculos rápidamente, estimar impactos de manera precisa y determinar la efectividad de diversas tecnologías de salvaguarda. Al final de todo el proceso se llega a un diseño para nuestra organización que nos permitirá minimizar los riesgos, aunque nunca podremos anularlos por completo, siempre habrá un cierto grado de riesgo que nuestra organización deberá asumir bien como inevitable o bien como demasiado costoso de eliminar. En el primer caso, el riesgo inevitable, se puede reducir el impacto transfiriendo el riesgo, por ejemplo mediante seguros. Con el segundo caso no queda sino vivir con él y cruzar los dedos para que nunca ocurra, recibiendo el nombre de riesgo residual . Por ejemplo, Los antiguos diseñadores de fortalezas procuraban construirlas con murallas bien altas pero siempre debían asumir el riesgo residual de que los sitiador construyesen máquinas de asalto aún más altas; para reducir este riesgo los que tenían la posibilidad construían castillos encima de picos escarpados pero ni siquiera eso conseguía anular del todo el riesgo... como descubrieron los desafortunados defensores de Masada. El informe resultante de nuestro análisis de riesgos deberá contener, como mínimo:
  • El valor asignado a cada uno de los activos de manera que se pueda priorizar entre unos y otros.
  • Una lista completa de todas las amenazas significativas.
  • Probabilidad de ocurrencia de cada una de las amenazas.
  • Impacto estimado de cada una de las amenazas a lo largo de un periodo mínimo de 12 meses.
  • Un diseño que comprenda las salvaguardas, reformas y contramedidas recomendadas.
Por supuesto, este informe debe ser presentado a la dirección de la organización que será la responsable de evaluar las medidas recomendadas y aplicarlas si así lo considera oportuno. Precisamente porque la dirección de la organización carece, por lo general, de una formación técnica profunda, lo más recomendable es entregar un resumen ejecutivo comprensible por personal no técnico y recoger los cálculos y la base técnica en los correspondientes anexos.

21 agosto 2008

La paradoja del cumpleaños

Según la teoría matemática, si juntamos a 23 personas en una habitación existe en torno a un 50% de posibilidades de que 2 de ellas tengan el mismo cumpleaños. Si en vez de 23 juntamos 75 la probabilidad sube al 99.9%. ¡Ojo!, no se trata de que alguien tenga el mismo cumpleaños que nosotros (en ese caso impondríamos como condición una fecha concreta lo que supone una restricción más fuerte) sino que dos personas cualesquiera coincidan en su cumpleaños (puede resultar ser cualquier fecha). Las matemáticas que se encuentran detrás de esto pueden resultar complejas si no se ha estudiado nada de probabilidad, pero vamos a intentar explicarlas. Para empezar debemos tener claro cuantos posibles emparejamientos se pueden dar en una sala de n personas: Por ejemplo, en una sala con 23 personas hay 253 parejas posibles. La probabilidad de que una única pareja tenga el mismo cumpleaños es: Su complementario es la probabilidad de que una única pareja NO tenga el mismo cumpleaños: La probabilidad de que NO exista ninguna pareja con un cumpleaños coincidente es: Dado que la base es inferior a 1 esta probabilidad decrecerá conforme aumente el número de personas de la muestra, o dicho de otra manera: cuanta más gente haya más difícil será que no se de una coincidencia con los cumpleaños. Dicho lo cual, la probabilidad (P) de que SÍ se de una coincidencia es la complementaria a la anterior, es decir: Si le damos a P el valor 0.5 (límite a partir del cual las probabilidades de encontrar una coincidencia se ponen de nuestro lado) y despejamos la n, obtenemos precisamente 23. Hasta ahí la teoría, sin embargo hay que advertir (a los que pretendan lucirse en una fiesta) de que la práctica difiere bastante ya que las fechas de nuestros nacimientos hace ya un tiempo que dejaron de ser equiprobables porque los médicos programan los partos cada vez con más frecuencia ¡y no los programan para los fines de semana, lo que rompe la equiprobabilidad!. Pero el interés del resultado que hemos obtenido no se limita a la anécdota en una reunión sino que si generalizamos la fórmula veremos que tiene interesantes aplicaciones en el campo de la seguridad informática, entre otros. Así, si denominamos p a la probabilidad de que a una única pareja le pase algo y p (añádase una barra superior) a su complementaria, es decir a la probabilidad de que a esa pareja no le ocurra lo que estamos evaluando, tenemos entonces que la fórmula anterior generalizada es:De esta manera P es la probabilidad de que se de un suceso cuando el número de elementos de la base de muestra es n. Si despejamos la n la fórmula queda de la siguiente manera:Para el ejemplo del cumpleaños querríamos hallar el número n de personas a partir de las cuales P>0.5. Para ello sustituiríamos P por 0.5, y p (con barra arriba) por 364/365 y veríamos que n es efectivamente 23. Pero pongamos otro ejemplo más interesante del mundo de la seguridad informática. Supongamos que nos llega un comercial para vendernos un sistema de reconocimiento facial. El cacharro se colocaría a la entrada del recinto y sustituiría a la clásica máquina de fichar, lo que eliminaría las colas cuando los 5.000 empleados de nuestra organización llegasen cada mañana. El comercial nos dice muy seguro de si mismo que la máquina tiene una probabilidad de confundir a dos personas de 1 entre 1.000.000 (es decir, una probabilidad de acierto de 0.999999) , por lo que se queda atónito cuando rechazamos su sistema por inseguro. ¿Por qué es inseguro?, porque si aplicamos los datos anteriores a la fórmula (teniendo en cuenta que p(barra) es 0.999999) veremos que las posibilidades de error del equipo son superiores a 0.5 una vez que han pasado por ella 1178 empleados. Dicho de otra manera, no habría manera de acabar la mañana sin que la maquinita se equivocase. Un truco muy útil es que, cuando tratamos con grandes números, se puede aproximar la fórmula general a esta otra: Siendo N el inverso de p (probabilidad de ocurrencia con una única pareja de elementos). En el caso del cumpleaños N sería 365, por lo que la aproximación daría n=19.10 y en el caso del reconocimiento facial N sería 1.000.000 y obtendríamos una aproximación de n=1000. Esta aproximación se utiliza mucho en el mundo de la criptografía donde la paradoja del cumpleaños se tiene muy presente. Por ejemplo, supongamos que tenemos una tabla de contraseñas cifradas con un algoritmo de hash de 64 bits y estamos tranquilos porque creemos que un ataque de diccionario tendría que hacer 2^64 intentos antes de dar con nuestra contraseña... pues no, nada más lejos de la realidad ya que la paradoja del cumpleaños nos demuestra que el atacante seguramente dará con nuestra contraseña cuando haya hecho poco más de 2^32 intentos. Como se puede ver por todo lo anterior la paradoja del cumpleaños trasciende de lo meramente anecdótico convirtiéndose en una herramienta importantísima de cualquier ingeniero de seguridad que se precie.

17 agosto 2008

MIG-in-the-middle


Un ataque man-in-the-middle se produce cuando un tercero se sitúa entre dos principales, ya sean personas o algún tipo de equipo, y les engaña haciéndoles creer a cada de ellos que él es el otro principal. Para ello actúa de intermediario modificando el flujo de información intercambiado por los principales según sus intereses. La única solución a este tipo de ataques es el cifrado de la comunicaciones mediante un protocolo que implique un intercambio de claves a través de un canal seguro, de manera que aunque un atacante pudiese intervenir la comunicación sería incapaz de entenderla o de modificarla sin ser detectado por los controles de integridad.

Hasta ahí la teoría. La práctica admite multitud de variantes, que de hecho se han dado a lo largo de la historia. Uno de los ejemplos más espectaculares me lo he encontrado durante la lectura de Security Engineering, de Ross Anderson. Para ilustrar la disertación sobre los ataques man-in-the-middle, el autor cuenta el desastre sufrido por las tropas sudafricanas a raíz de una variante del ataque que el tiempo ha acabado llamando MIG-in-the-middle.

======================================
Nota del autor: Como Zooko comentó en la versión inglesa de este artículo, Ross Anderson admitió en la segunda edición de su libro que recientemente había descubierto que esta historia no era cierta. Sin embargo, podría haber pasado (cambiando los actores) en cualquier otra guerra en cualquier otro sitio, por eso pienso que sigue siendo interesante.
======================================

A finales de los 80, Sudáfrica estaba implicaba en una guerra en el norte de Namibia y en el sur de Angola. Su objetivo era mantener al gobierno blanco de Namibia y poner al gobierno títere de la UNITA en Angola. Como el ejército sudafricano estaba formado exclusivamente por reclutas blancos y estos no representaban precisamente un segmento de población numerosa era esencial mantener una tasa de bajas lo más reducida posible. Por eso el ejército sudafricano prefería concentrarse en mantener el orden en Namibia y apoyar con sus fuerzas aéreas a las tropas de la UNITA en Angola. Para evitar que las tropas rebeldes angoleñas y sus aliados cubanos realizasen contraataques aéreos contra Namibia, Sudáfrica desplegó una poderosa barrera de baterías antiaéreas. Para que no se diese el llamado "fuego amigo", los aviones sudafricanos iban equipados con dispositivos IFF (identify-friend-or-foe), comunes hoy día, los cuales respondían según un algoritmo preestablecido a las señales enviadas por las baterías antiaéreas de manera que estas identificasen como amigos a los aviones sudafricanos. En realidad no era sino la versión tecnológica del clásico sistema de "santo-y-seña".

El sistema defensivo parecía imbatible y, sin embargo, un buen día un escuadrón de MIGs cubanos atravesó la línea de defensa y bombardeó uno de los principales campamentos sudafricanos de Namibia sin que las baterías antiaéreas de la frontera disparasen un sólo tiro. Las bajas fueron terribles y motivaron que el gobierno sudafricano decidiese retirar las tropas de Namibia, lo que con el tiempo llevó a que cayese el gobierno blanco de aquel país.

Pasó un tiempo hasta que se descubrieron (y se confesaron) las causas de aquel fallo garrafal en la defensa sudafricana. Parece ser que la inteligencia angoleña averiguó que los sudafricanos, quizás por un exceso de confianza, dejaban encendidos sus dispositivos IFF cuando realizaban misiones sobre territorio angoleño por lo que hicieron que una escuadrilla de MIGs esperase cerca de la frontera de Namibia a que otra escuadrilla, esta vez sudafricana (SAAF en la figura), sobrevolase Angola para realizar un bombardeo. Cuando los sudafricanos hicieron acto de presencia sobre Angola para llevar a cabo sus respectivas misiones, los MIGs penetraron en territorio de Namibia. Por supuesto, las baterías antiaéreas sudafricanas detectaron a los MIGs y lanzaron las señales IFF para averiguar si se trataba de aviones amigos o enemigos. Los MIGs carecían de las claves necesarias para responder correctamente a las señales IFF, por eso su plan era reenviar las señales a sus estaciones de radio en Angola y que estas se las sirviesen a la escuadrilla sudafricana que estaba sobrevolando aquel país en ese momento. El plan funcionó porque los aviones sudafricanos tenían encendidos sus IFF y, cuando las estaciones de radio angoleñas emitieron las señales remitidas por los MIGs, los sudafricanos comenzaron a emitir sin saberlo las señales de respuesta correctas que por supuesto los angoleños se ocuparon de captar y de reenviarselas a sus MIGs para que estos se las sirviesen en bandeja a las baterías de Namibia. Así, las defensas aéreas sudafricanas en Namibia se tragaron que aquella escuadrilla de MIGs eran aviones amigos, dándole vía libre.

Aquel ataque obligó a replantearse profundamente la tecnología, los protocolos y los procedimientos operativos utilizados para el IFF. Para empezar, a nivel operativo se prohibió a los pilotos que tuviesen sus IFFs encendidos cuando volasen sobre territorio enemigo. A nivel de protocolo la solución fue mucho más difícil de encontrar y desde luego no fue definitiva, ya que lo que se empezó a hacer fue incluir la identificación del avión en la respuesta devuelta por el IFF de manera que se pudiesen cruzar los datos de las torres de control con los de las baterías para obtener divergencias. Otro método que se intentó fue medir los retardos de las respuestas de manera que si alguna llegaba "mas tarde" de lo normal se podía sospechar que el IFF que la había generado estaba más lejos que el avión detectado. Hay que tener en cuenta que ante este ataque concreto el cifrado de las comunicaciones no supone defensa alguna ya que los MIGs no necesitaban romper ni la confidencilidad ni la integridad de las señales IFF, ya que les bastaba con "reflejarlas" hacia sus estaciones de radio. Todas estas respuestas distan mucho de ser perfectas y mucho menos viables en áreas de batalla atestadas de tráfico aéreo de los dos bandos, es por ello que las técnicas de IFF suponen un campo en constante desarrollo para evitar desastres como el provocado por el ataque MIG-in-the-middle.

13 agosto 2008

Seguridad en Facebook

Facebook ha resultado ser uno de los fenómenos más sorprendentes ocurridos en Internet en los últimos años. Con un crecimiento aproximado de hasta 100.000 nuevos usuarios al día se ha convertido en un medio habitual de muchos grupos de amigos para estar al tanto de la vida de sus miembros y mantenerse en contacto. Sin embargo, también presenta importantes desafíos desde el punto de vista de la seguridad al ofrecer una vía para acceder a nuestros datos personales, con el peligro que ello supone. 

Una cosa es que nuestros amigos íntimos accedan a nuestras fotos haciendo el chorra durante las vacaciones y otra que el que acceda sea nuestro jefe. Otro posible riesgo, aparte de la pérdida de privacidad, viene del cruce de nuestros datos personales con el fin de deducir nuestras claves y contraseñas. 

 A pesar de todo lo anterior, la mayor parte de la gente deja su perfil de Facebook accesible y deposita en él datos que jamás pondría en el tablón de anuncios de su urbanización o de su trabajo. A lo largo de este artículo veremos una serie de parámetros con los que reforzar la seguridad de los datos personales que constan en nuestro perfil. 

Todos estos parámetros se configuran dentro del apartado de Privacidad, accesible desde la esquina superior derecha de Facebook. Dentro del apartado de Privacidad, el primer elemento a configurar es el de Perfil, con el se define quién puede ver los distintos elementos de nuestro perfil. Hay que tener en cuenta que Facebook utiliza por defecto el valor "Mis redes y amigos", lo que supone un auténtico agujero de seguridad ya que si pertenecemos a una red nacional (Facebook nos sitúa por defecto en la red de nuestro país) todos los miembros que sean de nuestro país (o de cualquiera de nuestras redes) podrá ver nuestro perfil. Lo más seguro es fijar todos los elementos al valor "Sólo mis amigos". A no ser que se tenga muy claro lo que se está haciendo, lo mejor es no usar el valor "Amigos de mis amigos" ya que implica unas transitividad muy peligrosa en las relaciones de confianza que estamos intentando configurar (cuando hablamos de seguridad, los amigos de mis amigos NO necesariamente tienen que ser mis amigos). 

El siguiente apartado a configurar dentro del de Privacidad es el de Búsqueda, a través del que se configura si queremos que nuestro perfil pueda ser localizado a través de la barra de búsquedas de Facebook. Si no queremos que la gente que conocemos sepa que usamos Facebook lo mejor es que fijemos esta opción a "Sólo mis amigos" y que desmarquemos la opción que se encarga de anunciar nuestro perfil a los motores de búsquedas. El resto de las opciones fijan los medios que tienen los que aún no son nuestros amigos para contactarnos. Hay que tener en cuenta que algunas de estas opciones (el envío de mensajes y el toque) permiten que personas que no sean nuestros amigos puedan ver nuestro perfil durante un tiempo por lo que se recomienda desactivarlos. Si se quiere dejar una foto de perfil que nos identifique, lo mejor es que esta no sea muy comprometedora o que desactivemos la opción de que sea visible a los desconocidos. Por último, lo más recomendable es desactivar la opción de que nuestra lista de amigos sea visible, así evitaremos que se pueda obtener información sobre nosotros de manera indirecta a través de nuestros amigos, por ejemplo a través de las fotografías que tengan de nosotros. 

Lo siguiente a configurar es lo referente a las "Noticias y mini-noticias". En esta sección se define de cuales de nuestras actividades se puede notificar a nuestros amigos cuando acceden a su Facebook. Lo que configuremos aquí depende del nivel de "ruido" que queramos meter a nuestros amigos, pero no supone un riesgo excesivo de seguridad. Por último está el apartado del acceso que le damos a las aplicaciones que instalamos en nuestro Facebook. En general, las aplicaciones podrán acceder a un subconjunto determinado de información de nuestro perfil por lo que se debe tener cuidado con las aplicaciones que se añaden a los perfiles, ya que la información puede compartirse con los creadores de las mismas. Facebook ha publicado términos del servicio para informar a los usuarios sobre los comportamientos aceptables, pero siempre existe el peligro de que alguien no los cumpla, así que lo mejor es instalar sólo lo imprescindible. A pesar de todo, y a modo de advertencia, los parámetros anteriores no son la panacea y hay que reconocer que Facebook sufre agujeros de seguridad fruto de su diseño. Uno de estos agujeros se refiere a las fotos de nuestros álbumes. A pesar de que podemos configurar los álbumes para que sólo sean accesibles por nuestros amigos, lo cierto es que cada una de esas fotos está referenciada con una URL que se puede utilizar para visualizar la foto sin necesidad de estar logueado en Facebook. Así que sólo hace falta un amigo desleal que haga circular la URL de una foto comprometedora para que esta sea visualizable por todo Internet. Así que mucho ojo con lo que colgamos en Facebook. Lo mejor es seguir el criterio de poner sólo aquello que no nos importaría ver colgado del tablón de anuncios de nuestra urbanización u oficina.