ActionScripting in Flash MX

5.1 The driving forces and issues behind security

Security products are still relatively immature and weakly integrated. It is, therefore, all the more important that the technologies you select provide a broad, cooperative, and tested security solution that complements the overall security policy you have established. The solution should, at a minimum, satisfy the five primary security functions, as follows:

Typically this will involve a combination of firewalls, encryption systems, and authentication systems. A layered approach stands a much better chance of alerting you to potential problems. The challenge to provide security for internal networks becomes increasingly difficult as more users access the Internet, internal networks grow in size and complexity, and the range of potential problems expands with new distributed applications and the move toward mobile internetworking. The task of identifying critical or sensitive resources and the threats placed upon them is essentially a process of identifying and quantifying risk. There may be less obvious risks associated with a resource—for example, if confidential user information (age, address, telephone numbers) is held on a networked database, there may be a legal imperative for a company to protect such resources to comply with data protection legislation.

We will first review some of the most common security attacks and illustrate some of the basic vulnerabilities inherent in common data networking protocols and services.

5.1.1 Classifying attacks

Networks need protection against malicious attacks and information leaks from both inside and outside the network, and the former is considerably harder than the latter. Attacks can be classified according to a number of broad characteristics, as follows:

5.1.2 Application and protocol vulnerability

Many of the common network protocols and services in use today were designed originally without any security in mind, and their many vulnerabilities to security threats are widely documented. The IP protocol suite is a good example, designed for straightforward data communications. Although the latest version of IP (IPv6) has mandatory security elements in place, there were no security features built into IPv4 (the protocol was extended subsequently via security options, but these are not widely used). Likewise, TCP, UDP, and many of the services running above them are inherently insecure. This section reviews some of the basic vulnerabilities associated with these services and protocols. It is not meant to be exhaustive; for more information, refer to [3].

ICMP

ICMP is essentially the diagnostic service that runs over IP. There are several exploits based on ICMP, including ping of death, ping sweep, and other hacks based on ICMP redirects and source quench.

Internet Protocol (IP)

IP is a connectionless network service. The next generation of IP (IPv6) includes two key enhancements to improve security: authentication and privacy. IPv6 requires the sender to log in to the receiver. If a sender does not have the prerequisite access rights, he or she cannot access the resource. Privacy is optionally provided by using encryption techniques to protect data. Privacy and authentication are provided by security associations. Either encryption or authentication can be applied first.

User Datagram Protocol (UDP)

Since UDP is connectionless, UDP services are somewhat vulnerable to attack, although many of the original deficiencies have since been resolved. Table 5.1 lists port numbers associated with commonly used UDP protocols.

Table 5.1: Well-known Port Numbers for UDP and TCP Services

Application

Protocol

Port No

Application

Protocol

Port No

Reserved

TCP&UDP

0

ISO-TSAP

TCP

102

Remote Job Entry

TCP

5

X.400

TCP

103

Echo

TCP

7

X.400 Sending Service

TCP

104

Discard

TCP

9

SUN Remote Procedure Call (RPC)

UDP

111

Systat

TCP

11

Network News Transfer Protocol (NNTP)

TCP

119

Daytime

TCP

13

Network Time Protocol (NTP)

TCP&UDP

123

NetStat

TCP

15

NetBIOS session source

TCP

139

Quote of the Day (Qotd)

TCP

17

NeWS

TCP

144

File Transfer Protocol (FTP) Data

TCP

20

Simple Network Management Protocol (SNMP)

UDP

161

File Transfer Protocol (FTP) Control

TCP

21

SNMP (traps)

UDP

162

Telnet

TCP

23

Border Gateway Protocol (BGP)

TCP

179

Simple Mail Transfer Protocol (SMTP)

TCP

25

exec

TCP

512

time

TCP

37

rlogin

TCP

513

TACACS

UDP

49

rexec

TCP

514

Domain Name Server (DNS)

TCP&UDP

53

Line Printer Daemon (Ipd)

TCP

515

Trivial File Transfer Protocol (TFTP)

UDP

69

talk

TCP&UDP

517

Gopher

TCP

70

ntalk

TCP&UDP

518

Finger

TCP

79

Open Windows (Sun)

TCP&UDP

2000

World Wide Web (HTTP)

TCP

80

Network File System (NFS)

UDP

2049

Kerberos

TCP

88

X11

TCP&UDP

6000+

TCP

TCP is connection oriented. Although more difficult to hack than UDP, there are, nevertheless, well-known hacks that have been used, particularly to deny service. Table 5.1 lists port numbers associated with commonly used TCP protocols. One of the best-known security exploits using TCP is called the SYN Attack. This uses knowledge of the TCP three-way handshake.

Telnet

Telnet is a virtual terminal protocol that runs over TCP (port 23). It is the basic remote access terminal emulator that runs on a range of hosts and operating systems, including native router and firewall OSs. There are several issues with Telnet that are dealt with by a range of authentication mechanisms. From the client perspective one of the potential problems is users leaving authenticated Telnet sessions open.

File Transfer Protocol (FTP)

