Mostrando entradas con la etiqueta Análisis de Riesgos. Mostrar todas las entradas
Mostrando entradas con la etiqueta Análisis de Riesgos. Mostrar todas las entradas

jueves, 27 de noviembre de 2014

Sistemas Industriales: ¿Parchear o no parchear?


Muchas son las peculiaridades que deben tenerse en cuenta al considerar la seguridad de los sistemas industriales y los sistemas SCADA. Una especialmente relevante  es el parcheo o actualización de los sistemas o del software que éstos soportan. Cuando en una evaluación de la seguridad de este tipo de sistemas se llega a la pregunta: “¿Y cómo realizáis el mantenimiento de los sistemas para solventar las vulnerabilidades conocidas que hayan sido resueltas por el fabricante?” nos podemos encontrar con respuestas de lo más variado. Algunas posibilidades son:
Opción 1: Cara de póker
“- Nosotros no aplicamos parches de seguridad. No es necesario puesto que nuestra red industrial está totalmente aislada y de todas formas, la mayoría de los fabricantes que utilizamos no publican actualizaciones de seguridad. Por otro lado, en ocasiones la actualización del software implica también cambio de hardware, por lo que las restricciones presupuestarias no permiten aplicar dichas actualizaciones.”
Esta respuesta o respuesta similares es bastante común. Y no me parece una estrategia descabellada a seguir la de no aplicar parches de seguridad siempre y cuando se cumplan los siguientes condicionantes:
1.       Se realice un análisis de riesgos para comprender claramente cuáles son las amenazas que nos pueden afectar por el hecho de no parchear nuestros sistemas y qué impacto podrían suponer dichas amenazas en caso de materializarse. Téngase en cuenta que no me refiero a realizar un ejercicio superficial de análisis de riesgos, si no que me refiero a analizar los riesgos en profundidad. Es decir, conocer exactamente qué vulnerabilidades son las que no estoy parcheando, como podrían ser explotadas por un atacante y qué medidas compensatorias al parcheo estoy implementando en mi infraestructura para paliar estos riesgos. A la hora de considerar las amenazas se debe prestar especial atención al perímetro de los sistemas industriales, los puntos de interactuación con las redes tradicionales y los puntos de acceso que son fácilmente accesibles por visitantes o por el público en general.

2.       Una vez realizado dicho análisis de riesgos, se vea que los problemas, costes o dificultades derivados de aplicar los parches sean superiores al riesgo que se mitigaría en caso de parchear.

3.       Que esta decisión sea llevada a cabo de forma informada y consciente por el propietario del riesgo,  es decir, por el responsable del proceso de negocio que sufriría las consecuencias en caso de que estos riesgos se materializaran.
Por otro lado, está claro que hay que presionar a los fabricantes para que implementen procesos de gestión de las vulnerabilidades de sus productos y la calidad de los mismos debería ser un criterio clave en la selección de este tipo de tecnologías para que este problema no se perpetúe en el tiempo.

Opción 2: El hombre tranquilo
“- Pues depende del fabricante, del dispositivo, y del técnico que se encargue de la actualización. No lo tenemos realmente documentado, pero usamos métodos diversos como la descarga directa desde la página web del fabricante de los ficheros de actualización (quien por cierto no publica un hash del fichero para verificarlo tras su descarga, y si lo publica no lo verificamos). A veces, para ganar tiempo incluso lo descargamos desde nuestra propia casa dónde el ancho de banda es mayor que en la oficina. Lo grabamos en nuestro USB y lo conectamos a la red de sistemas industriales que está totalmente aislada de la red de IT. Otras veces, es un partner o el propio fabricante quien viene con su USB o con sus portátiles y se conectan directamente a nuestra red industrial para aplicar las actualizaciones o realizar cualquier otro tipo de intervención.”

