Computer
Networking
and
Practical
Security

Fall 2006
course
navigation

Assignments

Assignment 1

Assignment 2

Assignment 3

Assignment 4

Assignment 5

Given what we know so far, do you believe their claims? Furthermore, take a moment to think about this from a security perspective, specifically the "FNapps." We'll come back to this later in the semester once we know more. Your response shouldn't be much more than a page, but no less than two (full) paragraphs.
So two computers want to talk to eachother. They both have the same network card. Let's call the output and input connections on the plug of the card A and B, respectively. So since both our computers have the same cards, if we plug a patch cable into them, they're both transitting on the "A" connections, which are both sending data in the same wires. Conversely both "B's" are listening for data that will never come. If we plug in a crossover cable instead, Computer 1's A sends data to Computer 2's B, and vice versa. Hooray crossover cables!
Assume we want to make more than a two computer network though? Well, then we're probably going to want a switch somewhere in there. What do you connect your computer to a switch with? A patch cable. Why does this work? Because switches "cross" the wires internally. That's fine and dandy, but now we have two different cables to deal with.
So MY idea was, why bother with internal crossing? Then we can just use crossover cables for everything. Problem solved. I immediately proposed this idea to a friend of mine who has less networking experience than me, but knows much more about hardware. Words were said and pictures were drawn. "No, no," he argued, "that won't work if the switch doesn't do internal crossing, and here's the picture to prove it: http://cs.marlboro.edu/~glein/images/switch_weirdness.pdf." (The rectangles in the picture are switches.) Eventually (after nearly an entire day of debate) we figured out that one of us had made an error. Who was it, and what was their mistake?
Hint: I'm used to dealing with switches, whereas my friend is used to dealing with hubs, which are purely mechanical.
These wiki pages might be helpful for the second part:

Assignment 6

Assignment 7

Assignment 8

Assignment 9

Assignment 10

Assignment 11

Assignment 12

First, put yourself in the goblin's shoes. All you know is that this transport function exists in the game. How could you a) figure out how it works, and b) recreate its effects on your victim? What additional information might you need?
Second, what methods could the game server use to protect against this sort of malicious behavior? What methods could you use? How would they affect performance?
Some good tools to start with include ethereal, netcat (nc), and iptables. While you don't need to actually execute either the attack or defense, your answer should include detailed explanations of how to use these (or other) tools.

Final Project

The final project is an open ended assignment that should be the equivalent of a 5 page paper. This can be entirely essay, entirely project, or some division of the two. Possible topics include exploring a new program or toolkit (make sure they're complex enough to warrant a sizable writeup) or a more in depth look at a topic we covered in class (such as advanced Ethereal usage or crypto proofs). Other options are finding an exploit from the Bugtraq mailing list and dissecting the buggy code and exploit code or studying a wholly new topic (see the final section of AttackAnatomy for some suggestions). Students are also welcome to code up something, but should be careful not to bite off more than they can chew.