გავლენა
თავდამსხმელს, რომელიც წარმატებით იყენებს Cross-Site Scripting (XSS) დაუცველობას, შეუძლია მასკარადად მოაქციოს მსხვერპლი მომხმარებელი, განახორციელოს ნებისმიერი ქმედება, რომლის შესრულებაზეც მომხმარებელი უფლებამოსილია და წვდომა ჰქონდეს მომხმარებლის ნებისმიერ მონაცემზე [S1]. ეს მოიცავს სესიის ქუქი-ფაილების მოპარვას ანგარიშების გასატაცებლად, ყალბი ფორმებით შესვლის სერთიფიკატების აღებას ან ვირტუალური დეფესირების შესრულებას [S1][S2]. თუ მსხვერპლს აქვს ადმინისტრაციული პრივილეგიები, თავდამსხმელს შეუძლია მოიპოვოს სრული კონტროლი აპლიკაციაზე და მის მონაცემებზე [S1].
ძირეული მიზეზი
XSS ხდება მაშინ, როდესაც აპლიკაცია იღებს მომხმარებლის მიერ კონტროლირებად შენატანს და მოიცავს მას ვებ გვერდზე სათანადო განეიტრალების ან [S2] კოდირების გარეშე. ეს საშუალებას აძლევს შეყვანის ინტერპრეტაციას, როგორც აქტიურ შინაარსს (JavaScript) მსხვერპლის ბრაუზერის მიერ, გვერდის ავლით იმავე წარმოშობის პოლიტიკას, რომელიც შექმნილია ვებსაიტების ერთმანეთისგან იზოლირებისთვის [S1][S2].
დაუცველობის ტიპები
- ასახული XSS: მავნე სკრიპტები აისახება ვებ აპლიკაციიდან მსხვერპლის ბრაუზერში, როგორც წესი, URL პარამეტრის [S1]-ის მეშვეობით.
- შენახულია XSS: სკრიპტი მუდმივად ინახება სერვერზე (მაგ. მონაცემთა ბაზაში ან კომენტარების განყოფილებაში) და მოგვიანებით ემსახურება მომხმარებლებს [S1][S2].
- DOM-ზე დაფუძნებული XSS: დაუცველობა მთლიანად არსებობს კლიენტის მხარეს კოდში, რომელიც ამუშავებს მონაცემებს არასანდო წყაროდან სახიფათო გზით, როგორიცაა
innerHTML[S1]-ზე ჩაწერა.
ბეტონის შესწორებები
- მონაცემთა დაშიფვრა გამომავალზე: გადააკეთეთ მომხმარებლის მიერ კონტროლირებადი მონაცემები უსაფრთხო ფორმაში მის გაწევამდე. გამოიყენეთ HTML ერთეულის კოდირება HTML სხეულისთვის და შესაბამისი JavaScript ან CSS კოდირება ამ კონკრეტული კონტექსტებისთვის [S1][S2].
- ფილტრის შეყვანა ჩამოსვლისას: დანერგეთ მკაცრი ნებადართული სიები მოსალოდნელი შეყვანის ფორმატებისთვის და უარყოთ ყველაფერი, რაც არ შეესაბამება [S1][S2].
- უსაფრთხოების სათაურების გამოყენება: დააყენეთ
HttpOnlyდროშა სესიის ქუქი ფაილებზე, რათა თავიდან აიცილოთ წვდომა JavaScript-ით [S2]. გამოიყენეთContent-TypeდაX-Content-Type-Options: nosniffიმისათვის, რომ ბრაუზერებმა არასწორად აღიქვან პასუხები, როგორც შესრულებადი კოდი [S1]. - შინაარსის უსაფრთხოების პოლიტიკა (CSP): განათავსეთ ძლიერი CSP წყაროების შეზღუდვის მიზნით, საიდანაც შესაძლებელია სკრიპტების ჩატვირთვა და შესრულება, რაც უზრუნველყოფს თავდაცვის სიღრმისეულ ფენას ZXCVFIXVIBETOKEN0ZXFIXZVIBETOKEN.
როგორ ამოწმებს მას FixVibe
FixVibe-ს შეეძლო XSS აღმოაჩინოს მრავალშრიანი მიდგომით, რომელიც დაფუძნებულია დადგენილ სკანირების მეთოდოლოგიებზე [S1]:
- პასიური სკანირება: დაკარგული ან სუსტი უსაფრთხოების სათაურების იდენტიფიცირება, როგორიცაა
Content-Security-PolicyანX-Content-Type-Options, რომლებიც შექმნილია XSSContent-Security-Policy. - აქტიური ზონდები: უნიკალური, არამავნე ალფაციფრული სტრიქონების შეყვანა URL-ის პარამეტრებში და ფორმის ველებში, რათა დადგინდეს, არის თუ არა ისინი ასახული პასუხის სხეულში [S1] სათანადო კოდირების გარეშე.
- რეპო სკანირება: კლიენტის მხარეს JavaScript-ის ანალიზი „ნიჟორებისთვის“, რომლებიც არასაიმედოდ ამუშავებენ არასანდო მონაცემებს, როგორიცაა
innerHTML,document.writeანsetTimeout-ის საერთო ინდიკატორები XSS [S1].
