თუ წინა წესი (REQUEST PROTOCOL ENFORCEMENT) ამოწმებდა “გრამატიკას” (პროტოკოლის სისწორეს), REQUEST METHOD ENFORCEMENT ამოწმებს “ქმედებას”. ეს არის WAF-ის პოლიციელი, რომელიც აკონტროლებს, თუ რისი გაკეთების უფლება აქვს სტუმარს თქვენს სერვერზე.
რას აკეთებს ეს წესი?
ინტერნეტში კომუნიკაცია ხდება კონკრეტული ბრძანებებით, რომლებსაც HTTP მეთოდებს (ან ზმნებს) უწოდებენ. ყველაზე ცნობილი მეთოდებია GET (ინფორმაციის წამოღება) და POST (ინფორმაციის გაგზავნა).
მეთოდების შესაბამისობის უზრუნველყოფის მიზანია დაბლოკოს ყველა ისეთი HTTP მეთოდი, რომელიც არ არის გათვალისწინებული თქვენი აპლიკაციის პოლიტიკით ან რომელიც უცნობი და პოტენციურად საშიშია. მარტივად რომ ვთქვათ, თუ თქვენ გაქვთ საინფორმაციო ვებ-გვერდი, ვიზიტორს არ უნდა ჰქონდეს ფაილების წაშლის (DELETE) ან სერვერზე ფაილის ატვირთვის (PUT) უფლება პირდაპირი ბრძანებით.
როგორ მუშაობს ის?
ეს წესების ჯგუფი მუშაობს “თეთრი სიის” (Whitelisting) პრინციპით. WAF-ს წინასწარ აქვს გაწერილი ნებადართული მეთოდების სია (მაგალითად: GET, HEAD, POST, OPTIONS).
როდესაც მოთხოვნა შემოდის, მეთოდების შესაბამისობის უზრუნველყოფის წესები ამოწმებს:
- Unknown Methods: იყენებს თუ არა კლიენტი გამოგონილ ან არასტანდარტულ მეთოდს (მაგ. ჰაკერმა შეიძლება გამოაგზავნოს
HACK /index.phpსერვერის რეაქციის შესამოწმებლად). - Method Not Allowed: იყენებს თუ არა კლიენტი ვალიდურ, მაგრამ სარისკო მეთოდს, რომელიც თქვენ არ გჭირდებათ (მაგ.
PUT,DELETE,CONNECT,TRACE). - Method Enforcement: ემთხვევა თუ არა მეთოდი OWASP-ის უსაფრთხოების სტანდარტებს.
რატომ არის ეს მნიშვნელოვანი? ბევრი ვებ-სერვერი სტანდარტულად ტოვებს ჩართულს მეთოდებს, როგორიცაა TRACE (რაც იწვევს XSS რისკებს) ან PUT (რამაც შეიძლება ჰაკერს ფაილის ატვირთვის საშუალება მისცეს). მეთოდების შესაბამისობის უზრუნველყოფის წესები ამ კარს საიმედოდ კეტავს.
პრაქტიკული მაგალითი
წარმოვიდგინოთ, რომ ჰაკერს სურს თქვენს სერვერზე მავნე სკრიპტის (Backdoor) ატვირთვა, რათა შემდეგ მართოს საიტი. ის ცდილობს გამოიყენოს PUT მეთოდი, რომელიც ფაილების შესაქმნელად გამოიყენება.
1. ჰაკერი აგზავნის ასეთ მოთხოვნას:
PUT /uploads/shell.php HTTP/1.1
Host: example.com
Content-Length: 30
<?php shell_exec(file_get_contents("php://input")); ?>
რა არის აქ პრობლემა? სტუმარი ცდილობს შეასრულოს PUT ბრძანება და გაუშვას სისტემაში სახიფათო Shell ბრძანებები. თუ საიტი ჩვეულებრივი ბლოგია, მას მხოლოდ GET და POST სჭირდება. PUT სრულიად ზედმეტი და საშიშია.
2. WAF-ის რეაქცია (მეთოდების შესაბამისობის უზრუნველყოფა)
WAF ღებულობს მოთხოვნას და ხედავს პირველ სიტყვას PUT. ის ამოწმებს კონფიგურაციას. თუ იქ PUT არ წერია (და სტანდარტულად არ წერია), ამოქმედდება წესი 911100 – Method is not allowed by policy.
შეჯამება
მეთოდების შესაბამისობის უზრუნველყოფა არის პრინციპი: “რაც არ გჭირდება, გათიშე”. ის ამცირებს შეტევის ზედაპირს (Attack Surface) იმით, რომ კრძალავს ყველა იმ მოქმედებას, რომელიც თქვენს ვებ-აპლიკაციას ფუნქციონირებისთვის არ სჭირდება. ეს არის ერთ-ერთი ყველაზე მარტივი, მაგრამ ეფექტური გზა თქვენი აპლიკაციის დასაცავად.