2009-07-07

On Plagiarism

I wandered down to my department’s study room the other day. You’d think I’d spend more time down there as it’s kitted out with two new 24” iMacs, but as the university neglected to install any software on them there isn’t much point. The department has a vague idea that Macs promote “creative” and “multimedia” activities purely by some form of electrical osmosis. One doesn’t need to physically use the computers in order to receive any benefit; one just needs to be in the same vicinity. As a result, the Macs sit in a corner, unloved and unused, like two £2,000 tributes to the monolith in 2001.

I usually only go in there to retrieve assessed work that is handed back, and very rarely at that, as work is usually handed back weeks or months later than it should have been. On this particular day, I was trying to retrieve a printout of a Linux kernel module I’d written that extended netfilter to do unfortunate things to unexpecting network packets. I’d been given my grade already, but was interested to see if the lecturer had spotted any of the glaring bugs in the code (judging by the grade I got, he hadn’t).

There is a large pigeonhole rack intended for storing work in the corner of the room opposite the Macs, but much like the Macs, this too is unused. Most of the work is tossed onto the table that the pigeonholes stand on, meaning all of the assessed work from all of the department’s classes is jumbled together in a large heap. Finding anything in the study room is just cause for a celebratory beer in the pub on the way home.

After about half an hour of rooting through this mess, I eventually came across some of my work. However, I’d already picked up a copy of this months previously, and had got a substantially better grade for it. On closer inspection, this version had neither my ID number nor my name on it, but it did have a raft of new and exciting bugs, hardcoded Windows disk names (I’ve used OSX and Linux exclusively for this course) and somebody else’s name at the top.

My imitator achieved two impressive feats with this piece of work. Firstly, he managed to screw the program up so badly that his version scored 70% less than mine. Secondly, he got hold of an electronic copy of something I’d written. The first achievement will probably guarantee him a job as an enterprise software developer, but the second feat is more worrying. I know that he used a digital copy of my code rather than a hard copy, because my trademark wordy comments were preserved intact. No-one would want to retype all of that junk. So how did he get hold of a digital copy? The code was stored in two places - the SVN repository on my Mac Mini, to which access can only be gained via an SSH tunnel, and my user area on the department’s network. To get into the Mac, he’d need to know the Mac’s public IP address, my SSH username and password, the location of the repositories in the Mac filesystem, and my SVN password. To get into my user area, he’d either need my username and password, or enough beer to get one of the admins drunk enough to give him root access. Neither scenario seems very likely.

Anyway, I showed the original and the copy to various people, who are apparently going to look into it.

I never did get my netfilter module back.