Skip to content

Parser Guidelines

Apply the following guidelines when creating a parser:

  • Define test cases that exercise all parser logic.
    • Personally identifiable information (PII), such as IP addresses, URLs, user names, and email addresses, are not allowed for use in packages.
    • Use valid test data instead of PII. For more info, see Parser sample data.
    • Avoid including third-party assets, such as company names and domain names, unless they are directly related to the test.
  • Add comments that fully describe the parser logic.
  • Use CPS-compliant fields to set individual parser fields. For more info, see CPS compliant parser fields.
  • Create custom parsers based on the following assumptions:
    • They receive one event at a time.
    • Ensure events are not in bulk when they reach the parser.
    • When logs are sent in bulk to the parser, the parser needs to be customized to split them into separate events.
    • They receive events that are not wrapped in custom transport layers. For example, if logs are wrapped in a layer of JSON, the parser needs to be customized to remove the data wrapper.
  • Use the parser template when creating parsers. For more info, see Parser template.
  • Ensure that any explicitly supported transport methods align with these guidelines.

We strongly recommend including sample data for tests in parsers and example data in your packages for demonstration purposes. Review the following info for guidelines on how to create good sample data for your packages. For more info, see Wikipedia’s Placeholder names.

We encourage using John Doe and Jane Doe in sample data.

Acme is a common company that you can use in sample data, you can also use Octan.

This table presents a selection of example domain names to demonstrate typical formats and structures.

NamePurpose
example.comCompletely generic domain that’s reserved for example data. For more info, see RFC 2606.
example.netCompletely generic domain that’s reserved for example data. For more info, see RFC 2606.
example.orgCompletely generic domain that’s reserved for example data. For more info, see RFC 2606.
*.exampleTop level domain reserved for somewhat relatable data, such as acme.example.com
mitre.orgSince Mitre is referenced in many security use-cases, it is okay to use in sample data.

E-mail addresses can include almost any combination of human names and domain names, as long as they align with general rules for email addresses. See this table for some common examples.

AddressPurpose
johndoe@example.comA random, private person.
janedoe@acme.exampleAn employee of a company named Acme.

Generic addresses

Common generic local parts are also allowed. This list is not exhaustive, but it is meant to provide guidance.

AddressPurpose
noreply@example.comCommonly used email company mailbox
info@example.comCommonly used company public mailbox
mailer-demon@example.comSystem mailbox
postmaster@example.comSystem mailbox
abuse@example.comAbuse mailbox
webmaster@example.comHomepage author mailbox

While IP addresses are public information, we recommend not to use any public routable IPs. The unknown history of IP addresses and lack of control over associated data usage pose potential risks. To mitigate these risks, we advise using non-routable IP addresses, ensuring they cannot be externally accessed.

Private networks

For local networks, we recommend using RFC 1918 networks.

BlockPurpose
10.0.0.0/8Private-Use Network
172.16.0.0/12Private-Use Network
192.168.0.0/16Private-Use Network
169.254.0.0/16, fe80::/10Link-Local addresses
224.0.0.0/4Multicast network. Typically used for devices to locate eachother behind the same firewall
fc00::/7Unique Local Addresses
ff00::/8Multicast Addresses RFC 4291

Public networks

For public networks, we generally only allow TEST-NET blocks, with a few exceptions. The list of exceptions is growing, so direct any requests for additional networks to humio_packages@crowdstrike.com.

Note: We generally only allow IPs of services that are specific to an IP address, such as DNS.

BlockPurpose
192.0.2.0/24TEST-NET-1. For more info, see RFC 5737.
198.51.100.0/24TEST-NET-2. For more info, see RFC 5737.
203.0.113.0/24TEST-NET-3. For more info, see RFC 5737.
1.1.1.1, 1.0.0.1CloudFlare DNS
8.8.8.8, 8.8.4.4Google DNS
2001:db8::/32Reserved for documentation and examples
2001:4860:4860::8888, 2001:4860:4860::8844Google DNS
2606:4700:4700::1111, 2606:4700:4700::1001CloudFoundry DNS