Zaproxy for QA Engineers — Part I
According to ISO 25010, security is one of the 8 product quality characteristics that we should look at when it comes to software quality, in addition to functional, suitability, reliability, performance, efficiency, usability, compatibility, maintainability and portability .
Security refers to how well a software protects information and data from security vulnerabilities. Security is a crucial aspect of software quality, and it encompasses various dimensions such as confidentiality, integrity, availability, and non-repudiation. By addressing security requirements and implementing appropriate security controls, software products and systems can mitigate risks and safeguard sensitive data.
We can use Zaproxy to identify some security vulnerabilities in our software or system. ZAP (Zed Attack Proxy) is an open-source web application security testing tool that is widely used by QA engineers and security professionals. It is developed by the Open Web Application Security Project (OWASP) and provides a range of features to help identify and mitigate security vulnerabilities in web applications.
The tool can be used to scan and test web applications for common security vulnerabilities such as cross-site scripting (XSS), SQL injection, and broken authentication and session management. OWASP Zaproxy provides various features such as intercepting and modifying requests, spidering the website to find all available pages, and generating reports to help users understand the vulnerabilities that have been found.
Some of the key tests that can be performed using OWASP Zaproxy include:
Automated scanning: OWASP Zaproxy can be used to perform automated scans of web applications to identify common security vulnerabilities such as cross-site scripting (XSS), SQL injection, and broken authentication and session management.
Manual testing: OWASP Zaproxy also provides a range of features to support manual testing of web applications. This includes the ability to intercept and modify requests, analyze responses, and explore the application’s functionality.
Authentication testing: OWASP Zaproxy can be used to test the strength of authentication mechanisms, including password policies, session management, and multi-factor authentication.
Authorization testing: OWASP Zaproxy can also be used to test the application’s authorization mechanisms, including access controls and privilege escalation vulnerabilities.
API testing: OWASP Zaproxy can be used to test the security of web APIs, including RESTful and SOAP APIs, by sending requests and analyzing responses.
OWASP Zaproxy can be useful for QA engineers in the following ways:
Early Detection: OWASP ZAP helps identify security vulnerabilities early in the development process, allowing for prompt remediation before they become more challenging to fix.
Get Dirce Sambo’s stories in your inbox
Join Medium for free to get updates from this writer.
Comprehensive Testing: With a wide range of testing capabilities, OWASP ZAP enables QA engineers to assess different areas of the application for vulnerabilities, including authentication, authorization, input validation, and business logic.
Automation: Integration with test automation frameworks allows for automated security testing, saving time and increasing test coverage.
Reporting: OWASP ZAP generates detailed reports that provide an overview of detected vulnerabilities and their severity, aiding in prioritizing remediation efforts and communicating issues to development teams and management.
Integration with Development Tools: Integration with tools like Jenkins enables the automation of security testing within the development workflow, ensuring security is part of the continuous integration and delivery process.
How to use Zaproxy?
Zaproxy can be used through different methods, including using the graphical user interface (GUI) and running it in a Docker container.
The GUI approach involves using Zaproxy’s user interface to perform security testing. Once Zaproxy is installed, you can launch it and access its GUI interface. The GUI provides a visual representation of Zaproxy’s features and allows you to interact with the tool using menus, buttons, and forms as shown in image below.
Zaproxy can also be used through a Docker container, which provides a lightweight and portable environment for running applications. Using Zaproxy with Docker offers benefits such as easy setup, reproducibility, and isolation. Here’s a general outline of the steps involved in using Zaproxy with Docker:
Open a terminal and pull the Zaproxy Docker image using the following command:
docker pull owasp/zap2docker-stable
docker pull ghcr.io/zaproxy/zaproxy:stableRun the Zaproxy container using the pulled image by executing the following command:
docker run -v $(pwd):/zap/wrk/:rw -t owasp/zap2docker-stable zap.sh -daemon -host 0.0.0.0 -port 8080 -config api.disablekey=trueZaproxy will be running inside the Docker container. You can access it through the Zaproxy GUI by opening a web browser and visiting http://localhost:8080. From there, you can interact with Zaproxy just like using the GUI version.
Both the GUI and Docker approaches offer flexibility and convenience, so you can choose the method that best suits your needs and preferences.
Thanks for reading, in the next post we will have a small tutorial on how to perform an automated scan using Zaproxy and we will analyze the results together.







