I’m teaching a college class about Cloud Computing and part of that is giving various assignments to build stuff on the cloud. That part is pretty routine.
One of my requests for the tasks is to identify failure mode in the system, and one of the students that I’m currently grading had this doozy scenario:
If you’ll run this code you may have to deal with this problem. Just nuke the system and try again, it only fails because of this once in a while.
The underlying issue is that he is setting up a Redis instance that is publicly accessible to the Internet with no password. On a regular basis, automated hacking tools will scan, find and ransom the relevant system. To the point where the student included a note on that in the exercise.
A great reminder that the Network is Hostile. And yes, I’m aware of Redis security model, but I don’t agree with it.
I’m honestly not sure how I should grade such an assignment. On the one hand, I don’t think that a “properly” secured system is reasonable to ask from a student. On the other hand, they actually got hacked during their development process.
I tried setting up a Redis honeypot to see how long it would take to get hacked, but no one bit during the ~10 minutes or so that I waited.
I do wonder if the fact that such attacks are so prevalent, immediate and destructive means that through the process of evolution, you’ll end up with a secured system (since unsecured isn’t going to be working).