Note: Produced by Thomas Jerry Scott from Web and other sources for use in his Computer Security and Firewalls classes.

Checkpoint's Stateful Inspection Table of Contents

  1. Introduction to Stateful Technology

  2. Stateful Technology in Action

  3. Using Application Layer Gateways

  4. Checkpoint's Stateful Technology Capabilities

  5. Checkpoint's INSPECT Stateful Filtering Engine

  6. Application Support in Checkpoint Firewall 1

  7. Checkpoint Firewall 1 Performance

  8. Checkpoint Products by Cost and Performance

  9. Return to the Main Menu

Return to the Beginning of This document

1.0 Introduction to Stateful Inspection Firewall Technology

In order to provide robust security, a firewall must track and control the flow of communication passing through it. To reach control decisions for TCP/IP based services (e.g., whether to accept, reject, authenticate, encrypt and/or log communication attempts), a firewall must obtain, store, retrieve and manipulate information derived from all communication layers and from other applications.

It is not sufficient to examine packets in isolation. State information - derived from past communications and other applications - is an essential factor in making the control decision for new communication attempts.

Depending upon the communication attempt, both the communication state (derived from past communications) and the application state (derived from other applications) may be critical in the control decision.

Thus, to ensure the highest level of security, a firewall must be capable of accessing, analyzing and utilizing the Communication Information it has to work with. There are three states that must be analyzed.

  1. Communication-derived State

    This is the state derived from previous communications

    For example, the outgoing PORT command of an FTP session could be saved so that an incoming FTP data connection can be verified against it.

  2. Application-derived State

    This is the state information derived from other applications

    For example, a previously authenticated user would be allowed access through the firewall for authorized services only.

  3. Information

    This is the evaluation of flexible expressions based on all the above factors.

Stateful Inspection is a firewall technology designed to meet all the security requirements defined above. Traditional firewall technologies, such as packet filters and application-layer gateways, each fall short in some areas.

Table I: Comparison of capabilities for three main firewall architectures

Firewall Capability
Packet Filters
Application-layer Gateways
Stateful Inspection
Communication Information
Communication-derived State
Application-derived State
Information Manipulation

Return to the Beginning of This document

2.0 Stateful Inspection in Action

Packet filters have been historically implemented on routers. These filters are often called "stateless" and traditionally have been able to filter on user defined content, such as IP addresses, port numbers, or direction.

They examine a packet at the network layer and are application independent, which allows them to deliver good performance and scalability.
Stateless packet filters process data only on the current packet, and thus have no memory of past packets to use in making the current filtering decision.

Stateless packet filters are the least secure type of firewall. They are not application aware-that is, they cannot understand the context of a given communication. This lack of knowledge means that they might not make the correct decision, for example, with fragments. In addition, since they have no application knowledge, they are easier for hackers to break through.

An Example Using the FTP Protocol

Packet filters have two choices with regard to outbound FTP connections. They can either leave the entire upper range (greater than 1023) of ports open which allows the file transfer session to take place over the dynamically allocated port, but exposes the internal network, or they can shut down the entire upper range of ports to secure the internal network which blocks other services. This trade-off between application support and security is not acceptable to users today.

Return to the Beginning of This document

3.0 Using Application Layer Gateways

Application gateways improve on security by examining all application layers, bringing context information into the decision process. However, they do this by breaking the client/server model. Every client/server communication requires two connections: one from the client to the firewall and one from the firewall to the server. In addition, each proxy requires a different application process, or daemon, making scalability and support for new applications a problem.

An Example FTP Application Layer Gateway

In using an FTP proxy, the application gateway duplicates the number of sessions, acting as a proxied broker between the client and the server. This approach overcomes the limitation of IP filtering by bringing application-layer awareness to the decision process. But nothing is free, and this approach introduces a possibly unacceptable performance penalty.

In addition, each service needs its own proxy, so the number of available services and their scalability is limited. Finally, this approach exposes the operating system to external threats.

Return to the Beginning of This document

4.0 Checkpoint's Stateful Inspection Capabilities

Check Point FireWall-1's Stateful Inspection overcomes
the limitations of the previous two approaches
by providing full application-layer awareness
without breaking the client/server model.

With Stateful Inspection, the packet is intercepted at the network layer, but then the INSPECT Engine takes over. It extracts state-related information required for the security decision from all application layers and maintains this information in dynamic state tables for evaluating subsequent connection attempts.

This provides a solution which is highly secure and offers maximum performance, scalability, and extensibility.

An FTP Example Using Stateful Inspection

Check Point FireWall-1's Stateful Inspection tracks the FTP session, examining FTP application-layer data. When the client requests that the server generate the back-connection (an FTP PORT command), FireWall-1 extracts the port number from the request.

