| --- |
| language: |
| - en |
| pipeline_tag: text-classification |
| tags: |
| - web-application-firewall |
| - waf |
| - security |
| --- |
| |
| # 4thwall WAF Model |
|
|
| This model is a custom Web Application Firewall (WAF) classifier built by fine-tuning the `distilbert` (DistilBertForSequenceClassification) architecture. It is designed to identify and classify HTTP requests as either safe or potentially malicious (similarly to ModSecurity). |
|
|
| ## Model Details |
|
|
| - **Model Type:** Text Classification (DistilBERT) |
| - **Task:** Identifying Malicious HTTP Requests (Web Application Firewall) |
| - **Use Case:** Can be used as a standalone classifier or inline ML-based proxy to analyze real-time HTTP traffic and reject high-risk requests (e.g., 403 Forbidden). |
|
|
| ## Intended Uses & Limitations |
|
|
| - **Intended Use:** Inspecting HTTP paths, headers, and payloads for malicious intent (e.g., SQL Injection, XSS, etc.). Ideal for use within an ML pipeline integrating with services like Nginx or a customized inline WAF proxy. |
| - **Limitations:** The model acts as a learning proxy and can still result in False Positives or False Negatives. Continuous learning and manual feedback over time can help improve model confidence. |
|
|
| ## Metrics |
|
|
| During evaluation, the model achieved the following metrics: |
| - **Accuracy:** 94.23% |
| - **Precision:** 92.50% |
| - **Recall:** 93.10% |
| - **F1 Score:** 92.80% |
|
|
| ## How to Get Started with the Model |
|
|
| ```python |
| from transformers import pipeline |
| |
| # Load the WAF classifier |
| waf_classifier = pipeline("text-classification", model="your-username/my-waf-model") |
| |
| # Example request payload |
| payload = "GET /index.php?id=1 UNION SELECT 1,2,3-- HTTP/1.1" |
| |
| # Predict if malicious or benign |
| result = waf_classifier(payload) |
| print(result) |
| ``` |
|
|