Recordings and Audits

PSM records privileged sessions and stores them in the Vault where they can be viewed at any time by authorized users. These recordings are automatically configured and enabled at system level and can be overridden at platform level, enabling you to customize recordings for platforms.

For details on storing recording in an external storage location, see External Storage Device.

Recordings and audit overview

PSM can create the following recording types:

Type

Description

Video recordings

PSM can create video recordings for all supported connection components. By default, all these recordings are enabled.

Text recordings

PSM can create text recordings for all supported connection components. By default, all these recordings are enabled.

 

PSM only captures text recordings for PSM-RDP connections in environments where single language support is configured. For details, see Configure universal keystrokes for Windows connections when an additional language is used.

Audit records

PSM can create audit records for each command and event that is executed or keystrokes that are typed during privileged sessions for all supported connection components.

Customize recordings in PSM

Video and text recordings for PSM connections are automatically enabled at Master Policy level and are configured at PSM general level (in Web Access Options).

These instructions describe how to customize these recordings at platform level, which overrides the general level.

You can customize settings for the following text recorders:

Text Recorder Type Comments and Details Recording Supported for Connection Component
SQL text recorder PSM can record all the commands that are executed during privileged sessions on SQL connections.
  • PSM-Toad
  • PSM-SQLPlus
SSH text recorder PSM can record all the keystrokes that are typed during privileged sessions on SSH connections.
 

This configuration also affects SSH text recordings in PSM for SSH.

  • PSM-SSH
  • PSM-TelnetSample
Windows events text recorder

PSM can record all the Windows titles that were accessed during privileged sessions on Windows connections.

 
  • Universal keystrokes recording and Windows events recording cannot be configured for the same connection.
  • Windows events text recording is not supported when connecting with local administrators (except for the built-in Administrator user) to systems that are UAC enabled.

Before enabling the Windows events text recorder, see Configure Windows events text recording and Windows events auditing.

  • PSM-RDP
  • PSM-WebFormSample 
  • PSM-MS-Azure 
  • PSM-PVWA
  • PSM-AWSConsoleWithSTS 
  • PSM-PTA 
  • PSM-VSphere 
Universal keystrokes text recorder

PSM can record all the keystrokes that are typed during privileged sessions on all supported connections.

Universal keystroke recording and Windows events recordings cannot be configured for the same PSM-RDP connection. Windows events text recording is enabled for PSM-RDP connections by default. To enable universal keystrokes text recording, first disable Windows events text recording. For more information, refer to the relevant steps in the following procedure.

PSM only captures text recordings for PSM-RDP connections in environments where single language support is configured. For more information, refer to Configure universal keystrokes for Windows connections when an additional language is used.

Before enabling the Universal keystrokes text recorder, refer to Configure universal keystrokes text recording and universal keystrokes auditing.

  • For all connection components

Automatically adjust the frames per second (FPS) rate of the PSM video recorder

PSM dynamically adjusts the frames per second (FPS) rate of the PSM video recorder if the PSM server is loaded, decreasing the performance impact in environments with large numbers of concurrent sessions. This may result in reduced quality when playing recorded videos of PSM sessions that were run while the PSM server is loaded.

To disable this feature, set EnableDynamicFramesPerSecond to No. This parameter is found in the PVWA configuration, under Options > Privilege Session Management > General Settings > Recorder Settings.

 

The deprecated EnableDynamicFPS parameter in the basic_psm.ini file on the PSM overrides the EnableDynamicFramesPerSecond parameter.

The basic_psm.ini file is found in the PSM installation folder. By default, this is C:\Program Files (x86)\CyberArk\PSM.

Separate keystroke records

You can define a list of keys that indicate when a keystrokes audit record ends. This list can be defined for each connection component and can be overidden for a specific platform. Whenever the user strikes a key on the keyboard from this list, PSM creates a new audit record that contains the group of keys that were typed up to this point.

 

In an environment where support for multiple languages is configured, in PSM-RDP connections the only separator key is Enter and it cannot be changed. For more information, refer to Configure universal keystrokes for Windows connections when an additional language is used.

Configure detailed audit in PSM

By default, PSM records all the activities that take place during privileged sessions and provides audits for the following events:

Event

Description

SQL commands

