Lección 3: La seguridad como un proceso Francisco Javier Cervigon Ruckauer

Lección 3: La seguridad como un proceso

El proceso de la seguridad

"La seguridad es un proceso". Esta frase, acuñada por Bruce Schneier hace unos años, sigue teniendo plena vigencia hoy en día. Tal y como se vio al introducir el concepto de seguridad, mantener un cierto nivel de seguridad exige, efectivamente, un proceso continuo de mejora que incluya las siguientes fases: análisis, prevención, detección y respuesta. Estas etapas son complementarias entre sí y, realizadas adecuadamente crean un círculo virtuoso que permite mantener la seguridad a lo largo del tiempo.
La primera etapa, el análisis de riesgos, ya ha sido analizada en el apartado anterior y, como allí se discutía, el nivel de riesgo cambia con el tiempo. Efectivamente, continuamente se descubren nuevas vulnerabilidades en los sistemas y también cambian las amenazas, normalmente porque aparecen nuevas amenazas o porque se hacen más intensas las ya existentes. Además, las empresas y organizaciones tampoco pueden mantenerse estáticas: cambian sus mercados, sus productos, sus servicios, sus objetivos... Todo ello hace que también cambien el impacto y la probabilidad; y, por tanto, también lo hace el riesgo.
Las otras tres etapas son las que, realizadas de forma adecuada, permitirán detectar los intentos de intrusión y reaccionar ante ellos minimizando el impacto, al mismo tiempo que se aprende y se mejoran los mecanismos y procedimientos relacionados con la seguridad, tal y como se discute en los apartados siguientes.

Prevención

En esta fase se realizan dos tareas complementarias. Por una parte, se debe configurar adecuadamente el sistema para protegerlo frente a los ataques conocidos. Por otra, se debe preparar al sistema para detectar y responder frente a los ataques que se producirán.

Configuración adecuada del sistema

Supone configurar el sistema para que se comporte exactamente como de él se espera. Tal y como se explicó al definir la seguridad informática, esto tiene dos vertientes: que el sistema ofrezca los servicios que de él se espera y que, por otra parte, no pueda ser utilizado para otros propósitos (como obtener información no autorizada o atacar a terceros). Para ello es conveniente seguir las recomendaciones de buenas prácticas existentes. Las recomendaciones más habituales son:

Instalar versiones recientes de software

Es recomendable instalar versiones recientes del software. Efectivamente,  cuando se descubren nuevas vulnerabilidades, éstas se corrigen en las versiones posteriores del software. Por tanto, las versiones antiguas suelen incluir más vulnerabilidades que las recientes.
No obstante, cuando se añade nueva funcionalidad o se realizan cambios significativos en un sistema, es habitual que se introduzcan nuevas vulnerabilidades. Por este motivo, en sistemas en los que se desee mantener un elevado nivel de seguridad conviene esperar un tiempo antes de desplegar versiones con cambios significativos.

Instalar los parches disponibles

En muchos casos, cuando se descubren nuevas vulnerabilidades, éstas se solucionan realizando pequeños cambios sobre las versiones recientes del software. Estos cambios reciben el nombre de parches y es recomendable instalarlos lo antes posible, pues una vez se publica una vulnerabilidad se abre una ventana de tiempo en la que los sistemas tienen una elevada probabilidad de ser atacados.
Si bien es cierto que, a veces, los parches pueden provocar a su vez problemas, en general, es recomendable su aplicación inmediata. En el caso de sistemas críticos, se recomienda aplicar primero los cambios en el entorno de desarrollo, para detectar estos posibles problemas antes de aplicar los parches al sistema de producción.

Instalar la mínima cantidad de software posible

Esta recomendación es, quizá, la que más autocontrol exige, ya que los sistemas actuales incluyen espacio de sobra para hacer una "instalación completa" y así, de paso, tener el sistema preparado para el futuro, por si hay que dotarle de más funcionalidad. Sin embargo, hacer una "instalación mínima" tiene múltiples ventajas:
  • El mantenimiento del sistema es más sencillo, porque es necesario actualizar menos componentes.
  • Tener software instalado supone un riesgo, especialmente software que requiere privilegios elevados para su ejecución. Una vulnerabilidad en un componente instalado, aunque no esté en ejecución, puede ser usada para escalar privilegios.
  • Resulta más sencillo (y rápido) detectar cambios en el sistema, ya que hay menos elementos que comprobar.
  • En caso de ser comprometido el sistema, el atacante dispone de menos herramientas para causar daño. Por ejemplo, si no hay herramientas de desarrollo y necesita compilar un programa deberá instalarlas primero. Esto supone una ventana de tiempo adicional en la que la intrusión puede ser detectada y tratada. Además, el propio hecho de descargar software adicional puede hacer saltar una alarma que, de otra forma, no hubiera saltado.

Preparación para la detección y tratamiento de intrusiones

Hoy en día, hay que contar que todos los sistemas serán atacados. Además, ya se ha justificado que no existen sistemas 100% seguros. Por lo tanto, antes de conectar nuestro sistema a la red es necesario prepararlo para cuando sea atacado.

Caracterización del sistema

Una de las tareas fundamentales es caracterizar el sistema para ser capaces de reconocer ataques o problemas nuevos o inesperados. Para ello es necesario:
  • Definir el comportamiento esperado con precisión suficiente como para que sea posible detectar desviaciones significativas.
  • Identificar la información necesaria para detectar las intrusiones y poder averiguar cómo se producen.
  • Seleccionar, instalar y configurar los mecanismos de recopilación de información (por ejemplo, registros de actividad).

Herramientas de respuesta

