წეს-ძრავა
PRX-WAF ვებ-შეტევების გამოვლენისა და ბლოკვისთვის დეკლარაციულ, YAML-ზე დაფუძნებულ წეს-ძრავას იყენებს. წესები აღწერს რა შეამოწმოს, როგორ შეუსაბამოს და რა ქმედება განახორციელოს. ძრავა ყოველ შემოსულ მოთხოვნას 16 თანმიმდევრული გამოვლენის ფაზაში ყველა ჩართულ წესთან ასაბამოებს.
წესების მუშაობა
ყოველი წესი ოთხი ძირითადი კომპონენტისგან შედგება:
- ველი -- მოთხოვნის რომელი ნაწილი შეამოწმოს (path, query, body, headers და სხვ.)
- ოპერატორი -- როგორ შეუსაბამოს მნიშვნელობა (regex, contains, detect_sqli და სხვ.)
- მნიშვნელობა -- შესაბამობის შაბლონი ან ბარიერი
- ქმედება -- რა გააკეთოს წესის შემჯამებისას (block, log, allow)
- id: "CUSTOM-001"
name: "Block admin path from external IPs"
category: "access-control"
severity: "high"
field: "path"
operator: "regex"
value: "(?i)^/admin"
action: "block"წეს-წყაროები
PRX-WAF 398 წესთან ოთხ კატეგორიაში გამოდის:
| წყარო | ფაილები | წესები | აღწერა |
|---|---|---|---|
| OWASP CRS | 21 | 310 | OWASP ModSecurity Core Rule Set v4 (YAML-ად გადაყვანილი) |
| ModSecurity | 4 | 46 | IP რეპუტაციის, DoS-ისა და მონაცემ-გაჟონვის საზოგადოებრივი წესები |
| CVE პაჩები | 7 | 39 | Log4Shell, Spring4Shell, MOVEit და სხვ. სამიზნე ვირტუალური პაჩები |
| მომხმარებლის | 1 | 3 | პროგრამ-სპეციფიკური წესების მაგალით-შაბლონები |
გარდა ამისა, PRX-WAF ბინარაში კომპილირებულ 10+ ჩაშენებულ გამოვლენის შემოწმებს შეიცავს:
- SQL injection (libinjection + regex)
- Cross-site scripting (libinjection + regex)
- დისტანციური კოდ-შესრულება / ბრძანებ-ინექცია
- ლოკალური/დისტანციური ფაილ-ჩართვა
- Server-side request forgery (SSRF)
- Path/directory traversal
- სკანერ-გამოვლენა (Nmap, Nikto და სხვ.)
- ბოტ-გამოვლენა (მავნე ბოტები, AI-ის crawlers, headless ბრაუზერები)
- პროტოკოლ-დარღვევის გამოვლენა
- სენსიტიური სიტყვ-გამოვლენა (Aho-Corasick მრავალ-შაბლონ-შემჯამება)
წეს-ფორმატები
PRX-WAF სამ წეს-ფაილ-ფორმატს მხარს უჭერს:
| ფორმატი | გაფართოება | აღწერა |
|---|---|---|
| YAML | .yaml, .yml | PRX-WAF-ის native ფორმატი (რეკომენდებული) |
| ModSecurity | .conf | SecRule დირექტივები (ბაზისური ქვეჯგუფი: ARGS, REQUEST_HEADERS, REQUEST_URI, REQUEST_BODY) |
| JSON | .json | წეს-ობიექტების JSON მასივი |
სრული სქემ-ცნობარისთვის YAML სინტაქსს ნახე.
Paranoia დონეები
ყოველი წესი paranoia დონეს (1-4) აცხადებს, რომელიც შემჯამებლობის სიმკაცრეს აკონტროლებს. მაღალი დონეები მეტ შეტევას ამოიცნობს, მაგრამ მცდარ-დადებითების რისკს ზრდის.
| დონე | სახელი | აღწერა | მცდარ-დადებითების რისკი |
|---|---|---|---|
| 1 | ნაგულისხმევი | მაღალ-ნდობიანი წესები, წარმოება-უსაფრთხო | ძალიან დაბალი |
| 2 | რეკომენდებული | ფართო გადაფარვა, მცირე მცდ.დად. რისკი | დაბალი |
| 3 | აგრესიული | ვრცელი ევრისტიკა, დაზუსტება საჭიროა | ზომიერი |
| 4 | მაქსიმალური | ყველაფერი, სპეკულაციური შაბლონების ჩათვლით | მაღალი |
TIP
წარმოებაში paranoia დონე 1-ით დაიწყე. ჟურნალები მიადევნე, გამონაკლისები მოარგე, შემდეგ ეტაპობრივად მაღალ დონეები ჩართე.
Hot-Reload
PRX-WAF rules/ დირექტორიას ფაილ-ცვლილებებზე აკვირდება და ფაილის შექმნისას, შეცვლისას ან წაშლისას წესებს ავტომატურად ხელახლა ტვირთავს. ცვლილებები კონფიგურირებულ debounce ფანჯარაში (ნაგულისხმევი: 500ms) ძალაში შედის.
ხელახლა-ჩატვირთვის ხელით გამოძახებაც შეიძლება:
# Via CLI
prx-waf rules reload
# Via SIGHUP (Unix only)
kill -HUP $(pgrep prx-waf)წეს-ხელახლა-ჩატვირთვა ატომარულია -- ძველი წეს-ნაკრები ახლის სრულ კომპილაციამდე და მზაობამდე ტრაფიკს ემსახურება.
დირექტორიის სტრუქტურა
rules/
├── owasp-crs/ # OWASP CRS v4 (21 files, 310 rules)
│ ├── sqli.yaml # SQL injection (CRS 942xxx)
│ ├── xss.yaml # Cross-site scripting (CRS 941xxx)
│ ├── rce.yaml # Remote code execution (CRS 932xxx)
│ └── ...
├── modsecurity/ # ModSecurity community rules
├── cve-patches/ # CVE virtual patches (Log4Shell, Spring4Shell, etc.)
├── custom/ # Your application-specific rules
└── tools/ # Rule validation and sync utilitiesშემდეგი ნაბიჯები
- YAML სინტაქსი -- წეს-სქემის სრული ცნობარი
- ჩაშენებული წესები -- OWASP CRS-ისა და CVE პაჩების დეტალური გადაფარვა
- მომხმარებლის წესები -- საკუთარი გამოვლენის წესების დაწერა