Question: Scenario: You are a cybersecurity analyst responsible for auditing user permissions and system vulnerabilities across multiple systems. Each system has a set of users with

Scenario:
You are a cybersecurity analyst responsible for auditing user permissions and system vulnerabilities across multiple systems. Each system has a set of users with different permission levels and varying numbers of vulnerabilities that must be monitored.
Requirements:
1. Define a list of tuples called systems. Each tuple should contain:
- System name (string)
- A dictionary with the following key-value pairs:
- 'users' (a list of tuples where each tuple contains a username and a permission level: 'admin', 'user', or 'guest').
- 'vulnerabilities' (a dictionary containing vulnerability categories as keys and the number of vulnerabilities as values).
Example:
systems =[('System1',{'users': [('alice', 'admin'),('bob', 'user')], 'vulnerabilities': {'critical': 2, 'low':
5}}),('System2',{'users': [('charlie', 'guest'),('dave', 'admin')], 'vulnerabilities': {'high': 3, 'medium': 2}})
2. Write a function audit_permissions(system) that:
- Takes a tuple system as a parameter.
- Checks if any users have 'admin' permissions.
- If no users have 'admin' access, print a warning: 'No admin access on [system_name]'.
- Return a dictionary with system names as keys and permission audit results as values.
3. Write a function check_vulnerabilities(system) that:
- Takes a tuple system as a parameter.
- If the number of critical vulnerabilities is greater than 3, print: 'Critical vulnerabilities detected on [system_name]. Immediate action required'.
- If the total number of vulnerabilities exceeds 10, print a security risk warning.
- Return a dictionary with system names and their vulnerability status ('secure','at risk', or 'critical').
4. Write a function generate_random_vulnerability_data(systems) that:
- Randomly assigns users and permissions as well as vulnerability counts for each system.
- To create a random number, you may use the random Python module. Import this module and
use its randint() function to generate a random number. As an example, the following code
generates a random number between 1 and 10:
random_number = random.randint(1,10)
5. Write a function get_security_summary(systems, permission_status, vulnerability_status) that:
- Outputs a summary report showing how many systems have 'secure' status, 'at risk' status, or 'critical' status based on vulnerability check.
- How many systems have no admin access.
6. Implement a main() function that:
- Calls generate_random_vulnerability_data() to initialize system data.
- Calls audit_permissions() and check_vulnerabilities() for each system.
- Calls get_security_summary() to display the overall security status.
Sample Run:
Initial system data:
[('System1',{'users': [('alice', 'admin'),('bob', 'user')], 'vulnerabilities': {'critical': 2, 'low': 5}}),
('System2',{'users': [('charlie', 'guest'),('dave', 'admin')], 'vulnerabilities': {'high': 3, 'medium': 2}})]
Generating random data for systems...
System1: Admin access found.
System2: No admin access on System2.
Critical vulnerabilities detected on System2. Immediate action required.
Summary:
1 system with admin access, 1 system without admin access.
1 secure system, 1 system at critical risk.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!