Skip to content

PRX-WAF

PRX-WAF არის ვებ აპლიკაციის ფაიერვოლი, აგებული როგორც 7-crate Rust სამუშაო სივრცე Cloudflare-ის Pingora პროქსი ფრეიმვორკის თავზე. ის ამოწმებს HTTP ტრაფიკს 17-ფაზიანი გამოვლენის პაიპლაინით და მხარს უჭერს YAML, ModSecurity და JSON წესების ფორმატებს.

PRX-WAF ორგანიზებულია როგორც Rust სამუშაო სივრცე შვიდი crate-ით:

Crateროლი
prx-waf-corePingora ინტეგრაცია, მოთხოვნა/პასუხის სასიცოცხლო ციკლი, ფაზების ორკესტრაცია
prx-waf-rulesწესების ანალიზი (YAML, ModSecurity, JSON), წესების ძრავა
prx-waf-detectionგამოვლენის ლოგიკა ყველა 17 ფაზისთვის
prx-waf-adminVue 3 ადმინის დაფა და მართვის API
prx-waf-notificationშეტყობინებების მიწოდება (ვებჰუკი, Telegram, ელფოსტა)
prx-waf-clusterQUIC-ზე დაფუძნებული კლასტერის სინქრონიზაცია
prx-waf-cliბრძანების ხაზის ინტერფეისი

17-ფაზიანი გამოვლენის პაიპლაინი

Section titled “17-ფაზიანი გამოვლენის პაიპლაინი”

ყოველი HTTP მოთხოვნა გადის ამ ფაზებს თანმიმდევრობით. ნებისმიერ ფაზაში თანხვედრას შეუძლია დამუშავების შეწყვეტა კონფიგურირებული ქმედებით.

ფაზასახელიაღწერა
1IP ნებართვების სიასანდო IP-ებიდან მოთხოვნების დაშვება (ყველა შემდგომი ფაზის გვერდის ავლა)
2IP შავი სიაცნობილი ცუდი IP-ებიდან მოთხოვნების დაბლოკვა
3URL ნებართვების სიასანდო URL გზებზე მოთხოვნების დაშვება
4URL შავი სიააკრძალულ URL გზებზე მოთხოვნების დაბლოკვა
5CC/DDoSმოთხოვნის ლიმიტი და კავშირის წყალდიდობის გამოვლენა
6სკანერის გამოვლენაავტომატური მოწყვლადობის სკანერების იდენტიფიცირება (Nikto, sqlmap და ა.შ.)
7ბოტის გამოვლენაბოტებისა და ადამიანების განსხვავება (თითის ანაბეჭდი, გამოწვევა)
8SQL ინექციაSQLi პეილოადების გამოვლენა პარამეტრებში, ჰედერებსა და სხეულში
9XSSჯვარ-საიტ სკრიპტინგის პეილოადების გამოვლენა
10RCEდისტანციური კოდის შესრულების მცდელობების გამოვლენა (ბრძანების ინექცია, SSRF)
11დირექტორიის გადალახვაგზის გადალახვის მცდელობების გამოვლენა (../, კოდირებული ვარიანტები)
12მორგებული წესები (Rhai)მომხმარებლის მიერ განსაზღვრული გამოვლენის ლოგიკა Rhai სკრიპტირების ენაზე
13OWASP CRSOWASP Core Rule Set-ის თავსებადობის ფენა
14სენსიტიური მონაცემებისენსიტიური მონაცემების გამოვლენა პასუხებში (საკრედიტო ბარათები, SSN-ები, API გასაღებები)
15ანტი-ჰოტლინკინგითქვენი რესურსების არაავტორიზებული ჩაშენების თავიდან აცილება
16CrowdSecCrowdSec-ის საზოგადოების ბლოკირების სიებთან ინტეგრაცია
17GeoIPტრაფიკის დაბლოკვა ან დაშვება ქვეყნის/რეგიონის მიხედვით

წესების ფორმატები

Section titled “წესების ფორმატები”

