Introduction

The Sourcefire Event Streamer (also known as eStreamer) allows you to stream Sourcefire 3D System intrusion, discovery, and connection data from the Sourcefire Defense Center or managed device (also referred to as the eStreamer server) to external client applications.

Note that eStreamer is not supported on virtual devices. To stream events from a virtual device, you can configure eStreamer on the Defense Center that the device reports to.

eStreamer uses a custom application layer protocol to communicate with connected client applications. As the purpose of eStreamer is simply to return data that the client requests, the majority of this guide describes the eStreamer formats for the requested data.

There are three major steps to creating and integrating an eStreamer client with a Sourcefire 3D System:

  1. Write a client application that exchanges messages with the Defense Center or managed device using the eStreamer application protocol. The eStreamer SDK includes a reference client application.
  2. Configure a Defense Center or device to send the required type of events to your client application.
  3. Connect your client application to the Defense Center or device and begin exchanging data.

This guide provides the information you need to successfully create and run an eStreamer Version 5.3 client application.

Major Changes in eStreamer Version 5.3.1

If you are upgrading your Sourcefire 3D System deployment to Version 5.3, please note the following changes, some of which may require you to update your eStreamer client:

pact alerts can now handle IPv6 events. See Intrusion Impact Alert Data 5.3+ for more information. Added the following data structures:

• Added IOC State Data Block for 5.3+ to provide information on the dynamic analysis of files.

• Added IOC Name Data Block for 5.3+ to provide information about Indications of Compromise (IOCs).

placed the following blocks:

• Replaced Full Host Profile Data Block 5.2.x with Full Host Profile Data Block 5.3+, which has new fields supporting IOC information.

• Replaced Connection Statistics Data Block 5.2.x with Connection Statistics Data Block 5.3.1+, which has fields for NetFlow support.

• Replaced Malware Event Data Block 5.2.x with Malware Event Data Block 5.3.1+, which has new fields supporting IOC information.

• Replaced File Event for 5.2.x with File Event for 5.3.1+, which has new fields supporting IOC information.

• Replaced Intrusion Event Record 5.2.x with Intrusion Event Record 5.3.1+, which has new fields supporting IOC information.

Using this Guide

At the highest level, the eStreamer service is a mechanism for streaming data from the Sourcefire 3D System to a requesting client. The service can stream the following categories of data:

  • Intrusion event data and event extra data

rrelation (compliance) event data

scovery event data

er event data

tadata for events

st information

  • Malware event data

Descriptions of the data structures returned by eStreamer make up the majority of this book. The chapters in the book are:

  • Chapter 2, Understanding the eStreamer Application Protocol, which provides an overview of eStreamer communications, details some of the requirements for writing eStreamer client applications, and describes the four types of messages used to send commands to and receive data from the eStreamer service.

apter 3, Understanding Intrusion and Correlation Data Structures, which documents the data formats used to return event data generated by the intrusion detection and correlation components and the data formats used to represent the intrusion and correlation events.

apter 4, Understanding Discovery & Connection Data Structures, which documents the data formats used to return discovery, user, and connection event data.

apter 5, Understanding Host Data Structures, which documents the data formats that eStreamer uses to return full host information data when it receives a host information request message.

apter 6, Configuring eStreamer, which documents how to configure the eStreamer on a Defense Center or managed device. The chapter also documents the eStreamer command-line switches and provides instructions for manually starting and stopping the eStreamer service and for configuring the Defense Center or managed device to start eStreamer automatically.

pendix A, Data Structure Examples, which provides examples of eStreamer message packets in binary format.

  • Appendix B, Understanding Legacy Data Structures, which documents the structure of legacy data structures that are no longer in use by the currently shipping product but may be used by older clients.

Prerequisites

To understand the information in this guide, you should be familiar with the features and nomenclature of the Sourcefire 3D System and the function of its components in general, and with the different types of event data these components generate in particular. Definitions of unfamiliar or product-specific terms can frequently be obtained from the Sourcefire 3D System eStreamer Integration Guide.

Product Versions for Sourcefire 3D System Releases

Version numbers are used throughout this guide to describe the data format for events generated by the Sourcefire Device and Defense Center. The Sourcefire 3D System Product Versions lists versions for each product by major release.

 
Sourcefire 3D System Product Versions