En estos casos, como podéis imaginar, el problema radica en que el ‘aislamiento’ deja de ser tal cuando el USB, el portátil o el CD de turno se conecta a nuestra red aislada. Algunas amenazas a las que se exponemos nuestros sistemas con éstas prácticas son:
·         Malware que pueda causar problemas de rendimiento o incluso una denegación de servicio en estos equipos.
·         Malware avanzado capaz incluso de permitir el control remoto o el robo de datos. Aunque a priori esto parece imposible en una red aislada, en la actualidad podemos encontrar numerosas pruebas de concepto sobre cómo se podrían realizar estos ataques sorteando el ‘Air GAP’.
·         Actualizaciones fraudulentas descargadas de internet cuyo funcionamiento será diferente al esperado.
·         Terceros que se conectan a nuestra red utilizando sus propios sistemas que pueden tener un nivel de seguridad inferior al nuestro. Además, si no controlamos qué actividades realizan en nuestros sistemas pueden ser una fuente de amenaza a tener en cuenta. No olvidemos que es muy probable que nuestros partners trabajen también para nuestra competencia directa, por lo que es una fuente de riesgo a tener en cuenta.

Opción 3: El precavido
“En nuestra organización disponemos de procesos documentados y seguros para llevar a cabo la actualización de todos nuestros sistemas industriales. Tenemos diversos sistemas para estar informados de cualquier nueva vulnerabilidad que se descubra que puede afectar a nuestros sistemas. Realizamos un análisis comparativo de los riesgos que supone llevar a cabo la actualización comparándolos con los que supone dejar los sistemas sin parchear, de manera que el propietario del proceso puede establecer el criterio a seguir para tomar la decisión de si se debe parchear y en qué plazo debe hacerse. Una vez decidimos que un parche debe aplicarse, lo obtenemos de una fuente segura verificando su integridad y autenticidad, lo desplegamos en nuestros entornos de prueba para verificar que la actualización no comprometerá la funcionalidad ni la seguridad de los sistemas y, sólo después de esto, y bajo nuestro estricto control y supervisión, la actualización se despliega en producción dentro del plazo establecido por el propietario del proceso.”

Pues si te vienen con estas, poco vas a tener que decir salvo asentir y felicitar al cliente. Sin embargo, hasta el momento no me he encontrado con el caso, aunque no pierdo la esperanza…
En conclusión, los procesos de gestión de vulnerabilidades son un aspecto crítico a considerar en cualquier evaluación de seguridad que se realice, pero especialmente si lo que estamos evaluando son sistemas industriales y/o sistemas SCADA. No actualizar significa acumular vulnerabilidades, mientras que el proceso de actualizar puede ser en sí mismo una amenaza si no se realiza de manera adecuada. Por lo tanto, planificar, documentar y establecer un ciclo de mejora continua sobre los procesos de gestión de vulnerabilidades debería estar en la agenda de cualquier responsable de seguridad que pretenda mejorar la protección de su organización.

domingo, 6 de julio de 2014

Ejemplo de Análisis de Riesgos


Introducción
Este post tiene como objetivo el explicar en detalle una metodología propia de análisis de riesgos. En el pasado he utilizado esta metodología con éxito en la realización de diversos análisis de riesgos de Seguridad de la Información. Aunque, obviamente, guarda similitudes y ha nacido a la luz de otras metodologías ampliamente utilizadas como Magerit o ISO31000, posee peculiaridades que posibilitan realizar análisis de riesgos rigurosos pero muy sencillos de comprender y ejecutar.

Empezemos explicando el escenario (ficticio) que utilizaremos como ejemplo para desarrollar el análisis de riesgos.

La empresa Mascultura es una libreria online. Se dedica exclusivamente a la venta de libros (físicos, no en formato digital) a través de su página web. No tiene stock de libros, si no que los adquiere directamente a un mayorista. Dado que su negocio se basa en la venta online, y por tanto en la información, ha decidido llevar a cabo un análisis de riesgos para tener claro qué riesgos tiene y qué puede hacer para disminuirlos.

Catálogo de Amenazas
Lo primero que vamos a hacer será elaborar el catálogo de amenazas a considerar. Para ello, lo que normalmente hago es partir de un catálogo amplio, como por ejemplo el que tiene Magerit y eliminar aquellos que no son relevantes en ese caso concreto. Además, suelo agrupar algunas amenazas similares para simplificar el proceso de analizar los riesgos. Hay que tener en cuenta que trabajar con un catálogo muy amplio, aunque permitirá un análisis más riguroso, también multiplicará los esfuerzos y el tiempo necesario para llevar a cabo dicho análisis. Mi recomendación es tratar de no sobrepasar las 10 amenazas en nuestro catálogo.

