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.