So, how does PCI-DSS affects our web application security testing or what to make sure the application is compliant with PCI, while doing the security testing.
Here are few requirements which needs to be taken case while testing a web application which handles financial data such as credit card information. As the PCI guidelines itself maintains that the application must be tested on regular basis in "Requirement 11: Regularly test security systems and processes."
But what should really we look for? The requirement 11 is tied back to other requirements Requirement 6.:
11.2.1 Perform quarterly internal vulnerability scans and rescans as needed, until all “high-risk” vulnerabilities (as identified in Requirement 6.1) are resolved. Scans must be performed by qualified personnel.
11.2.3 Perform internal and external scans, and rescans as needed, after any significant change. Scans must be performed by qualified personnel.
11.3 Implement a methodology for penetration testing that includes the following:
11.3.1 Perform external penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
11.3.2 Perform internal penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
Now let's check Requirement 6.1 says:
6.1 Establish a process to identify security vulnerabilities, using reputable outside sources for security vulnerability information, and assign a risk ranking (for example, as “high,” “medium,” or “low”) to newly discovered security vulnerabilities.
6.2 Ensure that all system components and software are protected from known vulnerabilities by installing applicable vendor-supplied security patches. Install critical security patches within one month of release.
6.3 Develop internal and external software applications (including web-based administrative access to applications) securely, as follows.
And what to test for:
6.5 Address common coding vulnerabilities in software-development processes as follows:
6.5.1 Injection flaws, particularly SQL injection. Also consider OS Command Injection, LDAP and XPath injection flaws as well as other injection flaws.
6.5.2 Buffer overflows
6.5.3 Insecure cryptographic storage
6.5.4 Insecure communications
6.5.5 Improper error handling
6.5.6 All “high risk” vulnerabilities identified in the vulnerability identification process
6.5.7 Cross-site scripting (XSS)
6.5.8 Improper access control
6.5.9 Cross-site request forgery (CSRF)
6.5.10 Broken authentication and session management
Basically we need to test the web applucation for OWASP Top 10 vulnerabilities and addtionally we need to scan the servers and infrastructure for possible open ports, patches missing any other misconfigurations.
So basically, focus on Requirement section 6 while doing the testing.
Here are few requirements which needs to be taken case while testing a web application which handles financial data such as credit card information. As the PCI guidelines itself maintains that the application must be tested on regular basis in "Requirement 11: Regularly test security systems and processes."
But what should really we look for? The requirement 11 is tied back to other requirements Requirement 6.:
11.2.1 Perform quarterly internal vulnerability scans and rescans as needed, until all “high-risk” vulnerabilities (as identified in Requirement 6.1) are resolved. Scans must be performed by qualified personnel.
11.2.3 Perform internal and external scans, and rescans as needed, after any significant change. Scans must be performed by qualified personnel.
11.3 Implement a methodology for penetration testing that includes the following:
11.3.1 Perform external penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
11.3.2 Perform internal penetration testing at least annually and after any significant infrastructure or application upgrade or modification (such as an operating system upgrade, a sub-network added to the environment, or a web server added to the environment).
Now let's check Requirement 6.1 says:
6.1 Establish a process to identify security vulnerabilities, using reputable outside sources for security vulnerability information, and assign a risk ranking (for example, as “high,” “medium,” or “low”) to newly discovered security vulnerabilities.
6.2 Ensure that all system components and software are protected from known vulnerabilities by installing applicable vendor-supplied security patches. Install critical security patches within one month of release.
6.3 Develop internal and external software applications (including web-based administrative access to applications) securely, as follows.
And what to test for:
6.5 Address common coding vulnerabilities in software-development processes as follows:
6.5.1 Injection flaws, particularly SQL injection. Also consider OS Command Injection, LDAP and XPath injection flaws as well as other injection flaws.
6.5.2 Buffer overflows
6.5.3 Insecure cryptographic storage
6.5.4 Insecure communications
6.5.5 Improper error handling
6.5.6 All “high risk” vulnerabilities identified in the vulnerability identification process
6.5.7 Cross-site scripting (XSS)
6.5.8 Improper access control
6.5.9 Cross-site request forgery (CSRF)
6.5.10 Broken authentication and session management
Basically we need to test the web applucation for OWASP Top 10 vulnerabilities and addtionally we need to scan the servers and infrastructure for possible open ports, patches missing any other misconfigurations.
So basically, focus on Requirement section 6 while doing the testing.
Comments