Requirement 1: Install and Maintain a Firewall Configuration to Protect Cardholder Data
Make sure to create strict firewall rules based on the answers to these questions. It's best to use an allowlist approach, which means allowing only approved apps, software, emails, domains, IPs, etc., and blocking everything else. Additionally, add restrictive rules to deny administrators access to specific devices outside your firewall. This will help prevent unauthorized access from both external and insider threats.
Requirement 2: Do Not Use Vendor-Supplied Defaults for System Passwords and Other Security Parameters
Follow the recommended hardening guide when installing new software to meet compliance requirements. Implement additional protection mechanisms and only install the necessary components for your application. Consider a defense-in-depth approach by separating duties in your software deployment process and isolating servers based on function. Additionally, consider air-gapping your testing environment from the Internet for added security.
Requirement 3: Protect Stored Cardholder Data
To comply with this requirement, it's best not to store any cardholder data. Instead, you can use a payment gateway and store only the customers' ID and successful payment confirmations, or you can use tokenization. Tokenization involves replacing sensitive information like cardholder data with a random string called a token, which does not reveal any sensitive information about the original data and cannot be modified. This approach is easy and cost-effective to implement and will reduce your PCI scope, making the compliance process easier.
Requirement 4: Encrypt Transmission of Cardholder Data Across Open, Public Networks
To comply with this requirement, you need to use TLS v1.1 or higher. The good news is that there are many options available, ranging from free single subdomain certificates like those provided by Let's Encrypt to higher-end commercial certificates that display your business name along with a green padlock.
To go beyond the basic requirements, it's recommended that you assess your website using Qualys SSL Labs to ensure that its configuration settings earn it an A+ rating. The minimum version used should be TLS v1.2.
Requirement 5: Protect All Systems Against Malware and Regularly Update Anti-Virus Software or Programs
Make sure all employee workstations have updated anti-virus software. Use next-gen endpoint security for better protection. Employees must know malware protection policies for PCI compliance.
Requirement 6: Develop and Maintain Secure Systems and Applications
It's important to go beyond the minimum requirements when it comes to security best practices for your Secure Software Development Lifecycle (SDLC). Here are some key practices to consider:
- Provide hands-on secure coding training - It's highly recommended that developers receive hands-on training that involves actual coding. This type of training ensures that developers learn and practice secure coding, making them more proficient in creating secure code. Studies have shown that hands-on coding exercises are more effective than basic multiple-choice lessons or slide decks.
- Utilize static and dynamic code analysis - To strengthen your PCI secure coding initiative, it's essential to test products using both static and dynamic code analysis tools and techniques. Static analysis helps identify coding errors before a program is released, while dynamic analysis helps find additional vulnerabilities that static analysis might miss.
- Conduct secure code reviews - Manual code reviews involve a thorough examination of the source code to identify potential security issues that may be missed by automated tools. While these reviews take more time and require individuals with strong security backgrounds, they can uncover vulnerabilities that automated tools might overlook.
- Implement bug bounty programs - Since no set of practices can guarantee the absence of vulnerabilities, it's also beneficial to consider implementing a bug bounty program as part of your Vulnerability Disclosure Program.
Requirement 7: Restrict Access to Cardholder Data by Business Need to Know
This requirement specifies that only authorized individuals should have access to the organization's systems. In practical terms, each workstation should only be permitted to access the resources necessary for the user to perform their job effectively. The objective is to restrict users' and services' privileges to the minimum necessary for them to fulfill their duties.
Requirement 8: Identify and Authenticate Access to System Components
It is equally important to provide comprehensive computer security education for all employees. This will help them understand common social engineering techniques used to steal personal data, how to safely use social media, the principles of multi-factor authentication, and how to secure mobile devices. Strong policies and properly trained staff are essential to enhancing an organization's security.
Requirement 9: Restrict Physical Access to Cardholder Data
To ensure comprehensive security, consider these practices:
- Secure the data center by locking it and allowing access only to authorized personnel after identity verification. Bolt rack servers to the floor to prevent theft.
- Use badges or smart cards for employee and visitor identification, and monitor check-in/out activities.
- Implement intrusion detection alarms, motion detectors, and CCTV for added security.
- Secure workstations by disconnecting those not in use and setting a short auto-logout time for in-use workstations.
Requirement 10: Track and Monitor All Access to Network Resources and Cardholder Data
It's important to not overlook the requirement of logging, as it can be a valuable tool in tracing a data breach. While logging everything isn't sufficient to stop ongoing attacks, log files are incredibly useful evidence after a data breach. They can help the investigation team understand how an attacker gained unauthorized access.
Monitoring mechanisms must also be implemented to block ongoing attacks. Monitoring processes log files in real-time and identifies anomalies or unusual events. Security personnel must also manually check alerts generated by monitoring technologies and take adequate action in case of a cyber attack.
Requirement 11: Regularly Test Security Systems and Processes
Remember to conduct regular penetration testing audits on your application and infrastructure. Don't just focus on basic security checks; go deeper with threat modeling, social engineering attacks, insider attacks, and critical infrastructure attack simulations. Due to the constantly evolving cybersecurity landscape, these tests should be done every few months.
Requirement 12: Maintain a Policy that Addresses Information Security for All Personnel
An information security policy outlines rules for personnel to protect the organization against threats and ensure business continuity. It covers physical security, sensitive information protection, access control, human resources, hardware devices, software usage, communication encryption, risk assessment, and incident response. Personnel responsibilities should be clearly defined to protect customers' data.