Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cherry-pick #19713 to 7.x: Add 21 autogenerated filesets from rsa2elk devices #19868

Merged
merged 1 commit into from
Jul 14, 2020

Conversation

adriansr
Copy link
Contributor

@adriansr adriansr commented Jul 14, 2020

Cherry-pick of PR #19713 to 7.x branch. Original message:

What does this PR do?

This adds the following experimental filesets based on Apache 2 license device parsers:

Why is it important?

This is an effort to generate as many as possible experimental input sources from a set of 300 Apache2-licensed log parsers.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Notes to reviewers

The modules in this PR are autogenerated. All follow the same format:

sonicwall/
├── README.md
├── _meta
│   ├── config.yml
│   ├── docs.asciidoc
│   └── fields.yml
└── firewall
    ├── _meta
    │   └── fields.yml
    ├── config
    │   ├── input.yml
    │   ├── liblogparser.js
    │   └── pipeline.js
    ├── ingest
    │   └── pipeline.yml
    ├── manifest.yml
    └── test
        ├── generated.log
        └── generated.log-expected.json

The README.md, config.yml, docs.asciidoc and fields.yml are the same, basically replacing the module/vendor/product name.

Same for input.yml and manifest.yml. They define the same variables and inputs (tcp, udp and file).

The generated.log files are autogenerated by the same program that converts the original XML files to Javascript. Generating logs using parser's patterns (some with overlap) and user-defined field names is hard. Some generated logs make more sense than others.

A few selected modules contain real logs that we were able to obtain from other sources. Currently:

  • squid
  • zscaler

The liblogparser.js is the helper Javascript library for the parser. It's important to review this file. It's the same for all filesets.

The pipeline.js is the autogenerated pipeline. Contains all the parsers and actions defined in the source XML. We're aware that some of these parsers are outdated and some partly broken regarding extra whitespace in patterns. There will be an ongoing effort to fix them.

A couple of modules already existed:

  • cisco (new fileset nexus)
  • fortinet (new fileset clientendpoint)

In this case the _meta/config.yml and _meta/docs.asciidoc have been merged automatically.


Some parsers are currently broken (have tags: dissect_parsing_error). I'm working on fixing those.


The code for the generator is in https://github.com/adriansr/nwdevice2filebeat

@botelastic botelastic bot added the needs_team Indicates that the issue/PR needs a Team:* label label Jul 14, 2020
@elasticmachine
Copy link
Collaborator

Pinging @elastic/siem (Team:SIEM)

@botelastic botelastic bot removed the needs_team Indicates that the issue/PR needs a Team:* label label Jul 14, 2020
@adriansr
Copy link
Contributor Author

jenkins, test this

@adriansr
Copy link
Contributor Author

rebased

This adds the following experimental filesets based on Apache 2 license
device parsers:

- tomcat.log
- netscout.sightline
- barracuda.waf
- f5.bigipapm
- bluecoat.director
- cisco.nexus
- citrix.virtualapps
- cylance.protect
- f5.firepass
- fortinet.clientendpoint
- imperva.securesphere
- infoblox.nios
- juniper.junos
- kaspersky.av
- microsoft.dhcp
- tenable.nessus_security
- rapid7.nexpose
- radware.defensepro
- sonicwall.firewall
- squid.log
- zscaler.zia

(cherry picked from commit 6d0dc62)
@adriansr adriansr merged commit a8e4c2c into elastic:7.x Jul 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants