Las estrategias de defensa en profundidad propone aplicar diferentes mecanismos de protección a diferentes niveles dentro de una instalación ICS OT. De esta manera, en caso que una capa de protección falle, existirán otras capas interiores que evitarán la materialización del ataque, disminuyendo así el nivel de riesgo operativo que puedan tener los activos industriales.

En posts anteriores se ha hablado de cómo proteger los perímetros de la red, cómo incrementar el nivel de protección de la red interna y cómo proteger el propio equipo.

Sin embargo, existen amenazas y vectores de ataque que no utilizan la red para conseguir sus fines, por ejemplo, una campaña de phising combinado con el uso de medios extraíbles (discos DVD, llaves USB u otros gadgets que puedan conectarse a un equipo), pueden propagarse por la propia acción humana de curiosidad haciendo que el código maliciosos pueda saltarse protecciones de red, de perímetro e incluso del propio equipo (falta de parcheo y/o actualizaciones).

La protección del host, como hemos visto, se basa principalmente en el uso de tecnologías que se basan en firmas para detectar y bloquear ataques o diferentes tipos de Malware, lo cual, requiere que estas tecnologías estén actualizando continuamente su base de datos de ataques conocidos para ser eficaces.

Estas protecciones, aún siendo eficaces, no garantizan el 100% de protección, o incluso, en entornos ICS OT, donde nos encontramos muchas veces con equipos que no pueden tener una protección de endpoint instalada, ya sea por motivos de obsolescencia del propio equipo o por motivos de incompatibilidades con la aplicación de control industrial.

En estos casos, la estrategia de defensa en profundidad nos dice que protejamos las aplicaciones que se están ejecutando en estos equipos o, por la propia criticidad de la aplicación, se tomen medidas de protección específicas.

 

virus malware

 

¿Qué significa la protección de una aplicación?

Una aplicación, como cualquier otro software, se trata de un programa que ejecuta una serie de instrucciones para llevar a cabo una función en particular. Todo programa puede contener fallos de programación que pueden ser potencialmente aprovechados con fines maliciosos.

Una demostración de ello son las constantes noticias de descubrimiento de nuevas vulnerabilidades en aplicaciones famosas, sistemas operativos, etc.

Otra amenaza de las aplicaciones son los malware que haya podido saltarse la protección del equipo e “infecte” la aplicación, modificando sus archivos ejecutables o sus librerías. Con esta acción, la ejecución de la aplicación encadena la ejecución de “algo más” en el equipo y este “algo más” puede materializar ciertas amenazas que, en función del entorno del proceso, pueden tener graves consecuencias a nivel económico, físico, copyright, legal y/o legislativo.

Por tanto, para la protección de la aplicación es necesario:

  • Que la propia aplicación disponga de mecanismos propios para la autenticación de los usuarios.
  • Disponga también de mecanismos de autorización para delimitar qué acciones pueden ser ejecutadas por cada uno de los usuarios autenticados.
  • Disponga también de mecanismos de trazabilidad de las acciones realizadas y de los cambios realizados en caso de que sea oportuno.
  • Disponer de mecanismos de actualización, tanto en modo online como offline.

 

¿Cómo podemos proteger las aplicaciones?

Desde Logitek seguimos una doble estrategia para la protección de las aplicaciones:

1. Solución de limitación y verificación del software

Por un lado, mediante una solución de limitación y verificación del software que puede ser ejecutado en cada uno de los equipos.

Gracias al whitelisting de aplicaciones, protegemos la ejecución de software al garantizar:

  • La aplicación no ha sido modificada. Esta solución almacena una firma digital de cada aplicación (ejecutables) y sus librerías (dll, etc.) para certificar la integridad y la no existencia de ninguna modificación en ellas.
  • Solamente las aplicaciones autorizadas pueden ejecutarse, impidiendo la ejecución de cualquier otro código.
  • Un bajo impacto en el equipo y compatibilidad con sistemas operativos obsoletos (Windows NT, XP, 2003 Server, etc.)

2. Soluciones para analizar el flujo de ejecución

Por otro lado, existen soluciones capaces de analizar el flujo de ejecución de las aplicaciones y evitar que ese flujo se desvíe del comportamiento normal. Virsec Trusted ExecutionTM es un ejemplo de este tipo de soluciones.

Compuesto de:

  • Un pequeño agente que se instala en los servidores con las aplicaciones críticas.
  • Un módulo de análisis y mapeado de la estructura de memoria RAM que utiliza el flujo de ejecución de las aplicaciones críticas.
  • Un módulo de informes, visualización, alerta, gestión, etc.

Cuando la aplicación está protegida por Virsec Trusted ExecutionTM significa que su flujo normal de operación ha sido mapeada, a partir de entonces, ninguna instrucción de CPU ni el uso de ninguna estructura de memoria RAM diferente de lo mapeado será permitida, evitando así que, aunque la aplicación haya sido vulnerada o infectada, no se pueda ejecutar el código malicioso.

Por tanto esta solución:

  • Protege de ataques 0-day.
  • Protege de vulnerabilidades 0-day.
  • No tiene un impacto de latencias en la ejecución de la aplicación.
  • Evita ataques de memoria.
  • Evita ataques FileLess (ataques no que no modifican archivos de disco).
  • Evita moficaciones de registro.
  • Evita inyecciones de DLL.
  • Evita la ejecución de exploits.
  • No depende de firmas ni actualizaciones.
  • No tiene falsos positivos.

En resumen, garantiza que las aplicaciones ejecutan el código por el que han estado programas, independientemente de si dispone o no de vulnerabilidades.

Links relacionados con defensa en profundidad

Para más información, no dudes en contactar con nosotros.