+OPS.1.1.6 Software Tests and Approvals
---+OPS.1.1.6.G1. Software Testing with Production Data
---+OPS.1.1.6.G2. Insufficient Testing Procedures
---+OPS.1.1.6.G3. Insufficient Approval Procedures
---+OPS.1.1.6.G4. Inadequate Documentation of Tests and Test Results
---+OPS.1.1.6.G5. Inadequate Documentation of Approval Criteria
---+OPS.1.1.6.A1 Planning of Software Tests (B)
---+OPS.1.1.6.A2 Performing Functional Software Tests [Tester] (B)
---+OPS.1.1.6.A3 Assessing Test Results [Tester] (B)
---+OPS.1.1.6.A4 Software Approval [Process Owner] (B)
---+OPS.1.1.6.A5 Performing Software Tests for Non-Functional Requirements [Tester] (B)
---+OPS.1.1.6.A11 Using Anonymised or Pseudonymised Test Data [Data Protection Officer, Tester] (B)
---+OPS.1.1.6.A6 Orderly Instruction of Software Testers [Process Owner] (S)
---+OPS.1.1.6.A7 Selecting Software Testers [Human Resources Department, Process Owner] (S)
---+OPS.1.1.6.A10 Drawing Up an Acceptance Plan (S)
---+OPS.1.1.6.A12 Performing Regression Tests [Tester] (S)
---+OPS.1.1.6.A13 Separating the Test Environment from the Production Environment (S)
---+OPS.1.1.6.A15 Verification of Installation and Related Documentation [Tester] (S)
---+OPS.1.1.6.A14 Performing Penetration Tests [Tester] (H)
---+OPS.1.1.6.A16 Security Vetting of Testers (H)

OPS.1.1.6 Software Tests and Approvals

Introduction

The use of IT in organisations requires computerised data processing to be as error-free as possible, as the individual results can no longer be checked in most cases. Software of any kind must therefore be tested before it is put into operation. These tests must prove that software reliably provides the required functions and does not have any undesired side effects. When software is subsequently approved by the relevant organisational unit, basic permission is granted to use it in the respective organisation's production environment. At the same time, this organisational unit assumes responsibility for the IT process supported by the software.

Software can be tested at different stages of its lifecycle. For example, software tests can even become necessary during development, before approval for production operation, or within the scope of patch and change management. This applies to both custom and standardised software. Regression tests play a special role here because even if only minor aspects of software are changed, this can impact completely different characteristics and functions of the software. These effects are precisely what regression tests are designed to identify.

This module describes the testing and approval process for all types of software. The testing and approval process is characterised by the fact that it can be performed several times depending on the result.

Objective

This module is designed to ensure that software meets the technical and organisational requirements and the present protection needs of the entire organisation in question, or individual organisational units thereof. An essential aspect here involves systematically and methodically checking security-critical software for existing vulnerabilities.

Scoping and Modelling

OPS.1.1.6 Software Tests and Approvals must be applied once to the entire information domain under consideration.

Whilst module CON.8 Software Development refers to the software development process and the software tests it requires, this module describes the special requirements of test and approval management. In this context, test and approval management does not refer exclusively to software developed in-house or on behalf of a customer; it also includes the testing and approval of all the types of software described in APP.6 General Software, as well as all other software products covered by the APP Applications layer.

Software testing can also become part of patch or change management or software development. Corresponding requirements are specified in more detail in the modules OPS.1.1.3 Patch and Change Management and CON.8 Software Development.

Useful Resources

In ISO/IEC 27001:2013 (annex A.14, “System Acquisition, Development, and Maintenance”), the International Organization for Standardization (ISO) specifies requirements for secure system development (which also requires a test and approval process) and for test data. In addition, the ISO has published the standard ISO/IEC 29119-2:2013, “Software and Systems Engineering – Software Testing – Part 2: Test Processes”, which deals in detail with requirements for software testing.

The BSI has published the study “Durchführungskonzept für Penetrationstests” [Implementation Concept for Penetration Tests], which can be used as a basis for penetration tests, as well as the “BSI-Leitfäden zur Entwicklung sicherer Webanwendungen” [BSI Guidelines for the Development of Secure Web Applications], which also includes software tests.

In “The Standard of Good Practice for Information Security”, the Information Security Forum (ISF) lists aspects of testing and approval for all relevant requirements (areas).

The National Institute of Standards and Technology provides guidelines for software testing in NIST Publication 800-53, SA 11 ("Developer Security Testing and Evaluation").

The book The Art of Software Testing by Glenford J. Myers, Corey Sandler, and Tom Badgett can be consulted on the subject of software testing.

The Common Vulnerability Scoring System can be used as a scoring system to classify the severity of a vulnerability and thus present the results of software testing in terms of information security.

1. Oversigt

Titel Standard
OPS.1.1.6.A1 Planning of Software Tests (B)

Before software tests are carried out, corresponding framework conditions MUST be specified within an organisation in accordance with the protection needs, organisational units, technical options, and test environments at hand. Software MUST be tested on the basis of a software requirements catalogue. If there is also a requirements specification, it MUST be taken into account as well.

