From 95b3411231f416e1d14e0fe1dead015b7c3246ec Mon Sep 17 00:00:00 2001 From: fab Date: Sat, 21 Dec 2024 01:55:34 +0100 Subject: [PATCH] Create owasp2traefik.py --- owasp2traefik.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 owasp2traefik.py diff --git a/owasp2traefik.py b/owasp2traefik.py new file mode 100644 index 0000000..57f4e7c --- /dev/null +++ b/owasp2traefik.py @@ -0,0 +1,24 @@ +import os +import json + +OUTPUT_DIR = "waf_patterns/traefik/" + +def load_owasp_rules(file_path): + with open(file_path, "r") as f: + return json.load(f) + +def generate_traefik_conf(rules): + os.makedirs(OUTPUT_DIR, exist_ok=True) + config_file = os.path.join(OUTPUT_DIR, "middleware.toml") + + with open(config_file, "w") as f: + f.write("[http.middlewares]\n") + for rule in rules: + f.write(f"[http.middlewares.bad_bot_block_{rule['category']}]\n") + f.write(f" [http.middlewares.bad_bot_block_{rule['category']}.plugin.badbot]\n") + f.write(f" userAgent = [\"{rule['pattern']}\"]\n") + print(f"[+] Traefik WAF rules generated at {config_file}") + +if __name__ == "__main__": + owasp_rules = load_owasp_rules("owasp_rules.json") + generate_traefik_conf(owasp_rules)