Lecturers |
Eran Tromer |
Leading teaching assistants |
Itamar Gilad, Nir Krakowski |
Teaching assistant / exercise checker |
Michal Shagam |
Lecture |
Sundays 13:00-16:00, (0368-3065-01)
Dan David 002 |
Recitations |
Sundays 16:00-17:00 (0368-3065-02),
Sundays 17:00-18:00 (0368-3065-03)
Dan David 110 |
Final exams |
26 Jun 2015 09:00-12:00 [exam form],
07 Sep 2015 09:00-12:00 [exam form] [solution] |
The Introduction to Information Security course surveys central concepts in applied information security and cyber security, and offers a hands-on introduction to secure programming and vulnerability analysis.
High-level goals:
-
Make students aware of the major security risks and attack vectors
-
Gain concrete hands-on experience with prominent tools and technologies
-
Teach about good tools and practices for building secure systems
-
Instill the state of mind and conceptual vocabulary for reasoning about systems security
-
Offer a glimpse into open research questions
A student who has taken the class and then got programming project should know when he's doing something dangerous, what are the standard solutions, and be able to to productively communicate with vendors and experts.
Scope:
-
Programming vulnerabilities (buffer/stack/integer overflow, input validation, privilege escalation)
-
Exploitation techniques and the low-level details underlying them (reverse engineering x86 assembly, shell code, return-oriented programming, rootkits, fuzzing, packet injection)
-
Secure platforms and programming (confinement mechanisms, operating system security, languages, libraries, trusted platform architecture, good practices, tanalysis tools)
-
Network security and vulnerability (TCP/IP security, DoS attacks, SSL/TLS)
-
Web security (browser security model, XSS, CSRF)
-
Cryptography basics (encryption, digital signatures, certificates)
-
Authentication (passwords, biometrics, tokens)
-
Authorization policies (access control, information flow control, logging, detection)
-
Physical security (air gaps, side-channel attacks)
-
Study cases (e.g., banks, mobile phones, cars)
See also previous years' course (2013, 2014) but note that there are changes in the syllabus.
A significant part of the course material will be in English.
Course requirements:
-
Final exam
-
Homework exercises every week, submitted individually.. Many homework will be “wet” exercises on attacking and defending mock systems. There will be plenty of work using low-level tools such as x86 assembly, network monitoring/injection tools, and mock attack targets.
-
Final grade: 65% exam, 35% exercises
Requisite courses:
-
Operating Systems (0368-2162) or Introduction to Systems Programming (0512-4402) or equivalent
Recommended (not mandatory) courses:
-
Introduction to Modern Cryptography (0368-3049) or Cryptography and Computer Security (0510-7401) or Foundations of Cryptography (0368-4162) or equivalent