Release

Defense Center Version

Master Defense Center Version

Intrusion Sensor Version

Sensor Version

Sourcefire Device Version

Sourcefire IMS 3.0

Management Console 3.0

N/A

Network Sensor 3.0

N/A

N/A

Sourcefire IMS 3.1

Management Console 3.1

N/A

Network Sensor 3.1

RNA Sensor 1.0

N/A

Sourcefire IMS 3.2

Management Console 3.2

N/A

Network Sensor 3.2

RNA Sensor 2.0

N/A

Sourcefire 3D 4.0

Defense Center 4.0

N/A

Intrusion Sensor 4.0

RNA Sensor 3.0

N/A

Sourcefire 3D 4.5

Defense Center 4.5

N/A

Intrusion Sensor 4.5

RNA Sensor 3.5

N/A

Sourcefire 3D 4.6.1

Defense Center 4.6.1

Master Defense Center 4.6.1

N/A

N/A

Device 4.6.1

Sourcefire 3D 4.7

Defense Center 4.7

Master Defense Center 4.7

N/A

N/A

Device 4.7

Sourcefire 3D 4.8

Defense Center 4.8

Master Defense Center 4.8

N/A

N/A

Device 4.8

Sourcefire 3D 4.8.0.2

Defense Center 4.8.0.2

Master Defense Center 4.8.0.2

N/A

N/A

Device 4.8.0.2

Sourcefire 3D 4.9

Defense Center 4.9

Master Defense Center 4.9

N/A

N/A

Device 4.9

Sourcefire 3D 4.9.1

Defense Center 4.9.1

Master Defense Center 4.9.1

N/A

N/A

Device 4.9.1

Sourcefire 3D 4.10

Defense Center 4.10

Master Defense Center 4.10

N/A

N/A

Device 4.10

Sourcefire 3D 4.10.1

Defense Center 4.10.1

Master Defense Center 4.10.1

N/A

N/A

Device 4.10.1

Sourcefire 3D 4.10.2

Defense Center 4.10.2

Master Defense Center 4.10.2

N/A

N/A

Device 4.10.2

Sourcefire 3D 5.0

Defense Center 5.0

N/A

N/A

N/A

Device 5.0

Sourcefire 3D 5.1

Defense Center 5.1

N/A

N/A

N/A

Device 5.1

Sourcefire 3D 5.1.1

Defense Center 5.1.1

N/A

N/A

N/A

Device 5.1.1

Sourcefire 3D 5.2

Defense Center 5.2

N/A

N/A

N/A

Device 5.2

Sourcefire 3D 5.3

Defense Center 5.3

N/A

N/A

N/A

Device 5.3

Document Conventions

The eStreamer Message Data Type Conventions lists the names used in this book to describe the various data field formats employed in eStreamer messages. Numeric constants used by the eStreamer service are typically unsigned integer values. Bit fields use low-order bits unless otherwise noted. For example, in a one byte field containing five bits of flag data, the low-order five bits will contain the data.

 
eStreamer Message Data Type Conventions

Data Type

Description

nn-bit field

Bit field of nn bits

byte

8-bit byte containing data of arbitrary format

int8

Signed 8-bit byte

uint8

Unsigned 8-bit byte

int16

Signed 16-bit integer

uint16

Unsigned 16-bit integer

int32

Signed 32-bit integer

uint32

Unsigned 32-bit integer

uint64

Unsigned 64-bit integer

string

Variable length field containing character data

[n]

Array subscript following any of the above data types to indicate n instances of the indicated data type, for example, uint8[4]

variable

Collection of various data types

BLOB

Binary object of unspecified type, typically raw data as captured from a packet

IP Addresses

The Sourcefire database stores IPv4 and IPv6 addresses in the same fields in a BINARY format. To get IPv6 addresses, convert to hex notation, for example: 20010db8000000000000000000004321. The database follows the RFC for storing IPv4 addresses by filling in bits 80-95 with 1’s, which yields an invalid IPv6 address. For example, the IPv4 address 10.5.15.1 would be stored as 00000000000000000000FFFF0A050F01.