Cyber Security Unit 2
Cyber Security Unit 2
Cyber Security Unit 2
PROGRAMMING
Unintentional (Nonmalicious) Programming
Oversights
Programs and their computer code are the basis of computing.
Without a program to guide its activity, a computer is pretty
useless.
Because the early days of computing offered few programs for
general use, early computer users had to be programmers too-
they wrote the code and then ran it to accomplish some task.
Today’s computer users sometimes write their own code, but
more often they buy programs off the shelf; they even buy or
share code components and then modify them for their own
uses.
And all users gladly run programs all the time: spreadsheets,
music players, word processors, browsers, email handlers,
games, simulators, and more.
Indeed, code is initiated in myriad ways, from turning on a
mobile phone to pressing “start” on a coffee-maker or
microwave oven.
But as the programs have become more numerous and
complex, users are more frequently unable to know what the
program is really doing or how.
More importantly, users seldom know whether the program
they are using is producing correct results.
If a program stops abruptly, text disappears from a document,
or music suddenly skips passages, code may not be working
properly.
Sometimes these interruptions are intentional, as when a CD
player skips because the disk is damaged or a medical device
program stops in order to prevent an injury.
These flaws, seen and unseen, can be cause for concern in
several ways.
As we all know, programs are written by fallible humans, and
program flaws can range from insignificant to catastrophic.
Despite significant testing, the flaws may appear regularly or
sporadically, perhaps depending on many unknown and
unanticipated conditions.
Program flaws can have two kinds of security implications:
They can cause integrity problems leading to harmful output or
action, and they offer an opportunity for exploitation by a
malicious actor.
A program flaw can be a fault affecting the correctness of the
program’s result —that is, a fault can lead to a failure.
On the other hand, even a flaw from a benign cause can be
exploited by someone malicious.
If an attacker learns of a flaw and can use it to manipulate the
program’s behavior, a simple and nonmalicious flaw can
become part of amalicious attack.
Buffer Overflow