Security Notes

Developers who create applications using Unified Communications Managed API 2.0 Core SDK are strongly advised to observe the following security recommendations.

  • Although the UCMA 2.0 Core SDK platform supports Transmission Control Protocol (TCP), applications should use Transport Layer Security (TLS) whenever possible, and should use mutual TLS (MTLS) when communicating with any server. This recommendation applies especially to middle-tier applications. TLS helps to mitigate spoofing, tampering, and repudiation. An application should not choose TCP when it runs in a networking environment where computers are not fully trusted (for example, any cloud-connected environment).

  • Use authentication for an application that acts as a client. Authentication helps to ensure that the server is legitimate and that messages have not been tampered with (through message signing). This process helps to mitigate spoofing, tampering, and repudiation.

    Authentication includes both user and far-end host authentication.

  • Use trusted service-grade authentication only when necessary. When possible, use client authentication as the lower trust grade, without server impersonation and other server-only capabilities.

  • Applications should avoid contacting servers based on received SIP extension headers, instant messages, or other sources. Contact should be made only to a single trusted server.

  • Referred-by headers should not be given full trust, as they are neither signed nor authenticated. A user can claim to be referred by anyone.

  • Applications should use care when following transfer requests. Auto-forwarding logic presents risks of impersonation and misdirection. For example, media stream redirects can lead an audio stream to a target unknown to the caller.

  • Applications should regard the contents of instant messages and any URLs contained in presence documents or instant messages as untrusted and potentially harmful.

  • Applications must mitigate attacks at their own entry points.

  • The administrator of the computer that hosts an application built on UCMA 2.0 Core SDK should be aware that the logging components that are shipped with the UCMA 2.0 Core SDK allow SIP logging and that the headers and contents of SIP messages can contain confidential data.

  • Application developers should be aware that additional entry points built on the extension APIs potentially can change the attack surface (for example, Remote Desktop Protocol (RDP) for application sharing offers its own inband threats). Extension-specific mitigations are left to the application.

  • To avoid malicious redirection, an application can limit the number of redirects allowed by a UserEndpointinstance.

  • Administrators should restrict access to the default.tmx file by using an access control entry (ACE). The default.tmx file is used to decode binary log files that can contain IP address/call duration tuples.

  • Media Stream encryption can be turned off by Office Communications Server policy. The encryption value comes from inband provisioning. If a value is not supplied, the default value ( Supported) is used.

  • Application developers should be aware that files recorded by a Recorderdevice do not support Digital Rights Management (DRM). This means that conversations recorded by a Recorderdevice can be played by any player that supports the Windows Media Audio (WMA) media format, potentially exposing personal or confidential information.