არსებობს მრავალი სხვადასხვა ტიპის უსაფრთხოების დაუცველობა ნაპოვნი ვებსაიტებზე, ერთ-ერთ საინტერესოს ჰქვია "სესიის ფიქსაცია". სესიის ფიქსაცია არის პრობლემა, როდესაც თავდამსხმელს შეუძლია გავლენა მოახდინოს სესიის იდენტიფიკატორზე, ანუ მომხმარებლის სესიის ID-ზე და შემდეგ გამოიყენოს იგი მის ანგარიშზე წვდომისთვის. ამ ტიპის დაუცველობის მუშაობის ორი გზა არსებობს, მას შეუძლია თავდამსხმელს უფლება მისცეს სხვა მომხმარებლის სესიის ID-ის პოვნა ან დაყენება.
როგორ ხდება სესიის ფიქსაციის შეტევა
მომხმარებლის სესიის ID ხშირად არის ვებსაიტის ავტორიზაციის ძირითადი ნაწილი და ხშირ შემთხვევაში არის ერთადერთი მონაცემი, რომელიც განსაზღვრავს სისტემაში შესული კონკრეტული მომხმარებლის იდენტიფიკაციას. პრობლემა ის არის, რომ თუ თავდამსხმელს შეუძლია დააყენოს ან ისწავლოს სხვა მომხმარებლის სესიის ID, მათ შეუძლიათ გამოიყენონ სესიის ჟეტონი და შემდეგ შეძლებენ იმოქმედონ როგორც მომხმარებელი.
როგორც წესი, ეს ხდება მომხმარებლის მოტყუებით, რომ დააწკაპუნოს ფიშინგ ბმულზე. თავად ბმული სრულიად ლეგიტიმურია, მაგრამ მოიცავს ცვლადს, რომელიც ადგენს მითითებულ სესიის ID-ს. თუ მომხმარებელი შემდეგ შესულია სესიის ID-ით და სერვერი არ ანიჭებს მას ახალი სესიის ID-ს შედით სისტემაში, თავდამსხმელს შეუძლია უბრალოდ დააყენოს თავისი სესიის ID, რომ იყოს იგივე და ჰქონდეს წვდომა მსხვერპლის ანგარიში.
კიდევ ერთი გზა, რომ თავდამსხმელს შეუძლია აღმოაჩინოს მსხვერპლის სესიის ID არის თუ ის გამოჩნდება URL-ში. მაგალითად, თუ თავდამსხმელს შეუძლია მოატყუოს მსხვერპლი, რომ გაუგზავნოს მისთვის ბმული და ის შეიცავს მსხვერპლის სესიის ID-ს, თავდამსხმელს შეუძლია გამოიყენოს სესიის ID მსხვერპლის ანგარიშზე წვდომისთვის. ზოგიერთ შემთხვევაში, ეს შეიძლება სრულიად შემთხვევით მოხდეს. მაგალითად, თუ მომხმარებელი დააკოპირებს URL-ს სესიის ID-ით და ჩასვით მეგობარს ან ფორუმში, ნებისმიერი მომხმარებელი, რომელიც მიჰყვება ბმულს, შესული იქნება მომხმარებლის ანგარიშით.
სესიის ფიქსაციის საშუალებები
ამ საკითხის რამდენიმე გამოსავალი არსებობს და როგორც ყოველთვის, საუკეთესო გამოსავალი არის რაც შეიძლება მეტი გამოსწორების განხორციელება, როგორც თავდაცვის სიღრმისეული სტრატეგიის ნაწილი. პირველი გამოსავალი არის მომხმარებლის სესიის ID-ის შეცვლა, როდესაც ისინი შედიან. ეს ხელს უშლის თავდამსხმელს, რომ ოდესმე შეეძლოს გავლენა მოახდინოს შესული მომხმარებლის სესიის ID-ზე. თქვენ ასევე შეგიძლიათ დააკონფიგურიროთ სერვერი, რომ მიიღოს მხოლოდ მის მიერ გენერირებული სესიის ID და მკაფიოდ უარყოს ნებისმიერი მომხმარებლის მიერ მოწოდებული სესიის ID.
ვებსაიტი უნდა იყოს კონფიგურირებული ისე, რომ არასოდეს განთავსდეს მომხმარებლის რაიმე მგრძნობიარე დეტალი, როგორიცაა სესიის ID URL-ში და უნდა განთავსდეს ის GET ან POST მოთხოვნის პარამეტრში. ეს ხელს უშლის მომხმარებელს შემთხვევით დაარღვიოს საკუთარი სესიის ID. როგორც სესიის ID-ის, ასევე ცალკეული ავთენტიფიკაციის ჟეტონის გამოყენებით, თქვენ გააორმაგებთ იმ ინფორმაციის რაოდენობას, რომელიც საჭიროა თავდამსხმელის მოსაპოვებლად და თავიდან აიცილებთ თავდამსხმელებს სესიებზე წვდომაში ცნობილი სესიების ID-ებით.
სასიცოცხლოდ მნიშვნელოვანია, რომ მომხმარებლისთვის ყველა მოქმედი სესიის იდენტიფიკატორი გაუქმდეს გასვლის ღილაკზე დაწკაპუნებისას. შესაძლებელია სესიის id-ის ხელახლა გენერირება ყოველი მოთხოვნით, თუ წინა სესიის ID-ები გაუქმებულია, ეს ასევე ხელს უშლის თავდამსხმელებს გამოიყენონ ცნობილი სესიის ID. ეს მიდგომა ასევე მნიშვნელოვნად ამცირებს საფრთხის ფანჯარას, თუ მომხმარებელი გამოავლენს საკუთარ სესიის ID-ს.
ამ მიდგომებიდან მრავალი ჩართვით, თავდაცვის სიღრმისეულ სტრატეგიას შეუძლია აღმოფხვრას ეს საკითხი, როგორც უსაფრთხოების რისკი.