lunes, 4 de junio de 2012

Introducción a la Gestión de Vulnerabilidades

Desde hace un tiempo, a partir del desarrollo y difusión de diversas regulaciones internacionales, estándares y buenas prácticas, las organizaciones han ido tomando cada vez mayor conciencia de la importancia de realizar evaluaciones de vulnerabilidades (a partir de ahora VA, siglas de Vulnerability Assessment) y/o test de intrusiones.

Estos estándares o regulaciones recomiendan o exigen la ejecución en forma regular de cierta cantidad de VAs o test de intrusiones en forma anual. La periodicidad de los mismos estará determinada tanto interna como externamente. En el primero de los casos en función de las necesidades de la propia organización, ya que estas evaluaciones de seguridad permiten medir la eficiencia de los controles implementados. Y en el segundo, dependiendo del rubro o actividad principal de la misma. Por ejemplo, en el caso de las entidades bancarias o financieras de la República Argentina, éstas deben cumplir con la comunicación A-4609 del BCRA y en la República de Panamá con el Acuerdo N° 6-2011, en las cuales se establecen los lineamientos sobre la banca electrónica y la gestión de los riesgos relacionados. Si una empresa quiere cotizar en la bolsa de los Estados Unidos debe cumplir con SoX y cualquier organización que opere con tarjetas de pago tiene la obligación de alinearse al estándar PCI-DSS.

Pero independientemente de los requerimientos y la remediación puntual de un determinado hallazgo, el verdadero valor agregado de estas evaluaciones se produce cuando las mismas están integradas a un proceso de Gestión de Vulnerabilidades.

La Gestión de Vulnerabilidades o VM por sus siglas en inglés (Vulnerability Management) es un proceso sistemático y medible que permite identificar, priorizar y dar tratamiento en forma proactiva a las vulnerabilidades de carácter tecnológico de cada organización. 


Esto permite, más allá de la utilidad puntual de cada evaluación respecto a la remediación de ciertos hallazgos particulares, detectar deficiencias en aspectos asociados a los procesos. Por ejemplo, si en un conjunto de equipos se detecta la ausencia de parches críticos, la vulnerabilidad subyacente, más allá del parche puntual, es la falta de un proceso de gestión de parches.

Si bien dependiendo de cada organización este proceso puede volverse tan complejo como sea requerido,  a continuación veremos una reseña general de las distintas etapas que lo componen. En las referencias finales podrán encontrar más información al respecto.

Identificación o descubrimiento de vulnerabilidades


La identificación se realiza a partir de la implementación regular y sistemática de escaneos de vulnerabilidades. Estos suelen ser realizados por herramientas automatizadas como Nessus o QualysGuard. De esta forma, cada vez que surge una nueva vulnerabilidad y la base de Plugins de la herramienta es actualizada, dicha vulnerabilidad puede ser identificada. 


En general, los resultados de las evaluaciones de seguridad, como Test de Intrusión, VA y análisis GAP entre otros, son entradas que alimentan a la Gestión de Vulnerabilidades y permiten identificar un amplio rango de vulnerabilidades.

Priorización


La priorización es un proceso más complejo y profundo que debe darse en el seno de la organización y que también está relacionado con las áreas de negocio de la misma. Además de la criticidad asociada a cada vulnerabilidad identificada, también dependerá del activo que se ve afectado. Dicho de otra forma, aunque la misma vulnerabilidad pueda afectar a diversos equipos, la priorización dependerá de la importancia que estos tengan para el negocio y será un factor determinante al momento de implementar los planes de remediación. Un servidor que da soporte a la actividad productiva de la organización, tendrá mayor relevancia al momento de priorizar la remediación que una estación de trabajo. 


La Figura 1 muestra un esquema que representa la velocidad con la cual se sebe llevar adelante la remediación en función de la criticidad de los activos.

Figura 1 - A medida que la criticidad del Activo de Información aumenta, también lo hace la velocidad con la que se debe remediar.

A partir de lo visto anteriormente, juntos podemos deducir que para poder maximizar los beneficios de este proceso, es recomendable haber realizado previamente una Clasificación de los Activos de Información y un Análisis de Riesgo sobre dichos Activos. De esta manera, podremos priorizar la remediación en función no sólo de la criticidad propia de la vulnerabilidad, sino también de la criticidad del Activo que se ve afectado y por ende del Riesgo que trae aparejado para el negocio. 

Tratamiento de vulnerabilidades


