Security Checklist core tasks
The Security Checklist provides Pega's leading practices for securely deploying applications. To assist you in tracking the completion of the tasks in the Security Checklist, Pega Platform shows the overall completion on the Dev Studio Home page, and built-in ways to track the status of each task.
The Security Checklist core tasks are critical and should be performed for every application.
Tasks to perform during development
- Address security alerts promptly
- At least weekly, review run-time security alerts weekly and take appropriate
remedial actions to eliminate their causes.For more information, see
- Securely authenticate attempts to access services
- As you configure connectors to access external systems, ensure that you use appropriate authentication.
- Define appropriate roles and privileges to restrict access
- Define roles for the users in your access groups.
- Using the Rule Security Mode Utility to secure rules in Pega Applications
- Authorization
- Editing authorizations for case type items in a single access group
- Editing authorizations for case type flows and flow actions in a single access group
- Viewing authorizations for case type flows and flow actions in a single access group
- Viewing authorizations for case type items in all access groups
- Reviewing user privileges for a role by using Access Manager
- Access Manager
- Learning about access groups
- Creating an access group
- Define appropriate access control policies to restrict access
- Use access control policies to enforce restrictions on access to application data at the row and column level; in other words, to restrict access to specific instances or properties in a class for different operators.
- Appropriately encrypt data
- Protect sensitive data within Pega Platform data stores by encrypting all the data in a class or by encrypting individual property values.
For more information, see Encryption in Pega Platform.
Tasks to perform when deploying to production
- Set the system production level to 5
- To implement the highest restrictive security scheme, set the production level for the application to level 5.
For more information, see Defining production-level application setting values.
- Lock rulesets
- Lock each ruleset version with a secure password by clicking Lock
and Save on the Version tab, and
entering a hard-to-guess password. In each ruleset rule, click
Use checkout? on the
Security tab, and enter three distinct passwords
to limit the ability to add versions, update versions, and update the
ruleset rule.
For more information, see Versions tab on the Ruleset form.
- Do not deploy checked-out rules
- Run the Checked Out Rule Report and eliminate rules that are checked out.
For more information, see Reporting on rules.
- Block unnecessary roles and operators from production
- In the production environment, eliminate or block any operators and roles used in development or test environments, but are not needed in production.
In addition, you should delete or disable any Authentication Service rules that are not intended to be usable in production, as these would allow access to your application through unauthorized methods.
- Secure passwords
- Verify that the system securely hashes and stores all passwords for
production use.
- In the database table that holds the operator ID instances, ensure that the column that contains the password property pyPwdCurrent is not exposed, and that the value for pyPwdCurrent is only in the pzPVStream or BLOB column.
- Convert preexisting password hashes to use the bcrypt algorithm.
For more information, see Password hashing.
- Configure dynamic system settings for production
- Verify that the dynamic system settings are appropriate for a production environment.
For more information, see Dynamic system settings.
- Configure Cross-Site Request Forgery (CSRF) settings
- Configure Cross-Site Request Forgery (CSRF) settings to prevent unwanted actions on an application in which a user is currently authenticated.
For more information, see Enabling and configuring Cross-Site Request Forgery settings.
For Pega 7 and below, set the CSRF settings as described in Configuring CSRF protection.
- Define appropriate Content Security Policies (CSPs)
- Review and define an appropriate Content Security Policy (CSPs). Every production application should have a policy specifying which locations the user's browser can load resources from.
For more information, see Content security policy directives.
- Define appropriate CORS policies for REST services
- Configure cross-origin resource sharing (CORS) policies to control and secure access to the REST services in your application by external systems.
For more information, see Creating a cross-origin resource sharing (CORS) policy.
- Configure logging levels appropriately
- Set the appropriate logging levels for production. There are 8 logging levels. Error is the default setting. If system is running normally, very little information will be written to the logs. Information is only written to the logs when an exception is thrown.
For more information, see Logging Level Settings tool.
Appropriately audit changes to data and user/developer actions
Configure auditing to document who changes your application data, and when and how the data has been changed. Auditing also enables you to:
- Monitor all security-related activity in the system.
- Create reports that analyze patterns of system usage.
- Identify patterns of suspicious behavior.
- Determine the scope of damage and apply remedial actions, if any vulnerabilities are exploited.