Ui/yhu9bgEEl7/9rl4qkTA==2024-12-09T07:32:49Zfall 2024
Lectures: average. The first half of the course lectures are mostly text modules. The second half is mainly repurposed videos from IIS and NS that are sometimes missing important context because it’s not the full sequence of videos from the original lecture they’re pulled from. In either case, the lectures are fairly surface level, and you're not going to absorb much of the material that isn't covered in the projects.
Quizzes: 10 reading check quizzes that are mainly there to ensure you went over the lectures throughout the semester. Most of the quizzes had at least one poorly written question whose wording could change the correct answer depending on your interpretation. Students would often argue with the TAs over wording earlier in the semester, and then I think gave up later on because the quizzes are only worth 10% of your grade. These should be rewritten to remove ambiguity and actually require critical thinking rather than Ctrl-F ability.
Projects: 7 projects that ranged anywhere from 10 to 50+ hours of effort. Like with many courses, this is where the real learning occurs. Grading was fairly lenient, but the TAs could’ve been more responsive to student questions about the projects. Two of the TAs rotated as the POC for each project, which basically meant you were dependent on a single staff member for answering questions and resolving any issues that came up.
Binary exploitation. Probably the best project in terms of no ambiguity in what you were supposed to do, and totally self contained (no reliance on an external server). Malware analysis. A more tedious project, because much of it involved sifting through tool output to find the malware’s dispatching function, and to classify malware behavior depending on what Windows APIs it invoked. The third malware was quite difficult to complete because the Windows 7 VM provided was so outdated and resource constrained that many of the modern reverse engineering tools wouldn’t run on it (assuming they could be installed at all). Android rooting. Pretty plug and chug as there’s a lab guide you follow. System IDS built using a Linux kernel module that hooks system calls and looks for anomalous system call sequences. Quite interesting, but you may struggle if you lack C proficiency or can’t navigate a largely undocumented codebase (the Linux kernel). Network IDS. Builds off Lab 4, with three different machines playing the role of adversary, victim, and analysis sandbox. You write a few daemons to transfer files between machines and try to detect malicious binaries. Web security. This one was pretty unrealistic in that that attacker portion of the project involved finding a web form field that would accept and execute arbitrary shell input. The biggest annoyance with this project is that the external server went down for 3 days over a weekend, and it took that long for a TA to finally reboot it. We did get an extension, and this project wasn’t particularly difficult, but the downtime was extremely annoying. ML for security. You run a bunch of tasks with various parameters to train and test DL/ML models for detecting malware, but the course doesn’t provide you enough ML background to be able to make sense of what you’re doing and the results. Like with Lab 6, you’re dependent on an external server for this project, and it went down a few times. Other times, students would submit broken jobs to the server, which would effectively block the available workers until a TA kill the hanging jobs (or rebooted the server).
Exam: better than the quizzes in that the questions weren’t worded poorly, but a few honed in on minutiae that really wasn’t an important part of the course. If you didn’t happen to memorize that particular fact while studying, oh well.
TAs: they were somewhat absent outside of grading and answering Ed questions every once in a while. I think they could’ve been more responsive to student questions and ensuring that the project resources in Lab 6 and 7 were actually accessible. There were three TAs total, but only two were assigned to lead the projects. The third seemed to only do grading.
Extra credit: you could get 5% by taking an optional exam based on supplemental lectures by Professor Lee, another 5% by offering suggestions for how to improve the projects, and finally another 5% for completing some amount of the NSA Codebreaker challenge.
Rating: 4 / 5Difficulty: 3 / 5Workload: 25 hours / week