Test cases MUST be selected in such a way that they test all the software functions at hand in the most representative way possible. In addition, negative tests SHOULD be included to ensure software does not contain any unwanted functions.

The test environment MUST be selected to be as representative as possible of all the device models and operating system environments used in the organisation in question. Testing SHOULD also determine whether software is compatible with and functional on the operating systems used in their present configurations.

OPS.1.1.6.A2 Performing Functional Software Tests [Tester] (B)

Functional software tests MUST verify the proper and complete functioning of software. Functional software tests MUST be performed in a manner that will not impact production operations.

OPS.1.1.6.A3 Assessing Test Results [Tester] (B)

The results of software tests MUST be assessed. A gap analysis SHOULD be performed using the defined specifications. Such assessments MUST be documented.

OPS.1.1.6.A4 Software Approval [Process Owner] (B)

The technical organisational unit responsible MUST approve software as soon as it has passed corresponding tests. The approval MUST be documented by means of an approval confirmation.

The approving organisational unit MUST verify whether the software has been tested in accordance with the relevant requirements. The results of the software tests MUST match the previously specified expectations. It MUST also be verified that the legal and organisational requirements at hand have been met.

OPS.1.1.6.A5 Performing Software Tests for Non-Functional Requirements [Tester] (B)

Software tests MUST be performed to verify that all essential non-functional requirements are met. In particular, security-specific software tests MUST be performed if the application in question includes security-critical functions. The test cases carried out MUST be documented along with their results.

OPS.1.1.6.A11 Using Anonymised or Pseudonymised Test Data [Data Protection Officer, Tester] (B)

If production data containing sensitive information is used for software tests, it MUST be appropriately protected during the testing. If this data contains personal information, it must be anonymised at minimum. Personal test data SHOULD be completely anonymised if possible. If references to persons could be derived from the test data, the Data Protection Officer and (if applicable) the Employee Representatives MUST be consulted.

OPS.1.1.6.A6 Orderly Instruction of Software Testers [Process Owner] (S)

The Process Owner SHOULD inform software testers of the test types to be performed and the software areas to be tested. Furthermore, the software testers SHOULD be informed of the use cases and possible further requirements of the software.

OPS.1.1.6.A7 Selecting Software Testers [Human Resources Department, Process Owner] (S)

Particular criteria SHOULD be considered when selecting software testers. Software testers SHOULD have the required professional qualifications.

If custom software is to be reviewed at the source code level, the testers SHOULD have sufficient expertise in the programming language and development environment to be tested. The source code SHOULD NOT be reviewed exclusively by testers who were also involved in the creation of the source code.

OPS.1.1.6.A10 Drawing Up an Acceptance Plan (S)

An acceptance plan SHOULD document the test types to be performed, the test cases considered, and the expected results. Furthermore, the acceptance plan SHOULD include the corresponding approval criteria. A procedure SHOULD be defined for the possibility of approval being denied.

OPS.1.1.6.A12 Performing Regression Tests [Tester] (S)

Regression testing SHOULD be performed when software has been changed. It SHOULD check whether previously existing security mechanisms and settings have been unintentionally changed by the update. Regression tests SHOULD be performed in full and include extensions and auxiliary resources. If test cases are omitted, this SHOULD be justified and documented. The test cases carried out SHOULD be documented along with their results.

OPS.1.1.6.A13 Separating the Test Environment from the Production Environment (S)

Software SHOULD only be tested in a test environment intended for this purpose. The test environment SHOULD be operated separately from the production environment. The architectures and mechanisms used in the test environment SHOULD be documented. The documentation SHOULD also specify what is to be done with the test environment once the software tests are complete.

OPS.1.1.6.A15 Verification of Installation and Related Documentation [Tester] (S)

Software installations SHOULD be checked according to the rules for the installation and configuration of software (see module APP.6 General Software). If available, the installation and configuration documentation SHOULD also be checked.

OPS.1.1.6.A14 Performing Penetration Tests [Tester] (H)

Penetration tests SHOULD be performed on applications and/or IT systems with increased protection needs. A concept for penetration tests SHOULD be created. In addition to the deployed test methods, the concept for penetration tests SHOULD document corresponding success criteria.

Penetration tests SHOULD be performed in accordance with the framework conditions of the penetration test concept. The vulnerabilities detected during penetration tests SHOULD be classified and documented.

OPS.1.1.6.A16 Security Vetting of Testers (H)

If testers require access to particularly sensitive information, the organisation in question SHOULD obtain evidence of their integrity and reputation. When dealing with classified material, software testers SHOULD be subjected to security vetting in line with the German Security Screening Act (SÜG). The CISO SHOULD involve the organisation's Confidentiality Officer or Security Representative in this regard.

1.1 Referencer

1.2 Identificerede krav

1.3 Relaterede reguleringer

2. Identificerede krav

Krav
Kilde Krav

3. Relaterede reguleringer

Reguleringer
Kilde Regulering

Linkede sager