Attack Surface Validation (Security Testing) Flashcards
Security Testing goal
Security testing is conducted to attest to the presence and effectiveness of the security controls that are designed and implemented in the software.
Security testing can address two of the three aspects
of crime
It can do little about the motive of an attacker, but the opportunities and means by which an attacker can exploit the software can be determined by security testing.
Security testing purpose
Security testing is testing with an attacker perspective to validate the ability of the software to withstand attack (resiliency);
Testing security functionality
Testing security functionality (authentication mechanisms, auditing capabilities, error handling, etc.) in software is meant to assure that the functionality of protection mechanisms are working properly.
Security testing can validate controls such as
Fail secure mechanisms, proper error and exception handling, etc. and working properly to resume its functional operations as per the customer’s MTD and RTO.
White Box Testing
A security testing methodology that is performed based on the knowledge of how the software is designed and implemented.
White Box Testing can be performed
At any time post development of code, although it is best advised to do so while conducting unit tests.
Inputs to the white box testing method include
Architectural and design documents, source code, configuration information and files, use and misuse
cases, test data, test environments and security specifications.
The output of a white box test includes
Defects (or incidents), flaws and deviations from design specifications, change requests and recommendations to address security issues.
Black Box Testing
Black box testing is behavioral analysis of the software’s security. Black box testing is the opposite
of that. It is broadly known as zero knowledge assessment, because the tester has very limited to no knowledge of the internal working of the software being tested.
The software is essentially viewed as a “black box” that is tested for
Its resiliency by determining how it responds (outputs) to the tester’s input.
Black box testing can be performed
Before deployment (pre-deployment) or periodically once it is deployed (post-deployment).
Black box objective when performed in pre-deployment stage
To identify and address security vulnerabilities proactively, so that the risk of the software getting hacked is minimized.
Black box objective when performed in post-deployment stage
To find out vulnerabilities that exist in the deployed production (or actual runtime environment); to attest the presence and effectiveness of the software security controls and protection mechanisms.
Black box testing is performed using different tools.
Fuzzing; scanning; penetration testing.
Benefit of black box testing
Attest the exploitability of weaknesses in both simulated and actual production systems; there is no
need for source code and the test can be conducted both before (pre) and after (post) deployment;
The limitation of black box testing is that
The exact cause of vulnerability may not be easily detectable and the test coverage itself can be limited to the scope of the assessment.
Different criteria that can be used to determine the type of approach to take when validating software security are
Root Cause Identification, Extent of Code Coverage, Number of False Positives and False Negatives, Logical Flaws Detection, Deployment Issues Determination.
Cryptographic validation testing includes the following attestation
Standards Conformance; Environment Validation; Data Validation; Cryptographic Implementation.
FIPS 140-2
It specifies the security requirements that will be satisfied by a cryptographic module, providing four increasing, qualitative levels intended to cover a wide range of potential applications and environments.
Network scans are performed with the goal of
Mapping out the computing ecosystem. It helps
determine the devices, fingerprint operating system, identify active services (daemons), determine open/closed ports, find used protocols and interfaces,
detect webserver versions, etc. that make up the environment in which the software will run.
Active OS fingerprinting
Active OS fingerprinting involves the sending of crafted, abnormal packets to the remote host and analyzing the responses from the remote host (e.g. NMAP tool).
Passive OS fingerprinting
Passive OS fingerprinting does not contact the remote host. It captures traffic originating from a host on the network and analyzes the packets (e.g. Siphon and P0f tools).
Banner grabbing can be used for legitimate purposes but …
Banner grabbing can be used for legitimate purposes such as for inventorying the systems and services on the network, but an attacker can use banner grabbing to identify network hosts that have vulnerable services running on them.