Creación de un laboratorio para probar protocolos ICS/SCADA

Creación de un laboratorio para probar protocolos ICS/SCADA

40420
Created On 09/26/18 19:10 PM - Last Modified 06/12/23 16:48 PM


Resolution


Introducción

Las organizaciones con los sistemas de control industrial (ICS) han estado en un camino para asegurar la frontera entre él (red corporativa) y OT (red del ICS) por una cierta hora. El primer paso para muchos fue proporcionar una segmentación simple entre las dos redes usando firewalls de Palo Alto Networks. Esto satisfizo los requisitos iniciales para la visibilidad y la inspección del paquete para la actividad malévola. A medida que las empresas se esfuerzan por mejorar la postura de seguridad dentro de ICS, hay una fuerte necesidad de probar antes de la implementación. Este documento mostrará cómo simular el límite de IT/OT para probar appID, ID de usuario y otras funciones dentro del cortafuegos de Palo Alto Networks. Todo este laboratorio puede ser virtualizado en una sola Laptop.

 

Requisitos

 

Elemento requerido

Notas

Palo Alto Networks virtual Appliance

Probado con un VM50, Panos 8.0.6.

Máquina virtual de Windows

Para Java-simulado interfaz de HMI.

Mac OSX

Testeado con 10.12.6, requiere el entorno Xcode (podría instalarse también en una VM de Kali Linux).

VM Fusion para Mac

Probado con Fusion Pro v 8.5.8. También se puede utilizar VM Workstation para Windows.

ModBusPal Java Machine

Testeado con v 1.6 b. Simula los dispositivos encuestados del PLC.

MBTGET

Clon de github. Simula un servidor de sondeo.

Java (en VM de Windows)

Probado con JRE V9, 64-bit.

 

 

Diagrama de

Imagen de usuario añadido

 

Configurar VM Fusion

 Las dos redes utilizadas en el laboratorio son etiquetadas vmet2 (para la zona del PLC) y VMnet3 (para la zona de sondeo). El ejemplo mostrado es para VM Fusion en un Mac, pero el mismo principio se aplica a VM Workstation. Nota: no encienda el cortafuegos VM50 todavía, hay dos pasos importantes que hacer primero.

 

 

Vmnet2

Picture2.png

 

Vmnet3

Picture3.png

 

Se debe agregar un tercer adaptador de red en la configuración de Firewall de VM50 en VM Fusion.

 

Picture4.png

 

Asigne los adaptadores de la siguiente manera:

  • Adaptador de red a VMnet3
  • Adaptador de red 2 a vmnet 3
  • Adaptador de red 3 a VMnet2

 

El archivo de configuración de VM deberá editarse para eladaptador de red de 3 er. En Fusion, vaya a la librería y haga clic con el botón derecho en el VM50 y seleccione "show config file in Finder".

 

Picture5.png

 

A continuación, haga clic con el botón derecho en el archivo VM en la carpeta y seleccione "Mostrar contenido del paquete".

 

Picture6.png

 

Busque el archivo. VMX y edite con TextEdit u otro editor de texto. Asegúrese de cambiar el dispositivo virtual para ethernet2 a "vmxnet3" como se muestra a continuación. Guarde el archivo. La carpeta de contenido del paquete puede cerrarse. Desde la librería Fusion, el Firewall VM50 puede ser lanzado ahora.

 

Picture7.png

 

Para configurar la dirección IP de administración del firewall, siga las instrucciones aquí:

https://www.paloaltonetworks.com/documentation/80/pan-os/pan-os/Getting-Started/Integrate-The-Firewall-into-Your-Management-Network/Perform-Initial-Configuration

 

Para aplicar licencias de dispositivos y registro:

https://www.paloaltonetworks.com/documentation/80/pan-os/pan-os/Getting-Started/Activate-licenses-and-subscriptions.html

 

Configurar la Directiva de cortafuegos inicial

 La política de cortafuegos inicial permitirá todas las aplicaciones entre la zona de sondeo y la zona del PLC. Toda la actividad está registrada y no hay perfiles que configurar en este punto.

 

Políticas de seguridad

