Skip to content

add the technology probing scenario#1776

Open
buixor wants to merge 5 commits intomasterfrom
http-technology-probing
Open

add the technology probing scenario#1776
buixor wants to merge 5 commits intomasterfrom
http-technology-probing

Conversation

@buixor
Copy link
Copy Markdown
Contributor

@buixor buixor commented Apr 16, 2026

Add a scenario that can detect probing towards specific technologies or vendors, thanks to:

For now, this scenario doesn't lead to a decision. If we're happy with the results at scale, we'll add a scenario that reprocesses overflows from this one and bans IPs that trigger X distinct technologies' probing.

Copilot AI review requested due to automatic review settings April 16, 2026 14:25
@github-actions
Copy link
Copy Markdown

Hello @buixor and thank you for your contribution!

I'm a bot that helps maintainers to validate scenarios and ensure they include all the required information.
I've found some errors in your scenarios, please fix them and re-submit your PR, or ask for help if you need it.

The following items have errors:

crowdsecurity/crs-exclusion-plugin-cpanel:

  • labels not found

crowdsecurity/crs-exclusion-plugin-dokuwiki:

  • labels not found

crowdsecurity/crs-exclusion-plugin-drupal:

  • labels not found

crowdsecurity/crs-exclusion-plugin-nextcloud:

  • labels not found

crowdsecurity/crs-exclusion-plugin-phpbb:

  • labels not found

crowdsecurity/crs-exclusion-plugin-phpmyadmin:

  • labels not found

crowdsecurity/crs-exclusion-plugin-wordpress:

  • labels not found

crowdsecurity/crs-exclusion-plugin-xenforo:

  • labels not found

Mitre ATT&CK

Information about mitre attack can be found here.
As an example, some common mitre attack techniques:

  • T1110 for bruteforce attacks
  • T1595 and T1190 for exploitation of public vulnerabilities
  • T1595 for generic scanning of exposed applications

Expected format is (where XXXX is the technique ID):

labels:
  classification:
    - attack.TXXXX

CVEs

If your scenario covers a specific CVE (Common Vulnerabilities and Exposures), please add it.

Expected format is (where CVE-XXX-XXX is the CVE ID):

labels:
  classification:
    - cve.CVE-XXX-XXX

Behaviors

Please identify the behavior(s) your scenario is targeting. You can find the list of available behaviors here.

Expected format is (where <behavior> is the behavior you want to target):

labels:
  behavior: <behavior>

See the labels documentation for more information.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new CrowdSec HTTP scenario that tags requests matching known technology/vendor probing paths (via an external lookup file), and wires it into the base HTTP collection with an accompanying test fixture.

Changes:

  • Add crowdsecurity/http-technology-probing trigger scenario that looks up http_path in technology_probing.json and sets target_techno.
  • Include the new scenario in crowdsecurity/base-http-scenarios.
  • Add a dedicated .tests/http-technology-probing dataset and assertions.

Reviewed changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
scenarios/crowdsecurity/http-technology-probing.yaml New trigger scenario performing map-based path lookup and setting target_techno.
scenarios/crowdsecurity/http-technology-probing.md Short scenario documentation.
collections/crowdsecurity/base-http-scenarios.yaml Registers the new scenario in the base HTTP collection.
.tests/http-technology-probing/config.yaml Test harness configuration for the new scenario.
.tests/http-technology-probing/http-technology-probing.log Sample nginx access log inputs (positive and negative cases).
.tests/http-technology-probing/scenario.assert Assertions validating overflows and target_techno metadata.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +3 to +6
description: "Detect generic HTTP probing"
filter: |
if (evt.Meta.service == 'http' and
evt.Meta.log_type in ['http_access-log', 'http_error-log'] and
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The scenario description says "Detect generic HTTP probing", but this scenario is specifically about technology/vendor fingerprinting (and sets target_techno). Consider updating the description to match the actual behavior so alerts/overflows are self-explanatory. Also, lines in the filter condition currently contain trailing whitespace; trimming it will avoid noisy diffs and formatting issues.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot apply changes based on this feedback

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in 3d1d8ff: I updated the scenario description to match technology/vendor probing and removed the trailing whitespace in the filter lines.

Comment thread scenarios/crowdsecurity/http-technology-probing.yaml Outdated
Comment thread scenarios/crowdsecurity/http-technology-probing.md Outdated
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@buixor
Copy link
Copy Markdown
Contributor Author

buixor commented Apr 16, 2026

  • Add it to alert context
  • Update schema

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown

Hello @buixor and thank you for your contribution!

I'm a bot that helps maintainers to validate scenarios and ensure they include all the required information.
I've found some errors in your scenarios, please fix them and re-submit your PR, or ask for help if you need it.

The following items have errors:

crowdsecurity/crs-exclusion-plugin-cpanel:

  • labels not found

crowdsecurity/crs-exclusion-plugin-dokuwiki:

  • labels not found

crowdsecurity/crs-exclusion-plugin-drupal:

  • labels not found

crowdsecurity/crs-exclusion-plugin-nextcloud:

  • labels not found

crowdsecurity/crs-exclusion-plugin-phpbb:

  • labels not found

crowdsecurity/crs-exclusion-plugin-phpmyadmin:

  • labels not found

crowdsecurity/crs-exclusion-plugin-wordpress:

  • labels not found

crowdsecurity/crs-exclusion-plugin-xenforo:

  • labels not found

Mitre ATT&CK

Information about mitre attack can be found here.
As an example, some common mitre attack techniques:

  • T1110 for bruteforce attacks
  • T1595 and T1190 for exploitation of public vulnerabilities
  • T1595 for generic scanning of exposed applications

Expected format is (where XXXX is the technique ID):

labels:
  classification:
    - attack.TXXXX

CVEs

If your scenario covers a specific CVE (Common Vulnerabilities and Exposures), please add it.

Expected format is (where CVE-XXX-XXX is the CVE ID):

labels:
  classification:
    - cve.CVE-XXX-XXX

Behaviors

Please identify the behavior(s) your scenario is targeting. You can find the list of available behaviors here.

Expected format is (where <behavior> is the behavior you want to target):

labels:
  behavior: <behavior>

See the labels documentation for more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants