Sự khác nhau giữa hai kiểu tấn công khai thác lỗi XSS và CSRF:

Một phần của tài liệu Một số kỹ thuật kiểm thử an toàn hệ thống (Trang 53)

Trong kiểu tấn công khai thác lỗi XSS, trình duyệt trên máy tính nạn nhân nhận đoạn mã nguy hiểm từ trang web bị lỗi XSS gửi về và trình duyệt đó thực thi. Còn đối với kiểu tấn công khai thác lỗi CSRF, trang web bị lỗi CSRF sẽ nhận và

thực hiện yêu cầu (ngoài mong muốn) của nạn nhân từ trình duyệt trên máy tính nạn nhân với chứng thực hợp pháp của nạn nhân đó.

3.5.2 Nguyên lý thực hiện:

- Bước 1: Nạn nhân đăng nhập trang web bị lỗi CSRF.

- Bước 2: Thông qua kiểu tấn công XSS hoặc các phương pháp phi kỹ thuật như gửi link qua email, chat để đánh lừa trình duyệt nạn nhân gửi các yêu cầu ngoài ý muốn của nạn nhân cho trang web đó thực thi với chứng thực của nạn nhân đã đăng nhập trước đó.

- Bước 3: Trang web nhận các yêu cầu đó và thực hiện chúng vì nghĩ đó là yêu cầu hợp pháp đã được gửi từ trình duyệt trên máy tính của nạn nhân (với điều kiện chưa hết hạn phiên truy cập).

Hình 3.3: Một ví dụ tấn công kiểu CSRF Ví dụ: Người tấn công đăng tin lên diễn đàn có chèn một đoạn mã: <img height=”0″ width=”0″ src=”http://eBank.com/withdraw? account=hacker_id&amount=1000000&for=victim_ id”/>

Nạn nhân sau khi đăng nhập vào trang web của eBank, nếu tình cờ khi phiên truy cập trên trang web của eBank chưa hết hạn mà nạn nhân vào xem tin trên diễn

đàn có kèm đoạn mã trên, trình duyệt của nạn nhân sẽ gửi yêu cầu chuyển tiền đến tài khoản của người tấn công cho máy chủ eBank xử lý.

3.5.3 Phương pháp phòng chống:

Rất khó để phòng chống tấn công kiểu CSRF một cách triệt để, để hạn chế bị tấn công và giảm thiệt hại cho người sử dụng có một số biện pháp như sau:

Về phía máy chủ ứng dụng web:

- Sử dụng Captcha hoặc các thông báo xác nhận ở các form như có chức năng quan trọng: xác thực người dùng, thực thi một lệnh,…

- Sử dụng phương thức Get cho việc truy vấn lấy dữ liệu về, phương thức Post cho mục đích tạo ra thay đổi hệ thống.

- Hạn chế thời gian hiệu lực của phiên truy cập, thời gian ngắn sẽ giảm khả năng bị tấn công.

- Sử dụng Token: Tạo ra một Token tương ứng với mỗi form, Token này sẽ là duy nhất đối với mỗi form và thường thì hàm tạo ra Token này sẽ nhận đối số là phiên truy cập hoặc được lưu thông tin trong phiên truy cập. Khi nhận lệnh Http Post về, hệ thống sẽ thực hiện so khớp giá trị Token này để quyết định có thực hiện hay không.

- Sử dụng cookie riêng biệt cho trang quản trị: Một cookie không thể dùng chung cho các tên miền khác nhau,chính vì vậy việc sử dụng admin.site.com thay vì sử dụng site.com/admin sẽ an toàn hơn.

Về phía người dùng cuối:

- Trong quá trình đăng nhập vào các trang web quan trọng cần chứng thực như ngân hàng, thanh toán trực tuyến, email… không nên vào cùng lúc các trang web khác và thoát ra sau khi sử dụng xong.

- Không sử dụng tính năng lưu mật khẩu.

Một phần của tài liệu Một số kỹ thuật kiểm thử an toàn hệ thống (Trang 53)

Tải bản đầy đủ (PDF)

(81 trang)