
Noneセキュリティポリシーを使用したOPC UA認証バイパス用の概念実証(PoC)エクスプロイト。産業制御データへの不正な読み取り/書き込みアクセスを実証するためのシミュレートされたサーバーを含みます。
# 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
クライアントは正常に接続します。