Importing External Custom Intelligence Feeds in CLI
You can import threat indicator feeds from external sources directly on the Security Gateway Dedicated Check Point server that runs Check Point software to inspect traffic and enforce Security Policies for connected network resources..
After you import the feeds for the first time and install policy, the Security Gateway automatically pulls and enforces the indicator file each time the feed file is updated.
The Security Gateway imports the file over HTTP or HTTPS, or by reading from a local file or local directory.
|
Important - You must import the feed files on each Security Gateway and each Cluster Member |
You can import indicator feeds in the CLI in these formats:
-
CSV in the Check Point format
-
Custom CSV in other formats
-
Snort version 2.9 or lower.
Feed's Resource
The Feed's resource for all formats can be one of these:
Resource |
Description |
Syntax Example |
||
---|---|---|---|---|
URL |
HTTP or HTTPS.
|
|
||
Local File |
Local File on the Security Gateway. |
|
||
Local Directory |
Local Directory on the Security Gateway that contains the applicable files in the correct feed format. |
|
'ioc_feeds' CLI Commands for Managing External Custom Intelligence Feeds
Use these "ioc_feeds
" commands in the Expert mode on the Security Gateway to import and manage threat indicator files.

Command |
Description |
Syntax Example |
---|---|---|
|
Shows the built-in help. |
|
|
Pushes feeds now. |
|
|
Shows all existing feeds. |
|
|
Shows details for the specified feed. |
|
|
Shows the fetching interval. |
|
|
Configures the interval (in seconds) for fetching all feeds. |
|
|
Shows the statue of the scanning mode. |
|
|
Enables ( |
|
|
Adds a new feed. Mandatory parameters:
Optional parameters:
|
Example 1 - local file feed:
Example 2 - remote feed through a proxy:
Example 3 - dry run for a remote feed:
|
|
Modifies an existing feed. Values of the feed parameters that are not specified, stay as they were before. |
|
|
Deletes existing specified feed. Mandatory parameter:
|
|
CSV Check Point and STIX Formats
Each record in CSV Check Point format and the STIX XML (STIX 1.0) format must have these fields:
Fields

-
If an optional field is empty, the default value is used.
-
If a mandatory field is empty, the Indicator
Pattern of relevant observable malicious activity in an operational cyber domain, with relevant information on how to interpret it and how to handle it. file does not load.
-
STIX 2.0 (JSON file) is not supported.
-
Custom Indicators CLI (
load_indicators
) are not supported. -
The supported STIX elements are:
Condition Type Enum and Condition Application Enum support the values Equals and Any.
Example:
<cyboxCommon:Simple_Hash_Value condition="Equals" apply_condition="ANY">

-
Use commas to separate the fields in a record
-
Enter one record per line, or use '
\n
' to separate the records -
If free text contains quotation marks, commas, or line breaks, it must be enclosed in quotation marks
-
To enclose part of free text in quotations, use double quotation marks:
"<text>"
Custom CSV Format
Custom Intelligence Feeds feature supports different kinds of CSV structure files.

-
The supported observables are:
Name
,Value
,Type
,Confidence
,Severity
,Product
,Comment
. -
Define the file's format, delimiter, and the comment lines to skip:
Use "
--format
" and specify your observables inside square brackets.Use "
--comment
" for content to ignore in the original file.Notes:
-
Content specified within the square brackets of "
--format
" is fetched from the original file. -
Content inside the square brackets of "
--comment
" is ignored.
-
-
The
Value
andType
observables are mandatory. -
The
Value
observable is specified based on its location in the original file:#<location_of_item>
.For example:
If the
Value
observable is in the 3rd place in your CSV row, enter:--format [value:#3]
-
For all other observables, you can enter their location in the original file, or specify their value.
For example, if you want the value of the
Type
observable to be the domain specified in every CSV row, enter:--format [type:domain]
-
When the feed's resource is a remote source (transport equals HTTP or HTTPS), every time the feed is fetched, it parses based on the format that was specified for this feed.
Examples

|
If you enter this command, the Security Gateway takes the domain specified in the first place of every row, and ignores anything that starts with # and the word Site.
|

|
If you enter this command, the Security Gateway takes the IP address from the 3rd place in the row, takes the comment from the second place in the row, and ignores all content preceded by #:
|
Snort Format
This feature provides an ability to load Intelligence feeds in Snort format. With the Snort format, you can enhance your overall threat detection capabilities and control over your security operation
Snort rules use signatures to define attacks. The name of the imported Snort protection is the value of the msg field in the original Snort rule Set of traffic parameters and other conditions in a Rule Base (Security Policy) that cause specified actions to be taken for a communication session.. The Snort feed size is limited to 3000 observables and 6000 rules in total. If the feed exceeds these limits, it is not loaded.
Check Point supports Snort 2.9 version and lower. Snort syntax is described in the official documentation at snort.org.
Snort Rule Syntax
|
SNORT rules have two logical parts: Rule Header and Rule Options.
-
SNORT Rule Header:
<Action> <Protocol> <Address> <Port> <Direction> <Address> <Port>
-
SNORT Rule Options:
<keyword>:"<option>"
Example for a Snort file:
This Snort rule is designed to generate an alert whenever it detects HTTP traffic containing the string ".pdf", which indicates an attempt to transfer PDF files over HTTP, potentially for blocking or further investigation
alert tcp $EXTERNAL_NET any -> $HOME_NET 80 (msg:"Block pdf files over HTTP"; content:".pdf";)
Parameter |
Description |
---|---|
|
Specifies the protocol to inspect, in this case, TCP. |
|
Defines the traffic flow direction. It instructs Snort to look for traffic from any external network ( |
|
The rule itself. It consists of a descriptive message enclosed in double quotes ( |
Supported SNORT Syntax
These are the generally supported syntax components. There are some limitations (see Unsupported SNORT Syntax).

Keyword |
Description |
|
---|---|---|
|
Specifies the original length of the content that is specified in a protected_content rule digest |
|
|
Lets you write rules with Perl-compatible regular expressions. Example:
|
|
|
Lets rules track states during a transport protocol session. Used in conjunction with conversation tracking from the Session preprocessor. Example:
|
|
|
Tests a byte field for a specific value (with operator). Example:
|
|
|
Lets you write rules that skip over specific portions of the length-encoded protocols and perform detection in very specific locations. Example:
|
|
|
Verifies that the payload has data at a specified location. Example:
|
|
|
Does not block traffic even if the rule matches. Used with the "flow bits" key word to set a flag without performing a block. Example:
|
-
Supported Content Keyword Modifiers: "
nocase
", "rawbytes
", "depth
", "offset:
", "distance:
", "within
", "urilen
" -
Supported Threshold Rule Types - Threshold, Both (Limit is not supported.)
-
Supported Macros - HTTP_PORTS (Interpreted as 80 and 8080 ports.)
|
Note - Make sure that SNORT Rules with the same flowbits flag have the same content in the msg field. Otherwise, they will not be under the same protection. |
Debugging:
The $FWDIR/log/SnortConvertor.elg
file on the Management Server Check Point Single-Domain Security Management Server or a Multi-Domain Security Management Server. contains is updated with the debug messages from the last SnortConvertor run import of SNORT rules.
To find failed rule debugs in this file, search for: Failed to convert rule
Unsupported SNORT Syntax

-
PCRE modifiers: '
G
', 'O
', 'A
' -
PCRE regular expression with lookahead assertion:
?!
-
Using
byte_test
keyword with operator not in:<
,>
,=
,&
,^
-
http_method
is not supported if it is the only http modifier type in the SNORT Rule -
Protocols:
icmp
,ip
("all
" is interpreted as UDP and TCP protocols) -
SNORT Rule without content keyword
-
All
PORT
macros, exceptHTTP_PORTS
-
Specification of source port (only "
any
" is supported) -
Specification of destination port "
any
" (you must specify an exact destination port number, or a range of destination port numbers).

-
Specification of IP Addresses - Enforced on all IP Addresses
-
HOME_NET
macro - Interpreted as "any
" IP Addresses -
EXTERNAL_NET
macro - Interpreted as "any
" IP Addresses -
HTTP_SERVERS
macro - Interpreted as "any
" IP Addresses
These combinations of keywords and modifiers are implemented differently in the IPS Check Point Software Blade on a Security Gateway that inspects and analyzes packets and data for numerous types of risks (Intrusion Prevention System). blade as SNORT protection rules than in SNORT Rules.
|
Best Practice - Test them before activating them in a production environment. |

-
rawbytes
content -
"
B
" PCRE modifiers withhttp_uri
content -
"
U
" PCRE modifiers
-
With HTTP content or PCRE modifiers
-
http_raw_uri
content or "I
" PCRE modifiers -
http_stat_msg
content or "Y
" PCRE modifiers -
http_stat_code
content or "S
" PCRE modifiers
-
-
Without HTTP content or PCRE modifiers
-
Two or more uses of
http_header
content or "H
" PCRE modifiers -
Two or more uses of
http_raw_header
content or "D
" PCRE modifiers
-
-
With 'depth' or 'offset' content and HTTP content that is one of these on the same content keyword, or '^' (carret) in 'pcre' with one of these HTTP 'pcre' modifiers on the same 'pcre' keyword
-
http_header
content or "H
" PCRE modifiers -
http_raw_header
content or "D
" PCRE modifiers -
http_stat_msg
content or "Y
" PCRE modifiers -
http_stat_code
content or "S
" PCRE modifiers -
http_uri
content or "U
" PCRE modifiers
-
-
Use of
depth
oroffset
content, or ^ (carrot) in PCRE, without any http content, and with destination ports that are notHTTP_PORTS
macro -
http_client_body
content or "P
" PCRE modifier -
A PCRE keyword with
{}
(curly braces) quantifier -
Use of both content and
byte_test
keywords -
http_header
content modifiers or "H
" PCRE modifiers enforced only on raw http data (not decoded and normalized header data) -
Use of the
urilen
keyword, except in a SNORT Rule that has onlyhttp_uri
and "U
" PCRE modifiers, orhttp_raw_uri
content modifier andI
PCRE modifiers:-
If the SNORT Rule has only
http_uri
content or "U
" PCRE modifiers, the size will be of the decoded and normalized buffer. -
If the SNORT Rule has only
http_raw_uri
content or "I
" PCRE modifiers, the size will be of the raw uri buffer.
-
SSL Services
In addition to the conventional metadata service options, Check Point supports additional keywords specifically for SSL traffic.
Snort rules for SSL traffic can be defined using the metadata keyword.
In the Snort rule options add:
metadata: service <SSL service>;
Example
|
Options for <ssl service>
Service |
Description |
---|---|
|
The sslHello service will search the Client Hello or Sever Hello depending on the flow. |
|
The sslCertificate service will search the Client Certificate or Sever Certificate depending on the flow. |
|
The sslKeyx service will search the Client Key Exchange or Sever Key Exchange depending on the flow. |
|
The sslHeartbeat will search the SSL heartbeats. |
|
The sslCiphersuite will search the Cipher Suite sent by the client. |
When you use the sslHello
, sslCertificate
, or sslKeyx
services, it is necessary to define a flow direction as either "flow: to_server
" or "flow: from_server
".
|
Note - These services and content modifiers are unique to Check Point and will not be supported by other SNORT engines. |