En el caso de Mascultura, para simplificar al máximo en análisis, estas son las amenazas que vamos a considerar:
  • Desastres Naturales
  • Errores de los usuarios
  • Errores de los programadores
  • Errores en la administración de los equipos
  • Malware
  • Ataques intencionados

Aunque agrupemos amenazas para reducir su número, es importante que todas las categórias de amenazas que realmente puedan afectar a la información del negocio estén recogidas en nuestro catálogo para que el análisis sea riguroso y no menospreciemos riesgos relevantes. Asimismo, para elaborar el catálogo se debería considerar en contexto en el que opera la organización, tanto interno como externo. Por ejemplo, según qué tipo de organización estemos analizando tendrá sentido o no hablar de fraude interno, robo de activos o desastres industriales como amenazas a considerar.

Siguiendo con nuestro ejemplo, ahora que tenemos nuestro catálogo de amenazas, vamos a darle un valor de probabilidad estándar para cada una de ellas. Este será el valor de probabilidad que consideraremos por defecto, aunque podrá verse modificado en cada activo en función de sus vulnerabilidades. Para evaluar la probabilidad (y el resto de valores evaluables) voy a utilizar una escala de 5 valores. En función del grado de detalle que queramos para nuestro análisis se podrían utilizar únicamente 3 valores, o irnos a un modelo de más valores (7, 10 o incluso más):

    5- Extremadamente probable
    4- Muy probable
    3- Probable
    2- Poco probable
    1- Probabilidad prácticamente despreciable

Así, nuestro catálogo de amenazas quedará de la siguiente manera (entre paréntesis la dimensión o dimensiones a las que puede afectar la amenaza):

  • Desastres Naturales (Disp): 1
  • Errores de los usuarios (Conf, Int, Disp): 4
  • Errores de los programadores (Conf, Int, Disp): 3
  • Errores en la administración de los equipos (Conf, Int, Disp): 3
  • Malware (Conf, Int, Disp): 5
  • Ataques intencionados (Conf, Int, Disp): 4

Mapa de Procesos
Ahora que ya tenemos nuestro catálogo de amenazas definido, vamos a realizar el BIA (Business Impact Analysis). Para ello, si no disponemos ya de uno, necesitaremos el mapa de procesos de nuestra empresa.
Para simplificar el ejemplo, vamos a considerar que únicamente existen los siguientes procesos, aunque en cualquier empresa real existirían muchos más procesos transversales o de soporte. Asimismo vamos a identificar las aplicaciones que soportan cada proceso:

  • Proceso de venta de libro a los clientes:
    • Aplicación web de venta de libros.
    • Mail corporativo para la atención al cliente/resolución de dudas.
    • Aplicación para la facturación al cliente. (se cobra únicamente con tarjeta de crédito)
  • Proceso de compra de libros al mayorista:
    • Aplicación web de venta de libros (la aplicación envía un pedido directamente al mayorista utilizando el mail corporativo)
    • Mail corporativo
  • Proceso de entrega del libro al cliente
    • Aplicación web de venta de libros (la aplicación envía un pedido a la empresa de mensajería indicando qué libro recoger en el mayorista y a qué dirección entregarlo).
    • Mail corporativo

BIA (Business Impact Analysis)
Procedamos ahora con nuestro Análisis de Impacto al Negocio. Para ello vamos a valorar el impacto que tendría un compromiso en la Confidencialidad, Integridad o Disponibilidad de la información asociada a cada uno de los procesos de negocio que acabamos de identificar. Esta valoración, además, considerará diferentes ámbitos en los que puede existir un impacto.

Algunos ejemplos de ámbitos posibles son:
  • Económico
  • Legislativo/regulatorio
  • Operativo
  • Ambiental
  • Daño a las personas
  • Daño a la imagen de la empresa o pérdida de confianza de sus clientes
  • Etc..

En nuestro caso, como algunos ámbitos no son de aplicación (daño medioambienta, o daño a las personas), vamos a valorar únicamente los impactos en los siguientes ámbitos:


Económico
Legislativo/ regulatorio
Muy Bajo
Menos de 500€
-
Bajo
Entre 500€ y 2500€
-
Medio
Entre 2500 y 7500€
Apercibimiento
Alto
Entre 7500 y 20000€
Multa o sanción
Muy Alto
Más de 20000€
Revocación de la licencia de comercialización.

La escala de valores que utilicemos deberá estar alineada con las cifras de negocio que maneje la organización que estamos analizando. Las cuantías establecidas en el ejemplo son considerando que se trata de una pequeña empresa para la que sufrir una pérdida de 20000€ sería una pérdida de gran impacto, mientras que para otras organizaciones, una pérdida de esta misma cuantía estará catalogada como un impacto muy bajo.

Analicemos por tanto el impacto para cada uno de los procesos de negocio:

Si analizamos la confidencialidad del proceso de venta a los clientes, podemos ver que un compromiso en la confidencialidad de la información del proceso tendrá un impacto económico muy alto, puesto que la aplicación trata con los datos personales de los clientes y las multas de LOPD en su rango más bajo pueden alcanzar los 40.000€. En lo que se refiere a impacto legislativo, estaríamos en un nivel Alto, puesto que se pueden dar multas o sanciones también de tipo LOPD.

Realizaremos un análisis similar para la Integridad y la Disponibilidad (en este caso valoraremos el impacto de que el proceso no funcione durante 1 hora, 1 día o 1 semana):

Proceso de venta a los clientes
Económico
Legislativo
Confidencialidad
Muy Alto (5)
Alto (4)
Integridad
Muy Alto (5)
Alto (4)
Disponibilidad
1 hora
Muy Bajo (1)
-
1 día
Bajo (2)
-
1 semana
Medio (3)
-

Finalmente, para cada una de las dimensiones nos quedamos con el impacto más alto de entre las categorías que estamos valorando. Nuestro BIA quedará de la siguiente guisa:


Confidencialidad
Integridad
Disponibilidad



1 hora
1 día
1 semana
Venta
5
5
1
2
3
Compra
1
5
0
0
1
Entrega
5
5
0
0
2

Nivel de Riesgo Tolerable
Una vez finalizado el BIA ya estamos en disposición de establecer cual es el nivel de riesgo tolerable para nuestra organización. Es decir, dónde vamos a establecer la linea que separará los riesgos aceptables de aquellos que requieran acciones urgentes para su resolución. Establece este umbral teniendo en cuenta que no desea aceptar riesgos que superen los 7.500€ o puedan suponerle multas o sanciones ni, por supuesto, la revocación de su licencia para vender libros online, es decir, que no se tolerarán riesgos con un valor de 4 o 5.

Inventario de activos y Mapa de Dependencias
Ahora que ya tenemos nuestro BIA finalizado y el umbral de riesgos definido, necesitamos disponer del inventario de activos y el mapa de dependencias antes de iniciar propiamente el análisis de riesgos.

Veamos nuestro inventario de activos (simplicado, ya que no vamos a considerar ubicaciones o personal):

Aplicaciones:
  • Aplicación Venta de libros (APP_Venta)
  • Mail corporativo (App_Mail)
  • Aplicación de facturación (App_facturación)

Bases de datos:
  • Base de datos de clientes (BD_clientes) (SQL Server)
  • Base de datos con maestro de libros (BD_Maestro)(SQL Server)
  • Base de datos histórico de operaciones (BD_Operaciones)(SQL Server)

Sistemas:
  • Sistema A (Linux + Apache)
  • Sistema B (Windows XP)
  • Sistema C (Windows 2008 Server)

Las aplicaciones se ejecutan en el Sistema A, el Sistema B aloja el correo electrónico y el Sistema C tiene el SQL Server con las bases de datos identificadas.

Veamos ahora nuestro mapa de dependencias:

Proceso de VENTA -> App_venta -> Sistema A
                                    -> BD_clientes -> Sistema C
                                    -> BD_Maestro -> Sistema C
                                    -> App_Mail -> Sistema B
                                    -> App_facturación -> Sistema A
                                    -> BD_clientes -> Sistema C

Proceso de COMPRA -> App_venta -> Sistema A
                                        -> BD_Maestro -> Sistema C
                                        -> App_Mail -> Sistema B
