📖 Scenario: You are working as a security analyst for a company that manages industrial control systems. Your task is to create a list of common vulnerabilities found in SCADA (Supervisory Control and Data Acquisition) systems to help the team understand and prevent security risks.
🎯 Goal: Create a Python dictionary that lists common SCADA vulnerabilities with a short description for each. Then, filter the vulnerabilities to find those related to network security. Finally, display the filtered vulnerabilities.
📋 What You'll Learn
Create a dictionary named vulnerabilities with exact keys and descriptions
Create a variable named network_related to store filtered vulnerabilities
Use a dictionary comprehension to filter vulnerabilities containing the word 'network'
Print the network_related dictionary to show the filtered results
💡 Why This Matters
🌍 Real World
SCADA systems control critical infrastructure like power plants and factories. Knowing common vulnerabilities helps protect these systems from attacks.
💼 Career
Security analysts and DevOps engineers use this knowledge to secure industrial control systems and prevent costly downtime or damage.
Progress0 / 4 steps
1
Create the SCADA vulnerabilities dictionary
Create a dictionary called vulnerabilities with these exact entries: 'Weak Authentication' mapped to 'Poor password policies and lack of multi-factor authentication', 'Unencrypted Communication' mapped to 'Data transmitted without encryption over the network', 'Outdated Software' mapped to 'Use of unsupported or unpatched software versions', 'Insecure Network Architecture' mapped to 'Flat networks without segmentation', and 'Lack of Monitoring' mapped to 'No real-time detection of intrusions or anomalies'.
SCADA systems
Hint
Use curly braces {} to create a dictionary with the exact keys and values given.
2
Create a variable to hold network-related vulnerabilities
Create an empty dictionary called network_related to store vulnerabilities related to network security.
SCADA systems
Hint
Use network_related = {} to create an empty dictionary.
3
Filter vulnerabilities related to network security
Use a dictionary comprehension to fill network_related with entries from vulnerabilities where the description contains the word 'network'.
SCADA systems
Hint
Use {key: value for key, value in vulnerabilities.items() if 'network' in value} to filter.
4
Display the filtered network-related vulnerabilities
Write a print statement to display the network_related dictionary.
SCADA systems
Hint
Use print(network_related) to show the filtered dictionary.
Practice
(1/5)
1. Which of the following is a common vulnerability in SCADA systems?
easy
A. Using strong encryption
B. Weak or default passwords
C. Regular software updates
D. Network segmentation
Solution
Step 1: Understand common SCADA vulnerabilities
SCADA systems often have weak or default passwords that attackers can easily guess.
Step 2: Identify secure practices
Strong encryption, regular updates, and network segmentation are security measures, not vulnerabilities.
Final Answer:
Weak or default passwords -> Option B
Quick Check:
Common vulnerability = Weak passwords [OK]
Hint: Vulnerabilities are weaknesses, not protections [OK]
Common Mistakes:
Confusing security measures with vulnerabilities
Thinking encryption is a vulnerability
Assuming updates cause vulnerabilities
2. Which syntax correctly describes a security measure to protect SCADA systems?
easy
A. Use unencrypted communication channels
B. Share passwords among operators
C. Apply patches and updates regularly
D. Disable firewalls to improve speed
Solution
Step 1: Identify correct security syntax
Applying patches and updates regularly is a key security practice for SCADA systems.
Step 2: Evaluate other options
Unencrypted channels, disabling firewalls, and sharing passwords reduce security and are incorrect.
Final Answer:
Apply patches and updates regularly -> Option C
Quick Check:
Correct security syntax = Apply patches [OK]
Hint: Updates fix vulnerabilities; always keep systems patched [OK]
Common Mistakes:
Choosing options that weaken security
Ignoring importance of updates
Confusing speed with security
3. What is the likely result if a SCADA system uses unencrypted network communication?
medium
A. Network devices will block all traffic
B. System performance will improve significantly
C. Passwords will be automatically changed
D. Data can be intercepted and altered by attackers
Solution
Step 1: Understand unencrypted communication risks
Without encryption, data sent over the network can be intercepted and modified by attackers.
Step 2: Analyze other options
Performance improvement, automatic password changes, or blocking traffic are unrelated to unencrypted communication.
Final Answer:
Data can be intercepted and altered by attackers -> Option D
Quick Check:
Unencrypted data = interception risk [OK]
Hint: No encryption means data is open to attackers [OK]