Picture8.png

 

Política NAT

Picture9.png

 

Ethernet Interfaces

Picture10.png

 

Recuerde la ruta estática predeterminada. Estoy utilizando el router virtual predeterminado. Para VMware Fusion, la IP de Gateway predeterminada reservada es 192.168.55.2 en VMnet3.

 

Picture11. png

 

Objetos de dirección

Picture12. png

 

Configurar servidor y cliente

 En la máquina Windows que servirá como los dispositivos del PLC, asegúrese de poner su interfaz Ethernet en VMnet2 (en el PLCZone del firewall). Asegúrese de que los puntos de puerta de enlace predeterminados a la interfaz Firewall: 192.168.45.20.

 

ModbusPal se usará para simular registros de PLC. Puedes descargarlo aquí:

https://sourceforge.net/projects/modbuspal/files/modbuspal/RC%20version%201.6B/

 

Requiere el entorno de ejecución de Java. Una vez cumplidos los requisitos, abra una ventana de comandos e ir al directorio donde ModbusPal reside y lanzarlo como se muestra a continuación.

 

Picture13. png

 

Vamos a añadir un esclavo Modbus seleccionando "Add" de la sección Modbus Slaves.

 

Picture14. png

 

Añada un esclavo por ahora, luego haga clic en "Add".

 

Picture15. png

 

Nombre el nuevo esclavo y, a continuación, haga clic en el ojo para rellenar.

 

Picture16. png

 

En la ficha registros de Holding, añada la cantidad de registros que le gustaría probar.

 

Picture17. png

 

Proporcione valores y, opcionalmente, nombres para las direcciones que ha creado.

 

Picture18. png

 

Haga lo mismo con la pestaña bobinas. Añada valores binarios y, opcionalmente, nombres.

 

Picture19. png

 

 

Cierre la ventana del esclavo cuando haya terminado. Haga clic en el botón activar todo para asegurarse de que el esclavo está habilitado. A continuación, haga clic en ejecutar para iniciar el simulador.

 

Picture20. png

 

Para utilizar la herramienta MBTGET para simular un servidor de sondeo, tendrá que clonar la herramienta desde github. Puede descargar el cliente gratuito de Mac/Windows aquí:

https://Desktop.github.com/

 

Opcionalmente, la herramienta puede ser clonada en una máquina virtual Kali Linux. Para clonar la herramienta MBTGET, siga estas instrucciones desde un terminal o símbolo del sistema.

 

Picture21. png

 

Pantalla de ayuda para MBTGET:

 

Picture22. png

 

Una ruta estática tendrá que ser creado en el ordenador portátil que aloja las imágenes con el fin de llegar al simulador de PLC.

 

Para Mac:

# sudo ruta-n Add-net 192.168.45.0/24192.168.55.20  

 

Probar el entorno

Para asegurarse de que las imágenes funcionan correctamente, abra una ventana de terminal e inicie una encuesta usando MBTGET. La encuesta resultante debe mostrar los valores que ha creado en los registros de tenencia dentro de ModbusPal. El valor después de "-n" debe coincidir con el número de registros creados.

 

Picture23. png

 

Probando Modbus con appID

 

Para avanzar hacia una postura de seguridad más positiva, puede comenzar implementando appID. Aquí, simplemente añadimos la aplicación Modbus y las subfunciones que queremos permitir. En mi ejemplo, añadiré Modbus-base y Modbus-Read-Holding-registros como las únicas aplicaciones permitidas que se utilizarán del PollingZone en el PLCZone.

 

Picture24. png

 

Después de ejecutar la herramienta MBTGET, revise los registros para ver la aplicación recogniztion y que la Directiva permitió la acción.

 

Picture25. png

 

En nuestra regla de appID, estamos permitiendo la lectura de solicitudes sólo para registros de tenencia. Podemos utilizar MBTGET para pedir para leer una bobina. La solicitud falla.

 

Picture26. png

 

El registro muestra que la solicitud falló y que estaba intentando leer un registro de bobina, que no es lo que estamos permitiendo en la política.

 

Picture27. png

 

Probando Modbus con appID y ID de usuario

 

