GithubHelp home page GithubHelp logo

cwaf_config's Introduction

WAF-GUARD

Welcome to the official GitHub repository for WAF-GUARD, a powerful tool designed to assist in troubleshooting Web Application Firewall (WAF) configurations by leveraging an ontological representation. This repository contains the source code and documentation necessary to understand and utilize WAF-GUARD.

Overview

Configuring and maintaining a WAF, especially in large-scale environments, presents significant challenges due to the complexity and interconnectivity of rules and directives. WAF-GUARD addresses these challenges by providing a comprehensive ontology that helps administrators navigate and manage complex WAF configurations efficiently.

Features

  • Ontology-Based Representation: Leverages ontology to model WAF configurations, enabling better traceability, transparency, and management.
  • Easy Navigation: Facilitates the exploration of large rule sets, macros, and configurations through an intuitive interface.
  • Real-World Application: Tested on extensive real-world configurations, demonstrating its effectiveness in diagnosing and resolving WAF configuration issues.

Getting Started

Installation

Prerequisites

  • Java 17+: WAF-GUARD is built using Java, and has been tested with Java 17.
  • Maven: is used to build the java project. It has been tested with maven 3.9.6

Build from source

  1. Clone the repository:

    git clone https://github.com/csvl/CWAF_config.git
    cd CWAF_config/cwaf-ontology
  2. Build the project using Maven:

    mvn clean package

Usage

For ontology editing and visualization, we strongly advice to use Protege.

Run the different classes:

java -cp cwaf-ontology/target/cwaf-ontology-1.0-SNAPSHOT.jar be.uclouvain.service.Parser conf/httpd.conf

Will produce config.ttl and full_schema.ttl. The full_schema.ttl is designed to be explored manually, while config.ttl is provided for the compiler.

java -cp cwaf-ontology/target/cwaf-ontology-1.0-SNAPSHOT.jar be.uclouvain.service.Compiler 

Will produce entities.ttl and full_entities.ttl. The full_entities.ttl is designed to be explored manually, while entities.ttl can be imported into the full_schema.ttl for a complete overview of the configuration.

java -cp cwaf-ontology/target/cwaf-ontology-1.0-SNAPSHOT.jar be.uclouvain.service.Filter > output

Will output the directives information in the same order Apache would applie them.

License

WAF-GUARD is released under the MIT License.

Acknowledgements

This project is supported by Approach Cyber. This study has been conducted as part of the COODEVIIS project (agreement no. 8887), funded by the Wallonia Public Service (SPW) under the framework of the region’s recovery plan. It was in part supported by the CyberExcellence project (RW, Convention 2110186).

Contact

For questions, suggestions, or issues, please open an issue on this repository or contact us directly at [email protected].


Thank you for using WAF-GUARD! We hope it enhances your experience in managing WAF configurations.

cwaf_config's People

Contributors

wiauxb avatar marcstern avatar charlybvo avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.