FTP is used for file transfer and runs over TCP (ports 20/21). It has several security holes. The user name and password used with FTP sessions are transmitted in cleartext and can be accessed by any serious hacker. Anonymous FTP service allows anyone to access a host, without requiring a user account. FTP uses two types of sessions: a control session (TCP port 21) for managing the connection and dynamic data sessions (TCP port 20) for carrying information requested by the user.

Hypertext Transfer Protocol (HTTP)

HTTP is a stateless, object-oriented protocol that runs over TCP port 80. HTTPv1.0 is supported by all Web servers in the market today. A variation, called HTTP-NG (next generation), is being developed to use bandwidth more efficiently. HTTP is highly flexible and makes it difficult to secure resources effectively. You need to be cautious in particular about proxy and gateway applications. HTTP can forward requests to other applications called viewers if it cannot understand the data it receives. HTTP also allows users to execute commands remotely. HTTP allows sensitive log information to be retrieved without authentication. HTTP proxies are men in the middle, the perfect place for a man-in-the-middle attack. A discussion of this is found in section 15 of [4].

Trivial File Transfer Protocol (TFTP)

TFTP runs over UDP. TFTP is mainly used for transferring boot images or configuration data for networked devices that have no local permanent storage and is designed to function without operator intervention. Consequently, it allows unauthorized remote access to file systems, since it does not require a user or password to initiate automated data transfer. For example, on the AIXv3.x operating system remote users could upload /etc/ passwd! One of the problems of TFTP from the firewall perspective is that it dynamically changes ports once a connection is established (i.e., a session starts by using destination port 69 and is then handed off to a new port number from the pool—this clearly cannot be handled by static filters and requires real stateful session and protocol tracking).

Simple Mail Transfer Protocol (SMTP)

SMTP is vulnerable to several attacks. E-mail bombing is an attack that can form a denial-of-service attack by overloading the mail server. In e-mail spamming a malicious user (spammer) sends thousands of copies of an e-mail to several mailing lists. Another twist to this problem is e-mail hijacking, in which the spammer uses your mail relay to forward this spam mail. Potential vulnerability is present, since e-mail servers do not receive the same degree of attention as Web servers, These exploit otherwise legal applications, and security tends to be more lapse. A recent study [5] found that 38 percent of mail servers in .gov domains had security weaknesses.

Domain Name Service (DNS)

DNS is used to convert IP addresses to domain names and vice versa. The protocol has no authentication, and recipients of DNS data automatically assume responses to be valid. There are several techniques that can be employed to modify how the DNS system works, as follows:

A hacker can corrupt zone information or spoof DNS and offer incorrect name-address associations, causing a denial-of-service attack by rerouting connections or worse, still, allowing the hacker to redirect sensitive information to his or her own machine.

WWW Server Side Includes (SSI)

Many Web servers use some sort of Server Side Include (SSI) to maintain state. This allows a Web server to recognize a previous visitor and maintain the illusion of a session. This may allow the Web user to custom generate HTML code for the particular user. Unfortunately, sometimes the SSI feature is used for security purposes. By spoofing the SSI, a Web user can access other sessions that contain sensitive information.

Other services

There are also a number of nonstandard services that provide value-added services for Internet and WWW access; they are quite sophisticated and difficult to handle from the security perspective. Examples of these services are World Wide Web (WWW), Wide Area Information Service (WAIS), Gopher, and Mosaic. Historically, the PoP and REXEC services have been targets of brute-force attempts simply because they did not have their login failures logged.

5.1.3 Operating system vulnerability

The ease of use of open network access is in many ways in direct conflict with the provisioning of tight security. Serious vulnerabilities include buffer overruns, inadequate authentication/password protection mechanisms, and the ability to download executable code onto hosts. These types of known vulnerabilities still enable unscrupulous users to crash systems remotely, steal or destroy valuable data, or gather information that enables them to mount a more sophisticated attack later on. Well-known UNIX vulnerabilities exist with services such as echo, chargen, portmap, the r-utilities, rstatd, and tooltalk, and these should be secured, particularly on public-facing servers. Another worrying trend for security designers is the increasing complexity of operating systems (see Figure 5.1). In Figure 5.1 the number of system calls available in Windows also dwarfs other operating systems. For example, Windows NT 4.0 has nearly 3,500 system calls compared with various flavors of UNIX and LINUX with less than 300.

Figure 5.1: Growth in complexity of the Microsoft Windows operating systems between 1992 and 2000, showing the estimated number of lines of code used in each OS [2].

The best approach to protect your OS is to ensure that it is patched at the very latest level and that your firewall and intrusion detection systems are armed with the latest attack signatures. Another factor to consider is the level of certification offered. For further information, refer to [6].

5.1.4 Third-party trust vulnerabilities

Security is largely dependent upon trust, and data networks today often need to allow third parties to access their resources for business or operational reasons based solely on who they are (e.g., extranet applications, VPNs, or home working). Some examples are as follows:

5.1.5 Well-known attacks

There are many well-known attacks that exploit security weaknesses in operating systems, applications, and protocols. Figure 5.2 illustrates some of the key areas of the IP stack where vulnerabilities are mounted.

Figure 5.2: Common protocol features used for IP-based hacking.

Some of the better-known attacks, together with a brief description, are as follows:

For more detailed information on security exploits, many of the attack signatures required to identify and deal with these hacks are discussed in [6].

Категории