Proceso de ENTREGA -> App_venta -> Sistema A
                                         -> BD_clientes -> Sistema C
                                         -> BD_Operaciones -> Sistema C
                                         -> App_Mail -> Sistema B
                                         -> App_facturación -> Sistema A
                                         -> BD_clientes -> Sistema C



Ahora vamos a hacer que los activos hereden la clasificación de impacto según este mapa de dependencias. El resultado de impactos que obtendremos será el siguiente:



Confidencialidad
Integridad
Disponibilidad (1 día)



1 hora
1 día
1 semana
Venta
5
5
1
2
3
Compra
1
5
0
0
1
Entrega
5
5
0
0
2
APP_Venta
5
5
1
2
3
APP_Mail
5
5
1
2
3
APP_Facturación
5
5
1
2
3
BD_Clientes
5
5
1
2
3
BD_Maestro
5
5
1
2
3
BD_Operaciones
5
5
0
0
2
Sistema A
5
5
1
2
3
Sistema B
5
5
1
2
3
Sistema C
5
5
1
2
3

El siguiente paso a realizar es coger cada uno de los activos de nuestro inventario (o tipología de activo si se quiere simplificar) y analizar si son o no vulnerables a cada una de las amenazas identificadas en nuestro catálogo:


Aplicaciones
Bases de Datos
Sistemas
Desastres Naturales
No Vulnerable
No Vulnerable
Vulnerable
Errores usuarios
Vulnerable
No Vulnerable
No Vulnerable
Errores de los programadores
Vulnerable
No Vulnerable
No Vulnerable
Errores en la administración
No Vulnerable
Vulnerable
Vulnerable
Malware
No Vulnerable
No Vulnerable
Vulnerable
Ataques intencionados
Vulnerable
Vulnerable
Vulnerable

Vamos ahora a calcular el riesgo intrínseco que soportan los activos de nuestro inventario, es decir, el riesgo sin tener en cuenta los controles de seguridad que existen para disminuir el impacto o la probabilidad de los riesgos. Para no alargar en exceso este post, realizaremos el ejemplo sobre un único activo; el sistema A.

Para calcular el Riesgo usaremos la siguiente matriz en función del Impacto y la probabilidad. Esta matriz es una propuesta totalmente adaptable en función del tipo de negocio que se esté analizando, puesto que en determinados sectores, puede tener sentido dar un mayor peso al impacto que a la probabilidad con objeto de considerar los posibles 'cisnes negros'.



Impacto


5
4
3
2
1
Probabilidad
5
5
5
4
3
2
4
5
4
4
3
2
3
4
4
3
3
2
2
3
3
3
2
1
1
2
2
2
1
1


Veamos pues el riesgo inherente de nuestro 'Sistema A':

Sistema A – Riesgo inherente
Impacto
Probabilidad
Riesgo
Desastres Naturales
Disponibilidad: 2
1
1
Errores usuarios
No Vulnerable
Errores de los programadores
No Vulnerable
Errores en la administración
Confidencialidad: 5
3
4
Integridad: 5
Disponibilidad: 2
Malware
Confidencialidad: 5
5
5
Integridad: 5
Disponibilidad: 2
Ataques intencionados
Confidencialidad: 5
4
5
Integridad: 5
Disponibilidad: 2


Por lo tanto, vemos que el riesgo inherente de nuestro Sistema A es muy Alto (5). Veamos ahora qué controles tiene implementados el sistema para calcular cual es su riesgo efectivo:

  • Antivirus actualizado y con actualización diaria de firmas. (reduce considerablemente la probabilidad de la amenaza de malware).
  • Alojado en red interna separado de la DMZ y de Internet mediante firewalls bien gestionados. (reduce la probabilidad de ataques intencionados).
  • Se le realiza un análisis de vulnerabilidades anual, y aunque en el último mostraba vulnerabilidades, las más críticas ya están corregidas. (dado que es anual, se decide no bajar aún más la probabilidad de malware o ataques intencionados. Si el proceso fuera al menos trimestral con corrección de las vulnerabilidades en corto espacio de tiempo, se podría reducir aún más la probabilidad de estas amenazas).
  • La organización dispone de un procedimiento de gestión de cambios sólido que reduce la probabilidad de errores de administración y también su impacto, puesto que siempre se cuenta con un procedimiento de 'marcha atrás'.