Both client and server IP addresses and both port numbers are recorded in an FTP-data pending request list. When the FTP data connection is attempted, FireWall-1 examines the list and verifies that the attempt is in response to a valid request. The list of connections is maintained dynamically, so that only the required FTP ports are opened. As soon as the session is closed the ports are locked, ensuring maximum security.

Return to the Beginning of This document

5.0 Checkpoint's INSPECT Engine

Check Point FireWall-1's Stateful Inspection architecture utilizes a unique, patented INSPECT Engine which enforces the security policy on the gateway on which it resides.

The INSPECT Engine looks at all communication layers and extracts only the relevant data, enabling highly efficient operation, support for a large number of protocols and applications, and easy extensibility to new applications and services.

The INSPECT Engine is programmable using Check Point's powerful INSPECT Language. This provides important system extensibility, allowing Check Point, as well as its technology partners and end-users, to incorporate new applications, services, and protocols, without requiring new software to be loaded.

For most new applications, including most custom applications developed by end users, the communication-related behavior of the new application can be incorporated simply by modifying one of FireWall-1's built-in script templates via the graphical user interface. Even the most complex applications can be added quickly and easily via the INSPECT Language.

Check Point provides an open application programming interface (API) for third-party developers and regularly posts INSPECT Scripts to support new applications on its Web site.

When installed on a gateway, the FireWall-1 INSPECT Engine controls traffic passing between networks. The INSPECT Engine is dynamically loaded into the operating system kernel, between the Data Link and the Network layers (layers 2 and 3).

Since the data link is the actual network interface card (NIC) and the network link is the first layer of the protocol stack (for example, IP), FireWall-1 is positioned at the lowest software layer. By inspecting at this layer, FireWall-1 ensures that the INSPECT Engine intercepts and inspects all inbound and outbound packets on all interfaces.

No packet is processed by any of the higher protocol stack layers, no matter what protocol or application the packet uses, unless the INSPECT Engine first verifies that the packet complies with the security policy.

Because the INSPECT Engine has access to the 'raw message', it can inspect all the information in the message, including information relating to all the higher communication layers, as well as the message data itself (the communication- and application-derived state and context).

The INSPECT Engine examines IP addresses, port numbers, and any other information required in order to determine whether packets should be accepted, in accordance with the defined security policy.

FireWall-1's INSPECT Engine understands the internal structures of the IP protocol family and applications built on top of them. For stateless protocols such as UDP and RPC, the INSPECT Engine creates and stores context data, maintaining a virtual connection on top of the UDP communication.

The INSPECT Engine is able to extract data from the packet's application content and store it to provide context in those cases where the application does not provide it. Moreover, the INSPECT Engine is able to dynamically allow and disallow connections as necessary. These dynamic capabilities are designed to provide the highest level of security for complex protocols, but the user may disable them if they are not required.

The INSPECT Engine's ability to look inside a packet enables it to allow certain commands within an application while disallowing others. For example, the INSPECT Engine can allow an ICMP ping while disallowing redirects, or allow SNMP gets while disallowing sets, and so on.

The INSPECT Engine can store and retrieve values in tables (providing dynamic context) and perform logical or arithmetic operations on data in any part of the packet. In addition to the operations compiled from the security policy, the user can write his or her own expressions.

Unlike other security solutions, FireWall-1's Stateful Inspection architecture intercepts, analyzes, and takes action on all communications before they enter the operating system of the gateway machine, ensuring the full security and integrity of the network. Cumulative data from the communication and application states, network configuration and security rules, are used to generate an appropriate action, either accepting, rejecting, authenticating, or encrypting the communication.

Any traffic not explicitly allowed by the security rules is dropped by default and real-time security alerts and logs are generated, providing the system manager with complete network status.

Return to the Beginning of This document

6.0 Application Support in Checkpoint Firewall-1

Check Point FireWall-1's Stateful Inspection implementation supports hundreds of pre-defined applications, services, and protocols. This technology supports more protocols more than any other firewall vendor.

Support is provided for all major Internet services, including secure Web browsers, the traditional set of Internet applications (e.g. mail, FTP, Telnet, etc.), the entire TCP family, and connectionless protocols such as RPC and UDP-based applications.

In addition, only FireWall-1's Stateful Inspection offers support for critical business applications such as Oracle SQL*Net database access and emerging multimedia applications such as RealAudio, VDOLive, and Internet Phone.

Some of the complex protocols uniquely secured by Check Point FireWall-1's Stateful Inspection implementation are described below.

Securing Connectionless Protocols such as UDP