PSM can record all the commands that were executed during privileged SQL sessions on the Server or database. This type of auditing is supported for the following connection components:

  • PSM-Toad

  • PSM-SQLPlus

SSH keystrokes

PSM can record all the keystrokes that are carried out during privileged SSH sessions. This type of auditing is supported for the following connection component:

  • PSM-SSH

For SSH keystrokes audit in PSM for SSH, see Configure recordings and audits (PSM for SSH).

Window titles

PSM can record the titles of the windows that are displayed during privileged Windows sessions. This type of auditing is supported for the following connection components:

  • PSM-RDP
  • PSM-WebFormSample 
  • PSM-MS-Azure 
  • PSM-PVWA
  • PSM-AWSConsoleWithSTS 
  • PSM-PTA 
  • PSM-VSphere 

Universal keystrokes recording and Windows events recording cannot be configured for the same PSM-RDP connection. Windows events recording is enabled for PSM-RDP connections by default.

Windows events audit is not supported when connecting with local administrators (except for the built-in Administrator user) to systems with UAC enabled.

Before enabling the Windows events audit, see Configure Windows events text recording and Windows events auditing.

Universal keystrokes

PSM can record all the keystrokes that are carried out during all privileged sessions. This type of auditing is supported for all connection components.

Universal keystroke recording and Windows events recording cannot be configured for the same PSM-RDP connection. Windows events recording is enabled for PSM-RDP connections by default. To enable universal keystrokes recording, first disable Windows events recording. For more information, refer to the relevant steps in the following procedure.

Universal keystroke recording cannot be applied with Commands Access Control in PSM.

Before enabling the Universal keystrokes audit, see Configure universal keystrokes text recording and universal keystrokes auditing.

In environments where single language support is configured, you can benefit from Universal keystrokes for PSM-RDP connections without any extra configuration. In environments where additional language support is configured, specific prerequisites are required.

For more information, see Configure universal keystrokes for Windows connections when an additional language is used.

Configure Windows events text recording and Windows events auditing

Target server prerequisites:

  • A share called "admin" must be available on the target server.
  • Make sure the “SERVER” Windows service is running.
  • In the firewall, open TCP port 445.
  • The account used to access the target machine must belong to the Administrators Group.
 

To enable Detailed Session Auditing, PSM installs a service named CAInvokerService.exe on the target machine. The service starts when a new session is initiated, and stops immediately after the session is established.

Configure universal keystrokes text recording and universal keystrokes auditing

Before enabling Universal keystrokes text recording or Universal keystrokes auditing, configure your PAM - Self-Hosted environment, as described below:

CyberArk Component Compatibility:
All PSM servers in your environment must be V8.6 or above.
All PSM SSH-Proxy servers in your environment must be V7.2.12 or above.
The Vault and the PVWA components must be V8.6 or above.

Configure universal keystrokes for Windows connections when an additional language is used

Universal keystrokes recording is configured by default to support Windows sessions in which a single language is used.

If you use an additional language in your Windows sessions (for example, if you use both English and French keyboards), configure the Universal keystrokes as described In this section:

 

Universal keystrokes that are configured to support an additional language are not recorded when connecting to 32-bit target servers.

Prerequisites and limitations when additional language support is enabled

On the target machine, PSM requires the following:

A share called "admin" must be available on the target server.
Make sure the “SERVER” Windows service is running.
In the firewall, open TCP port 445.
The account used to access the target machine must belong to the Administrators Group.
 

To enable Universal Keystrokes for Windows sessions when additional language support is enabled, PSM installs a service on the target machine. The service starts when a new session is initiated, and stops immediately after the session is established.

Add the additional language as an extra keyboard for the target account user on the target machine.
When Windows Keystrokes additional language support is enabled, only connections to Win2008R2 or Win2012R2 target systems are supported.

On the PSM Server, PSM requires the following:

Set the system locale to the additional language.

Filter SQL command audits

PSM can filter SQL command audits that are recorded during PSM-Toad and PSM-SQLPlus connections to minimize unwanted audit records, reducing the number of audit records stored in the Vault and increasing server performance. Filters can be created at system level to apply to all SQL commands issued through PSM connections, or at platform level to apply to SQL commands issued through connections that are linked to a specific platform.