Por lo tanto, el riesgo efectivo de nuestro sistema será el siguiente:


Sistema A – Riesgo efectivo
Impacto
Probabilidad
Riesgo inherente
Riesgo Efectivo
Desastres Naturales
Disponibilidad: 2
1
1
1
Errores en la administración
Confidencialidad: 4
2
4
3
Integridad: 4
Disponibilidad: 2
Malware
Confidencialidad: 5
3
5
4
Integridad: 5
Disponibilidad: 2
Ataques intencionados
Confidencialidad: 5
3
5
4


Plan de Tratamiento de Riesgos

Ahora que ya tenemos nuestro mapa de riesgos (inherentes y efectivos) para todos los activos o grupos de activos de nuestra organización, podemos proceder a elaborar el plan de tratamiento de riesgos. A tal fin, determinaremos acciones a realizar para aquellos riesgos que sobrepasen el umbral que hemos definido como tolerable en nuestra organización (4 en el caso de ejemplo).

Para cada uno de estos riesgos tendremos las siguientes alternativas:
  • Evitarlo: Dejar de efectuar la actividad que origina el riesgo. En el caso de ejemplo, apagar el Sistema A, desconectarlo de la red y darlo de baja de nuestra organización.
  • Asumirlo: Asumir que no se puede hacer nada para paliar este riesgo, y que por lo tanto la Organización prefiere mantenerlo. Esta estrategia puede ser válida cuando el activo está a punto de ser dado de baja o cuando las alternativas existentes para rebajar su nivel de riesgo son excesivamente costosas y podrían superar incluso el coste potencial de la materialización del riesgo.
  • Transferirlo: En ocasiones, existen riesgos que pueden transferirse a terceras empresas mediante la contratación de un seguro o la externalización de determinados servicios.
  • Mitigarlo: En la mayoría de los casos esta será la estrategia óptima. Consiste en establecer o mejorar los controles de seguridad del activo para reducir sus riesgos hasta niveles aceptables, bien por reducir la probabilidad de las amenazas o bien por reducir el impacto que estas tendrían en caso de materializarse.

En nuestro ejemplo, los riesgos a tratar son dos:


Sistema A
Impacto
Probabilidad
Riesgo inherente
Riesgo Efectivo
Malware
Confidencialidad: 5
3
5
4
Integridad: 5
Disponibilidad: 2
Ataques intencionados
Confidencialidad: 5
3
5
4

Y el plan de tratamiento asociado en este caso, podría ser el siguiente:

  • Aumentar la frecuencia de escaneos de vulnerabilidades en el equipo para realizarlos mensualmente.
  • Adquirir el compromiso de resolver todas las vulnerabilidades que se detecten en el sistema en un plazo máximo de 2 meses.
  • Hardenizar el servidor para eliminar todos aquellos servicios que no sean necesarios.

Lo ideal, a la hora de establecer el plan de tratamiento de riesgos será priorizar las acciones en función del riesgo que ayuden a mitigar y, siempre que sea posible, agruparlas en proyectos transversales que permitan mitigar los riesgos de toda una tipología de activos en lugar de abordarlos de manera individual en cada caso.

Tras analizar los efectos que estas medidas tendrán sobre los riesgos, establecemos cual será el riesgo residual, es decir, el riesgo efectivo que permanecerá una vez implantadas las medidas definidas:


Sistema A – Riesgo Redidual
Impacto
Probabilidad
Riesgo Efectivo
Riesgo Residual
Desastres Naturales
Disponibilidad: 2
1
1
1
Errores en la administración
Confidencialidad: 4
2
3
3
Integridad: 4
Disponibilidad: 2
Malware
Confidencialidad: 5
2
4
3
Integridad: 5
Disponibilidad: 2
Ataques intencionados
Confidencialidad: 5
2
4
3


Espero que hayáis encontrado útil este post. Como siempre, si encontráis cualquier error en el mismo, queréis proponer cualquier mejora al respecto del tema tratado o simplemente queréis dejar un comentario opinando sobre el mismo, no dudéis en hacerlo!

Twitter: @omarbenjumea
http://about.me/omarbenjumea