....Trapdoors

In the development of large application programs that process business data
and computer operating systems that run the computer, programmers often insert 
testing aides that provide breaks in the programs, and insert additional 
instructions and intermediate ouput capabilities.  These aides are like 
scaffoldings used in the construction of buildings.

The requirements of computer operating system programs include limiting access
to and use of computers to narrowly defined ways and preventing modification
and insertion of instructions except after following elaborate authorization
procedures.  Consequently, system programmers will sometimes insert temporary
logic mechanisms that allow compromise of these requirements during the
testing phases of program development and later when the system is being
maintained and improved.

Programmers sometimes overlook errors in their programs that are not caught
in testing and get sloppy or take shortcuts that violate good programming
practices and system requirements.

Designers of large complex programs may also introduce vulnerabilities
inadvertently through weaknesses in design logic.

Vulnerabilites may also be introduced in the electronic circuity of 
computers.  For example, not all of the combinations of characters may be
assigned to commands found in the computer and documented in the 
programming manuals.  When these unspecified characters are used, the 
circuitry may cause the execution of unanticipated combinations of functions
that allow compromise of the computer system.

The indiscretions, errors, temporary scaffoldings, and weak logic mechanisms
are referred to as trapdoors when they make programs and systems vulnerable
to compromise.  Normally, most trapdoors are eliminated in the final 
testing, editing, and early usage of systems, but sometimes they are
overlooked or purposely left in to facilitate ease of making future access
and modification.  In addition, some unscrupulous programmers may purposely
introduce trapdoors for later compromising of computer programs.

.Discovery and Investigation of Trapdoors

There is no direct, general method for the discovery of trapdoors.  However,
when the nature of a suspected trapdoor is sufficiently determined, test of
varying degrees of complexity can be performed to discover hidden functions
used for malicious purposes.  These tests require the expertise of systems 
programmers and knowledgeable application programmers.  Large amounts of 
computer services and time could be wasted attempting to discover trapdoor
useage if the investigators do not have sufficient expertise.  One should 
always seek out the most highly qualified experts for the particular computer
system or computer application under suspicion.

Research supported by the U.S. Department of Defense at SRI International
and other contractors is continuing on a high-priority basis to develop
methods of proving the correctness of computer programs and computers according
to complete and consistent specifications.  It is anticipated that it will
be several years before commercially available computers and large computer 
programs can be proved correct.  Therefore, trapdoors continue to exist, and
there is never any guarantee that they will all have been found and corrected.

"Fighting Computer Crime" by Parker, Donn B. (C) 1983 by Donn B. Parker
Charles Scribner's Sons, New York.  pp. 81-82.
-----------------------------------------------------------------------------
Donn P. Parker is Senior Management Systems Consultant and reasearcher 
computer crime and security at SRI International in Menlo Park, California,
for clients worldwide.  The author of "Crime by Computer" and two 
professional books on computer security, he gives about fifty lectures
a year on computer crime and security.