You can define lists to filter commands that are recorded according to the following criteria:

Commands to audit

An allowlistis a list of SQL commands that are included in the command audit records. All other commands are not included. By default, all commands that are issued during privileged sessions are audited. However, after you create an allowlist, only the listed commands are audited, if they do not appear in the denylist.

Commands not to audit

A denylistis a list of SQL commands that are excluded from audit records. All other commands are included.

By defining denylists and allowlists, you assert granular control over audit records in the Vault and determine exactly which commands are audited. These lists are created in audit filter rules as regular expressions which define specific commands. You can create as many rules as you require for denylists as well as allowlists, as well as lists that combine them both.

 

Denylist:

By default, PSM includes a single denylist that excludes the multiple commands that are issued automatically at the start of each Toad session. These commands are predetermined as part of the Toad setup, and are not relevant to the privileged session, other than to start it. This denylist excludes these commands from the session audit, and reduces the number of audit records stored in the Vault.

 

Allowlist:

The following example describes an example of when you would require an allowlist: You wish to audit all DDL queries such as ‘update’, ‘insert’, and ‘delete’ so that you know who issues these commands, when, and from which station. However, you don’t need to audit other commands that are issued. You can create an allowlist that contains these commands, ensuring that every time these specific commands are issued during the privileged session, they are audited.

Hide passwords during recordings

PSM identifies passwords that are typed by users during SSH and Telnet sessions by looking for password prompts. By default, the prompts that PSM looks for include common prompts for Unix platforms or for Vault passwords. Customize this list to include all password prompts that are received in your environment. When users type a character that cannot be included in a password, such as a space, or when they press Enter, PSM resumes the audit and recording. You can update this list of characters too.

This can be configured at platform level, overriding the general configuration.

 

This configuration affects both PSM and PSM for SSH, with the following connection components: PSM-SSH, PSM-Telnet, PSMP-SSH.

Enable access to session monitoring

Vault administrators can configure the system to create Recording Safes that suit the enterprise auditor’s specific access control needs. In addition, administrators can manually set different auditors for each Recording Safe according to their access control policy.

Also, to monitor live sessions or review recordings, users do not necessarily have to be a member of the Auditors group. They can have membership in the relevant Password Safes and Recording Safes with the appropriate permissions.

For more information about setting permissions in Safes, refer to Monitor Privileged Sessions.

There are several ways to configure the way that Recording Safes are created, all of which are configured in the platform settings, as described in Configure Recording Safes.

 

Users who are assigned to the Auditors Group have permissions to view all recordings.

To assign more granular permissions to an auditor, remove them from the auditors group and assign them to the safe or safes that are relevant.

For example, an organization may want to create recordings by division and give permissions to auditors to only access their specific division recordings.

Configure Recording Safes

Recording Safes are created automatically by PSM, according to the configuration in the platform. Each Recording Safe is created when the first recording is uploaded.

Method

Description

Predefined Recording Safe name

A Recordings Safe is created for recordings of all accounts that are associated with the same platform. The exact Safe name is specified in the platform settings.

Generated Recording Safe name that includes the Account Safe name

A Recordings Safe is created for all accounts that are stored in the same Safe. The Safe name is partially specified in the platform settings and the name of the Safe where the accounts are stored is generated dynamically when the Safe is created.

Generated Recording Safe name that includes the values of specific connection parameters

A Recordings Safe is created for all sessions that have the same connection parameters values. The Safe name is partially specified in the platform settings and the values of the connection parameters that were used in the session are added dynamically when the Safe is created.

You need configure platforms permissions to perform this procedure.

