Everything and Nothing

Teaching: ITP 270: Programming for Cybersecurity

Sample lecture schedule: here

Course Description

This course covers fundamental programming, including object oriented, GUI, and data structures, using Python 3. The course then applies fundamental Python 3 skills to cybersecurity concepts, such as: encoding vs. encryption, encryption concepts, cryptanalysis, attack/defense tools, and legal concepts that apply to computer security and programming. Emphasizes program construction, algorithm development, coding, and debugging.

Lecture 4 hours per week.

Course Objectives

  • Demonstrate ability to design and implement solutions to problems in a variety of security areas.
  • Demonstrate use and implementation of commonly used algorithms and data structures and select the appropriate cipher to solve problems.
  • Demonstrate ability to code fluently in an object-oriented paradigm using a high-level programming language and associated classes.
  • Demonstrate the ability to read and understand a large program consisting of several classes and interacting objects and make modifications and additions to that program.
  • Explain the ethical and social implications of hacking within the context of cybersecurity.
  • Demonstrate the ability to hack basic ciphers.
  • Demonstrate the ability to write a basic packet sniffer.
  • Identify and explain the libraries available for attack task automation.
  • Use the high-level programming language to analyze & debug live. applications
  • Demonstrate the ability to write plugins and analyze binary data.

Course Prerequisites/Co-requisites

Prerequisite: ITP 100

Textbooks for the class:  

Note:  This textbook uses the older Python 2 syntax and is meant for more skilled programmers with a security background. So, we will use this  book as a reference here-and-there.

Black Hat Python

Black Hat Python by Seitz

Python Programming for Hackers and Pentesters
By: Justin Seitz
ISBN: 9781593275907
Dated: Dec 21, 2014 (Copyright: 2015)

Another excellent textbook that uses the newer Python 3 syntax and is more approachable for beginners is listed below.

Learning Python by Lutz

Learning Python:
Powerful Object-Oriented Programming
By:             Mark Lutz
ISBN:        978-1449355739
Dated:       Jan 23, 2018 (Copyright: 2018)

Required Software

Python 3: We’ll be using the Python 3 language. The latest version as of this writing (August 2020) is Python 3.8.5. Please install it according to your operating system (OS) platform:

Integrated Development Environment (IDE): PyCharm Community: You’ll generally want to install an IDE as well. This step is not required, but an IDE helps you write computer code. In this class, I’ll be using the PyCharm Community (open source), but you may explore other IDEs as well. Here are the download links for PyCharm per platform:

sudo snap install pycharm-community –classic 
         
/snap/pycharm-community/current/bin/pycharm.sh    

This will install the icon on your desktop

Microsoft Windows: We might deal with some Microsoft Windows attack scenarios depending on the course load. We may be fine using the NOVA lab computers, but it may be easier and less risky in terms of raising any red flags to do these on a personal computer if you have one running on Windows 7 or 10.

VirtualBox + Ubuntu Linux 18.04 (Or Kali Linux): We will have some exercises that are optimized for Linux. Linux is a critical tool for most cybersecurity professionals’ repertoire. Ubuntu Linux is a very solid Linux distribution that works well as a desktop. Kali Linux is optimized for the cybersecurity professional and comes with lots of pre-configured tools. You can run either using Virtual Box or VMWare. Virtual Box is free software, whereas VMWare comes at a cost unless you have access to discounted or free licensing.

For Mac users, VirtualBox is can also be used on your computers as well to run virtual machines.

Attendance Policy 

Attendance is expected in both in-class meetings and participation in Canvas. Students are expected to attend every scheduled face-to-face class meeting and to enter Canvas weekly. When absence from class becomes necessary, please attempt to inform the instructor ahead of time. Students are responsible for all material missed in class due to an absence. Any instruction missed and not subsequently completed either in-class or on Canvas will necessarily affect the grade of the student regardless of the reason for the absence. 

Academic Integrity 

Academic integrity requirements are found in the NOVA Catalog. 

Safety & Emergency Preparedness 

Select the link for detailed information on college Safety & Emergency Preparedness 

A student with Special Needs 

Select the link for updated information on DSS Support Services 

NVCC Policy Statement 

Select the link for information pertaining to IT Policies, Procedures, & Plans 

Inclement Weather & Closing 

Select the link for information on Inclement Weather & Closing If classes are canceled due to Inclement Weather or other closures, I will post assignments via the “Announcements” tab on our class’s Blackboard.