Once we have installed Network agent, we will deploy KICS for Nodes. Before this we must install management plugin on Kaspersky Security Center, which requires a restart after the process is finished. It is recommended to make sure that the plugin has been installed correctly. You can check it by going to Administration server and verify its properties.
The next step will be installing KICS for Nodes software package to control software, virus presence, and many more. Before that, we will import KICS for nodes generic policy and distribute it on target hosts even before KICS for Nodes has been installed. Do not worry, this generic policy excludes any device and whitelist control so the PC will work without any restriction. Later on, we will have to configure it and give specific whitelist and device controls and, of course, other security options such as enabled modules, anti-virus analysis, exclusions, etc.
Keeping in mind that each deployment must be carried out in accordance to engineering and production requirements of automation and industrial systems. So, we will plan and inform each action to take.
As you can see in the picture below, there are two kind of policies. One for Network Agent (KLagent) and other for KICS for Nodes software.
Once it has been imported, we have to activate it. As I said, there is not any direct effect on the target system because KICS for Nodes is not installed yet.
To deploy KICS for Nodes, KSC allows installing software on managed devices groups by setting up a package. First of all, we have to create it by importing a precompiled kics.kud file but you can import a .exe file as well. For more info please visit this link.
In the picture below you can find two files, one imported by an .kud file and the other one with .exe
Once we have created KICS for Nodes packages, we can customize them configuring the components to install before executing the remote installation wizard. During the process we will have to give some additional information such as target hots, admin credentials, among others.
These are the grouped hosts which we are going to install KICS for Nodes. We can select one by one or the folder which includes them all.
Other software is recommended to be installed such as published hotfixes to correct issues, improvements, or bugs.
After this, the next step to follow is to perform an on-demand antivirus scan. Why? Because we must be sure that the host is not infected by any kind of viruses. If this occurs, we could include virus processes in our whitelist and, in consequence, allow its execution. However, we must keep in mind that this analysis can consume CPU, memory and other hardware resources and impact on the host behavior.
Next, we will configure according our needs. KICS for Nodes policy has in the left hand a column named “sections” where you can find the features grouped by functionality. For example, in “Local activity Control” you can configure modules regarding “Application Launch Control”, “Device Control” and “Wi-Fi Control”.
But if you navigate in other section, such as “Real Time computer protection” you can see other features regarding “Real-Time File Protection”, “KSN usage” and “Exploit Prevention”.
And that is all for now. In the next article, we will explore the different options and show how whitelisting technique works to prevent the execution of any non-authorized software.
La presencia de PCs en entornos industriales a la vez que extensa, sus funciones pueden ser muy diversas. Maletas de programación, puestos para el control de maquinaria, puestos de operador, entre otros muchos pueden ser algunos de los ejemplos. Bien por que la seguridad no ha sido un requisito, una necesidad o por las limitaciones que presentan para llevar a cabo intervenciones de cualquier índole a lo largo de su extenso ciclo de vida, lo cierto es que, como norma general, no cuentan con medidas de protección. Esto incluye sistemas operativos obsoletos, sin actualizaciones, falta de soluciones de seguridad, firewall de host des habilitados, usuarios con permisos de administración, etc.
En este sentido la aproximación para su protección es el “Whitelisting”, tema que abordábamos en la siguiente entrada:
KICS for Nodes proporciona una protección robusta en equipos de estas características localizados en entornos industriales para hacer frente al conjunto de amenazas a los que se están y pueden estar expuestos. La solución se compone de un conjunto de componentes que pueden ser habilitados o deshabilitados de forma selectiva. Esto es especialmente importante en aquellos equipos con mayor antigüedad y con recursos hardware limitados o con menores capacidades computacionales.
Como veremos cada instancia de “KICS for Nodes” podrá ser administrada de forma centralizada a través de “KSC, Kaspersky Security Center” desde donde se podrán definir y aplicar las políticas de protección sobre cada uno de los equipos finales.
Además, se podrán consolidar los distintos logs generados de la actividad detectada, tanto autorizada como no autorizada, entre otras funcionalidades adicionales que veremos en sucesivas entradas.
“KICS for Nodes” se compone de:
Application launch control, Restringe la ejecución de ficheros o scripts acorde a lo definido en las listas blancas definidas en políticas.
Device control, control de dispositivos como memorias USB extraíbles.
Anti-malware protection, Inspección de código malicioso, proporcionando actualización y análisis bajo demanda.
Untrusted host blocker, Restringe el acceso a carpetas compartidas desde equipos que muestran una actividad sospechosa.
Anti-cryptor, Previene el cifrado de ficheros por medio de virus de tipo ransomware, trabajando en conjunto con el módulo “Untrusted host Checker”.
Vulnerability scanner, Obtención de información de vulnerabilidades y falta de actualizaciones en los equipos finales.
File integrity monitor, Supervisa la modificación en los ficheros del sistema con el fin de detectar alguna actividad maliciosa.
Log inspection, supervisión de los logs del sistema operativo Windows para detectar cualquier comportamiento anómalo en el sistema.
Exploit prevention, Protección de los procesos en memoria.
PLC Integrity Checker, verificación periódica de la consistencia de la lógica de control en algunos PLCS compatibles cómo SIMATIC S7 300 y 400, y MODICOM M340 y M580.
Adicionalmente también tiene un módulo de Firewall a nivel de host con el que podremos definir qué conexiones se permiten o deniegan hacia/desde los equipos administrados.
En primer lugar, instalaremos la consola de administración central Kaspersky Security Center la cual requerirá donde una base de datos Microsoft SQL Server. En nuestro caso emplearemos la que viene con el paquete de instalación ya que el número de equipos será mucho más pequeño que un despliegue normal. Luego procedemos a introducir las licencias correspondientes según el número adquirido.
El siguiente paso será identificar y dar de alta los equipos. Para ello, KSC, nos permite llevar a cabo un sondeo sobre los rangos de red en los que se encuentres los equipos a gestionar y a partir de las IP que respondan poder llevar a cabo la instalación del software. Por supuesto, también podremos darlo de alta de forma manual.
Para la administración de los equipos desde KSC, se requiere de la instalación de un agente en los equipos finales. A través de él se recibirán y enviarán todas las operaciones necesarias como la aplicación de políticas, actualización de firmas, habilitar o deshabilitar módulos, logs, etc. Antes que de nada deberemos establecer algunos parámetros necesarios como la IP de KSC, puertos a emplear, método de autenticación, cifrado de comunicación, etc. Luego toda la actividad recolectada por “KICS for Nodes” será enviada a través de este agente al servidor de gestión KSC (IP 10.10.101.100).
Para su instalación tendremos dos opciones. Una, hacerlo por red desde la consola de administración de KSC o dos, generar un fichero ejecutable que más tarde llevaremos al equipo en cuestión e instalaremos de forma manual.
En el primero de los casos, instalación online, KSC deberá tener acceso a los recursos compartidos en cada PC como \\HOST\C$ o \\HOST\ADMIN$ así como acceso con permisos de administrador para poder llevar a cabo la instalación. Durante el proceso tendremos varias opciones de configuración como la definición de credenciales, impedir el reinicio en caso de ser necesario, asignación de grupos de gestión de equipos una vez esté instalado, etc.
Con relación a la segunda opción bastará seleccionar la opción de creación de un paquete de instalación “stand alone”, seguir los pasos y proporcionar la información solicitada. Un proceso sencillo.
Ese fichero, por defecto se genera en una de las carpetas de KSC a las que deberemos acceder para poder copiarlo y llevarlo al equipo en cuestión.
Elijamos un método u otro, todos los equipos quedarán listados en el apartado “Managed Devices”, salvo que nosotros hayamos dicho lo contrario Y es que, allí podremos crear subcarpetas para una mejor organización según sea nuestro entorno, tipología de equipos, funcionalidad, subredes, etc. Por ejemplo, en mi caso he creado un directorio llamado “KICS TEST LAB” bajo “Managed devices”. Luego dentro de “KICS TEST LAB” he ordenado 4 equipos; “FIELDPF TIA PORTALL v11, W7 x64, W7 x86 y Wxp x86.
Cada agente tendrá una configuración respecto a diversos ámbitos como tiempo de almacenamiento de logs, tiempo de sincronización con KSC, descarga de actualizaciones de firmas antivirus, parches de Windows, entre otras muchas. En nosotros estará personaliza cada una de ellas en función de la naturaleza del equipo o emplear una genérica.
Deberemos de considerar la forma en la que ésta o éstas aplican al árbol de equipos asignados. La solución podría aplicar una política el directorio “Managed devices” y que luego ésta sea heredada por el resto de subcarpetas como “KICS TEST LAB” y los equipos allí ubicados. O bien, que cada cual tenga la suya propia, es decir, que no se hereden.
Definido esto, lo siguiente será llevar a cabo la instalación de “KICS for Nodes”, pero eso lo dejamos para el siguiente artículo.
Uno de los principales focos dentro de un proyecto para reducir los riesgos en un entorno de control y automatización, son los equipos basados en arquitectura PC. Éstos por sus características y, condiciones, presentan deficiencias en materia de seguridad. Bien porque resulta muy complejo o no se pueden implementar las medidas que las corrigen. Esto se agrava ya que desde ellos se actúa sobre equipos de campo pudiéndose alterar parámetros, conseguir accesos no autorizados, según marcas y modelos. Sin embargo, los distintos fabricantes de sistemas de control y automatización han ido desarrollando distintas medidas que minimizan, o impiden, que una acción malintencionada o accidental tenga éxito. Hoy hablaremos de algunas que nos podemos encontraren el autómata S7-1200 del fabricante SIEMENS.
Como he comentado en anteriores entradas, la estrategia recomendada para reducir los riesgos en nuestros entornos industriales es la Defensa en Profundidad. La misma, nos proporciona la capacidad de establecer distintos niveles de protección que dificulten el avance de todo aquello que pueda afectar a la disponibilidad del proceso.
Cuando hablamos de proteger el equipo final, mayoritariamente se habla de los equipos basados en arquitectura PC (HMI, Workstations, ertc.) que controlan los equipos de instrumentación y control. Éstos debido a que en muchas ocasiones, poseen sistemas operativos fuera de soporte; aplicaciones con desarrollo específico que dificulta o imposibilita la aplicación de parches; pérdida de soporte en caso de manipulación; elevado coste de migración a plataformas más actuales; entre otras muchas razones, los convierte en objetivo para realizar alguna acción concreta.
Por tanto, es sobre ellos en los que recae la mayoría de las medidas a tomar tales como el bastionado basado en “Whitelisting” de aplicación; control de dispositivos USB; Anitvirus; control de acceso; etc.
Sin embargo, también debemos destacar la labor de los fabricantes de control y automatización cara implementar medidas de seguridad sobre este tipo de dispositivos y que resulta crucial cara a alcanzar una protección lo más completa posible a todos los niveles.
Hoy voy a hablar de algunas que acompañan al PLC del fabricante SIEMENS en su modelo S7-1200.
Por ejemplo, el mismo tiene una interfaz web, la cual viene deshabilitada por defecto, y que podremos habilitar desde según necesidades.
Si deseamos el acceso por este medio podremos hacerlo mediante “HTTPS” en lugar de la tradicional “HTTP” evitando así el envío de credenciales en claro.
Otra de las capacidades que podremos tener es la definición de usuarios y permisos. De esta manera podremos indicar qué podrá ser visible, o no, a partir de las credenciales de acceso. No todo el personal tiene porqué estar al mismo nivel de información de la red de control. No es lo mismo la responsabilidad de un Operador cara para verificar si un PLC está funcionando; a un Técnico de Mantenimiento que debe además de comprobar otros indicadores, realizar cambios sobre él. Dichos permisos pueden ser seleccionados desde la columna “Nivel de Acceso” de la imagen siguiente.
Y a su vez desde las opciones desde el siguiente menú.
A partir de aquí, si accedemos a la interfaz sin haber introducido ningún tipo de credencial obtendremos la imagen siguiente.
Sin embargo, si en la esquina superior izquierda introducimos el usuario/contraseña de “admin”, la apariencia será bien distinta.
Como podemos comprobar de manera inmediata, con “admin” podemos parar la CPU, prueba de encendido de leds, estado de variables entre otras, que podremos encontrar en el menú de la parte izquierda.
No obstante, además del acceso web, también podremos definir el tipo de acceso al PLC tanto para lectura como por escritura, incluso considerando el tipo de equipo como un HMI.
Otra de las funcionalidades a es la protección del Know-How. SIEMENS dirige esta capa de protección cara a salvaguardar la propiedad intelectual y acceso de los bloques que componen un programa protegiéndolos de modificaciones o copia.
A continuación, se muestra una imagen de la creación de un bloque con nombre “TEST_KNOW-How”.
Luego mediante “botón derecho” podemos acceder a dicha protección. Con la primera de ellas protegeríamos el contenido de dicho bloque mediante la aplicación de un algoritmo que impide su visualización. Con la protección contra escritura, poder visualizarlo, en cambio si deseásemos realizar cualquier cambio, requeriría de una contraseña como en el caso anterior.
Ventana de asignación de contraseñas.
Finalmente, la tercera medida, evitaría la copia de este bloque pudiendo asociarlo al número de serie de la “Memory Card” o al de la “CPU” evitando así que pueda ser válido en otro equipo o medio de almacenamiento.
Cuando se aborda las medidas de seguridad a implementar cara a proteger un entorno de control y automatización, se habla principalmente de medidas tanto a nivel de red como de equipos basados en arquitectura PC. Sin embargo, debemos de considerar que los equipos de control también disponen de algunas, que como es lógico no encontraremos en los modelos más viejos por no haber sido una necesidad.
También es cierto que, como todo, hay que buscar un equilibrio. Con cada medida estamos introduciendo una barrera, tanto para lo malo como para lo bueno. Quiero decir, que si la premisa es garantizar la disponibilidad debemos ser capaces de recuperarnos en el menor tiempo posible, por lo que es necesario definir claramente un proceso tanto de gestión de contraseñas como de procedimientos en los que éstas intervengan. Si no lo hacemos, podemos encontrarnos con no saber qué credenciales introducir llegado el momento.