CHAPTER THREE
SYSTEM DESIGN AND METHODOLOGY/RESEARCH METHODOLOGY
3.1 RESEARCH APPROACH
For this research on designing and implementing a Vulnerability Assessment System (VAS)
using Python, a Mixed Methods Approach will be used. This combines both quantitative and
qualitative methods to ensure a comprehensive evaluation of vulnerabilities and the effectiveness
of the system.
Quantitative Research Methods
Quantitative methods are frequently employed to analyze numerical data, measure vulnerability
risks, and assess system performance. These methods often involve automated tools,
frameworks, and experimental setups to gather and evaluate data.
This method is efficient and allows Automated tools can quickly scan and identify vulnerabilities
in extensive systems. Results are standardized using metrics, ensuring consistency and
comparability across different systems. Quantitative methods allow researchers to replicate
results under similar conditions for validation.
Qualitative Research Methods
Qualitative methods focus on understanding the context, system-specific challenges, and human
factors influencing vulnerabilities. These methods involve interviews, case studies, and expert
evaluations.
This method allows Contextual Relevance Which Provides insights into unique threats and
organizational priorities that automated methods might overlook. Also provides Flexibility,
Adaptable to diverse environments, technologies, and threat landscapes.
3.3 Research Design
Given the objectives of this research, the Descriptive and Exploratory Research Design will be
applied:
Descriptive Approach:
Focuses on identifying existing security vulnerabilities in a software system. Documents findings
with detailed reports on detected vulnerabilities. Analyzes trends in detected vulnerabilities (e.g.,
most common types).
Exploratory Approach:
Investigates novel techniques for improving vulnerability detection accuracy. Explores the
effectiveness of using Python libraries such as OpenVAS, PyNmap, and Scapy for scanning.
Tests the integration of machine learning models for advanced classification.
This research design aligns with the goal of understanding the efficiency of automated
vulnerability assessment tools and exploring potential enhancements.
3.4 Software Development Methodology
The Agile Software Development Methodology will be used for the development of the
Vulnerability Assessment System. Agile is chosen because:
It allows for iterative development, where new features can be added and tested quickly. It
supports continuous feedback from cybersecurity experts and testers. It enables flexibility to
adjust the system based on emerging security threats.
Adapting Agile to the Project:
1. Sprint Planning: Define the key functionalities (e.g., scanning modules, reporting features).
2. Development in Iterations: Each sprint will focus on adding and testing specific modules, such
as network scanning, and web vulnerability detection.
3. Testing & Evaluation: Each feature will be tested using real-world datasets and industry-
standard security benchmarks.
4. Feedback & Improvement: Security experts will review the findings and suggest
improvements for the next iteration.
5. Final Deployment: After several iterations, a stable version will be released and evaluated
against existing security tools.
This Agile approach ensures that the VAS is continuously improved to provide better security
assessments with minimal errors.
3.5 System Modeling
System modeling is the process of developing abstract representations of a system, focusing on
its structure, behavior, and functionality. These representations serve as tools to aid in the
analysis, design, and overall understanding of the system being developed or studied. A
commonly used standard for this purpose is UML (Unified Modeling Language), which provides
a comprehensive framework for specifying, visualizing, constructing, and documenting the
various components and artifacts of a software-intensive system.
3.5.1 USE CASE DIAGRAM
Figure 3.1 Use Case Diagram.
A Use Case Diagram helps visualize the system's interaction with users and how it performs
specific tasks.
Actor
1. User (e.g., Security Analyst):
i. Initiates system scans for vulnerabilities.
ii. Views scan results and risk assessments.
iii. Generates detailed vulnerability reports.
iv. Saves and retrieves past scan reports.
2. System (Python-based Vulnerability Scanner):
Performs security scans using tools like nmap, Scapy, and API services (Shodan, Have I Been
Pwned). Analyzes collected data to detect open ports, firewall status, outdated OS versions, and
misconfigurations. Generates vulnerability reports and allows users to save them for future
reference.
Use Cases
i. Initiate Scan: The user starts a security scan on a specific IP or network.
ii. Perform Port Scanning: The system uses nmap to check open ports and running services.
iii. Check Firewall Status: The system determines if a firewall is active.
iv. Analyze OS Security: The system checks for outdated software or missing security patches.
v. Generate Reports: The system compiles scan results into readable CSV or PDF reports.
vi. Retrieve Reports: Users can access past vulnerability reports from storage.
3.5.2 ACTIVITY DIAGRAM
USER
I Start Vulnerability Scan.
N
P Check Open Ports.
U Analysis Results. P
T R
Check Active and
O
Inactive Firewalls.
C
P E
Check for the
H S
Operating System.
A
Generate Reports. S
S I
E N
Checking for Weak
G
Password and others.
Save Report.
Figure 3.2 Activity Diagram
An Activity Diagram illustrates the step-by-step workflow of the system.
Workflow Breakdown
Input Phase: The user enters scan details such as IP address range, open ports to check, and
specific vulnerabilities to look for. The user selects scanning options like firewall status,
outdated software, or misconfigurations.
Processing Phase:
The system executes various scanning techniques which is Network Scanning, using nmap to
detect active hosts, open ports, and services. Firewall Detection, checking if UFW (Linux) or
Windows Firewall is active. Operating System Security Check, verifying if the operating system
is outdated. System Misconfigurations, Detecting insecure configurations, such as weak
passwords or unpatched software.
The system fetches known vulnerabilities from the NVD (National Vulnerability Database) API
based on detected ports/services. The results are analyzed and stored in the Vulnerabilities Table
for reporting.
3.5.3 SEQUENCE DIAGRAM
Figure 3.3 Sequence Diagram
The image represents a structured approach to vulnerability assessment, specifically for security
systems, and can be adapted to the design and implementation of a Vulnerability Assessment
System (VAS). Here’s a breakdown of its key elements and how they relate to my project:
1. Planning
This is the initial stage where objectives, scope, and methodologies for vulnerability assessment
are defined. In your system, this phase would involve setting up configurations, selecting
scanning tools (OpenVAS, Nmap, Scapy), and defining test parameters.
2. Facility Characterization & Target Prioritization
Identifying critical assets, systems, or networks that need to be assessed. The VAS should allow
users to specify targets for scanning (e.g., IP ranges, domains, OS types) and prioritize them
based on risk levels.
3. Threat Assessment
Evaluating potential threats that could exploit vulnerabilities. The system can use threat
intelligence from Shodan API, Have I Been Pwned API, and port scanning (Nmap) to gather
insights on potential threats.
4. PPS (Physical Protection System) Characterization
This can be mapped to system security configuration analysis in your VAS. This tool should
assess firewall status (UFW/Windows Firewall), OS versions, and misconfigurations
5. System Effectiveness Analysis
This evaluates whether security measures are sufficient. The system should analyze scan results
and provide risk ratings.
6. System Effectiveness Decision
If security is sufficient, a Vulnerability Assessment Report (VA Report) is generated. If
vulnerabilities exist, the system moves to identify and recommend solutions
7. Identify Vulnerabilities & Propose Upgrades
Your VAS should highlight vulnerabilities found (e.g., open ports, weak passwords, outdated
software) and suggest mitigation steps. Integrating ReportLab for PDF/CSV reports can be
useful here.