Graphics Programs Reference
In-Depth Information
don't say exactly what their creators intended, and like a computer program
exploit, these legal loopholes can be used to sidestep the intent of the law.
Near the end of 1993, a 21-year-old computer hacker and student at MIT
named David LaMacchia set up a bulletin board system called Cynosure for
the purposes of software piracy. Those who had software to give would upload
it, and those who wanted software would download it. The service was only
online for about six weeks, but it generated heavy network traffic worldwide,
which eventually attracted the attention of university and federal authorities.
Software companies claimed that they lost one million dollars as a result of
Cynosure, and a federal grand jury charged LaMacchia with one count of
conspiring with unknown persons to violate the wire fraud statue. However,
the charge was dismissed because what LaMacchia was alleged to have done
wasn't criminal conduct under the Copyright Act, since the infringement
was not for the purpose of commercial advantage or private financial gain.
Apparently, the lawmakers had never anticipated that someone might engage
in these types of activities with a motive other than personal financial gain.
(Congress closed this loophole in 1997 with the No Electronic Theft Act.)
Even though this example doesn't involve the exploiting of a computer
program, the judges and courts can be thought of as computers executing
the program of the legal system as it was written. The abstract concepts of
hacking transcend computing and can be applied to many other aspects
of life that involve complex systems.
0x310
Generalized Exploit Techniques
Off-by-one errors and improper Unicode expansion are all mistakes that can
be hard to see at the time but are glaringly obvious to any programmer in
hindsight. However, there are some common mistakes that can be exploited
in ways that aren't so obvious. The impact of these mistakes on security isn't
always apparent, and these security problems are found in code everywhere.
Because the same type of mistake is made in many different places, general-
ized exploit techniques have evolved to take advantage of these mistakes, and
they can be used in a variety of situations.
Most program exploits have to do with memory corruption. These include
common exploit techniques like buffer overflows as well as less-common
methods like format string exploits. With these techniques, the ultimate goal
is to take control of the target program's execution flow by tricking it into
running a piece of malicious code that has been smuggled into memory.
This type of process hijacking is known as execution of arbitrary code , since the
hacker can cause a program to do pretty much anything he or she wants it to.
Like the LaMacchia Loophole, these types of vulnerabilities exist because
there are specific unexpected cases that the program can't handle. Under
normal conditions, these unexpected cases cause the program to crash—
metaphorically driving the execution flow off a cliff. But if the environment
is carefully controlled, the execution flow can be controlled—preventing the
crash and reprogramming the process.
Search WWH ::




Custom Search