I have posted a new Reset Button video discussing the recent “hack” that caused the internet to malfunction last week. In my video, I show footage of a CNN interview where the anchor asks an expert if the DDos attack was a “hack”. That video originally appeared at previous link above, but has since been replaced with a more up-to-date video.
In any case, here’s the Reset Button, followed by the script for all you non-video-watching types:
And so people wanted to know…
“Was it a hack?”
Was it a hack? The answer to this question is tricky. Yes, it was a hack, but not in the way most people understand them. It was a DDos DNS attack, and if you don’t know what that means then I don’t blame you. It’s two different acronyms mashed together. Two different acronyms of technical jargon that – even if you knew what they meant – wouldn’t really give you a an understanding of what this problem was or what caused it.
CNN’s expert did what he could could answer the question, but the segment was barely a minute long and that’s not enough time to really understand this problem. Sorry. Sometimes if you ask complicated questions you get complicated answers that don’t fit inside of handy soundbites. But if you want to learn what this attack was and who got hacked, then here’s a simple explanation in layperson’s terms.
What is a DNS DDos?
Just like every active telephone has a phone number associated with it, every computer system on the internet has a number. These numbers are how computers identify each other. This number is called an IP address.
Way back in the early days of the internet – and I mean REALLY early, like before it was even called the internet – that was all we had. If you wanted to connect with a particular computer, you had to know what its IP address was. And that’s fine. If there are only a dozen computers connected you can just memorize them. But once you’ve got dozens or hundreds of servers, then you need something better.
So we invented the domain name. Instead of memorizing this arbitrary number, you just type Facebook.com. Or Reddit.com. Or shamusyoung.com. Whatever.
Then I hear you say, “Hang on a minute Shamus. There are literally billions of sites on the internet. My little computer can’t possibly know the IP address for every one of them.”
Right you are, it can’t. For that we need a special kind of server called a domain name server, or DNS. This is a computer that helps your computer get those all-important numbers of the sites you’re trying to visit. So you type reddit.com, your computer asks the DNS for the IP address of Reddit.com. Then the DNS replies. Then your computer can contact Reddit. It happens in the blink of an eye, so most people aren’t even aware this is going on.
If you’re old enough to remember the days when you’d use your rotary telephone to call for directory assistance, and then you’d give the operator a name and she’d give you the phone number of the person you were looking for, then this is the same idea. If you’re too young to remember it in those terms, then think of it like I dunno, space magic or something.
So what happens is you type facebook.com into your web browser, and then your computer sends a message to your DNS and asks for the number for Facebook. The DNS replies with the proper IP address. Then your computer contacts the Facebook server and you can check on all those friend requests and birthday announcements and cat pictures you’ve got waiting for you.
So now you’re thinking, ah! So the DNS got hacked, I get it.
Except no. The hackers never took control of the DNS. To understand what they did, we need to understand the other half of this attack…
This was a Distributed Denial Of Service attack. DDos for short. How it works is this:
Say someone is surfing the internet. Maybe it’s uncle Eddie, who’s really technically ignorant. Or maybe it’s aunt Edna, who’s way too trusting. Or maybe it’s little Timmy, who’s getting to the seedy parts of the internet where he doesn’t belong.
In any case, this user clicks on something they really shouldn’t. A website offers to give them free money, or help them meet sexy ladies, or to clean all the “viruses” off their computer, and all they have to do is download a little program. Which is, of course, a virus. (Actually it would be better called malware in this context, but we’re trying to keep things simple, so let’s just stick with virus.)
Maybe you’ve had something like this on your computer before. Maybe it buried you in ads, slowed down your computer, deleted your files, or tried to steal your credit card information. But the kind of virus we’re talking about today is a little different. Once installed, it doesn’t seem to do anything. You’ll probably have no idea you’ve messed up. Your computer works exactly like before. Assuming the author of the virus did their job, there won’t be any suspicious windows. No slowdowns. No scary warnings.
Instead, the hacked computer is now quietly, in the background, communicating with a server run by a hacker. The computer will occasionally ask the server, “Hey boss, you want me to do anything?” and the server will usually reply, “Nope. You’re fine.”
But sometimes the server will reply with an order like, “I want you to go and overwhelm Facebook.com”. And so the computer will begin pelt Facebook with meaningless requests. It doesn’t even care about the answer. The only goal is to keep Facebook busy so it can’t serve anyone else. It’s like calling someone over and over again and then hanging up, just so that if anyone else tries to call they just get a busy signal.
Next I hear you say, “But Shamus. What can a single personal computer do to a mighty website like Facebook?”
And you’re right. One single hacked computer is harmless. But what if there were thousands of them, all under the command of a single hacker? If the hacker tells all of the computers to flood one website at the same time, then they might, through their combined efforts, be enough to overwhelm it.
This network of hacked computers is called a Botnet, and one of its hacked computers is called a bot.
So to sum up: A hacker tricks thousands of people into downloading malicious software, which turns their computers into mindless slaves that combine to form a botnet, and then the hacker orders them all to overwhelm a single server to make the server unable to operate normally.
Some sites are too big to be attacked directly in this way. Things like Facebook and Google and Reddit have massive server infrastructure that can shrug off the typical botnet and keep going. Which brings us back to the kind of attack we saw last week: A DNS DDos attack.
Instead of attacking a giant like Amazon.com or Google, the hacker can have the bots attack that DNS we talked about earlier. Those machines aren’t generally equipped to deal with enormous traffic loads because their job, while important, is pretty lightweight.
So if you were one of the millions of people affected by this hack, then YOUR computer was working fine, and FACEBOOK was fine, but your computer could no longer reach the DNS to find out how to reach Facebook.
So to return to the original question:
“Was it a hack?”
You weren’t hacked. The website you were trying to reach wasn’t hacked. The DNS wasn’t hacked, although it was attacked by flooding it with traffic. The people who were hacked were the tens of thousands of clueless users who failed to properly secure their computers. And these people probably have no idea they’re the source of the problem, even though their compromised machines pose a threat to the security and stability of the internet.
So now you know what a DNS DDos attack is. How do we fight them and how do we protect against them? That’s a video for another time.
Two minutes of fun at the expense of a badly-run theme park.
Trashing the Heap
What does it mean when a program crashes, and why does it happen?
The Death of Half-Life
Valve still hasn't admitted it, but the Half-Life franchise is dead. So what made these games so popular anyway?
Denuvo and the "Death" of Piracy
Denuvo videogame DRM didn't actually kill piracy, but it did stop it for several months. Here's what we learned from that.
Revisiting a Dead Engine
I wanted to take the file format of a late 90s shooter and read it in modern-day Unity. This is the result.