Warning: Undefined array key "skin" in /home/nizo0755/beamreactor.com/lib/functions.lib.php on line 194
Beamreactor · Le dernier CMS français indépendant: reprenez le contrôle!
En vous promenant sur Beamreactor, nous stockons votre IP 48h pour des raisons de sécurité.

Lecteur Markdown

intrusion_scanner Documentation › INTRUSION_SCANNER_DOCUMENTATION_EN

INTRUSION_SCANNER_DOCUMENTATION_EN

BeamReactor Intrusion Scanner #

Description #

Security scanning tool that tests direct access to all PHP files in the BeamReactor installation to verify they are properly protected.

Features #

  • Recursive Scan: Automatically traverses all directories (modules/, plugins/, rss/, members/)
  • Categorisation: Identifies the type of each file (handler, config, library, locale, etc.)
  • HTTP Tests: Verifies that direct access correctly returns "forbidden" or 401/403
  • Leak Detection: Identifies files that expose content without protection
  • Detailed Report: Displays results with HTTP code and response excerpt

Plugin Structure #

plugins/intrusion_scanner/
├── intrusion_scanner.php              # Main interface
├── conf/
│   └── intrusion_scanner.conf.inc.php # Configuration
└── locale/
    └── intrusion_scanner.fr.inc.php   # French translations

Installation #

1. Create the `plugins/intrusion_scanner/` directory

2. Copy files into the structure above

3. Access `index.php?obj=intrusion_scanner.php` (OVERMIND level required)

Usage #

Running a Scan #

1. Access the plugin: `?obj=intrusion_scanner.php`

2. Click "Run Scan"

3. Wait for the scan to complete (may take a few minutes)

Interpreting Results #

The scanner classifies files into 4 categories:

✓ Protected Files (Green) #

Files correctly secured that return:

  • The text "forbidden"
  • HTTP code 401 or 403
  • Any other configured denial message

Action: No action required

✗ Vulnerable Files (Red) #

Files that return content (>50 characters) without protection.

URGENT Action: Check each file and add protection:

if(!function_exists('frameheader')) die('forbidden');

? Manual Verification Required (Orange) #

Files with an ambiguous response (short but not "forbidden").

Action: Manually verify each file

⚠ Errors (Red) #

Files that could not be tested (cURL error, timeout, etc.).

Action: Check network configuration and retry

Configuration #

Scanned Directories #

By default:

  • `modules/`
  • `plugins/`
  • `rss/`
  • `members/`

Excluded Directories #

  • `data/`, `var/` (data)
  • `ui/`, `css/`, `js/` (assets)
  • `doc/`, `sql/`, `tests/` (dev)
  • `.git/`, `node_modules/` (version control)

Excluded Files #

  • `index.php` (legitimate entry point)
  • `.htaccess`
  • `README.md`

Expected Responses #

The scanner considers a file protected if it contains:

  • `forbidden`
  • `401`
  • `unauthorized`
  • `access denied`
  • `direct access not permitted`

Security #

Access Level #

OVERMIND only: This tool can reveal the internal structure of the system and must be strictly limited to system administrators.

Data Protection #

  • Limits the size of captured response (500 characters)
  • Does not store complete responses
  • 10-second timeout per file

Performance #

  • Total timeout: 300 seconds (5 minutes)
  • Per-file timeout: 10 seconds
  • Progress: Real-time display via JavaScript

Troubleshooting #

Scan does not start #

  • Verify you have OVERMIND level
  • Verify that cURL is enabled in PHP

All files show errors #

  • Check network configuration
  • Verify that the web server is accessible locally

False positives #

  • Manually verify "ambiguous" files
  • Adjust `max_response_length` if necessary

Recommendations #

After a Scan #

1. Immediately fix all vulnerable files

2. Verify ambiguous files

3. Document legitimate exceptions

4. Re-scan after fixing

Best Practices #

  • Run a scan after each plugin addition
  • Run a scan after each major update
  • Check .htaccess files in sensitive directories

BeamReactor Architecture #

Reminder: No PHP file should be directly accessible

All access goes through `index.php`:

  • `members/edit_profile.php` → `index.php?obj=edit_profile.php`
  • `plugins/mailbox/mailbox.php` → `index.php?obj=mailbox.php`
  • `modules/handler.mod.php` → `index.php?obj=handler.mod`

Each file must begin with:

if(!function_exists('frameheader')) die('forbidden');

Version #

  • Version: 1.0.0
  • Date: 2025-12-27
  • Author: Treveur Bretaudière

Support #

For any questions or issues, contact the BeamReactor/AEGIS IA team.

de en fr