Skip to content

A comprehensive professional security auditing plugin for Discourse. This plugin provides automated security assessment capabilities to identify vulnerabilities, misconfigurations, and security issues in your Discourse installation

License

Notifications You must be signed in to change notification settings

ibrahmsql/Discoursemap-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

DiscourseMap - Professional Security Analysis Plugin

๐Ÿ”’ Professional security auditing plugin for Discourse - Comprehensive vulnerability assessment and security analysis

Version Discourse License

๐Ÿš€ Features

๐Ÿ›ก๏ธ Comprehensive Security Scanning

  • Vulnerability Scanner: Detects known security vulnerabilities
  • Plugin Scanner: Analyzes installed plugins for security issues
  • Theme Scanner: Scans themes for potential security risks
  • User Scanner: Audits user permissions and access controls
  • Endpoint Scanner: Tests API endpoints for vulnerabilities
  • Config Scanner: Reviews configuration settings for security
  • Database Scanner: Analyzes database security configurations
  • File Scanner: Scans files for malicious content
  • Network Scanner: Performs network security assessments

๐Ÿ“Š Reporting

  • Multi-format Reports: PDF, JSON, CSV export options
  • Risk Assessment: Automated risk scoring and categorization
  • Compliance Checking: Security compliance verification
  • Detailed Analysis: In-depth vulnerability descriptions
  • Recommendations: Actionable security improvement suggestions

๐ŸŽฏ Modern Admin Interface

  • Real-time Scanning: Live scan progress monitoring
  • Interactive Dashboard: Modern, responsive admin panel
  • Scan History: Complete audit trail of all scans
  • Modular Selection: Choose specific scan modules
  • Target Configuration: Flexible target URL settings

๐Ÿ“ฆ Installation

Prerequisites

  • Discourse 2.7.0 or higher
  • Ruby 2.7+ / 3.0+
  • Admin access to Discourse installation

Installation Steps

  1. Clone the plugin:

    cd /var/discourse/containers/app/plugins
    git clone https://github.com/ibrahmsql/discoursemap-plugin.git
  2. Rebuild Discourse:

    cd /var/discourse
    ./launcher rebuild app
  3. Enable the plugin:

    • Go to Admin โ†’ Settings โ†’ Plugins
    • Find "DiscourseMap" and enable it
    • Configure the discoursemap_enabled setting

๐Ÿ”ง Configuration

Site Settings

Navigate to Admin โ†’ Settings โ†’ Plugins โ†’ DiscourseMap:

  • discoursemap_enabled: Enable/disable the plugin
  • Configure scan modules and security thresholds
  • Set up automated scanning schedules

Admin Panel Access

Access DiscourseMap at:

https://your-discourse-site.com/admin/plugins/discoursemap

๐ŸŽฎ Usage

Starting a Security Scan

  1. Navigate to Admin Panel:

    • Go to Admin โ†’ Plugins โ†’ DiscourseMap
  2. Configure Scan Settings:

    • Enter target URL (your Discourse site)
    • Select scan modules to run
    • Choose scan intensity level
  3. Run the Scan:

    • Click "Start Security Scan"
    • Monitor real-time progress
    • View results as they appear

Understanding Results

Risk Levels

  • ๐Ÿ”ด Critical: Immediate action required
  • ๐ŸŸ  High: Address within 24 hours
  • ๐ŸŸก Medium: Address within a week
  • ๐ŸŸข Low: Monitor and address when convenient
  • โ„น๏ธ Info: Informational findings

Scan Modules

Module Description Risk Focus
Vulnerability Known CVEs and security flaws Critical
Plugin Third-party plugin security High
Theme Theme code vulnerabilities Medium
User Access control issues High
Endpoint API security testing Medium
Config Configuration hardening Medium
Database Database security High
File Malicious file detection Critical
Network Network security assessment Medium

Exporting Reports

  • PDF Report: Comprehensive executive summary
  • JSON Export: Machine-readable detailed results
  • CSV Export: Spreadsheet-compatible vulnerability list

๐Ÿ› ๏ธ Development

Project Structure

discoursemap/
โ”œโ”€โ”€ plugin.rb                 # Main plugin file
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ controllers/
โ”‚   โ”‚   โ””โ”€โ”€ admin/
โ”‚   โ”‚       โ””โ”€โ”€ discoursemap_controller.rb
โ”‚   โ””โ”€โ”€ jobs/
โ”‚       โ””โ”€โ”€ scheduled/
โ”œโ”€โ”€ assets/
โ”‚   โ”œโ”€โ”€ javascripts/
โ”‚   โ”‚   โ””โ”€โ”€ discourse/
โ”‚   โ”‚       โ”œโ”€โ”€ controllers/
โ”‚   โ”‚       โ””โ”€โ”€ templates/
โ”‚   โ””โ”€โ”€ stylesheets/
โ”œโ”€โ”€ config/
โ”‚   โ”œโ”€โ”€ locales/              # Internationalization
โ”‚   โ””โ”€โ”€ settings.yml          # Plugin settings
โ””โ”€โ”€ lib/                      # Core scanning modules
    โ”œโ”€โ”€ discoursemap_scanner.rb
    โ”œโ”€โ”€ vulnerability_scanner.rb
    โ”œโ”€โ”€ network_scanner.rb
    โ””โ”€โ”€ ...

Adding Custom Scanners

  1. Create a new scanner in lib/:

    module DiscourseMap
      class CustomScanner
        include ActiveModel::Serialization
        
        def initialize(target_url, options = {})
          @target_url = target_url
          @options = options
        end
        
        def scan
          # Your scanning logic here
        end
      end
    end
  2. Register in lib/discoursemap_scanner.rb

  3. Add to admin interface

Running Tests

# Run plugin tests
cd /var/discourse
bundle exec rake plugin:spec[discourse-discoursemap]

๐ŸŒ Internationalization

Supported languages:

  • ๐Ÿ‡บ๐Ÿ‡ธ English (en)
  • ๐Ÿ‡น๐Ÿ‡ท Turkish (tr)

To add a new language:

  1. Create locale files in config/locales/
  2. Follow existing translation structure
  3. Submit a pull request

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guidelines.

Development Setup

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

Code Style

  • Follow Ruby style guide
  • Use meaningful variable names
  • Add comments for complex logic
  • Write tests for new features

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ†˜ Support

๐Ÿ™ Acknowledgments

  • Discourse team for the excellent platform
  • Security research community
  • All contributors and testers

๐Ÿ“Š Statistics

  • Scan Modules: 9 comprehensive modules
  • Vulnerability Database: 1000+ known issues
  • Report Formats: 3 export options
  • Languages: 2 supported languages

Made with โค๏ธ by ฤฐbrahimsql

Securing Discourse communities, one scan at a time.

About

A comprehensive professional security auditing plugin for Discourse. This plugin provides automated security assessment capabilities to identify vulnerabilities, misconfigurations, and security issues in your Discourse installation

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published