DACS3203 Secure Software Development
DACS3203 Secure Software Development
Part 1-2
Table of Contents
introduction .........................................................................................................................3
Heading 2.........................................................................................................................3
Heading 3.....................................................................................................................3
Threat Modeling:.................................................................................................................7
Figures.................................................................................................................................8
3
Introduction:
The fitness club membership system is designed to improve the management and operational
efficiency of a fitness club, offering a solution to track member’s subscription, schedule, trainer
assignment, and different functions related to fitness. The goal of this project is to make fitness
club managers' administrative tasks more efficient so that both employees and members have a
flawless experience. Our priority during this first stage of the project is determining the
requirements, starting with high-level functional requirements, developing use cases that
correspond with those requirements, identifying potential abuse cases, and putting security
measures in place to reduce these risks. The result will be a comprehensive requirements
specification document that will serve as a roadmap for the next stages of development and
establish the foundation for a safe and reliable fitness club membership system.
Id Function Description
1 User registration and - User should be able to register as a member
authentication - Authentication will ensure secure access to the system
2 Membership - The ability to add, update, and delete member
management information
- Track membership status and renewal dates
3 Class schedule - View and manage class schedules
- Members should be able to enroll in classes
4 Trainer assignments - Assign trainers to classes
- Track trainer availability and schedule
5 Gym facilities - Maintain a list of available facilities in the gym
- Track facility availability and usage
6 Workout progress - Members can log and track their workout progress
- Generate reports on members fitness progress
8 Equipment maintenance - Track equipment status, maintain schedule, and issues
- Send notifications for equipment maintenance
4
1 User registration New The system allows the new members to register,
member providing necessary details
2 User login Member, The members, trainers and admin can log into the
Trainer system.
3 Fitness class Member, Members can enroll in classes, in addition the
enrollment trainer trainers can view and manage enrollments
4 Track workout Member Members can view and track their workout
progress progress
5 Equipment Maintenanc Maintenance staff can log equipment issues,
maintenance e staff schedule maintenance, and mark completion
Abuse cases:
1 Input Validation and Validate and sanitize all user input before using it in SQL
Sanitization queries
Cards:
Use Case:
Name: User Registration
Created By/Author: Raghad-Nada
Actor: User
Description/Summary: Users who intend to join the fitness club should do the membership
registration and to gain access to the club services.
Preconditions: The fitness club registration system should be operational so users can
register.
Postconditions: The user membership and account with their detail and records should
be activated and saved, they also can access the club services and
facilities as members.
Normal course of events: User register and become member in fitness club.
Exceptions: 1- The user should not be under the age of 16.
2- Expired card is not accepted.
3- Existing email will not work, the system will not accept it due to
the email already used by another user.
Acceptance Criteria: The user information is stored on the server and the user can successfully
access the club facilities as member.
6
Abuse Case:
Name: Unauthorized access to the system
Created By/Author: Raghad-Nada
Priority: High
Scope: The club system
Mis-actors: By external threats such as hackers and competitors
Access Right Levels: Low Level System Users
Point of Entry: There could be vulnerability that the attacker could exploit to launch
an attack such as injections attacks or brute force also the attacker
can use phishing.
Security Attributes Affected: Confidentiality (privacy) and Integrity (accuracy) and Availability
(accessibility) of user data.
Description: An attacker attempts to gain an access to the system or the user
data by illegal ways and unauthorized access.
Sophistication: Depends on how the attacker accessed the system what attack did
the attacker use.
Preconditions: The club system is operational.
Assumptions: Assume that the system is secured properly and there are access
privileges.
Postconditions: The user gained unauthorized access to the system and now can
manipulate the data or cause data breaches.
Related Use Cases: User login and registration
Related Threats: Brute force attack – phishing – SQL injection.
Exceptions: N/A
Acceptance Criteria: The attacker can now view data in the database and steal them
(credit card information) or manipulate the data also can cause data
breaches.
Security Case:
Name: Validate and sanitize all user input before using it in SQL queries
Created By/Author: Raghad - Nada
Actor: Everyone who attempt to login.
Description/Summary: Reject input that doesn't conform to expected patterns (e.g.,
alphanumeric characters for names, numeric values for IDs).
Preconditions: User attempt to access the system.
Postconditions: Access is denied if the user enters malicious input.
Exceptions: None.
Acceptance Criteria: When user is authenticated successfully then the user can access
otherwise access is denied.
Part 2:
- External dependencies :
External dependencies
ID Description
1 For the application to store and manage member profiles, subscription
data, class schedules, trainer assignments, and other crucial data, a
dependable database management system is required. For effective data
storage and retrieval, popular database systems like MySQL,
PostgreSQL, or MongoDB can be used.
2 Using Apache as the web server, a Linux server will power the Fitness
Club Membership System. The server will be updated with operating
system and application patches on a regular basis, and security measures
that adhere to industry standards will be implemented.
13
3 A private network will be used to connect the web server and database
server in order to provide secure communication and improve data
privacy and integrity.
4 A firewall will protect the web server and allow connectivity only via
TLS (Transport Layer Security) for improved encryption and safe data
transfer. This method guarantees the privacy and security of all
interactions with the system
- Entry points:
Entry Points
- Assets:
Assets
15
members can access their data, trainers can view schedules, and
Data Isolation:
own information.
personnel.
2. Defense in Depth:
traffic.
Use a secure API gateway to manage and secure API endpoints, ensuring
3. Fail-Safe Defaults:
4. Data Encryption:
End-to-End Encryption:
unauthorized access.
Secure Communication:
Enforce the use of HTTPS for all communication between the app and the
5. Input Validation:
experience.
Threat Modeling:
1. Identify Assets:
Member Data:
System Functionality:
User-Generated Data:
2. Identify Threats:
Unauthorized Access:
management.
Data Tampering:
Financial Fraud:
Social Engineering:
3. Assess Vulnerabilities:
Authentication Vulnerabilities:
Authorization Weaknesses:
access controls.
4. Mitigation Strategies:
Biometric Authentication:
19
Keep the app and all dependencies up-to-date with the latest security
patches.
User Education:
Conduct regular security awareness sessions for users and staff to prevent
Penetration Testing:
Ongoing Monitoring:
threats.