¿Solo puede comunicarse con un PLC usando un software asociado?

3

Pido disculpas si este no es el foro correcto, pero estoy tratando de entender la arquitectura de la red SCADA, y específicamente cómo el virus Stuxnet pudo cambiar la lógica de control en los PLC. Creo que usó el software STEP 7 que se ejecuta en computadoras conectadas a PLC para actualizar su lógica, mientras que al mismo tiempo cambiaba las rutinas DLL para el software STEP 7, de modo que cualquiera que consultara la lógica en dichos PLC vería la lógica original. Supongo que para leer la lógica en el PLC, el software STEP 7 debe poder leer los bloques de memoria y luego 'descompilar el código', ya que los PLC parecen estar programados en código de ensamblaje (o una representación gráfica del mismo), y como por lo tanto, hay un mapeo 1-1 con el código de máquina en el PLC. ¿Todo esto es correcto hasta ahora?

Mi pregunta principal es sobre si es posible cambiar la lógica en un PLC sin usar el software de programación, simplemente enviando un comando a través de una red SCADA, y también si la memoria del PLC se puede leer sin usar dicho software. La documentación para el PLC Siemens S7-400 parece sugerir que se necesitan interacciones físicas de hardware para cambiar la lógica (se debe girar un control en el PLC), así que Stuxnet explotó una vulnerabilidad en el software de programación Siemens STEP 7 para evitar esto. ¿O tal vez esta característica quizás solo se introdujo después de Stuxnet como una medida de seguridad adicional?

Esta pregunta también se extiende a otros PLC, no solo a Siemens.

Muchas gracias.

    
pregunta Stuxnewt 27.10.2016 - 12:53
fuente

2 respuestas

3

El libro, Hacking Exposed Industrial Control Systems: ICS y SCADA Secrets & Soluciones, cubre descubrimiento de PLC, escaneo, modificación, intrusión, malware, y muy bien.

En el caso de los PLC que se conectan a las comunicaciones Modbus o Step7 basadas en TCP / IP, en particular, el libro menciona muchas maneras de controlar los PLC a través de la red sin usar las aplicaciones suministradas por el proveedor.

Por ejemplo, con Modbus TCP, se puede usar modbus-cli para controlar los PLC, incluida la lectura o la modificación de la memoria (por ejemplo, , bobinas, registros). Si desea descubrir dispositivos Modbus TCP, puede usar el script Nmap NSE, modbus-discover , y para llevar a cabo operaciones a nivel de paquetes, utilice Wireshark (o tshark) para la captura y modbus-vcr para el hombre en el medio ataques.

Otras herramientas como plcscan descubrirán los dispositivos Modbus TCP y Step7 (s7comm). El script s7-info Nmap NSE proporcionará más información sobre los dispositivos s7comm encontrados.

Hacking Exposed Industrial Control Systems también cubre Stuxnet en profundidad variada con enlaces a muchos otros documentos como Dossier w32-Stuxnet de Symantec y la charla BlackHat 2011 de Dillon Beresford en Explotación de PLC S7 . Estos son los conceptos básicos que resume el libro:

  

La composición total de Stuxnet consistió en tres módulos: un gusano y   Dos cargas útiles. Stuxnet se introdujo tradicionalmente en un entorno   a través de una unidad flash USB o disco duro externo. Inmediatamente en la inserción   de los medios infectados, la capacidad del gusano de Stuxnet buscó lateralmente   Cualquier sistema con el software Siemens Step7 en ejecución. Stuxnet realizó esto   búsqueda mediante el uso de técnicas tales como RPC de igual a igual   ( enlace ) para ayudar a evitar el   Posibilidad del sistema de no estar conectado a internet. Si Step7 no estuviera   encontrado en cualquier sistema conectado lateralmente, Stuxnet quedó inactivo por un   Período de tiempo antes de volver a explorar el medio ambiente. En caso de que   Step7 fue identificado, una combinación de una o ambas cargas útiles fueron   ejecutado.

     

De las dos cargas útiles contenidas en Stuxnet, una atacó a Siemens   PLC S7-315-2, que se utilizaba principalmente en unidades de alta frecuencia   Control de centrífugas iraníes. La otra carga útil, que es menos   conocido, realizó un ataque Man-in-The-Middle (MiTM) dentro del PLC. los   la carga útil tomó cualquier entrada que iba a los módulos de E / S del PLC y los falsificó   por lo que cualquier lógica dentro del PLC funcionó fuera de la lógica incorrecta. La carga   luego le dijo al PLC qué hacer, en lugar de que el PLC escuchara el   Lógica en el propio sistema. Esta fue la primera vez que un malware conocido   ocultó el código de PLC modificado, lo que convierte a Stuxnet en el primer “rootkit de PLC”

y en Siemens S7comms:

  

S7comms, o comunicaciones del Paso 7, es un protocolo de Siemens implementado   en un protocolo ISO que no está abierto y tiene controles muy ajustados. por   En las familias de PLC 200/300, puede encontrar información básica.   sobre el protocolo a través de un disector de Wireshark que es sólo parcialmente   implementado.

incluyendo un seguimiento de paquetes de S7 en acción con Wireshark:

Ellibroproporcionamuchosotrosrecursosqueheproporcionadoaquíjuntoconalgunosotroscomoreferenciaadicional-

respondido por el atdre 27.11.2016 - 01:14
fuente
1

La respuesta corta es no, no necesariamente necesita el software oficial.

Para ciertos proveedores, la comunidad ha desarrollado herramientas para interactuar directamente con PLCs.

Para Siemens, tiene la snap7 que es una biblioteca de comunicación de código abierto S7 (el protocolo de ingeniería propietario Step7 usa). También existe un envoltorio de python ( python-snap7 ).

Luego puede iniciar / detener la CPU, descargar / cargar la lógica, etc.

Los programas que manipula con snap7 son bloques de programación en forma de un código de bytes llamado mc7. No es legible, pero existe una asignación al lenguaje de ensamblado STL (Lista de instrucciones) que es uno de los lenguajes de programación presentados en Step7.

    
respondido por el J.C Doe 27.10.2016 - 14:18
fuente

Lea otras preguntas en las etiquetas