security-testing-in-software-testing

Security Testing – Types and Example

security testing

What is security testing?

Security testing is a type of software testing that identifies vulnerabilities, threats, and risks in a software application and protects it from malicious intruder attacks. The purpose of Security Tests is to identify all potential loopholes and weaknesses in the software system that could result in a loss of information, revenue, or reputation at the hands of the organization’s employees or outsiders.

Why Is Necessary?

The primary goal of security testing is to identify threats in the system and measure its potential vulnerabilities so that threats can be encountered. In contrast, the system remains operational and cannot be exploited. It also assists in detecting all possible security risks in the system and assisting developers in resolving issues through coding.

Security Testing Types

According to the Open Source Security Testing methodology manual, there are seven major types of security testing. They are explained below:

  • Vulnerability Scanning: This is done by scanning a system against known vulnerability signatures using automated software.
  • Security scanning entails identifying network and system flaws and providing solutions to mitigate these risks. This scanning can be done both manually and automatically.
  • Penetration testing: This type of testing simulates a malicious hacker’s attack. This testing entails analyzing a specific system for potential vulnerabilities to an external hacking attempt.
  • Risk Assessment: This testing examines the organization’s security risks. There are three levels of risk: low, medium, and high. This testing suggests risk-reduction controls and measures.
  • Security auditing is an internal check for security flaws in applications and operating systems. An audit can also be performed by inspecting the code line by line.
  • Ethical hacking is the practice of breaking into an organization’s software systems. Unlike malicious hackers who steal for personal gain, the goal is to expose system security flaws.
  • Posture Assessment: This combines security scanning, ethical hacking, and risk assessments to show an organization’s overall security posture.

How to Carry Out Security Testing

It is always agreed that the cost will be higher if security test is delayed after the software implementation phase or after deployment. As a result, security testing must be included early in the SDLC life cycle.

Let’s look at the security processes used for each phase of the SDLC.

SDLC Phases Security Processes
Requirements Security analysis for requirements and check abuse/misuse cases
Design Security risks analysis for designing. Development of Test Plan including security tests
Coding and Unit Testing Static and Dynamic Testing and Security White Box Testing
Integration Testing Black Box Testing
System Testing Black Box Testing and Vulnerability scanning
Implementation Penetration Testing, Vulnerability Scanning
Support Impact analysis of Patches

Read more: Different Types of Software Testing 

The test strategy should include:

  • Security-related test cases or scenarios
  • Test Data related to security testing
  • Test Tools required for security testing
  • Analysis of various tests outputs from different security tools

Example Test Scenarios for Security Testing

Sample test scenarios to provide an overview of security test cases –

  • A password should be stored in an encrypted format.
  • The application or system should not permit invalid users.
  • Check the application’s cookies and session time.
  • The browser back button should not work on financial websites.

Security Testing Methodologies, Approaches, and Techniques

Different methodologies are used in security testing, and they are as follows:

  • Tiger Box: This hacking is typically performed on a laptop that contains a collection of operating systems and hacking tools. This testing assists penetration and security testers in assessing vulnerabilities and conducting attacks.
  • Black Box: The tester is authorized to test the network topology and technology in its entirety.
  • Grey Box: A hybrid of the white and black box models, it provides the tester with partial information about the system.

Roles in Security Testing

  • Hackers – Access computer system or network without authorization
  • Crackers – Break into the systems to steal or destroy data
  • Ethical hacker – Performs most breaking activities with the owner’s permission.
  • Script Kiddies or packet monkeys are inexperienced hackers who know how to program.

Security Testing Tools

  1. Acunetix 

Acunetix by Invicti is an intuitive and simple-to-use solution that helps small and medium-sized businesses protect their web applications from costly data breaches. It accomplishes this by detecting a wide range of web security issues and assisting security and development professionals in quickly resolving them.

Features:

  • Advanced scanning for over 7,000 web vulnerabilities, including OWASP Top 10 vulnerabilities like SQLi and XSS.
  • Web asset discovery that is automated for identifying abandoned or forgotten websites
  • A sophisticated crawler for the most complex web applications, including multi-form and password-protected areas.
  • Combining interactive and dynamic application security testing to find flaws that other tools miss.
  • For many different types of vulnerabilities, proof of exploit is provided.
  • Integrations with popular issue tracking and CI/CD tools enable DevOps automation.
  • Reporting on compliance with regulatory standards such as PCI DSS, NIST, HIPAA, ISO 27001, and others.

2. Intruder

Intruder is a robust, automated penetration testing tool that identifies security flaws throughout your IT environment. Intruder protects businesses of all sizes from hackers by providing industry-leading security checks, continuous monitoring, and an easy-to-use platform.

Features:

  • With over 10,000 security checks, we provide best-in-class threat coverage.
  • Checks for configuration flaws, missing patches, application flaws (such as SQL injection and cross-site scripting), and other issues.
  • Scan results are automatically analyzed and prioritized.
  • Simple to use interface, easy to set up and run your first scans
  • Proactive security monitoring for the most recent flaws
  • AWS, Azure, and Google Cloud connectors
  • Integration of APIs into your CI/CD pipeline

3. Owasp

The Open Web Application Security Project (OWASP) is a global non-profit organization dedicated to improving software security. The project includes many tools for pen testing various software environments and protocols. The project’s flagship tools include:

  1. Zed Attack Proxy (ZAP – an integrated penetration testing tool)
  2. OWASP Dependency Check (it scans for project dependencies and checks against know vulnerabilities)
  3. OWASP Web Testing Environment Project (collection of security tools and documentation)

4. WireShark

Wireshark, formerly known as Ethereal, is a network analysis tool. It captures real-time packets and displays them in a human-readable format. It is a network packet analyzer- which provides minute details about your network protocols, decryption, packet information, etc. It is open source and can be run on Linux, Windows, OS X, Solaris, NetBSD, FreeBSD, and various other platforms. The data retrieved by this tool can be viewed using a GUI or the TTY mode TShark Utility.

  1. W3af

W3af is a framework for web application attacks and auditing. It has three plugins: discovery, audit, and attack, which communicate with each other to detect any vulnerabilities in the site. For example, a discovery plugin in w3af searches for different URLs to test for vulnerabilities and forwards them to the audit plugin, which then searches for vulnerabilities using these URLs.

Myths and Facts:

Let’s take a look at some myths and facts about security testing:

Myth #1: Because we have a small business, we don’t need a security policy.

Fact: Every business requires a security policy.

Myth #2: Security testing has no return on investment.

Fact: Security testing can identify areas for improvement that will increase efficiency and decrease downtime, allowing maximum throughput.

Myth #3: Unplugging it is the only way to secure it.

Fact: Finding “Perfect Security” is the only and best way to secure an organization. Performing a posture assessment and comparing it to business, legal, and industry justifications means perfect security.

Myth #4: The Internet is dangerous. I’ll buy software or hardware to protect the system and save the company.

Fact: One of the most difficult issues is acquiring security software and hardware. Instead, the organization should first understand security before implementing it.

Conclusion:

The most important application testing is security, which determines whether confidential data remains confidential. In this type of testing, the tester assumes the role of an attacker and navigates the system in search of security flaws. Security testing is critical in software engineering to protect data in any way possible.