Para disminuir aún más la superficie de ataque, imponga el identificador de usuario para permitir que las lecturas de registro de Holding de usuarios específicos sean válidas.

 

En la base de datos/usuarios de dispositivo/local user, añada dos usuarios de prueba.

 

Picture28. png

 

En la base de datos de usuarios/dispositivos locales/grupos de usuarios-Coloque cada usuario en un grupo diferente. En mi ejemplo, añadí user1 al grupo "CanReadHolding" y usuario2 al grupo "CanReadCoils".

 

Picture29. png

 

En el perfil de dispositivo/autenticación, cree un nuevo perfil de autenticación. Seleccione base de datos local para el tipo.

 

Picture30. png

 

En la ficha avanzadas, seleccione "todos" usuarios.

 

Picture31. png

 

En red/interfaces/bucle invertido, cree una dirección de bucle invertido para redirigir a los usuarios para la autenticación.

 

Picture32. png

 

Proporcione una dirección IP en la ficha IPv4. Asegúrese de que sea del mismo rango que su PollingZone.

 

Picture33. png

 

Bajo identificación de dispositivo/usuario/portal cautivo, edite los ajustes del portal cautivo como se muestra. Utilice la dirección de bucle invertido de IPv4 que se acaba de crear.

 

Picture34. png

 

En directivas/autenticación, cree una nueva Directiva de autenticación con los valores mostrados.

 

Picture35. png

 

En directivas/seguridad, edite la primera regla y agregue el grupo de usuarios para los registros de retención de lectura.

 

Picture36. png

 

La regla modificada debe ser algo como esto.

 

Picture37. png

 

Agregar una nueva regla para permitir el tráfico de autenticación al bucle invertido para que funcione el portal cautivo.

 

Picture38. png

 

Cometer los cambios.

 

Intente leer los registros de la tenencia con MBTGET y vemos que falla.

 

Picture39. png

 

El registro de tráfico revela que la solicitud de lectura fue denegada por la regla ExplicitDeny. Esto se debe a que el requisito de ID de usuario no se satisfizo.

 

Picture40. png

 

Para iniciar la autenticación de usuario en esta configuración, desplácese hasta la dirección de bucle invertido creada para el portal cautivo e inicie sesión con el usuario al que se le permite leer registros de tenencia.

 

Picture41. png

 

En monitor/User-ID, consulte el usuario autenticado en la lista.

 

Picture42. png

 

Vuelva a intentar la encuesta MBTGET y debería tener éxito una vez más.

 

Picture43. png

 

Los registros de tráfico también muestran el usuario autenticado asociado al registro leído.

 

Picture44. png

 

Desde la CLI de firewall, emita estos dos comandos para borrar todos los datos de ID.

 

Picture45. png

 

Inicie el inicio de sesión de nuevo utilizando otro usuario que no esté autorizado para leer registros de tenencia.

 

Picture46. png

 

Intente el registro MBTGET Lea y vea que falla para Usuario2.

 

Picture47. png

 

Observe que la razón de la falla en los registros de tráfico se debe a ExplicitDeny ya que el tráfico no coincide con ninguna otra regla. Específicamente, usuario2 no es un miembro del grupo CanReadHolding para que el registro de lectura falle.

 

Picture48. png

 

 

Resumen

Hay más escenarios que se pueden utilizar con este laboratorio virtual que pueden aumentar aún más la postura de seguridad dentro del entorno ICS. La adición de autenticación de varios factores para los usuarios que obtienen acceso a la red OT, por ejemplo. La adición de perfiles de seguridad al conjunto de reglas es otra. Los ataques se pueden simular también utilizando herramientas como Metasploit. Consulte este artículo para obtener ideas sobre el uso de las características del perfil de registro de pan-OS 8,0 para observar la actividad malintencionada y potencialmente colocar a los usuarios de ICS en un estado en cuarentena tras una violación: https://Live.paloaltonetworks.com/T5/Learning-articles/ Protección-ICS-y-SCADA-redes-con-pan-OS-8-0/TA-p/180651  

 



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm2pCAC&lang=es&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language