Hacking Lexicon

This document explains what people may mean by words. This does not attempt to define how words should be used.

URL: http://www.robertgraham.com/pubs/hacking-dict.html
Version 0.7.0, 2001-11-11
Disclaimer: This document has many omissions and contains much that is apocryphal, or at least wildly inaccurate. This document does not define terms, but only explains what many people mean when they use these terms in the context of information security. Feedback: Please send comments to "hacking-dict@robertgraham.com". Note: I have tried to rate terms [1-5]; level one terms should be understood by beginners, level 4/5 terms are for experts who have no other life.

[ 0 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z ]
.

- 0 -

[ $IFS | 'bot | .forward | .plan | /dev/null | /dev/random | /etc | /etc/hosts | /etc/hosts.equiv | /etc/inetd.conf | /etc/passwd | /etc/services | /etc/shadow | 0-day | 11 | 128-bit | 2600 | 3DES | 3DES_EDE | 40-bit | 56-bit | 64-bit | 8 | 8-character password | 802.11 | 802.1q | ~user ]

0-day (zero-day)[1]
The term 0-day exploit describes an exploit that is not publicly known. It describe tools by elite hackers who have discovered a new bug and shared it only with close friends. It also describes some new exploit for compromising popular services (the usual suspects: BIND, FTP services, Linux distros, Microsoft IIS, Solaris servers). Many 0-day exploits are discovered by the victims when hackers use them, or by honeypots.

The term "0-day" describes the fact that the value of exploits quickly goes down as soon as they are announced. The next day they are half as valuable. The 2nd day they are a 1/4 as valuable. Ten days later they are 1/1000 as valuable as on day 0. This is because script-kiddies quickly use the exploits on computers throughout the Internet, compromising systems before anybody else can get to them.

Contrast: The term 0-day exploit describe the hard-to-use exploits by the discoverer himself (or close friends), in contrast to the easy-to-use scripts employed by script kiddies. For example, a buffer-overflow script will go through many phases as people try to find the right offsets for the target platforms, but will eventually end up as a broad-spectrum aim-and-shoot script that anybody could use.

Key point: One of the dangers of 0-day exploits is BUGTRAQ camping. A hacker discovers all the services running on the target victim and waits for day-0 when the exploit is announced. At that time, the hacker attacks the systems with the new exploit.

Key point: The term "0-day" describes any bit of information in the community, whether it is serial numbers, lists of proxies, or passwords to porn sites. As soon as such information becomes well-known and exploited by large numbers of people, it is then fixed by the victim. Information has a "half-life": the older it is, the less value it has.

128-bit [1]
Generally describes strong (unbreakable) encryption. Web-browsers contain an option for 40-bit vs. 128-bit encryption. The United States only allows export of the weaker version in order to allow the government to spy on foreigners, especially during times of war (Author's note: my grandfather worked with the code-breakers in WWII -- it had a major impact indeed on winning the war). However, the U.S. export restrictions can easily be easily be bypassed, allowing many foreigners access to products with 128-bit encryption (example: https://www.ccc.de). Likewise, it has stifled development within the United States of products that need encryption, such as IEEE 802.11 wireless Ethernet.

Key point: The debate over strong encryption is never ending. Within the United States, law enforcement is constantly lobbying to restrict the use of strong encryption. Many resist, pointing out how often law enforcement already abuses wiretap powers (such as against Martin Luther King). At the same time, companies making products constantly lobby for the easing of export restrictions, so that they can sell strong encryption products abroad. Another funny thing is that the U.S. government's intransigence on this issue has actually led to stronger encryption abroad. U.S. export restrictions (and desire to spy on foreigners) was one of the reasons France relaxed its own law-enforcement bans on encryption use by citizens.

Key point: The random number generators within systems are often weaker than the key itself. For example, when you connect via SSL from your browser to a web-server, they choose a key for that session. That key is chosen with a random number generator. One estimate was that the average 128-bit session key contains only 47-bits of randomness. Other browsers have had even weaker systems allowing the session key to be recovered in only a few minutes.

2600 [1]
2600 Hz is the frequency of the whistle that was provided in Captain Crunch cereal boxes. It happen to also be the frequency that was used by older phone systems in order to reset them for operator controlled calls.

Culture: This number is often used within the hacking culture. It is the name of a magazine (http://www.2600.com) as well as that of a series of newsgroup (news:alt.2600).

40-bit [1]
The term "40-bit encryption" describes the U.S. encryption export laws (note: in January, 2000, the U.S. upped the maximum size to 64-bits. The U.S. restricts the export of strong encryption technology. Products that include 40-bit encryption or less can freely be exported. Therefore, products like web browsers, wireless communications, DVD keys, etc. all use 40-bit encryption.

Key point: Specialized hardware can decrypt 40-bit keys in real time. The average new desktop has enough horsepower to decrypt 40-bit messages. Thus, many people now consider 40-bit encryption to be simply obfuscated plaintext.

Key point: The term 40-bit often means the RC4 system within browsers.

56-bit [1]
56-bit encryption contains 16-more bits than 40-bit encryption, and is therefore 65536 times more difficult to crack. On the other hand, it is likewise 256 times easier to crack than 64-bit encryption.

Key point: In January of 1999, the EFF built a custom machine (the "Deep Crack") for $250,000 that could decrypt 56-bit DES encrypted messages in hours.

Key point: 56-bit cryptography almost always means DES.

64-bit [1]
In January of 2000, the U.S. government eased its export regulations of encryption 40-bit to 64-bit keys. Presumably, the government would only do so if the NSA had the capability of decrypting 64-bit encrypted messages. It is interesting to note that distributed.net's RC5-64 challenge cracking team of 100,000 computers working for about 2.5 years had managed only to check about 18% of the keyspace. This implies that the NSA has extremely hefty software.

802.11 (IEEE 802.11 Wireless)[1]
The IEEE 802.11 standard is for wireless, Ethernet-like LANs. The insecurities in this protocol have popularized the concept of war driving: driving around town looking for all the wireless networks you can sniff or connect to (named after war-dialing).

Status: At the current time (year 2001), 802.11 is completely broken as far as security is concerned. There exists no solutions at this time that companies can use to create secure networks. However, within a couple years, it is likely that secure standards will be created.

Key point: The following techniques are used in an attempt to secure a wireless network:

SSID (Service Set Identifier)
The SSID provides a basic sort of VLAN: different SSIDs may be active at the same time on the same wireless equipment. In theory, the SSID acts as a sort of password because a user must know it before connecting to the LAN. However, SSIDs are easily sniffed, which means they really provide no additional security.
MAC address filtering
Most access points have the ability to only accept an access control list of specific MAC addresses. This means that only owners of the allowed cards may access the network. However, this provides no additional defense against packet sniffing. Moreover, once MAC addresses have been sniffed, an intruder can reconfigure the MAC address of their own hardware to match an allowed addresses, thereby gaining access to the network.
WEP (Wired Equvelent Privacy)
WEP is the scheme used to encrypt data. At the current time (year 2001), many ways are known to break this scheme.
spread-spectrum radio
Rather than operating at a fixed frequency, 802.11 spreads its signal across a range of frequencies. However, this is done only to increase reliability, and is not intended for security.
802.11X
An update to the standard is being designed to allow standard authentication methods to secure the network. These are likely to include support for PKI, RADIUS, and Kerberos. This should fix most currently known problems.

Key point: An employee leaving the company is likely to know all necessary SSIDs, MAC addresses, and WEP keys in order to get back on the network. This means that they can sit in the parking lot and gain access to the network and/or sniff traffic. Unless better key-management techniques are standardized, 802.11 cannot be securely used in corporate environments.

Key point: Other 802.11 terms:

AP (Access Point)
An 802.11 "access point" is the bridge between a wireless network and the real network. While it is typically built from the same hardware as client machines, it has radically different software.

Point: IEEE 802.11b transmits in the 2.4 GHz radio band (the same as microwave ovens, so it is recommended to keep it away from your body). This band is unregulated by the U.S. government. This means that it is a desireable technology for creating ad-hoc networks. For example, satellite dishes can be used with 802.11 to connect networks up to 30-kilometers away from each other -- without government licenses.

8-character password [4]
Some systems, like Win9x and Solaris, limit the user to 8 characters in the password.

Key point: Security conscious users of such systems need to make sure they use a more random mix of characters because they cannot create long passwords.

Key point: Password cracking such systems is a little easier.

~user [3]
On UNIX, a home directory can be referenced by using a tilde (~) followed by their login name. For example, "ls ~rob" on my computer will list all the files in "/home/rob".

Key point: Web-servers often allow access to user's directories this way. An example would be http://www.robertgraham.com/~rob.

Key point: A big hole on the Internet is that people unexpectedly open up information. For example, the file .bash_history is a hidden file in a person's directory that contains the complete text of all commands they've entered into the shell (assuming their shell is bash, which is the most popular one on Linux).

.forward [2]
On UNIX, a user can place an e-mail address in his ".forward" file. This will cause all e-mail sent to his account to be forwarded to that e-mail address.

This file a is prime target of attackers. If they can overwrite this file, they can subtly start capturing the user's e-mail. This is especially dangerous if the the account in question is the root account. Note that the user doesn't have to know any about this file or have one on his system. The mere creation of this file by the intruder will activate this feature. Furthermore, since this file starts with a 'dot', it is normally hidden from the user, so they won't even be ware that this feature exists.

/dev/null [1]
On UNIX, this is a virtual-file that can be written to. Data written to this file gets discarded. It is similar to the file call NUL on Windows machines.

Key point: When rooting a machine, intruders will often redirect logging to /dev/null For example, the command ln -s /dev/null .bash_history will cause the system to stop logging bash commands.

Culture: In the vernacular, means much the same thing as black hole. Typical usage: if you don't like what I have to say, please direct your comments to /dev/null.

/etc [1]
The directory on UNIX where the majority of the configuration information is kept. It is roughly analogous to the Windows registry. Of particular interest is /etc/passwd file that stores all the passwords.

Key point: If an intruder can read files from this directory, then they can likely use the information to attack the machine.

/etc/hosts [1]
The file that contains a list of hostname to IP address mappings. In the old days of the Internet, this is how machines contacted each other. A master hosts file was maintained and downloaded to machines on a regular basis. Then DNS came along. Like the vestigial appendix. On Windows, this file is stored in %SystemRoot%\system32\drivers\etc.

Hack: If you can write files to a user's machine, then you can add entries to his/her hosts files to point to your own machine instead. For example, put an entry for www.microsoft.com to point to your machine, then proxy all the connections for the user. This will allow you to perform a man in the middle attack.

/etc/hosts.equiv [1]
On UNIX, the "hosts.equiv" file lists other hosts that can be thought of as "equivalent" to this one. This machine will therefore "trust" these other machines. Users connecting to this machine from the listed machines will not have to present a password, it is assumed that these other machines have already verified the password.

Analogy: The European Union (EU) doesn't have passport control between countries. You only have to present your passport when entering the first European country, then you can roam freely once inside the union. The "hosts.equiv" file creates a similar union of machines.

Hack: Hackers will target this file. If their target is machine A, they may instead find that A trusts B, and B may be easier to break into first. At that point, the hacker can hop back to A using an account on B. Likewise, if a hacker can write to this file, they can tell the system to trust any other system on the network (including the hackers own machine).

Hack: Older software would do a reverse DNS lookup on a connecting IP address. If the hacker controlled the DNS server, s/he could return a trusted domain name, and therefore be allowed into the system. Another older hack is the default "+" entry.

See also: .rhosts

/etc/passwd [1]
The UNIX file that contains the account information, such as username, password, login directory, and default shell. All normal users on the system can read this file.

Key point: The passwords are encrypted, so even though everyone can read the file, it doesn't automatically guarantee access to the system. However, programs like crack are very effective at decrypting the passwords. On any system with many accounts, there is a good chance the hacker will be able to crack some of the accounts if they get hold of this file.

Key point: Modern UNIX systems allow for shadowed password files, stored in locations like /etc/shadow that only root has access to. The normal password file still exists, minus the password information. This provides backwards compatibility for programs that still must access the password file for account information, but which have no interest in the passwords themselves.

Key point: The chief goal of most hacks against UNIX systems is to retrieve the password file. Many attacks do not compromise the machine directly, but are able to read files from the machine, such as this file. Typical examples include:

TFTP
Typical exploit asks for the filename "/etc/passwd". Some systems are misconfigured so that this works.
FTP
Similar to TFTP above, simply asking for the file can get it. Backtracking sometimes works. Sometimes a shell can be exploited to reveal the file.
HTTP
Many custom web-servers (such as built-in ones used for remote management) contain backtrack bugs that can be used to retrieve the file. Example: http://www.robertgraham.com/../../../etc/passwd.
/cgi-bin
A huge number of CGI scripts contain bugs that can be exploited to read files from the system. These include backtracking vulnerabilities, shell vulnerabilities, as well as other stupid mistakes.

Key point: /etc/passwd is a simple text file, with one line per account. The line is broken down into seven columns:

account
The username. Note that a lot of systems ship with well-known names in their default passwd file.
password
An encrypted form of the user's password. Since they are encrypted, they are viewable by anybody who has access to the system. However, since users often choose weak passwords, hackers will often run crack programs that can decrypt the weak passwords. For this reason, administrators often create a shadow password file that contains the real passwords, in which case this field will simply contain a "*".
UID
The user identifier, a unique number like "500" that identifies the user. Internally within the system, all users are referenced by their number rather than their name. One way to put a backdoor into the system is to place a string like "x500" rather than "500" in this field. This causes programs who read the file to parse this as the number "0", which is the UID for root.
GID
A primary group the user belongs to. The user can belong to secondary groups as configured in /etc/group.
GECOS
Some additional information about the account. For real users, this is often their full human readable name. For other pseudo-accounts, this may be some parameters.
directory
The user's home directory.
shell
The login shell that will be given to the user when they logon.

See also: shadowed passwords

/etc/services [3]
On UNIX, the configuration file /etc/services maps port numbers to named services.

Key point: Its role in life is so that programs can do a getportbyname() sockets call in their code in order to get what port they should use. For example, a POP3 email daemon would do a getportbyname("pop3") in order to retrieve the number 110 that pop3 runs at. The idea is that if all POP3 daemons use getportbyname(), then no matter what POP3 daemon you run, you can always reconfigure its port number by editing /etc/services.

Misunderstanding: This file is bad in order to figure out what port numbers mean. If you want to find out what ports programs are using, you should instead use the program lsof to find out exactly which ports are bound to which processes. If running lsof is not appropriate, then you should lookup the ports in a more generic reference.


- A -

[ A | access control | Access Control List | accountability | ACK | Acknowledgement Number | ACL | active attack | ActiveX | administrator | advocacy | AES | age | AH | algorithm | alias | amplifier | ANAC | Anarchist Cookbook | anarchy | ANI | anonymity | anonymous | anonymous FTP | ANSI | ANSI X9.17 | anti-replay | anti-virus | AP | Apache | application/form-url-encoded | area code | ARP | ARP redirect | ASN.1 | ASP | Assassination Politics | asymmetric cryptography | AT command set | attack | audit | audit trail | auth | authentication | Authentication Header | authenticity | Authenticode | authorization | automatic variables | availability | avatar ]

access control (access)[3]
Access control refers to controlling access by a user to a computer system, or data on that system.

In formal terms, a "subject" (e.g. a user) attempts to access the "object" (e.g. system or data). An access control system will evaluate the security levels of the subject and object in order to see if access is permitted.

Example: A simple example is the case where you enter a username and password in order to log onto the computer.

Contrast:

mandatory access control
The system gives users "clearance levels", and assigns sensitivity levels to information. Therefore, if you only have "secret" clearance level, you cannot access "top-secret" information, but you can access "secret" or "confidential" information.
See: Bell-LaPadula Model for more information.
discretionary access control
This system assigns subjects (users) to one or more groups. An object (system or file) contains a DACL (discretionary access control list) enumeration which users and groups may access the object.
See: Access Control List for more information.

Key point: There are different kinds of access. Read access means that somebody can read information, whereas write access implies that that somebody can change the data. For example, you can get a copy of your credit report and read it, but you can't necessarily change the data.

Access Control List (access, ACL)[3]
Controlling access not only the system in general, but also resources within the system. For example, firewalls can be configured to allow access to different portions of the network for different users. Likewise, even after you log onto a file server, the server may still block access to certain files.

Key point: An Access Control List (ACL) is used to list those accounts that have access to the resource that the list applies to. When talking about firewalls, the ACL implies the list of IP addresses that have access to which ports and systems through the firewall. When talking about WinNT, the ACL implies the list of users that can access a specific file or directory on NTFS.

Contrast: Discretionary Access Control is the ability to have fine grained control over who has access to what resources.

Misconception: Many people believe that firewall IP address rules or IEEE 802.11 MAC address rules form robust ACLs. However, since neither IP addresses or MAC addresses provide robust authentication, such ACLs provide only a weak form of security. When these so-called ACLs are relied upon for security, they frequently lead to compromises as people spoof their IP or forge their MAC address.

accountability [1]
In infosec, the word accountability describes the ability to trace actions back to the person who did them. This includes finding out who violated security policies, as well as simple things as charging departments for their use of network resources.

Controversy: A major human rights debate these days is between accountability and anonymity. On one hand, you want to make criminals accountable for their actions, but this invades upon the privacy of individuals who do not want their every action recorded.

Contrast: The term accountability typically describes the issue of tracing actions back to individuals, whereas accounting describes actually recording those actions.

active attack [1]
An attack that works by carrying out some action against the target, or by changing the state of the target. The word is used to contrast with passive attacks where data is only eavesdropped/monitored, but not changed.

Examples:

modification
A classic example is during warefare of intercepting messages from the other side, then making small changes to them. A more subtle modification of messages occurs when the target is using ECB to encrypt messages. An attacker may be able to change the amount of a bank funds transfer without decrypting the message nor knowing the exact amount that they changed it to.
insertion
A classic example for forging orders to the opposing army during battle. A more subtle modern form is injecting packets into a stream in order to desynchronize a firewall or IDS.
masquerading
A classic example is somebody who pretends to be another user.
DoS
Anything designed to take the target off-line.

ActiveX [1]
A type of mobile code whereby Microsoft's web browsers can automatically download executables to provide active content within web pages.

Contrast: ActiveX is similar to Java applets, except that the code is not "sandboxed": it has full access to the operating system. In order to stop hostile code, ActiveX relies upon digital signatures and "zones". Microsoft browsers are configured to trust ActiveX programs from servers in the "trusted" zone, to trust signed ActiveX programs from servers in less trusted zones, and to prompt/deny unsigned ActiveX applets from untrusted zones.

Controversy: The idea of trusted zones and signed applets works pretty well in theory, but doesn't always work well in practice. The problem is that is relies upon on all users making the correct choices all the time. The Melissa virus/worm proved that this philosophy is not adequate.

advocacy [1]

AES (Advanced Encryption Standard, Rijndael)[3] .
The United States encryption standard that replaces the older/weaker DES standard.

Contrast: The main impetus behind AES to replace DES is the support for larger key sizes. DES uses 56-bit keys, which can be cracked in just a few minutes (in the year 2001). In contrast, AES supports 128-bit keys (as well as 192-bit and 256-bit). Whereas both DES and AES are fundamentally block-ciphers, AES is also designed to be an efficient stream-cipher and hash algorithm. Whereas DES was designed to be hardware based (software implementations are much slower), AES has been designed to be efficient in both software and hardware. In particular, implementations in ANSI C, Java, and x86 assembly language were important. Another important criteria was the ability for the algorithm to work within smart-cards with slow CPUs and limited memory.

Key point: The NIST director in charge of selecting the AES algorithm says: "If Moore's law continues and quantum computing doesn't manifest itself, then I think this system will have a good 30 year run".

Misconception: AES does not replace DES. In the 1980s, DES was the most used encryption algorithm. However, due to length of time it took the government to come up with a replacement standard, other encryption algorithms became widely used, such as RC2, RC4, Blowfish, IDEA, and Triple DES. Moreover, crypto has became very "pluggable", with many products supporting numerous simultaneous encryption algorithms.

algorithm [1]
A series of rules/procedures for solving a mathematical or logical problem. From an infosec point of few, the most interesting mathematical problems are those of cryptography. Cryptographic algorithms of interest are those for encrypting messages or generating unique hashes.

Analogy: An cookbook recipe is an algorithm.

Key point: Different algorithms have different levels of complexity. For example, consider the ancient parable (Babylonian?) about a king and a wise subject who did a favor for him. The subject asked for one piece of grain to be placed on the first square of a chess board, two grains on the second, four grains on the third, and so on, doubling the amount of grain for each successive square.

This problem demonstrates an algorithm of exponential complexity. For the first 10 squares of the chess board, the series is: 1 2 4 8 16 32 64 128 256 512. Thus, for the first 10 squares, roughly a thousand grains must be paid out. However, the series continues (using K=1024): 1k 2k 4k 8k 32k 64k 128k 256k 512k. Thus, for the first 20 squares, roughly a million grains must be paid out. After 30 squares, roughly a billion grains must be paid out. For 40 squares, roughly a trillion grains must be paid out.

This is directly related to such things as key size. A 41-bit key is twice as hard to crack as a 40-bit key. A 50-bit key is a thousand times harder. A 60-bit key is a million times harder. This is why the 128-bit vs. 40-bit encryption debate is so important: 128-bit keys are a trillion trillion times harder to crack (via brute force) than 40-bit keys.

Key point: Most algorithms are public, meaning that somebody trying to decrypt your message knows all the details of the algorithm. Consequently, the message is protected solely by the key. Many people try to add additional protection by making the details of the algorithm secret as well. Experience so far has led to the belief that this actually leads to weaker security for two reasons. First, such secrets always get discovered eventually, so if security depends upon this secret, it will eventually be broken. Secondly, human intelligence is such that someone cannot create a secure algorithm on his/her own. Therefore, only by working with a community of experts over many years can humans create a secure algorithm. To date, only two such communities exist: the entire world of cryptography experts publishing the details of their work and trying to break other people's work, and the tightly knit community of cryptography experts working in secret for the NSA.

alias[1]
The word alias is used for many different things within infosec. In all its definitions, it generally means somesort of alternate name for something. Some definitions used for alias are:
e-mail alias
An alternate e-mail address you have that points back to your original account. Specifically, the file /etc/aliases (or sometimes /etc/mail/aliases) on UNIX tells sendmail alternate names for e-mail accounts.
host alias
A single machine may have multiple DNS names; an important issue when hacking into a machine is that you figure out its real name.
handle
Hackers make up names for themselves.
pseudonym
You may have many different e-mail accounts or usernames.

amplifier[3]
Any type of system on the network that can be used to amplify (increase) the the size of traffic is known as an amplifier.

Example: The classic example is the smurf amplifier. An attacker spoofs the address of a victim and sends directed broadcasts to the amplifier, which then sends hundreds of replies back to the victim. Thus, it only costs the attacker a single packet to send many packets to the victim.

Example: A more subtle attack is the use of DNS. The DNS response packet can be much larger than the request. This allows an attacker to flood the victim with large packets at the cost of small packets.

anarchy (cyberanarchy)[1]
Anarchists often stress that the goal of anarchy is not the lack or order, but the lack of orders. In the hacking culture, there is a strong belief laws should not be created for cyberspace, and that order will be maintained by the nature of technology. They believe that laws can only be enforced through grievous infringement of civil liberties.

Contrast: Cyberspace anarchy and real-world anarchy are different. The main thrust is that cyber-punishment should fit cyber-crime, and physical-punishment should only be used in cases of physical-crime.

Example: Most of the cyber-anarchy focuses on cryptography, or crypto-anarchy. This is because most anarchic capabilities will be based in cryptography.

Humor: Anairchists believe in the lack of odor.

See also: cypherpunks

Anarchist Cookbook (ISBN 0-9623032-0-8)[1]
A famous book from 1970 that advocates violence as an acceptable means to bring about political change. Its author, William Powell, as since disavowed that ideal. Most of the information was copied from military documents taken from public libraries. However, the author never tested the recipes and made many mistakes. Some drug recipes are actually poisonous, and if you follow some of the bomb recipes, you will blow yourself up. A common joke is that the book is actually a secret CIA plot to kill would-be anarchists.

ANI (Automated Number Identification)[3]
In telephony, ANI forms the foundation of the billing system. It is similar to Caller ID in that it exposes the telephone number of the caller. It is from this system that billing issues like long distance charges are resolved. It also reveals the caller's phone number to 911 emergency services, 800, and 900 calls.

Contrast: While on the service ANI is similar to Caller ID, it is actually a completely different system. ANI predates Caller ID by about 50 years. Since the systems are independent, the numbers recorded for ANI and Caller ID can be different. Also note that the "*67" technique of blocking Caller ID has no affect on ANI.

Example: The term ANAC (Automatic Number Announcement Circuit) will echo back the number you are calling from, either from ANI or Caller ID. They are popular among beige boxing pheakers in order discover the telephone number of the lines they tap into. It is also useful for coporate stooges that are having problems with 800 services because the phone number revealed by ANI about the extension is significantly different that the number they think it is. There really is no number dedicated to ANI discovery (other than 1-800-MY-ANI-IS used in the old days); these numbers are for other purposes, such as automated telephone customer service. Some numbers that are currently active as of August, 2000:

Phreaker sites will have more up to date ANAC lists.

Point: As of 1998, ANI-II is starting to provide extra digits on the end of the telephone number indicating the type of number. The numbers "00" indicate POTS (plain old telephone service), "63" indicates a roaming PCS/cellular caller, "70" is a type of a payphone, etc.

anonymous (anonymity)[2] .
Anonymity is one of the "holy grails" of hacking. The idea is that a human being can use a system or send messages while protecting their identity from being disclosed.

Example: Anonymous e-mail services like Hotmail put the IP address of the person sending the e-mail in the headers (which are normally hidden from view by e-mail clients). Many would-be hackers get caught this way.

Example: France is currently trying to outlaw Internet anonymity, forcing uses to disclose their identity.

Contrast: Anonymity is one aspect of privacy.

anonymous FTP [1]
Access to FTP servers with an account name of "anonymous" or "ftp" (or sometimes "guest"). When you access FTP URLs with your web browser, it will automatically use anonymous FTP. This means that conceptually, anonymous FTP provides access similar to standard HTTP. However, there is a slight difference. Anonymous FTP servers are frequently misconfigured to allow for anonymous write access to the same directories as read access. Hackers regularly scan the Internet looking for anonymous FTP servers that they can use as drop-off spots for porn and warez.

ANSI (American National Standards Institute)[3]
A standards body made up of industry representatives. For infosec purposes, the two interesting areas are the X9 standards for financial/banking, and the X12 standards for EDI (also governing health-care transactions).

Contrast: ANSI is the American representative to the ISO. ANSI is made up of industry, whereas NIST specifies standards only for use within government.

Example: The following are infosec related standards by ANSI. The X9 group are Financial Industry Security Standards, but used elsewhere as well.

ANSI X3.106 - Data Encryption Algorithm, Modes of Operations
ANSI X9.8 - Personal Identification Number Management and Security
The specification for PIN numbers that you use at ATMs.
ANSI X9.9 - Financial Institution Message Authentication
Wholesale banking standard for authentication of financial transactions addressing message formatting and message authentication algorithm (DES-MAC). Equivalent to ISO 8730.
ANSI X9.17 - Financial Institution Key Management
Key management in the wholesale sector, including a PRNG
ANSI X9.19 - Financial Institution Retail Message Authentication
ISO 9807. Roughly the same as X9.9, but for retail rather than wholesale.
ANSI X9.23
Declares DES the standard for encryption within wholesale financial services.
ANSI X9.24
DES key management in the retail sector (see X9.17 for wholesale sector).
ANSI X9.30 - Public Key Cryptography Using Irreversible Algorithms for the Financial Services Industry
Financial industry standard for digital signatures based upon DSA. Part 1 specifies DSA, part 2 specifies SHA for hashes, part 3 deals with certificate management (using X.509 certificates).
ANSI X9.31 - Public Key Cryptography Using Reversible Algorithms for the Financial Services Industry
Financial industry standard for digital signatures based upon RSA public-key and MDC-2 hash. Part 1 defines RSA signature standard based upon ISO 9796, part 2 specifies hash algorithms (MD2, MD5, SHA) as well as the DES-based hash MDC-2. Part 3 defines certificate management.
ANSI X9.42 - Public Key Cryptography for the Financial Services Industry
Management of Symmetric Algorithm Keys Using Diffie-Hellman and MQV key agreements.
ANSI X9.44 - Public Key Cryptography Using Reversible Algorithms for the Financial Services Industry: Transport of Symmetric Algorithm Keys Using RSA
ANSI X9.52 - Triple DES Modes of Operation
ANSI X9.57 - Certificate Management
ANSI X9.62 - Elliptic Curve Digital Signature Algorithm (ECDSA)
ANSI X9.63 - Elliptic Curve Key Agreement and Key Transport

Apache [2]
Apache is a popular HTTP server. It runs on virtually all major operating-systems, including Linux, Windows, and Solaris. Apache is open-source software. By some estimates, Apache is the most popular web-server software.

ARP [3]
ARP is a protocol used with TCP/IP to resolve addresses. The TCP/IP stack used to transmit data across the Internet is independent from the Ethernet used to shuttle data between local machines. Thus, when machine needs to send an IP packet to a nearby machine, it broadcasts the IP address on the local Ethernet asking for the corresponding Ethernet address. The machine who owns the address responds, at which point the IP packet in question is sent to that Ethernet address.

Key point: By sniffing ARP packets off the wire, you can discover a lot of stuff going on. This is especially true of cable-modem and DSL segments. Since ARP packets are broadcasts, you aren't technically breaking your user's agreement by sniffing.

Key point: You can spoof ARP requests and/or responses in order to redirect traffic through your machine.

ARP redirect [3]
A tool that is part of the standard hacker's toolkit, ARP redirect will redirect Internet traffic from a local neighbor through your own machine allowing you to sniff it.

area code [3]
TODO

Key Point: Some carribean countries have U.S. area codes. A common telco fraud is to fool people into calling those numbers. The consumers believe that their are calling a U.S. number protected by fraud laws, when in reality they are dialing a pay service that will charge them upwards of $2 a minute. North American Area Codes Outside the U.S. and Canada
242 Bahamas  664 Montserrat
246 Barbados  758 St. Lucia
264 Anguilla  767 Dominica
268 Antigua & Barbuda 784 St. Vincent & the Grenadines
284 British Virgin Islands  809 Dominican Republic
345 Cayman Islands  868 Trinidad & Tobago
441 Bermuda  869 St Kitts & Nevis
473 Grenada  876 Jamaica
649 Turks & Caicos Is. 

Link: See the website http://www.nanpa.com/ for more information on NANP (North American Numbering Plan).

ASP (Active Server Pages)[3]
The server-side scripting language for Microsoft IIS web server.

Key point: A recurring bug in ASP has allowed hackers to read the script rather than the output of the script. These techniques rely upon changing the name of the script such that the server not longer recognizes it as a script, but as a file instead. Some techniques that have worked in the past have been:

/default.asp.
The filesystem automatically strips trailing dots because of the way Windows hides/appends file extensions.
/default.asp%2E
Same bug as above. Microsoft released a patch whereby the web-server checks for the appended dot. However, url-encoding the dot bypasses this quick fix.
/default.asp::$DATA
In order to support Macintoshes and other features, NTFS supports a feature known as alternate data streams. The well-known stream called "::$DATA" references the original
/default.asp%8129
Far east editions will expose the source when a far-east multibyte character is appended.

ASN.1 (Abstract Syntax Notation 1, ISO 8824, X.208, X.680)[1]
ASN.1 is a notation for describing data structures. It is a lot like C/C++ type declarations, but without the rest of the programming language that manipulates the data structures. ASN.1 is one solution to the classic problem of getting two different programs to communicate: they must agree upon what data they will exchange, and how it is formatted.

Key point: ASN.1 is used within many areas of security to declare data structures and compatible file/network encodings of those data structures. For example, your X.509 Certificate is an ASN.1 encoded file.

Example: The following shows an ASN.1 structure compared to a C++ structure.

struct UserRecord {
	bool account_disabled;
	int user_type;
	char *user_name;
	char *password;
};

UserRecord ::= [APPLICATION 0] IMPLICIT SEQUENCE {
	account_disabled BOOLEAN,
	user_type INTEGER,
	user_name OCTET STRING,
	password OCTET STRING
}

Key point: ASN.1 defines structures abstractly, which means it doesn't really specify the concrete representation. There are many ways to encode an ASN.1 structure in binary. There are three popular sets of encoding rules:

BER (Basic Encoding Rules) ISO 8825-1, X.209, X.690
The original encoding rules that is in many areas synonomous with ASN.1. They use a format called "tag-length-value" or "TLV". As its name implies, it encodes every value with a TAG indicating the type (INTEGER, BOOLEAN, OCTET STRING, etc.) and a LENGTH indicating how many bytes long it is. For example, the INTEGER value 42 would be encoded as "02 01 2A", where 02 is the tag for INTEGER, 01 means that only one byte is needed to encode the value (larger integers require more bytes), and 2A is the hex value of decimal 42.
DER (Distinguished Encoding Rules)
A slight variation of BER used in security applications. The above example BER encoding could also have been "02 04 00 00 00 2A", where the integer value has been padded with leading zeroes. This is known as a redundant encoding, which is a frequent source of security breaches. Therefore, DER specifies that the only legal encoding is the "minimal" encoding of BER. DER is the encoding rules used in public key certificates.
PER (Packed Encoding Rules)
PER is more minimal encoding method that reduces the size of data structures. It is used in bandwidth sensitive areas. For example, Voice over IP (VoIP) uses it because it needs to be sensitive to dial-up bandwith concerns.

AT command set (Hayes command set)[1]
Today's modems are controlled by the old Hayes "AT" command set. In order to dial the phone number 555-1212 using a modem, you simply send the string "ATDT555-1212" to the modem. The "D" following the "AT" means to "Dial", and the "T" means to use "Tone" dialing (rather than "P" for "Pulse" dialing).

The command "ATH0" means to hang up the modem.

Key point: One of the juvenile tricks people play is to cause people to hang up their own modem. Once the modem connects, it goes into a different mode where it no longer accepts AT commands. However, a user can switch back to the command mode by sending the characters "+++" to the modem. Therefore, if somebody can remotely trick your PC into sending "+++ATH0", then your modem will hang up. One way of doing this is with the ping program that sends and ICMP echo to the victim, which then replies with the same contents. E.g.:

ping -p 2b2b2b415448300d victim

The most popular exploits for this are spoofed ICMP pings, but it can be exploited in any number of ways. For example, one may include the following in an HTML webpage:

<IMG src="http://www.robertgraham.com/images/x.gif?+++ATH0">

attack [1]
In common speech, the word "attack" means to attempt to break into a computer, deface the home-page, install a trojan, etc. In more formal infosec speech, the word attack has taken on very specific connotations. For example, you may hear of researchers trying to "attack a cryptosystem" (meaning that they are searching for weaknesses that will allow them to decrypt anything encrypted with that system). The word is often used in the abstract sense rather than in any physical sense. In academic circles, this word is often used in preference to other synonyms such as crack or break.

Example: Some classifications of attacks against computers are:

passive vs. active attacks
A passive attack (like sniffer) is one that can take place by eavesdropping. An active attack is one that requires interaction, such as injecting something into the data stream or altering data. All attacks are divided into these two categories. Note that active attacks can in theory be detected, while passive attacks cannot be.
remote vs. local attacks
Whether the attack is done by a remote person without an account on the syste, or whether the attack is able to compromise the system using an existing account (such as logging on, then using a privilege escalation exploit.
hit and run vs. persistent attacks
A ping of death is a hit and run attack because it quickly crashes a machine. A smurf attack is persistent because the victim is affected only as long as the smurf lasts. As soon as the attacker stops smurfing, the victim's link becomes active again.
command-channel vs. data-driven attacks
A user normally interacts with some sort of "front-end", which may pass attacks to some sort of "back-end". Attacks against the front-end are often called "command-channel attacks" because they are entered as commands. Subtler attacks attempt to "drive" data through the front-end in order to compromise a backend system. The most common example are web-based front-ends to back-end databases. Even though the database may be protected by a firewall, incorrect data may still be passed through the firewall to compromise the backend database system.
replay attack
An active attacker where you try to capture parts of a message then resend it at a later date, often with slight changes. For example, on older Windows LAN Manager protocols, a hash of the password is sent. Therefore, anybody could right their own SMB protocol stack and replay the hash in order to break into the system.
brute force attack
Tirelessly tries all combinations until they can break in.
man in the middle attack
Either eavesdrops on an existing connection, or interposes himself in the middle of a connection changing data.
hijack
Takes over one side of an existing connection.
sniffing/wiretap/eavesdropping
A passive attack consisting of eavesdropping on a network connection.
rewrite
An attack that changes an encrypted message without first decrypting it. See also: Block-ciphers

audit [1]
The word audit has two meanings.

The first is the security audit, whereby a consulting firm comes in and validates a companies security profile. This is similar to how accounting firms review a company's books.

The second term is infosec specific, and means an "auditing" subsystem that monitors actions within the system. For example, it may keep a record of everyone who logs onto a system. Such a record is known as an audit trail.

authentication [3] .
In infosec, authentication is the process of identifying an individual or data. The goal of authentication is to confirm the identification of an individual, message, file, or other data. The two primary areas of authentication are user authentication (proving that Bob is who he says he is) and message authentication (proving that your nuclear missile launch orders weren't forged or corrupted). The antonym of authentication is forgery.

Contrast: Authentication will identify who an individual is; authorization will identify what the individual is allowed to do.

Example: When you log in with your username and give the password, you are authenticating yourself to the system. You are proving that you are you because, in theory, only you know your password.

Contrast: Abstractly, anything that combats forgery is called authentication. For example, IPsec includes an Authentication Header (AH) that proves that a packet hasn't been modified in transit. However, this feature overlaps with the abstract concept of integrity: both are checked at the same time.

Examples:

biometrics
Signature (handwriting), facial features, fingerprint, etc.
smart-card
A card with an on-board microprocessor that can run crypto algorithms. For example, it may store a private-key, and be able to encrypt/decrypto tokens with that key.
passwords
digital certificates
A small file containing public or private keys.
SecureID
A commercial product that uses a key and the current timestamp to generate a stream of random numbers that can be verified by a server. A user has roughly 10 seconds to enter the current number displayed on the card.

Contrast: Three things used for authentication:

physical (what you have)
car keys, subway tokens, driver's license, passport, credit cards, ID cards, smart cards
knowledge (what you know)
PINs, usernames/passwords, account numbers, mother's maiden name
biometrics (who you are)
written signature, fingerprint, what you look like, etc.

See also: Authentication is often mentioned along with other key security concepts such as integrity, confidentiality, and non-repudiation.

authenticity [3]
In infosec, authenticity is about making sure that the message received is the same as the message that was sent. In law, authenticity is about validating that evidence has been gathered correctly by a reliable source and hasn't been tampered with.

Contrast: The terms integrity and authenticity are widely used to mean the same thing. In other situations, they have subtly different meanings (especially law). The term integrity generally describes defending against malicious change of a message once it has been sent, whereas authenticity implies some sort of validation of the sender of the message to protect against forgeries.

Contrast: The terms authentication and authenticity are widely used to mean the same thing. The subtle difference is that authentication is about someone proving who they say they are, whereas authenticity is about proving that message was sent by a certain person.

authorization [3]
In infosec, the concept of authorization validates that someone has the rights to access something. For example, you are authorized to read files from my webserver, but I don't authorize you to change anything.

Contrast: The first stage of authorization is generally authentication. Before you decide what an individual is allowed to do, you must first establish who they are. In some cases, authorization is independent from authentication, such as not allowing anybody to logon after midnight.

availability [3]
In infosec, availability describes the need that resources must be continuously available. For example, in the Kosovo war, the European forces bombed power plants in order to destroy the availability of electricity. Another example is in February of the year 2000, when massive DDoS attacks brought down major websites (making them "unavailable").

Controversy: Availability is one of the key sticking points in security. It is easy to secure things simply by making them unavailable: if a computer is turned off, nobody can hack into it. The trick to infosec is making things both available and secure. Examples of this problem are:

account lockouts
In order to prevent password grinding, computers will lock out accounts when too many bad passwords have been attempted. However, this means that hackers can purposely lock out accounts.
firewalls and IDS
Some IDSs will reconfigure firewalls, therefore spoofing attacks can cause the firewall to shut people out.
fail-close/fail-open
So called "proper" security will shut things down when things start to fail; for example, if the firewall crashes, it should shutdown all communication until the firewall is restarted rather than allowin traffic through unchecked. However, web-sites that demand 99.99% uptime are therefore unable to use traditional firewalls.

Antonym: The opposite of the infosec term "availability" is the hacking term "DoS".

See also: Availability is often mentioned along with other key security concepts such as integrity, authentication, confidentiality, and non-repudiation.

avatar [2]
A term coined in cyberpunk science-fiction referring to the digital manifestation of human beings in cyberspace. The word is Sanskrit for the earthy incarnation that gods take on Earth.

Key point: Most common people don't understand cyberspace, and assume that their physical body and digital manifestation are the same thing. The hacking culture has a very different point of view that there is no direct corpespondance between a real person and their online identity.

See also: pseudonym


- B -

[ back channel | back door | Back Orifice | backtrack | backtracking | banner | BASE64 | bash" | bastion host | BBS | Bcc | beige box | Bell-LaPadula Modle | BER | BGP | big-endian | binary | BIND | BinHex | biometrics | BIOS | birthday attack | birthday paradox | bit | black | black bag job | black-hat | BlackNet | Blind spoofing | block cipher | Blowfish | Blue Team | BlueBEEP | boink | bomb | bonk | boot sector | bootp | box | broadcast | broadcast domain | browser | brute force | BS7799 | BSD | buffer overflow | buffer overrun | bug | BUGTRAQ | BXA | byte-order ]

back channel [4]
Where the compromised system opens a connection back to the hacker.

Contrast: Remote administration trojans (RATs) are NOT examples of back channels, but are instead forward channels. A RAT allows the hacker to contact the system from anywhere in the world, and allows the hacker to hide where he/she is coming from. A back channel, on the other hand, will contact the hacker, who must have a fixed IP address. This clearly fingers who the hacker is.

Key point: Typical back channel protocols are X Windows (xterm) and shells like Telnet. These programs are often built into the victim's system, so many attacks that can't otherwise compromise the system can still trigger a back channel that allows a remote shell.

See also: covert channel

back door (trap door)[3] .
Something a hacker leaves behind on a system in order to be able to get back in at a later time.

Example:

Key point: Key features of backdoors are:

Key point: Back doors are frequently programmed into systems either benignly or maliciously. Most computers shipped today allow BIOS passwords to be set that will prevent the booting of the computer without the administrator first typing the password. However, since many people lose their password, such BIOSes often have a back door passwords that allows the real password to be set. Similarly, a lot of remotely manageable network equipment (routers, switches, dialup banks, etc.) have backdoors for remote Telnet or SNMP. The frequency of such back doors is due to the fact that people are stupid, set passwords, forget them, then whine to customer support.

Key point: A backdoor can be added to any system. For example, when generating random session keys, a programmer may actually subvert the random number generator. Such subversion would then allow decrypting of the message by those who knew the specifics. This has already been done accidentally; some paranoids believe that some encryption products do this intentionally in order to get export approval of 128-bit products.

See also: trap-door

Back Orifice (BO)[2]
A remote access trojan released in 1998 by the Cult of the Dead Cow (cDc). By promulgating this through their well-oiled propoganda machine, the cDc succeeded in making Back Orifice the archetype for all such programs. In 1999, the cDc released a newer version called BO2K - Back Orifice 2000.

backtrack (directory climbing, directory traversal, backtracking) [3]
The backtrack is the directory labeled "..". A common bug frequently made by programmers is that they don't check for this within a filename. An attacker can include this as part of an input, they can access files they would normally not have access to. can force the program to read any file on the system.

Example: Many programs contain built-in HTTP servers. This allows the program to be remotely managed from any web browser. These servers expect that only the files in their own directory and below will be read. However, hackers can still provide URLs that go up directories, and down into other directories in order to read any file from the system. For example, a hacker may be able to read the UNIX password file by typing in the URL: http://www.robertgraham.com/../../../etc/passwd.

Key point: This bug occurs because programmers frequently forget to double-check input.

Example: This bug is common. The original version of Win95 had this bug, so that if you had access to File and Print Sharing to any subdirectory, you also had access to the entire system. A huge number of HTTP servers and CGI scripts have this bug. Many FTP servers have had this bug. Even though this bug has been exploited for over 15 years, new variations of this technique are constantly being discovered in new programs.

Key point: Win9x has the quirk that three dots "..." means "two directories up", four dots "...." means "three directories up", and so on. Additionally, whereas on many UNIX systems going up past the top directory automatically generates an error, going above the top directory on Windows leaves you in the top directory. Therefore, filenames like "............/Windows/greg.pwl" are frequently seen: the hacker puts more than enough dots in the path in order to guarantee they reach the root directory.

Key point: Many popular Windows "personal web servers", including several versions shipped from Microsoft, have had either the "../.." or "....." vulnerability. In particular, since the "....." issue is not widely know, it is very common among those products that fix the first variant. FrontPage98 from Microsoft shipped with this bug.

banner [3]
Many text-based protocols will issue text banners when you connect to the service. These can usually be used to fingerprint the os or service.

Key point: Many banners reveal the exact version of the product. Over time, exploits are found for specific versions of products. Therefore, the intruder can simply lookup the version numbers in a list to find which exploit will work on the system. In the examples below, the version numbers that reveal the service has known exploitable weaknesses are highlighted.

Example: The example below is a RedHat Linux box with most the default service enabled. The examples below show only the text-based services that show banners upon connection (in some cases, a little bit of input was provided in order to trigger the banners). Note that this is an older version of Linux; exploits exist for most these services that would allow a hacker to break into this box (most are buffer-overflow exploits).
ProtocolPortBanner
FTP21 220 rh5.robertgraham.com FTP server (Version wu-2.4.2-academ[BETA-15](1) Sat Nov 1 03:08:32 EST 1997) ready.
ssh22 SSH-2.0-2.1.0 SSH Secure Shell (non-commercial)
Telnet23 Red Hat Linux release 5.0 (Hurricane)
Kernel 2.0.31 on an i486
login:
SMTP25 220 rh5.robertgraham.com ESMTP Sendmail 8.8.7/8.8.7; Mon, 29 Nov 1999 23:28:31 -0800
finger79
Login     Name                 Tty  Idle  Login Time   Office     Office Phone
rob       Robert David Graham   p0        Nov 29 22:51 (gandalf)
root      root                  p1        Nov 29 23:34 (10.17.128.201:0.0)  
HTTP80 HTTP/1.0 200 OK
Date: Tue, 30 Nov 1999 07:34:59 GMT
Server: Apache/1.2.4
Last-Modified: Thu, 06 Nov 1997 18:20:06 GMT
Accept-Ranges: bytes
Content-Length: 1928
Content-Type: text/html
 
POP3110 +OK POP3 rh5.robertgraham.com v4.39 server ready
identd113 0 , 0 : ERROR : UNKNOWN-ERROR
IMAP4143 * OK rh5.robertgraham.com IMAP4rev1 v10.190 server ready
lp515 lpd: lp: Malformed from address
uucp540 login:

Best practices: It is often recommend (and required in some government areas) to display a banner warning off unauthorized users. It makes the legal case stronger if you can show that the attacker saw a banner that indicated that they were unauthorized.

Best practices: All version information should be supressed in the banners. See the product documentation for more information on this. An example on Solaris is to edit the configuration file /etc/default/telnetd and added the line:
BANNER=""
This will remove the Solaris login banner, making it more difficult for an intruder to determine the type of operating system.
 
SunOS 5.7
 
login:
login:
Others:
ServiceFileParameter
Sendmailsendmail.cfO SmtpGreetingMessage=
Sun FTP/etc/default/ftpdBANNER=""
Sun Telnet/etc/default/telnetdBANNER=""

bastion host[3]
A system exposed to the Internet that is expected to come under thorough attack. The term contrasts those hosts that are inside a firewall's protection.

See also: firewall

Bell-LaPadula Modle (BLM)[4]
An academic model for enforcing access control for government and military. The model is based around the idea of mandator access control. The formal definition from TCSEC is:
...a means of restricting access to objects based on the sensitivity (as represented by a label) of the information contained in the objects and the formal authorization (e.g., clearance) of subjects to access information of such sensitivity

In this definition, a "subject" is somebody (user) who wants access to an "object" (information, data file, system). The subject and object have different security levels.

Objects (information, data, systems) are assigned security classification levels. A typical example would be:
unclassified < confidential < secret < top-secret

Subjects are assigned similar clearance levels that allow access to objects of similar level or below. For example, if you are a government employee with "secret" clearance level, you can access everything but "top-secret" information.

A classification level such as "top-secret" will also include categories. For example, you may have a "secret" clearance for NATO information, and "top-secret" clearance for all matters pertaining to nuclear weapons. The system follows the principle of least privilege. Therefore, you would not be cleared to access top-secret NATO nuclear plans because your NATO clearance isn't high enough.

BBS (Bulletin Board System)[2]
Electronic BBSs formed much of the the core "cyberspace" in the 1980s. Telecommunication costs were high, so rather than interconnected via "always-on" connections, such systems transfered files and messages as irregular intervals over dial-up lines. Mail was transported through BBS via protocols like FidoNet and UUCP. Files would move themselves from system to system as users would download from one BBS and upload to others. Many of today's older hackers were active in the BBS community of the 1980s.

Bcc (Blind carbon copy)[2]
A way of sending e-mail to multiple people so that the recipients cannot see the other recipients.

Netiquette: USE BCC!!! It is a security breach to reveal people's e-mail addresses to others. For example, one of the recipients may be an MLM seller and will start spamming the other recipients. Another breach is a virus like Magister.B that will forward itself to addresses it finds while scanning the Inbox. There are cases where you want recipients to know about each other, but if you can't come up with a reason, you should use "Bcc:" instead of "Cc:" or "To:" fields.

BGP (Border Gateway Protocol)[3]
On the Internet, BGP is used between ISPs in order to communicate routers. For example, imagine that the ALICE ISP needs to reach the BOB ISP. However, ALICE is not directly connected to BOB. ALICE therefore must figure out which ISP should be used to send traffic to BOB. It is through the use of BGP that such information is discovered. The name "border" comes from the fact that ISPs use BGP only on their borders (in contrast, they would use some other protocol (like OSPF) inside their networks).

Key point: BGP can be subverted in many ways. BGP is generally unauthenticated, and rogue ISPs can play havoc.

binary [1]
One of the basic foundations upon which computer science is based, binary is simply the concept of representing all things as a series of 1s and 0s. Mathematically, this means that all numbers are represented in base2 arithmetic, and that all things are represented with numbers.

Contrast: The word binary usually means not text. In computers, every 8 binary digits are used to represent a byte. However, only 7 binary digits are needed to convey text (26 upper case, 26 layer case 10 decimal digits, a number of punctuation characters, etc). Therefore, data using just 7 binary digits per bytes is always text data. It is pointless to say binary computer data, since all computer data is binary. When someone says binary, rather than being redundant, what they are really trying to convey is that the data in question isn't text data. For example, FTP is a text protocol, whereas SMB is a binary protocol.

Misconception: The word is also a noun (as well as the usual adjectival sense). A binary is a file containing binary (as opposed to text) data. In particular, you may hear the phrase "hackers replace the binaries on a the victim's machine". What this really means is that the hackers have replaced many of the software programs (with trojans). This phrase comes about because executable programs contains binary, not text data. Therefore, a machine's binaries are its programs.

See also: A common issue is how to send binary data within a text protocol/message. For example, how can we send a binary within a text e-mail message? The answer is to "encode" the data. See the word encoding for more details.

biometrics [3]
In the field of authentication, biometrics is the method whereby a person is recognized according to personal traits, presumably ones they cannot change. Typical examples are signatures we sign on documents and facial recognition that we use in everyday life.

History: The ancient Egyptions used biometrics in order to verify somebody's identity. They would make several measurements of body features (e.g. length of arms) and record them. Fingerprints have actually only been used in the last 100 years.

Example: The market for biometrics in the year 2000 was roughly $100 million. There are many methods, each with their own pros and cons (accuracy, ease of use, end-user prejudice, etc.).

fingerprints 40%
The old standby that everyone is familiar with, though they carry a certain stigma due to their longterm use in law enforcement. Most such systems use just the thumbprint. California is now requiring thumbprints for its driver's licenses.
hand 30%
This is generally your palm print, though it can also include the geometry of your fingers.
voice 15%
Due to many problems (such as a cold affecting a person's voice and recorded playback), this method is becoming less popular. It's chief benefit is that it can use any microphone to record the voice, and any modern computer can do the necessary analysis on the voice signal. Some of these systems have been used for telephone authentication.
face 7%
Tends to focus on facial features between forhead and lips in order to avoid complications with hair style, facial hair, and facial expression. Some scanners do thermal imaging of the face, which in theory can distinguish among identical twins (which could otherwise stymie other systems).
eye 4%
Includes iris as well as retina scanning. The iris is the outer part of the eye that we associate with eye color. The retina is inside the eye, from which distinct patterns of blood vessels can be measured. This system is considered the most accurate, but at the same time it is technically difficult to get right (as users have to be trained to position their eye's correctly). Note that many retina systems expect a heart beat, therefore, cutting out an eye and presenting it to the scanner (e.g. movie Demolition Man) won't work.
handwriting signature 3%
The same system used to sign your checks. Some systems are just for a person's signature, others try to encompass the entire person's handwriting. This method is becoming more popular for PDAs. An issue with this system is that it is behavioral, rather than physical.
Other
Gait (how you walk), typing characteristics, body odor, DNA (movie Gattaca), reflection of radio waves within the body, reflection/resonance of sound waves within the skull, ear shape.
Voice and signature recognition are considered some the least reliable techniques, though they are among the more friendly.

Point: One area of biometrics focuses on those cases where the user isn't aware of the scan. For example, an airport may have a facial features scanner design to trigger on known terrorists. Equipment could be installed under the floor in order to discover people according to their gait as they walk over them (such systems can distinguish among multiple people walking simultaneously). Body odor and DNA can be extracted from a persons "thermal plume" as they walk under a sniffing system.

Controversy: Biometrics introduces huge privacy debate. For the first time, it provides the government with a means to track its citizens in a manner that the citizens cannot avoid. This gives totalitarian governments the ability to tightly control their populations. At the same time, it provides businesses equal opportunity to invade their employees and customer's privacy.

Controversy: Biometrics is based upon a single, unalterable identity. A private-key, for example, can be destroyed in case it is compromised (through key revocation). However, your biometrics are with you for life. Today's authentication is usually through pseudonyms that are only roughly related to who you really are.

Key Point: Biometrics has a number of problems. The first is that biometric measurements get worse over time. People's signatures change over time. An injury can change fingerprints. Voice recognition systems fail when people have cold. Not all people have the requisite physical features (eyes, hands, etc).

Pros: Biometrics cannot be forgotten; many companies are adopting biometrics as a cost saving issue because lost passwords is becoming a leading problem in IT departments. Biometrics cannot be passed on from one person to another. Biometrics are extremely difficult to forge.

Culture: Biometrics have appeared frequently in movies, partially because of the Orwellian horros they ellicit from the audience. The entire plot of the movie Gataca was based upon DNA biometrics. The Bond film "Diamonds are Forever" used a trick of thin rubber over the fingertips to forge someone else's fingerprints -- a trick that has been recently shown to work. Another Bond film used the trick of surgical change in order to forge an iris scanner.

BIOS [3]
On your PC, the BIOS is the software the first runs when your computer starts up. All the messages you see when it starts up are from the BIOS program. Once it gets through testing memory and configuring your system, it then "boots" the operating system that you've installed on your hard-disk.

Key point: The BIOS stores configuration settings in NVRAM (Non-Volatile RAM). Remember that the contents of your normal RAM/memory are lost when you power-off your computer. The contents of NVRAM, in contrast, are retained when power goes off. Most NVRAM consists of CMOS (low-power) chips with a small battery that constantly feeds power to the chips (such batteries last about 5-years). A common trick of hackers and viruses is to corrupt the CMOS settings causing the computer to fail to boot. Removing the battery connection (usually a jumper on the motherboard) will cause the CMOS settings to be lost and be reset back to default (good) state.

Key point: All of today's BIOSes are stored in programmable ROMs, which allows them to be reprogrammed (usually with bug fixes from the manufacturer). This allows the hacker to reprogram them as well. While in theory hackers could reprogram their own code into the BIOS, in practice this has not been done yet. Instead, hackers can sometimes use this programming feature to corrupt the BIOS code (in much the same way they corrupt the BIOS settings mentioned above). This will usually prevent the system from booting even to a point where a fresh BIOS can be re-programmed into the system. This requires that the system be brought back to the vendor in order to have the BIOS reprogrammed. Note that you can often set a jumper on the motherboard that denies the ability to reprogram the BIOS.

Misconception: Naive users who get hacked often come up with the belief that the hacker has gotten into their BIOS and left some sort of backdoor behind. While such a thing is possible in theory, it never happens in practice.

Key point: Many BIOSs can be locked with a boot password. This prevents somebody from booting the machine without the password. However, for technical support reasons, they generally have backdoor passwords. Some of them are listed below. By the time you read this, these are likely to be out-of-date. However, if you type these strings into a search engine, you will probably be able to find the latest ones.

Award BIOS
?award aLLy aPAf AWARD?SW awkward award award_? award.sw award sw AWARD SW AWARD_SW AWARD_PW award_ps 589589 256256 01322222 256256 BIOS biostar biosstar CONCAT CONDO condo efmukl HELGA-S HEWITT RAND HLT j262 j64 lkw peter lkwpeter SER SKY_FOX smukL SWITCHES_SW Sxyz SZYX ttptha wodj wpeter zjaaade
AMI (American Megatrends Inc.)
AMI A.M.I. aammii AMI~ amiami AMI.KEY AMISETUP AMI?SW AMI_SW 589589 ami.kez ami° helgaßs
Phoenix
None by default, though some OEMs have their own.
Others
Advance (Advance Integration, merlin (Vobis), SnuFG5 (AST), Biostar Q54arwms (Biostar), last (Concord), CTX_123 (CTX), Congress (CyberMax), Daytec Daewuu (Daytek/Daewoo), DELL (Dell), komprie (Digital), xo11nE (Enox), central (Epox), Posterie (Freetech), hewlpack (HP), IBM MBIUO sertafu (IBM), iwill (Iwill), spoom1 (JetWay), 57gbz6 Technolgi (Joss), sp99dd (MachSpeed), prost (Magic-Pro), Star (Megastar), sldkj754 xyzall (Micron), dn_04rjc (Micronics), mMmM (M Tech), xdfk9874t3 (Nimble), Bell9 (Packard Bell), QDI (QDI), teX1 xljbj (Quantex), Col2ogro2 (Research), Spacve (Shuttle), SKY_FOX (Siemens), lesarot1 (Speedeasy), ksdjfg934t (SuperMicro), BIGO (TMC), 24Banc81 Toshiba toshy99 (Toshiba), Vextrec (Vextrec), Compleri (WIMBIOS), 3098x Zenith (Zenith), zeosx (Zeos), compaq (Compar), Tiny (Tiny)
Non-passwords
Aptiva: Hold both mouse buttons down
Toshiba notebook: left shift key
Note that clearing the CMOS by setting a jumper on the motherboard will also work. Also, the keyboard controller in older systems have unused pins that can sometimes be manually manipulated to skip the password on bootup. Another technique is to feed special inputs through the keyboard port during bootup. Finally, once you are able to boot the machine, clearing the password is relatively easy.

BIND (Berkeley Internet Name Daemon)[3]
BIND is the most popular software on the Internet for providing DNS services. Your ISP is likely running BIND. BIND is open-source.

Key point: BIND provides about 80% of all DNS services. It is also enabled by default on a lot of Linux distributions. As a result, any exploit discovered for BIND has immediate and large impact on the Internet. As of November, 1999, all versions of BIND previous to 8.2.2-P5/4.9.7 have known holes that can be exploited. It is likely that these newer versions also have undiscovered exploitable holes as well.

Key point: BIND comes in two versions, 4.x and 8.x. This is largely due to backwards compatibility: people are running a lot of older servers and would rather patch them than upgrade to a newer version. Also, the newer 8.x code-base has not be extensively peer-reviewed and is thought to be a lot less secure than the 4.x source base. UPDATE: BIND v9 is now available, though most users are sticking with v8.

See also: dig, DNS

birthday paradox (birthday attack, birthday surprise)[1]
Imagine you are at a party of 23 people. What is the chance that two people in that room have the same birthday? The unexpected (paradoxical) result is there is a greater than 50% chance that two people have the same birthday.

Another way of looking at it is that most school classrooms have more than 23 students. Therefore, in more than half of all school classrooms, two students have the same birthday.

The reason this is surprising is because we are accustomed to thinking in terms of somebody having the same birthday as ourselves. In a room with 20 people, there is less than a 5% chance that somebody else has the same birthday as ourselves.

Key point: This fact is important in cryptography. For example, the cryptographic hash function creates a "unique" fingerprint of a file. It is virtually impossible for an attacker to create another messages that matches that unique fingerprint. However, there may be cases where an attacker wants to create two new messages with the same fingerprint. This second problem is a lot easier than the first. The attacker may want to create two contracts, then after having the first one digitally sign, substitute the second one in its place. For this reason, a common recommendation for third-party signature services is to add a seal along with the signature in order to change the resulting hash.

Example: Consider MD5 whose hash has a length of 128-bits. This means that creating a message that hashes to the same value as the first message would take 2128 brute-force attempts. However, choosing two messages that together hash to the same value takes only 264 attempts. In other words, if you have to create a match an existing message, the problem is tough, but if you can create both messages, the problem is easy. The upshot is that many cryptographic algorithms have to be strong enough to defend also against birthday attacks.

bit [1]
A numeric quantity with precisely two values, such as 0 and 1, false and true, up or down, and so forth.

Key point: In many contexts, each additional bit means "twice as much". 8 extra bits means 256 times as much. 16 extra bits means 65536 times as much. Therefore, it takes 65536 times longer to brute force crack a 56-bit key than a 40-bit key.

black (red)[2]
In military terminology, the colors "black" and "red" refer to two types of networks. A "black" network is exposed to hostile elements, so only unclassified information may be sent across it, or that sensitive/classified data must be envrypted before sending across a black network. A "red" network is protected, and may carry classified data. A "black" and "red" network must never, ever be interconnected.

Key point: The inadvertent connection between black and red networks is one of the chief concerns of military-grade security.

Terminology:

black equipment area
An area for where unsecured equipment is placed. Likewise, a red equipment area is one where secured equipment is placed, preferably behind physical security measures.
black key
A key that is encrypted, and therefore can be transmitted across unsecured (black) lines or stored on unsecured disks. Your personal PGP key is "black": you have to enter a password to decrypt your key first, before the key can be used to encrypt e-mail. Likewise, a red key is in clear form, and should never be sent in the clear across a black network.
black line
A transmission line outside of secure areas that should be be used to send unencrypted classified information.
black signal
A signal that does not contain reveal classified information if eavesdropped upon.

black bag job[2]
A black-bag operation is a secret break-in by a law-enforcement or intelligence organizations. One goal is to secretly search the location, copying files or other other materials. Another goal is to plant bugs, telephone wiretaps, or key-loggers. The FISC (Federal Intelligence Surveillance Court) holds hearings to approve break-ins for national security reasons.

History: in 2000, the FBI secretly entered the office of Nicodemo Scarfo and installed a keylogger. The FBI was able to capture Scarfo's password and decrypt his PGP encoded e-mail.

History: The 1971 Watergate snafu was an illegal black-bag operation.

History: In October of 1993, Attorney General Janet Reno authorized the FBI to enter the home of Aldritch Ames, a suspected CIA mole. This was after months of of electronic and physical surveillance, including searches of his trash.

Key point: Authorized black-bag jobs are sometimes part of pen-tests.

Controversy: Many believe that black-bag jobs are in violation of the Fourth Ammendment.

BlackNet [2]
A cultural term referring to an anonymous black-market in hacker goods, especially information. Think of it as an eBay where both buyer and seller can be totally anonymous and information is the item being traded. Let's say that a hacker steals trade secrets from a company; the hacker would then be able to sell this on the auction. The idea of BlackNet is rooted in cryptography. First of all, there as to be complete anonymity. Secondly, there has to be solution to the race condition where the buyer has to be assured he is getting the goods before delivering payment, and the seller has to be assured of receiving payment before delivering the goods. Finally, the problem of fraud (misrepresentation of goods) has to be solved: the seller has to prove he has the goods claimed. Cryptographic solutions to these problems do exist; such a market is possible, though it does not yet truly exist.

bomb (logic bomb, mail bomb, time bomb)[3]
The word bomb has two unrelated meanings: logic bombs and mail bombs.

In the class of hostile software, a logic bomb is some code left behind by a program that "goes off" at a particular time (such as deleting all the files on the computer on New Years Eve). One theory was that Y2K consultants left logic bombs inside the code they were fixing in order to earn even more money after Y2K.

A mail bomb is the effect of sending somebody tons of e-mail (or large e-mail), overloading their mailbox and/or network connection. Sometimes this can be done with a program, other times it can be done simply by signing up the victim to huge numbers of e-mailing lists. Finally, it can be accidental, as happened once to Apple Computer when its mailing list software got out of control.

A time bomb is a bit of malware inserted into a system set to go off at a specific date.

History: In the old days of UNIX terminals, an e-mail message containing VT100 control codes in a logic bomb could completely hose a user's terminal, forcing them to log out. DOS machines supporting the ANSI.SYS driver also had that problem.

Example: Some well known programs for e-mail bombing are: Unabomber, Kaboom, UpYours, and Avalanche.

bootp (boot protocol)[1]
This relative ancient protocol facilitates booting devices ("clients") from a network server rather than their local hard-disks (such as diskless workstations). In this configuration, the bootp protocol configures the diskless device with its IP configuration information as well as the name of the file server. At this point, the client shifts to TFTP to download the actual files it will use to boot from.

Key point: DHCP is simply an extension on top of bootp. This is important because without an IP address, clients cannot reach bootp servers that reside across routers. Virtually all routers have an extension for bootp forwarding that fixes this issue. Since DHCP had the same requires, the designers just stuck it inside bootp packets rather than requiring yet another change to the routing infrastructure.

boot sector (boot record)[1]
The first sector on a driver where the operating system will bootstrap from.

Key point: Until macro viruses came along, boot sector viruses where the most common variant. They spread through companies via floppy disks. Users would leave floppy disks in the drive and when the computer restarted, it would attempt to boot from the floppy. This would run the virus, which then infected the boot sector on the hard drive. Any further floppies plugged into the system would then be infected by the virus.

Countermeasures: I worked at a company with anal anti-virus procedures (anti-virus on all desktops, regular wiping of floppy disks). It was never able to completely free itself from the boot sector virus problem; one of the viruses was never successfully eradicated from the company. My own personal policy is to disconnect the floppies on 90% of the machines, and disable floppy bootup on the remaining machines.

'bot [2]
Short for robot, a 'bot is an automated program that does something.

Example: A cancel-bot is a program that attempts to cancel lots of messages within USENET newsgroups. These are sometimes used by the USENET Death Penalty or rogue cancellers. *

Example: Search engine spiders that index the web follow web-page links, going from site to site, downloading web-pages.

Example: In the IRC wars, hackers run automated bots to control channels. These are programs (usually in C) that help in administering channels, protection against hackers, flooding, and so forth.

box [1]
Boxes (like blue boxes, black boxes, red boxes, etc.) where terms used in the early days of phreaking in order to defraud telephone companies. The colors of the boxes is usually assigned randomly, though they often have stories about how the names came about.

Misconception: Most of the information you read on boxes is terribly outdated and rarely works in the real world. There is the standard memetic drift going on: documents without dates and without descriptions how they don't work in the modern world are invariably picked up and copied by people who believe in the magic but don't understand that the information is useless. Conversely, documents that dispell the magic and explain how hard it really is and how it mostly is no longer valid do not get copied widely.

Key point: Virtually all popular boxes no longer work in newly developed urban areas. However, phone company equipment doesn't change all that fast. While the average phone system is not vulnerable to such attacks, you can eventually find out-of-the-way places that are vulnerable if you look far enough.

Key point: Simply posessing such boxes is illegal under Title 18 USC section 1029.

Example:

blue box
The classic box the defined phreaking. Generated the 2600Hz tone that gave operator control over the line (i.e. free phone calls). ESS/SS7 made blue boxing obsolete, though in theory it still works throughout the third world (as of Y2K) and remote parts of the U.S. that still has older analog phone equipment.
beige box
Plugging your phone into somebody else's line, like your neighbor's or the pay phone down the street. Essentially a home-made lineman's handset. Usually used to make calls, but can also be used simply to eavesdrop. Call ANAC numbers in order to find out the number of the line tapped into. Note that the word "beige-box" because newbies thought that it was something special about tapping a line, but really is nothing special about it and requires no intelligence. The term is really used as a verb (beige-boxing or simply beiging) more than a noun to actually describe a box.
red box
Fools an ACTS pay phone into thinking coins have been entered. As of Y2K, many pay phones are immune to red boxes. The best are Bell and GTE boxes, though a lot of them mute the handset until coins are dropped. However, vulnerable pay phones can be found through diligent search. One of the best ways to get this to work is to record the sounds of coins as you enter them, then replay with a tape recorder (assuming you do it right -- usually sounds gets added that distorts the signal). There are also lots of WAV files on the net with the necessary tones. (Popularized in the movie Hackers.)

Example: A popular DOS (Disk Operating System) program was used in the mid-90s called "BlueBEEP that implemented many box functionality baed upon Tones.

broadcast [1]
The term "broadcast" is generic and is used in many different area. The origin of the term obviously means to cast out broadly, such as a radio broadcast.

Subdefinition: Ethernet has broadcast domains, allowing you to partially sniff some data from your neighbors, and possibly subvert it. Typical protocols that can be sniffed and subverted in this manner are: ARP, NetBIOS, MSBROWSE, rwho, bootp/DHCP, SNMP. An Ethernet broadcast address is "FF:FF:FF:FF:FF:FF".

Subdefinition: The Internet protocols TCP/IP support a feature known as a directed broadcast, which allows a remote person the ability to send a single packet to an entire subnet. This will then take advantage of the Ethernet broadcast domain once it reaches its destination. Attacks like smurf take advantage of this. A directed broadcast address looks something like 192.0.2.255, where the last integer "255" means "all devices on subnet 192.0.2.x".

Subdefinition: The special IP address of "255.255.255.255" is the local broadcast, and causes the packets to be sent to everyone locally, but not across the Internet.

broadcast domain [4]
A local network where broadcasts can be seen. Typical broadcast domains include cable-modem networks, colocation facilities, and Ethernet networks. The problem with broadcast domains is that a passive packet sniffer can discover vast amounts of information about the structure of the network. Attackers on the same broadcast domains can also broadcast packets that break into their neighbors, such as in ARP redirects.

browser [1]

Key point: Netsape and Microsoft have not yet produced a browser that is hardened against predation from hostile websites.

Key point: Disabli