Otra tarea fundamental es dotar al sistema de las herramientas adecuadas para el tratamiento de las intrusiones. Esto supone seleccionar, instalar y comprender las herramientas de respuesta. Aunque se pueda pensar otra cosa, el momento adecuado para la preparación de estas herramientas es antes de el sistema sea atacado, cuando hay tiempo para reflexionar, analizar y planficar. De esta forma será posible contener el daño y responder en el menor plazo de tiempo posible.

Procedimientos de actuación

Al igual que con las herramientas de detección y respuesta, los procedimientos para la detección y el tratamiento de incidentes deben ser definidos a priori, de forma que los implicados los conozcan, los comprendan y, por tanto, puedan aplicarlos con rapidez y eficacia llegado el caso.

Detección

Esta fase comienza cuando el sistema se pone "en producción", es decir, cuando comienza a realizar su tarea. Aunque desde el punto de vista del usuario comienza la vida útil del sistema, desde el punto de vista de la seguridad es la fase del proceso continuo en la que se monitoriza el comportamiento del sistema y se analiza si es necesario realizar cambios.

Monitorización

El objetivo de esta actividad es poder detectar los ataques que se produzcan para poder reaccionar a tiempo. En el mejor de los casos, las medidas preventivas serán suficientes para evitar que el ataque tenga éxito. Cuando no es así, la monitorización permitirá detectar y tratar la intrusión lo antes posible, limitando así el daño causado.
Esta actividad presenta, además, ventajas adicionales, ya que permite detectar todo tipo de situación anómalas, como sistemas de ficheros que están cerca de llenarse, discos que están a punto de fallar, fallos de configuración de las aplicaciones, saturación de las redes...

Necesidad de cambios

Durante el funcionamiento normal del sistema, incluso cuando no hay ataques con éxito, es necesario muchas veces realizar cambios en el sistema. Algunos ejemplos son:
  • Avisos externos de vulnerabilidades. Cuando se descubre una vulnerabilidad, las listas especializadas (CVE, CERTs...) lanzan avisos de seguridad.  Incluso antes de que haya parches que resuelvan la debilidad, puede ser necesario tomar medidas para mitigar el riesgo, como ajustar la configuración o aumentar las restricciones de acceso temporalmente.
  • Disponibilidad de nuevos parches. Como ya se ha comentado, es recomendable aplicar los parches lo antes posible, siempre previendo la posibilidad de efectos secundarios.
  • Disponibilidad de nuevas versiones de software. Con el tiempo, será necesario planificar el cambio a versiones con mayor funcionalidad para poder ofrecer un mejor servicio a los usuarios. Aunque ya se ha discutido el riesgo implicado, llegará el momento en el que los beneficios justifiquen el cambio.
  • Cambios en los requisitos del sistema. Lógicamente será necesario adaptar el sistema a las nuevas necesidades de clientes, o a los nuevos objetivos que se marque la empresa u organización.

Respuesta

Una vez se detecta una intrusión, es necesario reaccionar rápidamente para recuperar el funcionamiento normal del sistema. Una vez conseguido, sin embargo, no debe finalizar en este punto el tratamiento del incidente, sino que se debe identificar lo aprendido para mejorar.

Recuperar el funcionamiento normal del sistema

Esta fase es la de las urgencias, pues se tiene un sistema en el que no se puede confiar. La rapidez y efectividad con que pueda ser tratado el incidente depende, sobre todo, de la fase de prevención y, en particular, de las herramientas y procedimientos que se hayan previsto para el tratamiento de incidentes. Los pasos principales son los siguientes:
  • Establecer el alcance del daño. Es necesario averiguar qué elementos del sistema han sido comprometidos y en cuáles se puede confiar todavía.
  • Contener los efectos. Es decir, evitar que el daño se propague. Por ejemplo, evitar que el intruso pueda escalar privilegios y llegar a ser administrador, que pueda comprometer otros sistemas...
  • Eliminar la posibilidad de nuevas intrusiones. Usando las herramientas y la información disponible (registros de sistema, trazas de red...), averiguar cómo se ha producido la intrusión y cómo evitar que se vuelva a producir, asegurándose además de que el atacante no ha dejado tras de sí puertas traseras u otros mecanismos de control del sistema.
  • Devolver el sistema a su funcionamiento normal. Tras cerrar las vulnerabilidades que han sido explotadas, será necesario usar copias de seguridad o los mecanismos establecidos para volver al comportamiento esperado del sistema.

Aprovechar para mejorar

Una vez recuperado el funcionamiento normal del sistema hay tiempo para realizar una reflexión más profunda sobre el incidente, identificar lo aprendido y usarlo para mejorar la seguridad del sistema. En esta fase final del tratamiento del incidente sería recomendable:
  • Comunicarse con otros afectados.  Esto permite obtener información complementaria y saber más sobre lo que realmente ha ocurrido. Por ejemplo, ¿ha sido un ataque dirigido exclusivamente contra una organización?, ¿se ha utilizado en todos los nodos las mismas vías de entrada?
  • Reunirse para identificar lo aprendido. Realizar una puesta en común dentro de la organización para correlar diferentes fuentes de información, tales como el administrador de sistemas, el de base de datos, el del servidor de aplicaciones... De esta forma será posible dejar por escrito qué es lo que ocurrió exactamente, qué se hizo para tratar el incidente y qué se podría haber hecho mejor.
  • Actualizar el análisis de riesgos, las políticas y los procedimientos.  A partir de lo aprendido, es posible se puedan mejorar aspectos como la estimación del riesgo, la política de seguridad y los procedimientos para aplicarla y comprobar que se cumple.
  • Actualizar la configuración de las herramientas y/o seleccionar herramientas nuevas. A partir de lo ocurrido y de los cambios en políticas y procedimientos será necesario mejorar las medidas preventivas y de tratamiento de incidentes.
Francisco Javier Cervigon Ruckauer

No hay comentarios:

Publicar un comentario