-: Backdoors and logic bombs.
A backdoor was originally placed in computer programs
to bypass the normal security and authentication functions.
Now, if this sounds like a horrible idea to you,
it really is, and it's a horrible security practice.
This is something that was originally created
back in the 80's, by manufacturers and programmers
as a way for them to get back into the system
to do maintenance and repairs,
without having to go through all the authentications
and going through the firewalls
and the layers of security that they would
if they went in the front door.
Now, this is a horrible and bad practice,
and it should not be used in current networks.
And these days, it's actually considered a breach
of good, secure coding practices.
But, back in the 80's and the 90's,
and even into the early 2000's,
backdoors were a commonplace thing
that were put in by programmers.
Now these days, most software does not have a backdoor.
It's been patched up and cleared up
because they know how bad these are for security.
But, there is something that acts just like a backdoor.
What do you think that might be?
Well, it's a remote access trojan.
A remote access trojan can be placed by an attacker
to maintain their persistent access to your system.
So if I'm able to trick you into clicking
a spearphishing link, and then you install malware
based on clicking that link,
now I have something that can make a callback to me.
That can give me that remote access.
I have a way to bypass your system's natural security
and use that remote access trojan
as a backdoor, to gain access to your system
anytime I want.
Another insecure coding practice that was used by
programmers is what we refer to as an Easter Egg.
An Easter Egg would be placed in the code as a joke
or a form of gag gift.
Essentially, there would be different things
that would happen in different video games,
or different pieces of software
when certain code was executed.
For example, a few years ago, you could go to Google.com
and type in do a barrel roll,
and the whole page would do a 360 degree rotation
as if it was doing a barrel roll in an airplane.
There was no real function to doing that
except it was a joke, it was a gag.
It was a joke that Google programmers decided
to put into the code.
That's a form of an Easter Egg.
Now, Easter Eggs are generally harmless
but they do add additional code,
that can have additional vulnerabilities.
The reason for this is because their code,
because it's a joke, is usually put in at the last minute
and it doesn't undergo rigorous security testing.
Now, why am I talking about Easter Eggs in this lesson?
Well, it's because it brings us up
to the subject of logic bombs.
Logic bombs are a descendant of those earlier Easter Eggs.
But logic bombs were designed with malicious intent in mind.
Logic bombs are malicious code
that's inserted into a program,
and it will execute only when certain conditions
have been met.
For example, a disgruntled employee
may insert a logic bomb into the server's code
so that if that employee isn't on the payroll anymore,
a bad action, like deleting all the files, could occur.
One of my favorite examples of a logic bomb
actually comes from the movie Jurassic Park.
In the movie, the park's programmer,
Dennis Nedry, decides he's going to put a logic bomb
into the power grid system,
so that it will go off at a certain time.
He does this so that when the power gets turned off
by the logic bomb, he's able to sneak out of the room,
go past all the alarms and get into the nursery
and steal some of the dinosaur embryos.
He thinks he's going to get off and sell those embryos
and become a millionaire.
Of course, it goes bad for him because
dinosaurs are running rampant in the park
because he turned off the electrical grid
and he doesn't make it.
But that's an example of a logic bomb.
He set it up so at a certain time,
a certain action would happen and it had malicious intent.
Now, logic bombs and Easter Eggs and backdoors
are all things that should not be found
inside our code.
These all go against our secure coding standards
and best practices, so you want to make sure
that none of this is existing in your server code,
to make sure that you have the most secure
network that you can.