The learning objective of this lab is for students to gain
first-hand experience on vulnerabilities, as well as on attacks
against these vulnerabilities. Wise people learn from mistakes.
We study mistakes that lead to software vulnerabilities.
Studying mistakes from the past not only helps students
understand why systems are vulnerable, why a "seemly-benign"
mistake can turn into a disaster, and why many security
mechanisms are needed. More importantly, it also helps students
learn the common patterns of vulnerabilities, so they can avoid
making similar mistakes in the future. Moreover, using
vulnerabilities as case studies, students can learn the
principles of secure design, secure programming, and security
testing.
The vulnerabilities in the TCP/IP protocols represent a special
genre of vulnerabilities in protocol designs and
implementations; they provide an invaluable lesson as to why
security should be designed in from the beginning, rather than
being added as an afterthought. Moreover, studying these
vulnerabilities helps students understand the challenges of
network security and why many network security measures are
needed.
Please find the lab description here.
Please write your lab report according to the description. Please also list the important code snippets followed by your explanation. You will not receive credit if you simply attach code without any explanation. Upload your answers as a PDF to blackboard.
Most content taken from Wenliang Du.
This work is licensed under a Creative Commons Attribution-NonCommercialShareAlike 4.0 International License. A human-readable summary of (and not a substitute for) the license is the following: You are free to copy and redistribute the material in any medium or format. You must give appropriate credit. If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. You may not use the material for commercial purposes.