Incorporate Python into our Systems Security course s24 Lab 2 Systems Security

Learning Outcome:

Teaching students Python for hands-on visualization of network operations particularly as they are relate to securing the IT system.

On Day 1, we identified that there are 4 ways to attack a computer IT infrastructure:
Attacks against the Technology
Attacks against People (Social Engineering)

What are the Vectors of Attack against a Computer System?
Attacks against the Operating System.
Attacks against the Application Software.
Attacks against the Hardware.
Attacks against the Data / File System.

Python's simplicity and versatility make it an ideal language for learning and implementing network security concepts.
Here are a few ways we will incorporate Python into our Systems Security course:

Benefits of Using Python

Ease of Learning and Use: Python’s syntax is straightforward, which allows students to focus on learning network security concepts rather than struggling with the complexities of a programming language.
Rich Libraries: Python has extensive libraries and frameworks, such as scapy for packet manipulation, paramiko for SSH connections, and socket for network programming, which are invaluable for network security tasks.
Community Support: Python has a vast and active community, which means abundant resources, tutorials, and forums are available for students to learn and troubleshoot.
Industry Relevance:
Python has many uses in Commercial IT which include:
Data analysis
Security scripting,
Making it a relevant skill for students entering the job market.

Integrating Python into the Course Modules

Module 1: Securing Networks
Activity: Introduce Python scripts to monitor network security status.
Tool: Use psutil to gather system information and monitor network connections.
Module 2: Network Threats
Activity: Create Python scripts to simulate different types of attacks and analyze network traffic.
Tool: Use scapy to craft and send packets to demonstrate common network attacks.
Module 3: Mitigating Threats
Activity: Develop Python scripts to implement mitigation techniques and automate threat detection.
Tool: Implement basic firewall rules using Python and iptables bindings.
Module 4: Secure Device Access
Activity: Write Python scripts to automate the configuration of secure access protocols like SSH.
Tool: Use paramiko to configure SSH on network devices.
Module 5: Assigning Administrative Roles
Activity: Create Python scripts to manage and assign administrative roles on network devices.
Tool: Use Python to interact with network device APIs.
Module 6: Device Monitoring and Management
Activity: Use Python to set up SNMP for device monitoring.
Tool: Utilize the pysnmp library for network management.
Module 7: Authentication, Authorization, and Accounting (AAA)
Activity: Develop Python scripts to manage and configure AAA on Cisco devices.
Tool: Use Python and netmiko to automate AAA configurations.
Module 8: Access Control Lists
Activity: Write Python scripts to create and apply ACLs.
Tool: Use netmiko or pyIOSXR to interact with network devices.
Module 9: Firewall Technologies
Activity: Create a Python-based firewall using iptables bindings.
Tool: Implement and test firewall rules using Python scripts.
Module 10: Zone-Based Policy Firewalls
Activity: Develop scripts to configure and manage ZPFs.
Tool: Use Python to automate firewall policy configurations.
Module 11: IPS Technologies
Activity: Use Python to analyze traffic and detect intrusions.
Tool: Integrate Python with tools like Snort for intrusion detection.
Module 12: IPS Operation and Implementation
Activity: Create and test custom IPS signatures using Python.
Tool: Use Python to simulate and detect network intrusions.
Module 13: Endpoint Security
Activity: Develop scripts to enhance endpoint security.
Tool: Use Python to automate endpoint security configurations.
Module 14: Layer 2 Security Considerations
Activity: Write scripts to secure Layer 2 networks.
Tool: Implement port security, DHCP snooping, and ARP inspection using Python.
Module 15: Cryptographic Services
Activity: Implement basic cryptographic functions using Python.
Tool: Use libraries like pycryptodome for encryption and hashing.
Module 16: Basic Integrity and Authenticity
Activity: Develop scripts to verify data integrity and authenticity.
Tool: Use Python to create and verify digital signatures.
Module 17: Public Key Cryptography
Activity: Implement PKI concepts in Python.
Tool: Use cryptography library to manage keys and certificates.
Module 18: VPNs
Activity: Create and configure VPNs using Python scripts.
Tool: Use paramiko and other libraries to automate VPN setups.
Module 19: Implement Site-to-Site IPsec VPNs
Activity: Develop Python scripts to configure and manage site-to-site VPNs.
Tool: Use Python for automated VPN configurations.
Module 20: Introduction to the ASA
Activity: Write scripts to interact with ASA devices.
Tool: Use netmiko to automate ASA configurations.
Module 21: ASA Firewall Configuration
Activity: Automate ASA firewall setups using Python.
Tool: Utilize Python for managing ASA firewall policies.
Module 22: Network Security Testing
Activity: Develop scripts for automated security testing.
Tool: Use Python to run security tests and generate reports.

Practical Assignments and Labs

Lab Work: Each module can include lab exercises where students write Python scripts to perform specific tasks related to the module's topic.
Projects: Capstone projects can involve building comprehensive security solutions using Python, covering multiple aspects of network security.


Assessment: Include Python-based assignments and tests to evaluate students' understanding and practical skills.
Participation: Encourage students to share their Python scripts and solutions, fostering a collaborative learning environment.
Incorporating Python into the course will not only make learning more engaging but also equip students with valuable skills that are highly sought after in the network security industry​​​​.

Here is the instruction sheet for your s24 May 27 Lab 2:

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.