
Exploit proof-of-concept per il bypass dell'autenticazione OPC UA tramite la security policy None, incluso un server simulato per dimostrare l'accesso non autorizzato in lettura/scrittura ai dati di controllo industriale.
# 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())
Un server OPC UA è configurato con la security policy None, che non fornisce né crittografia né autenticazione. Un attaccante sulla rete può connettersi e interagire con i tag del sistema di controllo industriale, causando danni fisici.
pip install asyncua
python opcua_server_sim.py
python exploit_opcua_none.py
Il client si connette correttamente.