Building Secure Computer Systems
Welcome to UIC CS 487
CS 487 serves as an introductory course to computer security, encompassing essential topics such as software and systems security (both hacks and defenses), foundational cryptography, and network security. Additionally, the course will cover recent advancements in the field, including the role of large language models (LLMs) in software security and automated software testing and patching. The curriculum is structured with an emphasis on 60% software security and 40% cryptography and network security basics.
This class provides a balanced exploration of both offensive techniques and defensive solutions. You will delve into areas such as:
- Software and Systems Security: Buffer overflow and code-reuse attacks, exploit and shellcode development, binary reverse engineering, vulnerability analysis, software security enhancement techniques, operating systems security, access control and authentication, side-channel attacks, etc.
- Cryptographic Background and Tools: Hash function, symmetric-key encryption, Diffie-Hellman key exchange, public-key encryption, etc.
- Network Security: Intrusion detection, firewalls, IPSec, TCP/UDP layers security, TLS, digital certificate, etc.
A crucial part of mastering computer security is the application of theoretical knowledge through practical experience. In this course, student progress is assessed through a combination of quizzes, assignments (including hacking challenges), and a final project, ensuring a hands-on approach to learning.