Skip to content
Smarter by Design.Simpler for Business

CEF Format (HTTP) ​

About the Format ​

CEF (Common Event Format) is a standard log format developed by ArcSight and widely used in the security sector. It takes place in the Line Format list in the profile form with the CEF Format option.

The TR7 CEF format presents all the details of the HTTP requests in a structured format that the SIEM systems can parse easily. When the WAF profile is active, the attack information is also added to the logs.

Use cases

  • SIEM integration (ArcSight, Splunk, QRadar, etc.).
  • Security event monitoring (SOC).
  • Compliance and audit requirements.
  • WAF event correlation.

Supported Features ​

HTTP vService
L7 TCP vService
WAF Information
SSL Information

INFO

When the same CEF Format option is assigned to an L7 TCP vService, it produces a much shorter, connection-level line; its fields and example are on the CEF (L7 TCP) page.

Example Log (WAF Disabled) ​

text
CEF:0|TR7|TR7 ASP|v1.9|200|DBE|5|name=LOGTEST-H src=172.16.101.42 srcPort=59654 dst=172.16.102.85 dstPort=443 serverIP=172.16.102.168 serverPort=80 fCipher=TLS_AES_128_GCM_SHA256 fProtocol=TLSv1.3 sCipher=- sProtocol=- reqMethod=GET reqBase=/login.php reqQuery= reqProtocol=HTTP/1.1 reqHost=test.tr7.com reqUA=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36 reqHeaders=host: test.tr7.com\r\ncache-control: max-age\=0\r\nsec-ch-ua: \"Chromium\";v\=\"152\", \"Not?A_Brand\";v\=\"24\", \"Google Chrome\";v\=\"152\"\r\nsec-ch-ua-mobile: ?0\r\nsec-ch-ua-platform: \"Windows\"\r\nupgrade-insecure-requests: 1\r\nuser-agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/152.0.0.0 Safari\/537.36\r\naccept: text\/html,application\/xhtml+xml,application\/xml;q\=0.9,image\/avif,image\/webp,image\/apng,*\/*;q\=0.8,application\/signed-exchange;v\=b3;q\=0.7\r\nsec-fetch-site: none\r\nsec-fetch-mode: navigate\r\nsec-fetch-user: ?1\r\nsec-fetch-dest: document\r\naccept-encoding: gzip, deflate, br, zstd\r\naccept-language: en-US,en;q\=0.9\r\n\r\n resHeaders=date: Wed, 09 Sep 2026 17:41:24 GMT\r\nserver: Apache\/2.4.59 (Debian)\r\nvary: Accept-Encoding\r\ncontent-encoding: gzip\r\ncontent-length: 824\r\ncontent-type: text\/html; charset\=UTF-8\r\n\r\n reqUploadBytes=632 resDownloadBytes=1011 username=- isWafAttack=- wafInfo={}

Example Log (WAF Block) ​

text
CEF:0|TR7|TR7 ASP|v1.9|418|TR7|5|name=LOGTEST-H src=172.16.101.42 srcPort=54983 dst=172.16.102.85 dstPort=443 serverIP=- serverPort=- fCipher=TLS_AES_128_GCM_SHA256 fProtocol=TLSv1.3 sCipher=- sProtocol=- reqMethod=GET reqBase=/cmd.exe reqQuery= reqProtocol=HTTP/1.1 reqHost=test.tr7.com reqUA=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36 reqHeaders=host: test.tr7.com\r\ncache-control: max-age\=0\r\nsec-ch-ua: \"Chromium\";v\=\"152\", \"Not?A_Brand\";v\=\"24\", \"Google Chrome\";v\=\"152\"\r\nsec-ch-ua-mobile: ?0\r\nsec-ch-ua-platform: \"Windows\"\r\nupgrade-insecure-requests: 1\r\nuser-agent: Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/152.0.0.0 Safari\/537.36\r\naccept: text\/html,application\/xhtml+xml,application\/xml;q\=0.9,image\/avif,image\/webp,image\/apng,*\/*;q\=0.8,application\/signed-exchange;v\=b3;q\=0.7\r\nsec-fetch-site: none\r\nsec-fetch-mode: navigate\r\nsec-fetch-user: ?1\r\nsec-fetch-dest: document\r\naccept-encoding: gzip, deflate, br, zstd\r\naccept-language: en-US,en;q\=0.9\r\n\r\n resHeaders=- reqUploadBytes=630 resDownloadBytes=0 username=- isWafAttack=1 wafInfo={"attacks":[{"scope":"path","payload":"\/cmd.exe","id":130005,"monitor":false,"score":8}],"uid":"AC10652A:D6C76AA19A96:A10044","totalScore":8,"wafTime":1.651,"action":"block"}

CEF Header Structure ​

text
CEF:Version|Device Vendor|Device Product|Device Version|Signature ID|Name|Severity|Extension
FieldValueDescription
Version0The CEF format version
Device VendorTR7The manufacturer name
Device ProductTR7 ASPThe product name
Device Versionv1.9The format version. It is fixed; it does not change with the installed TR7 version.
Signature ID200 · 418The HTTP response status code. In a WAF block, the blocking code in the WAF profile is written (default 418).
NameDBE · TR7The source of the response (its values are in the table below)
Severity5It is fixed; TR7 does not change this value according to the severity of the event. The 0–10 range that CEF defines is only formal information.

Extension Fields ​

Network Information ​

