Skip to content

NETStandard doesn't pass UACTT DoS attack test #2979

@Siyuan-Xu-Wapice

Description

@Siyuan-Xu-Wapice

Type of issue

  • Bug
  • Enhancement
  • Compliance
  • Question
  • Help wanted

Current Behavior

The NETStandard Stack doesn't comply with UCATT Security Test:

  • Dos attempt by consuming Channels
  • Dos attack 2 consume SecureChannels, but CreateSessions in some.

Configuration:
ReferenceServer:
MaxChannel: 76
MaxSession: 75

When the stack doesn't behave according to the OPCUA Specification, all the servers created by the stack would suffer from the same security exploit.

Image

Image

Expected Behavior

According to OPC UA Specification Core/Part4/v105/docs/5.6.2:
"To protect against misbehaving Clients and denial of service attacks, the Server shall close the oldest unused SecureChannel that has no Session assigned before reaching the maximum number of supported SecureChannels. When Session-less Service invocation is done through a transport mapping that requires the OpenSecureChannel Service, the Server shall maintain a last used time for the SecureChannel to detect the oldest unused SecureChannel."

Steps To Reproduce

  1. Configure the ReferenceServer.config.xml:
    75
    76
  2. Setup UACTT project and copying the required certificates to the ReferenceServer's PKI directory.
  3. Manual select the tests:
    • Conformance Units -> Security -> Security None
    • Conformance Units -> Security -> Security Aes256-Sha256-RsaPss
  4. Run Test and observe the results.

Environment

- OS:Windows 10/11
- Environment:
- Runtime: .NET8 and .NETFramework 4.8
- Nuget Version: 1.5.375.443
- Component:
- Server: ConsoleReferenceServer
- Client: UACTT 1.04.11-01.00.508 (Windows Build)

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions