Citrix Virtual Apps and Desktops

Virtual channel security

By default, the Virtual channel allow list feature is enabled. As a result, only Citrix virtual channels are allowed to open in virtual apps and desktops sessions. If there is a need to use custom virtual channels, whether homegrown or from a third party, these need to be explicitly added to the allow list.

Adding virtual channels to the allow list

To add a virtual channel to the allow list, you need:

  1. The virtual channel name as defined in the code, which can be up to seven characters long. For example, CTXCVC1.

  2. The paths to the processes that open the virtual channel on the VDA machine. For example, C:\Program Files\Application\run.exe.

Once you have the required information, you must add the virtual channel to the allow list using the Virtual channel allow list policy setting. To add a virtual channel to the list, enter the virtual channel name followed by a comma, and then the path to the process that accesses the virtual channel. If there are multiple processes, these can be added separated by commas.

Using the previous examples, you would add the following to the list:

CTXCVC1,C:\Program Files\Application\run.exe

If there are multiple processes, you would add the following to the list:

CTXCVC1,C:\Program Files\Application\run.exe,C:\Program Files\Application\run2.exe

Citrix virtual channel considerations

All built-in Citrix virtual channels are trusted and allowed to open without further configuration. However, there are two features that require explicit entries in the allow list due to external dependencies:

  • Multimedia Redirection
  • HDX RealTime Optimization Pack for Skype for Business

Multimedia Redirection

This information is required for the allow list entry:

  • Virtual channel name: CTXMM
  • Process: Path to the media player used in your VDA machine. For example, C:\Program Files (x86)\Windows Media Player\wmplayer.exe
  • Allow list entry: CTXMM,C:\Program Files (x86)\Windows Media Player\wmplayer.exe

HDX RealTime Optimization Pack for Skype for Business

This information is required for the allow list entry:

  • Virtual channel name: CTXRMEP
  • Process: Path to the Skype for Business executable in your VDA machine, which can vary based on the version of Skype for Business or if you used a custom installation path. For example, C:\Program Files\Microsoft Office\root\Office16\lync.exe.
  • Allow list entry: CTXRMEP,C:\Program Files\Microsoft Office\root\Office16\lync.exe

Obtaining virtual channel names and processes

The easiest way to obtain the name of the virtual channel and the process that opens it on the VDA machine is to get the information from the developer or third-party vendor that provided the virtual channel.

Alternatively, this information can be obtained by applying the feature’s logs and following these steps:

  1. Once the client and server components of the custom virtual channel are in place, launch a virtual application or virtual desktop.
  2. In the VDA machine’s System event log, look for the custom virtual channel’s name in the following event:
    • In a single-session VDA, event ID 2004 from source Picadd.
    • In a multi-session VDA, event ID 16 from source Rpm.
  3. Log off from the session.
  4. Add an entry in the Virtual channel allow list policy setting for the identified virtual channel, with just the virtual channel name.
  5. Relaunch the virtual application or virtual desktop.
  6. In the VDA machine’s System event log, look for the process that tried to open the virtual channel in the following event:
    • In a single-session VDA, event ID 2002 from source Picadd.
    • In a multi-session VDA, event ID 14 from source Rpm.
  7. Log off from the session.
  8. Edit the entry in the Virtual channel allow list policy setting to include the identified process.
  9. Launch the virtual application or virtual desktop to validate that the custom virtual channel opens successfully.

Virtual channel allow list logging

The following events are logged in the single session VDA machine’s event log:

   
Log Name System
Id 2001
Source Picadd
Level Information
Description Custom virtual channel <vcName> has been opened by process <processName>
   
Log Name System
Id 2002
Source Picadd
Level Warning
Description Custom virtual channel <vcName> cannot be opened by process <processName>
   
Log Name System
Id 2003
Source Picadd
Level Information
Description <username> opened custom virtual channel <vcName>
   
Log Name System
Id 2004
Source Picadd
Level Warning
Description <username> tried to open custom virtual channel <vcName>

The following events are logged in the multi session VDA machine’s event log:

   
Log Name System
Id 13
Source Rpm
Level Information
Description Custom virtual channel <vcName> has been opened by process <processName>
   
Log Name System
Id 14
Source Rpm
Level Warning
Description Custom virtual channel <vcName> cannot be opened by process <processName>
   
Log Name System
Id 15
Source Rpm
Level Information
Description <username> opened custom virtual channel <vcName>
   
Log Name System
Id 16
Source Rpm
Level Warning
Description <username> tried to open custom virtual channel <vcName>

Known third-party virtual channels

The following are known third-party solutions that use custom Citrix virtual channels. This list does not include every solution that uses a custom Citrix virtual channel.

  • Cerner
  • Cisco WebEx Teams
  • Cisco WebEx Meetings Virtual Desktop Software
  • Epic Warp Drive
  • Midmark IQPath Client Extensions
  • Nuance PowerMic Client Extensions
  • Nuance Dragon Medical Network Edition 360 vSync
  • Zoom Meetings for VDI

To obtain details for adding the associated virtual channels to the allow list, reach out to the solutions’ vendors. Alternatively, follow the steps outlined in the Obtaining virtual channel names and processes section.

Virtual channel security