# data[].attributes.body
Group 3:

Emmanuel Frimpong Asante: 1693209318

Daniel Adjei: 1704814068

Antoine Dzisam: 1704477447

Kelvin Markus Oppong: 1708435174

Fortunate:

Bonthaly Tituari: 1699272955

Question 1:

1. SQL Injection

1. Sanitization of forms

2. proper validation of forms

3. Filtering input characters to escape SQL special characters

2. Data breaches

1. encryption

2. Access Controls

3. Theft & Fraud eg phishing

1. audit logging,

2. authentication (2-factor)

4. Denial of Service

1. limit requests eg. 100 requests within a certain time frame

2. Network-level protection

3. backup systems and load-balancing

Question 2

1. User accounts & Access control - giving access - authentication

1. strong password policy

2. implementing login & sign ups

2. Audits

1. keeping log of user account activities eg password changes and activity

3. 2-factor authentication

4. Implement Views for access control

Question 3

1. Encryption key rotation

1. regularly changing them to minimize compromise

2. Network-level security

1. For database in transit - using SSL, TLS, SSH, VPN

3. Keys should be separate from data in transit to prevent compromise from man-in-middle attacks.

4. Monitoring and Auditing of network and database for compromise of encryption or attempts at hacking encryption.

Question 4

1. Automated backups by scripting or turning on administrative backup controls.

2. Writing and Implementing policies for backups and disaster recovery

3. User training on regular backups and Disaster recovery steps

4. Introduction of distributed cloud backup strategy. Synchronization of databases across the cloud.

# data[].attributes.body
Room 1

Group Members

Emmanuel Akpakli - 1707923484

Richard Adobau - 1704982027

Kwesi Brew Ammuako-Annan - 1702039244

Wonder Kwaku Susuassey - 1703248512

Kwaku Mathias - 1704815508

Kwabena Aboagye Dougan - 1708882463

Question 1: What are the most common security threats to a DBMS, and how can they be mitigated?

1. SQL Injection

What it is: This is when attackers can inject malicious SQL queries into an application’s input fields, potentially gaining unauthorized access or compromising the database.

Solution: Implement input validation to ensure that only expected data types and formats are accepted.

2. Insider Threats

What it is: These the Malicious insiders or careless employees may compromise database security.

Solution: Monitor user activity and implement anomaly detection to identify unusual behavior. Also regularly update and enforce security policies, including employee background checks.

3. User Access Control

What it is: This is when unauthorized users may gain access to the DBMS, leading to data theft, manipulation, or destruction.

Solution: Use role-based access control (RBAC) to ensure that users have only the permissions necessary for their roles.

4. Denial of Service Attack (DOS)

What it is: This is when attackers flood the DBMS with excessive requests, causing it to become unavailable.

Solution: Implement a control to limit the number of requests from a single source.

5. Backup Exposure Threat

What it is: Backups can be a target for attackers if not properly secured, leading to potential data breaches.

Solution: Encrypt backups files and store them in secure locations with limited access to the storage locations.

6. Outdated DBMS

What it is: Malicious users are most likely to attack DB systems that are not regularly updated or patched.

Solution: Regularly update and patch the DBMS to protect against known vulnerabilities.

7. Poor Physical Security

What it is: This can pose a significant threat to a DBMS, if unauthorized individuals gain physical access to the database servers or workstations.

Solution: Use key cards, biometric systems or security guards to enforce limited access to database servers

Question 2: How do you implement user authentication and authorization in a DBMS to ensure data security?

User Authentication

1. Using email address and strong passwords.

2. Using multi-factor authentication that adds an extra layer of security to user authentication. This significantly reduces the risk of unauthorized access.

User Authorization

1. Implement role-Based Access Control (RBAC) that assigns permissions to user roles rather than individual users. Users should be assigned roles based on their job functions.

2. Using Database View to restrict access to specific columns or rows within a table, allowing users to see only the data relevant to them.

Question 3: What best practices should be followed for database encryption, both at rest and in transit?

Best practices for Database Encryption at Rest

1. Implement data masking techniques to hide sensitive data in non-production environments.

2. Using strong, industry-standard encryption algorithms like AES-256 for encrypting data. Especially all sensitive data, including personal information, financial data, and passwords.

Best practices for Database Encryption in Transit

1. Using HTTPS with Transport Layer Security (TLS) or Secure Sockets Layer (SSL) to encrypt all communications between clients and the database server.

2. Using valid and trusted SSL/TLS certificates to establish secure connections.

Question 4: How do you set up regular backups and disaster recovery plans to ensure the integrity and availability of the database?

This can be done by first establishing a clear database backup and disaster recovery strategy.

Use database management tools or scripts to automate the backup process, reducing the risk of human error and ensuring consistency.

Encrypt backup files to protect sensitive data from unauthorized access, especially for offsite storage. Usually, it is best to store backups both onsite for quick recovery and offsite (e.g., using cloud storage like AWS EFS) to protect against physical disasters like fire or theft.

Periodically restore data from backups to verify that the backup process is working correctly, and the data is intact.

# data[].attributes.body
ROOM 2

Bernice Quartey-Papafio: 1706099628

Aloysius Akagre: 1701859604

Maxwell Adapoe: 1704825087

Jethro Kpormorne Akorley: 1706556011

Godson Dei: 1704825847

Richmond Larbi Adu: 1704291292

Question: What are the most common security threats to a DBMS, and how can they be mitigated?

1. SQL Injections

Using prepared statements when developing services. Restricting privileges and access to user profiles used in services.

2. Weak credentials / sever misconfigurations: Common/ default passwords should not be used when configuring or setting up database services. Also, you can set up multifactor authentication

3. DoS/ DDoS attacks: Blocking malicious IP addresses, implementing a load balancer, disabling access to unused ports, protocols, and applications.

4. Insider threats: Employee training, access control, i.e: restriction of privileges. Enforcing strict authentication and authorization policies

5. Virus & Malware: Backing up data and testing restore procedures. Firewalls and network security policies should also be put in place. Avoid opening suspicious files from untrustworthy sources, especially on database production servers.

How do you implement user authentication and authorization in a DBMS to ensure data security?

1. Username and Password: Users must have a username and password, which must be stores securely and encrypted.

2. Multi-Factor Authentication (MFA) and Token-Based Authentication: Enhance security by requiring additional verification methods, such as a code sent to a user’s phone or email. Implement tokens that are issued upon successful login and used for subsequent requests When connecting to the database server.

3. Role-Based Access Control : Assign roles to users and define permissions for each role.

What best practices should be followed for database encryption, both at rest and in transit?

1. Disk encryption: Ensuring that disks on which databases are stored are fully and well encrypted.

2. Sensitive Data such as passwords should be encrypted and not kept in plain text format.

3. Use firewalls (Network Security measures) and setup other access control methods to restrict access to encrypted data on databases.

4. Use strong encryption algorithms: Employ robust encryption algorithms like AES-256 to encrypt data stored in the database.

5. Backup Encryption: Encrypt database backups to protect data in case of unauthorized access or theft.

How do you set up regular backups and disaster recovery plans to ensure the integrity and availability of the database?

1. Store backup in separate locations to avoid physical damage and theft. Replications should also be done across multiple sites/ locations

2. Have a backup schedule. Set a data/ time for which you back up your database

3. Use automated backup tools like window's scheduler/ Cron jobs to ensure backups are performed regularly

4. Test your backups/ disaster recovery measures to be sure they work.

# data[].attributes.body
Interesting.