PRX-WAF მხარს უჭერს სამ წესების ფორმატს, რაც გუნდებს საშუალებას აძლევს გამოიყენონ თავიანთი სასურველი სინტაქსი ან იმპორტირონ არსებული წესების ნაკრებები:

- id: sql-injection-union
phase: 8
description: "Detect UNION-based SQL injection"
match:
field: args
pattern: "(?i)union\\s+(all\\s+)?select"
action: block
severity: critical
SecRule ARGS "@rx (?i)union\s+(all\s+)?select" \
"id:1001,phase:2,deny,status:403,msg:'SQL Injection'"
{
"id": "xss-script-tag",
"phase": 9,
"match": {"field": "args", "pattern": "<script[^>]*>"},
"action": "block"
}

PRX-WAF მოყვება 50+ წესების ფაილი, რომლებიც მოიცავს გავრცელებულ შეტევის შაბლონებს ყველა გამოვლენის ფაზაში.

რეაგირების ქმედებები

Section titled “რეაგირების ქმედებები”

წესის თანხვედრისას, PRX-WAF-ს შეუძლია ერთ-ერთი ქმედების მიღება:

ქმედებააღწერა
block403 პასუხის დაბრუნება და მოთხოვნის შეწყვეტა
allowმოთხოვნის ექსპლიციტური დაშვება (დარჩენილი ფაზების გამოტოვება)
logთანხვედრის ლოგირება, მაგრამ მოთხოვნის გაგრძელების დაშვება
redirectკლიენტის გადამისამართება მითითებულ URL-ზე

ქმედებები კონფიგურირებულია წესზე და შეიძლება გადაიფაროს გლობალური პოლიტიკით.

შეტყობინებების სისტემა

Section titled “შეტყობინებების სისტემა”

PRX-WAF უშვებს რეალურ დროში შეტყობინებებს საფრთხეების აღმოჩენისას:

არხიკონფიგურაცია
ვებჰუკიHTTP POST JSON პეილოადით ნებისმიერ ბოლო წერტილზე
TelegramBot API ჩატის ID-ით
ელფოსტაSMTP კონფიგურირებადი გამომგზავნით/მიმღებით

შეტყობინებები მოიცავს თანხვედრილ წესს, მოთხოვნის დეტალებს (IP, URL, ჰედერები), სიმძიმესა და მიღებულ ქმედებას.

რეალურ დროში სტრიმები

Section titled “რეალურ დროში სტრიმები”

PRX-WAF მხარს უჭერს WebSocket რეალურ დროში სტრიმებს ცოცხალი მონიტორინგისთვის:

  • ცოცხალი მოთხოვნების ჟურნალი გამოვლენის შედეგებით
  • შეტევის სიხშირის მეტრიკები
  • ყველაზე დაბლოკილი IP-ები და შეტევის ტიპები

ადმინის დაფა უკავშირდება ამ სტრიმებს უსაფრთხოების რეალურ დროში მიმოხილვისთვის.

მრავალ-კვანძიანი გაშლებისთვის, PRX-WAF კვანძები სინქრონიზებენ მდგომარეობას QUIC-ით:

  • საზიარო IP ბლოკირების სიები და მოთხოვნის ლიმიტის მრიცხველები
  • წესების განახლებების გავრცელება კვანძებს შორის
  • თანმიმდევრული GeoIP და CrowdSec მონაცემები

Vue 3 ადმინის დაფა უზრუნველყოფს:

  • რეალურ დროში ტრაფიკისა და საფრთხეების ვიზუალიზაცია
  • წესების მართვა (შექმნა, რედაქტირება, ჩართვა/გამორთვა)
  • IP ნებართვების/შავი სიების მართვა
  • გამოვლენის ფაზების კონფიგურაცია
  • შეტყობინებების არხის დაყენება
  • კლასტერის კვანძების სტატუსი
Terminal window
# ყველა crate-ის აშენება
cargo build --release
# კონფიგურაციით გაშვება
./target/release/prx-waf --config /etc/prx-waf/config.yaml
# CLI: წესის ტესტირება სანიმუშო მოთხოვნაზე
./target/release/prx-waf-cli test-rule --rule rules/sqli.yaml --request sample.http