Building Secure Computer Systems
Welcome to UIC CS 487
CS 487 is a hands-on introduction to computer security, covering software and systems security together with the cryptographic and network foundations needed to understand real-world attacks and defenses.
The course also integrates generative AI from two complementary perspectives: using AI for security, including vulnerability discovery, fuzzing, patching, and reverse engineering; and securing AI systems, including prompt injection, model and data poisoning, and attacks on LLM applications and agents. The semester concludes with a dedicated AI & Security capstone.
Throughout the course, we examine both offensive techniques and defensive strategies. Topics include:
- Software and Systems Security: Memory corruption and code-reuse attacks, vulnerability discovery and exploitation, race conditions, software hardening, memory-safe programming, operating system security, access control, and side channels.
- Crypto and Network Security Foundations: Essential cryptographic and network security concepts, including encryption, hashing, key exchange, authentication, certificates and PKI, TLS, firewalls, and intrusion detection.
- AI Security: Prompt injection and jailbreaks, model and data poisoning, RAG and agent/MCP security, and AI-assisted vulnerability discovery and remediation.
Computer security is best learned by doing. Through quizzes, assignments (including SEED-based security labs and hacking challenges), and a final AI & Security capstone project, students develop the knowledge and practical skills needed to analyze real-world security problems.