FieldExampleDescription
nameLOGTEST-HThe vService name
src172.16.101.42The client IP address
srcPort59654The client source port
dst172.16.102.85The Frontend (vService) IP address
dstPort443The Frontend port
serverIP172.16.102.168The Backend Service IP address. If the request never reached the Backend Service (such as a WAF block), - is written.
serverPort80The Backend Service port. If the request never reached the Backend Service, - is written.

SSL/TLS Information ​

FieldExampleDescription
fCipherTLS_AES_128_GCM_SHA256The Frontend SSL cipher
fProtocolTLSv1.3The Frontend SSL protocol
sCipher-The Backend Service SSL cipher. When the connection to the Backend Service is made unencrypted, - is written.
sProtocol-The Backend Service SSL protocol. When the connection to the Backend Service is made unencrypted, - is written.

HTTP Request Information ​

FieldExampleDescription
reqMethodGETThe HTTP method
reqBase/login.phpThe request path
reqQuery(empty)The query string. When there is no query in the request, the field is written without a value in the reqQuery= form; both example logs are in this situation.
reqProtocolHTTP/1.1The HTTP protocol version
reqHosttest.tr7.comThe value of the Host header
reqUAMozilla/5.0 (Windows NT 10.0; ...User-Agent
reqHeadershost: test.tr7.com\r\n...The request headers; at most 4096 bytes are captured, the excess is cut
resHeadersdate: Wed, 09 Sep 2026 ...The response headers; at most 4096 bytes are captured. In the responses that TR7 produces itself (such as a WAF block), - is written.

Escaping

In the reqHost, reqUA, reqHeaders, resHeaders and wafInfo fields the value is encoded as JSON: the line endings are escaped in the \r\n, the slash in the \/ and the equals sign in the \= form. The max-age\=0 and charset\=UTF-8 in the example log are because of this. This escaping is not applied to the reqBase, reqQuery, reqMethod, username and name fields; the values that contain = in them (especially the query string) can shift the field boundary in strict CEF parsers.

Size and Identity Information ​

FieldExampleDescription
reqUploadBytes632The request size (bytes)
resDownloadBytes1011The size of the response read from the Backend Service (bytes); the response headers are also included. In a WAF block it is 0 because the request never reached the Backend Service; even if the blocking page is sent to the client.
username-The authenticated user; if authentication is not used, -

WAF Information ​

FieldExampleDescription
isWafAttack1Whether the request was blocked by the WAF or not. When an attack is detected and only monitored (monitor), or in the traffic within the scope of the false positive cleaner, this field does not become 1.
wafInfo{...}The WAF event details (JSON); if there is no attack, {}

isWafAttack does not mean "is there an attack"

The field becomes 1 only when blocking takes place. In monitor mode or when a rule in monitoring mode matches, wafInfo comes filled ("action":"monitor") but isWafAttack does not become 1. In order to understand whether there is an attack or not, whether the wafInfo field is empty ({}) or not is looked at.

WAF Info Structure ​

When the WAF does not detect an attack, the wafInfo field is written as an empty object ({}). When an attack is detected, it carries the details in JSON form:

json
{
  "attacks": [
    { "scope": "path", "payload": "/cmd.exe", "id": 130005, "monitor": false, "score": 8 }
  ],
  "uid": "AC10652A:D6C76AA19A96:A10044",
  "totalScore": 8,
  "wafTime": 1.651,
  "action": "block"
}
FieldDescription
attacksThe list of the detected matches. As more than one rule can match in the same request, the same rule can enter the list more than once as well.
attacks[].scopeThe component in which the attack was detected: path · query · header · form · json · xml · raw
attacks[].payloadThe detected malicious content. If the rule does not produce a payload, the description of the rule is written instead; it can be turned off completely from the WAF profile.
attacks[].idThe WAF rule ID. It is the only field printed unconditionally.
attacks[].monitorThe state of the rule itself: if true, the score of this rule is not included in the total. On its own it does not show whether the request was blocked or not.
attacks[].scoreThe rule score
uidThe unique event identifier
totalScoreThe score total of only the matches that are monitor: false. The rules in monitoring mode appear in the list with their real scores but are not included in the total; in learning mode the total remains 0.
wafTimeThe CPU time that the WAF spent on the request (ms)
actionThe applied action: block (blocked) · monitor (only recorded) · fpc (within the scope of the false positive cleaner)

INFO

The order of the fields is not fixed; while the JSON is being parsed, it must be read according to the key name. The score, scope, monitor and payload fields depend on the log field selection in the WAF profile and can be turned off; in addition, severity and the rule meta information (name, desc, category, cwe, mitre, capec, owaspWeb, owaspApi, target) can be added.

The WAF timeout record does not carry the schema

When the WAF scan times out, TR7 produces a synthetic record: totalScore 100, a single attacks entry (id 369999) and wafTime 2000. In this record the uid and action fields are not present, and isWafAttack becomes 1 without a real attack. The parsers that assume a fixed schema give an error on this line.

Name Field (Response Source) ​

ValueDescription
DBEThe response came from the default Backend Service group
be-<group>The response came from a Backend Service group selected with conditional routing
TR7TR7 produced the response (WAF block, error page, cache)
ags_daemonThe response came from the AGS portal

The values change when the report is on

If a Reports profile is assigned to the vService, the responses that TR7 produces itself are stamped with the values that name the source: WAF in a WAF block, SSL_REDIRECT in an HTTPS redirect. The same WAF block produces TR7 while the report is off and WAF while the report is on.