Configure the Recording Safe

  1. Open the platform for editing, as described in Edit a platform.

  2. Expand UI & Workflows, and then select Privileged Session Management. The PSM parameters are displayed with their default values.

  3. In SessionRecorderSafe , specify the name of the Safe to store recordings of activities for accounts associated with the platform. Enter the relevant information:

    Property

    Description

    Safe name The name of the Safe.
    Safe name and {AccountSafeName} Specify a partial Safe name and then {AccountSafeName} to create a Safe whose name includes the name of the Safe where the account used to initiate the session is stored. For example, if the session uses an account that is stored in a Safe called ‘Windows’, and you specify ‘PSM-{AccountSafeName}’, a Safe called ‘PSM-Windows’ is created.
    Safe name and {<connection parameter>}

    Specify a partial Safe name and then {<connection parameter>} to create a Safe whose name includes the value of the specified connection parameter that was used in the session. The connection parameter can be anyone of the following:

    • A File Category in the account that was used in the session.

    • A User Parameter that was configured for the connection component that was used in the session.

    • A Client Specific parameter that was configured for the connection component that was used in the session.

      For example, if the session uses an account that has a File Category "EnvironmentType" with the value "Production", and you specify ‘PSM-{EnvironmentType}’, a Safe called ‘PSM-Production’ is created.

       

      If the same connection parameter was set in multiple ways (for example: a File Category and a User Parameter which are both named "EnvironmentType"), the value that is used for the Safe name is according to the following order of precedence: A File Category overrides a User Parameter, and a User Parameter overrides a Client Specific parameter.

    • You can also combine multiple connection parameters. For example, if the session uses an account that is stored in a Safe called ‘Windows’, and uses a connection component with a client specific parameter called "Group" with a value of "GroupA", and you specify ‘PSM-{AccountSafeName}-{Group}’, a Safe called ‘PSM-Windows-GroupA’ is created.

      This Safe is created when the first recording is uploaded to it.

  4. Save your changes.

Create a Recording Safe before initiating sessions

You can create PSM Recording Safes before any sessions are initiated and assign the desired user permissions. In this way, the PSM does not automatically create Recording Safes with default permissions.

Add the PSMAppUsers group as a member of this Safe with full permissions.

Change the PSM recordings folder

PSM recordings are saved temporarily in a local folder until the PSM session ends, when they are uploaded to the Vault.

The path of this folder is set during the PSM installation.

Until version 12.2, the recordings folder path name was stored in the PVWA configuration LocalRecordingsFolder parameter. See Recorder Settings.

From version 12.2, the recordings folder path name is stored in the basic_psm.ini configuration RecordingsDirectory parameter.

To change the PSM recordings folder path after installation:

  1. Create a corresponding folder in the new location.

  2. In the Basic_psm.ini file, set RecordingsDirectory with the new path.

  3. Restart the PSM service.

  4. Run the PSMHardening script.

    1. From the CD image, open InstallationAutomation\Hardening\HardeningConfig.XML and disable all steps except Runs the hardening script.

    2. Open a PowerShell window and run the following command:

       
      CD “<CD-Image Path>\InstallationAutomation”
      .\Execute-Stage.ps1 “<CD-Image Path>\Installation automation\Hardening\HardeningConfig.XML

      For additional information, see Hardening.

Enable session recordings for specific users and groups

You can enable session recordings for specific users and groups on the platform level. In addition, certain users and groups can be excluded from that list. For example, in an implementation where all external users’ sessions are recorded, you can exclude a specific user, such as the external_admin user.

Enable session monitoring for specific users and groups:

  1. Open the platform for editing, as described in Edit a platform.
  2. In the left pane, expand UI & Workflows, right-click Privileged Session Management and select Add Recorded Users and Groups.

    A Recorded Users and Groups section is added.

    This section defines the users and groups whose sessions are recorded by the PSM. These users and groups are only recorded if the Record and save session activity rule is set in the Master Policy, and if these users and groups do not appear in the Exclude Recorded Users and Groups section. By default, all users and groups are recorded.

  3. Expand Recorded Users and Groups, and select User or Group.

    To add additional users and groups to the list, right-click Recorded Users and Groups, and select Add User or Group.

  4. In the Properties list, specify the name of the user or group that are recorded when they connect to a remote device with an account associated with this platform.

  5. Right-click Privileged Session Management, then from the drop-down menu, select Add Exclude Recorded Users and Groups.

    An Exclude Recorded Users and Groups section is added.

    This section defines the users and groups whose sessions are not recorded by the PSM, even when the Record and save session activity rule is set in the Master Policy.

  6. Expand Exclude Recorded Users and Groups , and select User or Group.

    To add additional users and groups to the list, right-click Recorded Users and Groups, and select Add User or Group.

  7. In the Properties list, specify the name of the user or group to exclude from the Recorded Users and Groups list.

  8. Save your changes.