19.08.2015 Views

4.0

1IZ1TDd

1IZ1TDd

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

21Testing Guide Introductionment where testers can simulate real attack scenarios as can bepotentially executed by a malicious external or internal user of theapplication. Security testing at this level can validate whether vulnerabilitiesare real and can be exploited by attackers. For example,a potential vulnerability found in source code can be rated as highrisk because of the exposure to potential malicious users, as wellas because of the potential impact (e.g., access to confidential information).Real attack scenarios can be tested with both manual testing techniquesand penetration testing tools. Security tests of this type arealso referred to as ethical hacking tests. From the security testingperspective, these are risk driven tests and have the objective oftesting the application in the operational environment. The targetis the application build that is representative of the version of theapplication being deployed into production.Including security testing in the integration and validation phaseis critical to identifying vulnerabilities due to integration of componentsas well as validating the exposure of such vulnerabilities.Application security testing requires a specialized set ofskills, including both software and security knowledge, that arenot typical of security engineers.As a result organizations are oftenrequired to security-train their software developers on ethicalhacking techniques, security assessment procedures and tools.A realistic scenario is to develop such resources in-house anddocument them in security testing guides and procedures thattake into account the developer’s security testing knowledge.A so called “security test cases cheat list or check-list”, for example,can provide simple test cases and attack vectors that can be usedby testers to validate exposure to common vulnerabilities such asspoofing, information disclosures, buffer overflows, format strings,SQL injection and XSS injection, XML, SOAP, canonicalization issues,denial of service and managed code and ActiveX controls (e.g., .NET).A first battery of these tests can be performed manually with a verybasic knowledge of software security.The first objective of security tests might be the validation of a setof minimum security requirements. These security test cases mightconsist of manually forcing the application into error and exceptionalstates and gathering knowledge from the application behavior.For example, SQL injection vulnerabilities can be tested manually byinjecting attack vectors through user input and by checking if SQLexceptions are thrown back the user. The evidence of a SQL exceptionerror might be a manifestation of a vulnerability that can beexploited.A more in-depth security test might require the tester’s knowledgeof specialized testing techniques and tools. Besides sourcecode analysis and penetration testing, these techniques include, forexample, source code and binary fault injection, fault propagationanalysis and code coverage, fuzz testing, and reverse engineering.The security testing guide should provide procedures and recommendtools that can be used by security testers to perform suchin-depth security assessments.The next level of security testing after integration system tests is toperform security tests in the user acceptance environment. Thereare unique advantages to performing security tests in the operationalenvironment. The user acceptance tests environment (UAT)is the one that is most representative of the release configuration,with the exception of the data (e.g., test data is used in place of realdata). A characteristic of security testing in UAT is testing for securityconfiguration issues. In some cases these vulnerabilities mightrepresent high risks. For example, the server that hosts the webapplication might not be configured with minimum privileges, validSSL certificate and secure configuration, essential services disabledand web root directory not cleaned from test and administrationweb pages.Security Test Data Analysis and ReportingGoals for Security Test Metrics and MeasurementsDefining the goals for the security testing metrics and measurementsis a prerequisite for using security testing data for risk analysisand management processes. For example, a measurementsuch as the total number of vulnerabilities found with security testsmight quantify the security posture of the application. These measurementsalso help to identify security objectives for software securitytesting.For example, reducing the number of vulnerabilities toan acceptable number (minimum) before the application is deployedinto production.Another manageable goal could be to compare the applicationsecurity posture against a baseline to assess improvements inapplication security processes. For example, the security metricsbaseline might consist of an application that was tested only withpenetration tests. The security data obtained from an applicationthat was also security tested during coding should show an improvement(e.g., fewer number of vulnerabilities) when comparedwith the baseline.In traditional software testing, the number of software defects,such as the bugs found in an application, could provide a measure ofsoftware quality. Similarly, security testing can provide a measureof software security. From the defect management and reportingperspective, software quality and security testing can use similarcategorizations for root causes and defect remediation efforts.From the root cause perspective, a security defect can be due to anerror in design (e.g., security flaws) or due to an error in coding (e.g.,security bug). From the perspective of the effort required to fix adefect, both security and quality defects can be measured in termsof developer hours to implement the fix, the tools and resourcesrequired to fix, and the cost to implement the fix.A characteristic of security test data, compared to quality data,is the categorization in terms of the threat, the exposure ofthe vulnerability, and the potential impact posed by the vulnerabilityto determine the risk. Testing applications for securityconsists of managing technical risks to make sure thatthe application countermeasures meet acceptable levels.For this reason, security testing data needs to support the securityrisk strategy at critical checkpoints during the SDLC.For example, vulnerabilities found in source code with source codeanalysis represent an initial measure of risk. A measure of risk(e.g., high, medium, low) for the vulnerability can be calculated bydetermining the exposure and likelihood factors and by validatingthe vulnerability with penetration tests. The risk metrics associatedto vulnerabilities found with security tests empower businessmanagement to make risk management decisions, such as to decidewhether risks can be accepted, mitigated, or transferred atdifferent levels within the organization (e.g., business as well astechnical risks).

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!