UDP (User Datagram Protocol)-based applications (DNS, WAIS, Archie, etc.) are difficult to filter with simplistic packet-filtering techniques because in UDP, there is no distinction between a request and a response. In the past, the choice has been to either eliminate UDP sessions entirely or to open a large portion of the UDP range to bi-directional communication, and thus to expose the internal network.

FireWall-1's Stateful Inspection implementation secures UDP-based applications by maintaining a virtual connection on top of UDP communications. FireWall-1's INSPECT Engine maintains state information for each session through the gateway.

Each UDP request packet permitted to cross the firewall is recorded, and UDP packets traveling in the opposite direction are verified against the list of pending sessions to ensure that each UDP packet is in an authorized context.

A packet that is a genuine response to a request is delivered and all others are dropped. If a response does not arrive within the specified time period, the connection times out. In this way, all attacks are blocked, while UDP applications can be utilized securely.

Securing Dynamically Allocated Port Connections such as RPC

Simple tracking of port numbers fails for RPC (Remote Procedure Call) because RPC-based services (NFS, NIS) do not use pre-defined port numbers. Port allocation is dynamic and often changes over time. FireWall-1's INSPECT Engine dynamically and transparently tracks RPC port numbers using the port mappers in the system.

TCP/IP Services mapped to 7-layer OSI model

The INSPECT Engine tracks initial portmapper requests and maintains a cache that maps RPC program numbers to their associated port numbers and servers. Whenever the INSPECT Engine examines a rule in which an RPC-based service is involved, it consults the cache, comparing the port numbers in the packet and cache and verifying that the program number bound to the port is the one specified in the rule.

If the port number in the packet is not in the cache (this can occur when an application relies on prior knowledge of port numbers and initiates communication without first issuing a portmapper request) the INSPECT Engine issues its own request to portmapper and verifies the program number found to the port.

Return to the Beginning of This document

7.0 Checkpoint Firewall 1 Performance Issues

The simple and effective design of FireWall-1's INSPECT Engine achieves optimum performance as follows:
  1. Running inside the operating-system kernel imposes negligible overhead in processing.

  2. No context switching is required, and low-latency operation is achieved.

  3. Advanced memory management techniques, such as caching and hash tables, are used to unify multiple object instances and to efficiently access data.

  4. Generic and simple inspection mechanisms are combined with a packet inspection optimizer to ensure optimal utilization of modern CPU and OS designs.

Return to the Beginning of This document

Checkpoint Appliance and other Firewall Solutions

Price (USD)
(1.5 Mbps)
100+ Mbps
200+ Mbps
500+ Mbps
1+ Gbps
3+ Gbps
Less than $500 Celestix Orion
Intrusion PDS 500
Nokia IP30
SofaWare - S-box
VPN Dynamics V4
- SecurePlatform - Basic
With Performance Pack
Linux - Basic
- - -
Less than $1,000 Celestix FV335
Celestix FV435
Intrusion PDS 1105
Nokia IP51
Nokia IP71
SlotShield 1000
VPN Dynamics V6
Advantech FWA-230
Intrusion PDS 2105
Solaris - Basic
$1,000 - $2,500  

Celestix FV830
Celestix VP400
Nokia IP110
Nokia IP120
SlotShield 3000
Sun Integ. Security Solution

Barbedwires IP Warrior 100
Barbedwires IP Warrior 500
Intrusion PDS 2315
Linux - Mid Range
Pyramid - Charlie
RLX 100ex
RLX 300ex
Windows - Basic
  SecurePlatform -Mid-Range
With Performance Pack
$2,500 - $5,000  

Celestix FV831
Nokia IP330

Celestix FV930
Pyramid - Charlie XL
RapidStream 2100
Intrusion PDS 2415
Intrusion PDS 5115

Windows - Mid Range
IBM x330
HP/Compaq DL320
Linux -High Performance SecurePlatform - High Performance
With Performance Pack
$5,000 - $10,000      Intrusion PDS 5315
Intrusion PDS 5415
Intrusion PDS 5515
Nokia IP350
Siemens - 4Your Safety
HP/Compaq DL360
HP/Compaq DL380 G2
Nokia IP380
Windows - High Performance
$10,000 - $20,000  
Nokia IP440
Resilience Secur-FT
RapidStream 6100
HP/Compaq DL580
Intrusion PDS 7215
Nokia IP530
Nortel ASF 5112
Nortel ASF 5308
Nortel ASF 5408
Solaris - Mid Range
Intrusion PDS 7315
Resilience DX4000
Nokia IP650
Nokia IP710
RapidStream 8100
Solaris - High Performance
With Performance Pack

Bivio 1000-CP
Nokia IP740
Crossbeam X40S
Nortel ASF 5610
Nortel ASF 5710

Return to the Beginning of This document