Finalmente, el tratamiento de las vulnerabilidades es la etapa que realimenta el proceso de forma tal que el mismo se mantenga en el tiempo. El tratamiento de las vulnerabilidades identificadas en la mayoría de los casos implica su remediación.  Pero en función de los objetivos de negocio, de la criticidad de las mismas y del activo afectado, puede darse el caso que se acepte el riesgo asociado a una vulnerabilidad específica y ésta no se remedie. Un ejemplo de este caso son los sistemas obsoletos que todavía se encuentran en algunas organizaciones, los cuales pueden ser parte central de la operación del negocio de las mismas. La remediación en estos casos implica cambios profundos en los sistemas o bien el desarrollo de uno nuevo, con el riesgo asociado que esto trae aparejado a la operación. Usualmente se implementan controles compensatorios que ayudan a reducir la exposición, minimizando el riesgo asociado a las vulnerabilidades identificadas. Vale la pena recalcar que en este caso no se resuelve la vulnerabilidad de base, simplemente se mitigan los efectos que la misma pueda tener en caso de ser explotada con éxito.

Sin embargo, en la mayoría de los casos el proceso de remediación implica la implementación de parches de software, actualización o modificación de configuraciones. De esta forma, introducimos la variable esfuerzo  (tiempo, recursos humanos, equipamiento, capacidades específicas, etc) que se requiere para dar solución a las vulnerabilidades.

Desde el punto de vista de las organizaciones, el proceso de Gestión de Vulnerabilidades además de reducir notoriamente los riesgos asociados a la explotación de las vulnerabilidades, también permite dar cumplimiento a un conjunto de requerimientos establecidos por un conjunto de estándares y regulaciones del mercado.

Recomendaciones para su implementación


Al momento de desarrollar un plan de gestión de vulnerabilidades, en especial si nunca fue establecido un proceso de similares características, surgen gran cantidad de interrogantes. A continuación presentaremos cuáles son los pasos a tener en cuenta al momento de establecerlo.
  1. Desarrollar y mantener la Política de Seguridad y el Marco Normativo de la organización.
  2. Clasificar la Información
  3. Relevar y categorizar los Activos de Información en función del nivel de criticidad para el negocio.
  4. Realizar escaneos periódicos y sistemáticos a todos los activos identificados.
  5. Identificar los riesgos asociados a cada uno de los activos en función de las vulnerabilidades detectadas.
  6. Planificar la remediación de las vulnerabilidades en función del riesgo y de la criticidad para el negocio de cada activo. Se debe tener presente que antes de realizar un cambio en producción (implementar un parche, configurar una aplicación, etc) se recomienda que los mismos sean testeados en un ambiente de prueba.
  7. Verificar la efectividad de la remediación. Esto puede hacerse en forma manual o bien esperar a que vuelva a repetirse el paso 4 en el próximo ciclo.

Una vez concluido, el ciclo vuelve a comenzar en forma regular desde el paso 4,  teniendo en cuenta los tiempos definidos por la organización para cada grupo de activos. Si bien los primeros tres pasos no están contemplados cada vez que se ejecutan los escaneos, se recomienda que sean revisados al menos anualmente o bien cuando se incorpore un nuevo activo o proceso a la organización que amerite ser parte del alcance de la Gestión de Vulnerabilidades.

En términos generales, la Gestión de Vulnerabilidades es un proceso vivo, que debe revisarse y mantenerse actualizado en forma regular o cada vez que exista un cambio significativo en el mismo. Las evaluaciones de seguridad sirven como entrada al proceso y permiten identificar vulnerabilidades de diversa índole.

Finalmente, respecto a la priorización y remediación de vulnerabilidades, una buena aproximación es la aplicación del Principio de Pareto. De forma tal que las vulnerabilidades que representan el mayor nivel de riesgo para la organización o que son recurrentes en varios equipos o sistemas, tengan mayor prioridad.

Referencias


El NIST posee un documento denominado "SP800-40v2: Creating a Patch and Vulnerability Management Program” en el cual se explica cual es la necesidad de este proceso y adicionalmente se describen sus requerimientos y distintas etapas.
Al momento de priorizar la remediación, pueden basarse en los controles propuestos por el Top 20 Critical Security Controls del SANS Institute, por el Top 35 Mitigations del Departamento de Defensa de Australia o por el Top 10 de OWASP.

En caso que no aún no estén convencidos sobre la necesidad de implementar Gestión de Vulnerabilidades, pueden leer este Whitepaper que seguramente aclarará algunas dudas.
Como perlita, de la serie “For Dummies” y patrocinado por Qualys, pueden descargarse el eBook Vulnerability Management for Dummies, el cual de manera muy amena y divertida explica las bondades que este proceso puede brindarle a la organización.


No hay comentarios:

Publicar un comentario