Software Testing - Security Testing
Security testing is about finding vulnerabilities in a system before attackers do — ensuring that data, applications, and infrastructure are protected against threats.
1. Purpose of Security Testing
-
Identify weaknesses that could be exploited.
-
Ensure compliance with security standards/regulations (e.g., ISO 27001, PCI DSS, GDPR).
-
Protect confidentiality, integrity, and availability of data and services.
2. Key Types of Security Testing
Type | Goal |
---|---|
Vulnerability Scanning | Automated scans to find known weaknesses (e.g., outdated software). |
Penetration Testing | Ethical hacking to exploit vulnerabilities like a real attacker. |
Security Audit | Manual/automated review of configurations, policies, and processes. |
Risk Assessment | Identifying and prioritizing potential security threats. |
Posture Assessment | Overall review of security readiness combining audits and assessments. |
Ethical Hacking | Simulating malicious attacks with permission to test defenses. |
Static Application Security Testing (SAST) | Code analysis without executing the program. |
Dynamic Application Security Testing (DAST) | Testing the running application for vulnerabilities. |
3. Common Security Testing Areas
-
Authentication — Ensuring only legitimate users can log in.
-
Authorization — Verifying users can only access what they’re allowed to.
-
Data Protection — Encryption, secure transmission, and safe storage.
-
Session Management — Preventing hijacking or fixation attacks.
-
Input Validation — Protecting against SQL injection, XSS, command injection.
-
Error Handling — Avoiding information leaks in error messages.
-
API Security — Protecting endpoints from abuse.
4. Typical Process
-
Define scope — What’s being tested (apps, networks, APIs, infrastructure)?
-
Gather information — Reconnaissance to understand the system.
-
Identify vulnerabilities — Use tools and manual checks.
-
Attempt exploitation — See if vulnerabilities can be used to gain access or cause harm.
-
Report findings — Document risks with proof of concept.
-
Remediate and retest — Fix issues and verify they’re resolved.
5. Common Tools
-
OWASP ZAP
-
Burp Suite
-
Nmap
-
Nessus
-
Metasploit
-
Nikto
-
OpenVAS
-
Kali Linux toolset