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:
-
The virtual channel name as defined in the code, which can be up to seven characters long. For example,
CTXCVC1
. -
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
The use of wildcards (*) is supported. You can use wildcards when the names of directories or executables change based on the version of the application, or if the third-party component is installed in the users’ profiles.
You can use wildcards for the following:
- To replace the full directory name. For example:
C:\Program Files\Application\*\run1.exe
- To replace part of the directory name. For example:
C:\Program Files\Application\v*\run1.exe
- To replace the executable’s name. For example:
C:\Program Files\Application\v1.2\*.exe
- To replace part of the executable’s name. For example:
C:\Program Files\Application\v1.2\run*.exe
The following restrictions apply:
- The wildcard can only be used to replace a single directory. For example, if the executable is located in
C:\Program Files\Application\v1.2\run1.exe
- Allowed:
C:\Program Files\Application\*\run1.exe
- Not allowed:
C:\Program Files\*\run1.exe
- Allowed:
- Entries must contain the file extension.
- Allowed:
C:\Program Files\Application\v1.2\*.exe
- Not allowed:
C:\Program Files\Application\v1.2\*
- Allowed:
- All paths must be local. Network paths are not allowed.
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:
- Once the client and server components of the custom virtual channel are in place, launch a virtual application or virtual desktop.
- In the VDA machine’s System event log, look for the custom virtual channel’s name and the process that tried to open it 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.
- Log off from the session.
- Add an entry in the Virtual channel allow list policy setting for the identified virtual channel and process.
- 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.