
None 보안 정책을 사용하는 OPC UA 인증 우회용 개념 증명 익스플로잇으로, 산업 제어 데이터에 대한 비인가 읽기/쓰기 액세스를 시연하는 시뮬레이션 서버를 포함합니다.
# 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())
OPC UA 서버가 암호화나 인증을 제공하지 않는 None 보안 정책으로 구성되어 있습니다. 네트워크의 공격자는 연결하여 산업 제어 시스템 태그와 상호 작용할 수 있으며, 이로 인해 물리적 피해를 초래할 수 있습니다.
pip install asyncua
python opcua_server_sim.py
python exploit_opcua_none.py
클라이언트가 성공적으로 연결됩니다.