Trong kiểu tấn công ấn định một phiên làm việc, hacker ấn định sẵn session ID cho nạn nhân trước khi họ đăng nhập vào hệ thống. Sau đó, hacker sẽ sử dụng session ID này để bước vào phiên làm việc của nạn nhân đó.
Một số cách tấn công session ID:
Tấn công session ID trên tham số URL
Hacker gửi một liên kết yêu cầu người dùng đăng nhập vào hệ thống máy đích với session ID đã được ấn định sẵn trên URL.
Cách tấn công này đòi hỏi ứng dụng phải tạo session ID ngay khi người dùng sử dụng ứng dụng. Dễ bị phát hiện bởi người dùng.
Tấn công session ID trong biến ẩn form
Kỹ thuật này cũng tương tự kỹ thuật biến ẩn form, nghĩa là sau khi hacker xem mã HTML của trang web, nhận thấy sesion ID được đặt trong biến ần form, hacker sẽ gửi một session ID cũng trên URL đến người dùng hoặc một trang web giống trang đích nhưng với biến ẩn form mang giá trị ấn định sẵn.
Tấn công session ID trong cookie
Bằng việc lợi dụng cookie, hacker có ba cách để đưa một sesion ID đến trình duyệt của nạn nhân:
- Sử dụng ngôn ngữ kịch bản (Javascrip, Vbscrip…) để thiết lập một cookie trong trình duyệt của nạn nhân.
- Sử dụng thẻ <META> để thiết lập thuộc tính Set-Cookie - Sử dụng Set-Cookie của HTTP header trả lời
Cách phòng chống:
Trước hết cũng cần nói rằng việc phòng chống kiểu tấn công ấn định session ID này không thuộc trách nhiệm của trình chủ web server, vì trình chủ chỉ cung cấp API quản lý phiên làm việc cho ứng dụng. Vì thế, chỉ ứng dụng mới cần có những biện pháp phòng chống lại kiểu tấn công này.
Biện pháp 1: Chống việc đăng nhập với một session ID có sẵn
Theo kiểu tấn công này, người dùng đăng nhập vào hệ thống thông qua một session ID do hacker tạo sẵn thay vì cho trình chủ tạo mới, do đó để có thể phòng chống, ứng dụng phải hủy bỏ session ID được cung cấp bởi trình duyệt của người dùng khi đăng nhập và luôn tạo một session ID mới khi người dùng đăng nhập thành công.
Biện pháp 2: Phòng chống những hacker bên ngoài hệ thống
Việc tạo ứng dụng trên hệ thống theo hướng giới hạn (chỉ tạo một session ID mới cho người dùng sau khi họ thành công) sẽ khi cho những hacker không phải là người dùng hợp lệ của hệ thống không thể sử dụng phương pháp tấn công này.
Biện pháp 3: Giới hạn phạm vi ứng dụng của session ID + Kết hợp session ID với địa chỉ của trình duyệt
+ Kết hợp session ID với thông tin chứng thực được mã hóa SSL của người dùng.
+ Xóa bỏ sesion khi người dùng thoát khỏi hệ thống hay hết hiệu lực, có thể thực hiện trên trình chủ hoặc trình duyệt (cookie).
+ Người sử dụng phải dùng chế độ thoát khỏi hệ thống để xóa bỏ session hiện thời và có thể những session ID còn lưu lại trên hệ thống khi họ quên thoát ra ngoài những lần trước.
+ Thiết lập thời gian hết hiệu lực cho session, tránh trường hợp hacker có thể duy trì session và sử dụng nó lâu dài.