From ddc473b00c768cf719fdd660261c81fba2c3852a Mon Sep 17 00:00:00 2001 From: xulianh Date: Wed, 1 Jul 2026 00:21:31 +0000 Subject: [PATCH 1/2] feat(xray): add brute-force scenario and parser --- parsers/s01-parse/xulianh/xray-logs.md | 44 ++++++++++++++++++++++++ parsers/s01-parse/xulianh/xray-logs.yaml | 15 ++++++++ scenarios/xulianh/tests/xray_sample.log | 10 ++++++ scenarios/xulianh/xray-brute-force.md | 43 +++++++++++++++++++++++ scenarios/xulianh/xray-brute-force.yaml | 12 +++++++ 5 files changed, 124 insertions(+) create mode 100644 parsers/s01-parse/xulianh/xray-logs.md create mode 100644 parsers/s01-parse/xulianh/xray-logs.yaml create mode 100644 scenarios/xulianh/tests/xray_sample.log create mode 100644 scenarios/xulianh/xray-brute-force.md create mode 100644 scenarios/xulianh/xray-brute-force.yaml diff --git a/parsers/s01-parse/xulianh/xray-logs.md b/parsers/s01-parse/xulianh/xray-logs.md new file mode 100644 index 00000000000..0152f0f12fb --- /dev/null +++ b/parsers/s01-parse/xulianh/xray-logs.md @@ -0,0 +1,44 @@ +--- +author: xulianh +classification: + - AppSec + - Proxy +tags: + - xray + - brute-force +--- + +# X-ray Log Parser + +## Description +This parser is designed to extract relevant security events from X-ray proxy service logs. It specifically targets connection logs to identify connection states and source IP addresses. + +## Acquisition Configuration +To allow this parser to process the logs, add the following configuration to your `/etc/crowdsec/acquis.d/xray.yaml` file: + +filenames: + - /var/log/xray/access.log +labels: + type: xray + +## Extraction Logic + +The component utilizes Grok patterns to process the `message` field of incoming logs matching the `xray` program identifier. + +* **Target Variables:** + * `evt.Parsed.action`: Captures the connection outcome (e.g., `rejected`). + * `evt.Parsed.source_ip`: Isolates the originating IPv4/IPv6 address. + +### Architecture Flow + + [Raw X-ray Log] --> [xulianh/xray-logs Parser] --> [Extracted Meta-fields] + | + v + [Available for Scenarios] + +## Validation and Testing +To validate the extraction logic against a local log file, utilize the CrowdSec CLI explain command: + +cscli explain --parser ./parsers/s01-parse/xulianh/xray-logs.yaml --log ./tests/xray_sample.log + +Ensure that the output explicitly shows the `action` and `source_ip` fields populated correctly. diff --git a/parsers/s01-parse/xulianh/xray-logs.yaml b/parsers/s01-parse/xulianh/xray-logs.yaml new file mode 100644 index 00000000000..c6bb514c305 --- /dev/null +++ b/parsers/s01-parse/xulianh/xray-logs.yaml @@ -0,0 +1,15 @@ +name: custom/xray-logs +description: "Syntax analizer for x-ray's access recordsy" +filter: "evt.Parsed.program == 'xray'" +onsuccess: next_stage +nodes: + - grok: + pattern: '^(?P