Có rất nhiều loại lỗ hổng bảo mật khác nhau được tìm thấy trong các trang web, một trong những lỗ hổng thú vị được gọi là “Session Fixation”. Cố định phiên là một vấn đề trong đó kẻ tấn công có thể ảnh hưởng đến số nhận dạng phiên hay còn gọi là id phiên của người dùng và sau đó sử dụng nó để giành quyền truy cập vào tài khoản của họ. Có hai cách để loại lỗ hổng này hoạt động, nó có thể cho phép kẻ tấn công tìm hoặc đặt id phiên của người dùng khác.
Cách thực hiện một cuộc tấn công cố định phiên
Id phiên của người dùng thường là một phần quan trọng của xác thực đối với trang web và trong nhiều trường hợp là dữ liệu duy nhất xác định người dùng cụ thể đã đăng nhập. Vấn đề với điều này là nếu kẻ tấn công có thể đặt hoặc tìm hiểu id phiên của người khác người dùng, họ có thể sử dụng mã thông báo phiên và sau đó có thể hoạt động với tư cách là người dùng.
Thông thường, điều này được thực hiện bằng cách lừa người dùng nhấp vào một loại liên kết lừa đảo. Bản thân liên kết là hoàn toàn hợp pháp nhưng bao gồm một biến đặt id phiên được chỉ định. Nếu sau đó người dùng đăng nhập bằng ID phiên và máy chủ không gán cho họ một ID phiên mới khi đăng nhập, kẻ tấn công có thể chỉ cần đặt id phiên của họ giống nhau và có quyền truy cập vào tài khoản của nạn nhân.
Một cách khác mà kẻ tấn công có thể phát hiện ra id phiên của nạn nhân là nếu nó xuất hiện trong một URL. Ví dụ: nếu kẻ tấn công có thể lừa nạn nhân gửi cho họ một liên kết và nó bao gồm ID phiên của nạn nhân, kẻ tấn công có thể sử dụng id phiên để truy cập tài khoản của nạn nhân. Trong một số trường hợp, điều này có thể xảy ra hoàn toàn do tình cờ. Ví dụ: nếu người dùng sao chép URL với id phiên và dán nó cho bạn bè hoặc trong một diễn đàn, bất kỳ người dùng nào theo liên kết sẽ được đăng nhập bằng tài khoản của người dùng.
Các biện pháp khắc phục cố định phiên
Có một số giải pháp cho vấn đề này và như mọi khi, giải pháp tốt nhất là thực hiện càng nhiều bản sửa lỗi càng tốt như một phần của chiến lược phòng thủ chiều sâu. Giải pháp đầu tiên là thay đổi id phiên của người dùng khi họ đăng nhập. Điều này ngăn kẻ tấn công có thể ảnh hưởng đến id phiên của người dùng đã đăng nhập. Bạn cũng có thể định cấu hình máy chủ để chỉ chấp nhận id phiên mà nó đã tạo và từ chối rõ ràng mọi id phiên do người dùng cung cấp.
Trang web phải được định cấu hình để không bao giờ đặt bất kỳ chi tiết người dùng nhạy cảm nào như id phiên trong URL và phải đặt nó trong tham số yêu cầu GET hoặc POST. Điều này ngăn người dùng vô tình xâm phạm id phiên của chính họ. Bằng cách sử dụng cả id phiên và mã thông báo xác thực riêng biệt, bạn tăng gấp đôi lượng thông tin mà kẻ tấn công cần để có được và ngăn kẻ tấn công truy cập vào các phiên có id phiên đã biết.
Điều quan trọng là tất cả id phiên hợp lệ cho người dùng đều bị vô hiệu khi nhấp vào nút đăng xuất. Có thể tạo lại id phiên theo mọi yêu cầu, nếu id phiên trước đó bị vô hiệu, điều này cũng ngăn những kẻ tấn công sử dụng id phiên đã biết. Cách tiếp cận này cũng làm giảm đáng kể cửa sổ mối đe dọa nếu người dùng tiết lộ id phiên của chính họ.
Bằng cách cho phép nhiều phương pháp tiếp cận này, một chiến lược chuyên sâu về phòng thủ có thể loại bỏ vấn đề này như một rủi ro an ninh.