Cross-site request forgery

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 (Trang 43 - 45)

CHƢƠNG 2 CÁC DẠNG TẤN CÔNG THƢỜNG GẶP LÊN ỨNG DỤNG WEB

2.2. Cross-site request forgery

43

2.2.1. Giới thiệu và kịch bản

CSRF (Cross-Site Request Forgery) là dạng tấn công bẫy nạn nhân tải một trang web có chứa yêu cầu độc hại. Tấn công CSRF sử dụng thông tin nhận dạng và quyền truy nhập của nạn nhân để thực hiện các thao tác không mong muốn thay mặt họ, nhƣ thay đổi địa chỉ email, thay đổi địa chỉ nhà, thực hiện giao dịch mua bán,...

Giả thiết trang web bank.com tồn tại lỗi cho phép tấn công CSRF. Alice và Bob là những ngƣời dùng dịch vụ ngân hàng trực tuyến của bank.com. Maria là kẻ tấn công. Kịch bản tấn công CSRF, trong đó Maria tấn cơng lừa Alice chuyển tiền cho mình:

- Alice muốn chuyển $100 cho Bob sử dụng trang web bank.com. Yêu cầu chuyển tiền của Alice có dạng:

POST http://bank.com/transfer.do HTTP/1.1 ...

Content-Length: 19; acct=BOB&amount=100

- Maria phát hiện có thể thực hiện cùng yêu cầu chuyển tiền nhƣ trên sử dụng yêu cầu GET: GET http://bank.com/transfer.do?acct=BOB&amount=100 HTTP/1.1 - Maria quyết định khai thác lỗi CSRF của trang bank.com để lừa Alice chuyển tiền

cho mình. Maria tạo ra URL chuyển $100000 từ Alice cho cô: http://bank.com/transfer.do?acct=MARIA&amount=100000

- Maria cần tạo bẫy để lừa Alice thực hiện yêu cầu chuyển tiền. Cô ta tạo 1 link trong email và gửi cho Alice:

<a href="http://bank.com/transfer.do?acct=MARIA&amount=100000"> View my Pictures!</a>

- Giả thiết Alice đã đƣợc xác thực với bank.com (đang trong phiên làm việc hoặc tự động đăng nhập bằng cookie), yêu cầu chuyển tiền đƣợc thực hiện;

- Tuy nhiên, do Alice có thể nhận ra việc chuyển tiền qua việc mở URL trên, Maria có thể giấu URL vào một ảnh rất nhỏđể nạn nhân không thể dễ dàng phát hiện: <img src="http://bank.com/transfer.do?acct=MARIA&amount=100000"

width="1" height="1" border="0">

2.2.2. Phịng chng tn cơng CSRF

Có thể sử dụng các biện pháp sau để phịng chống tấn cơng CSRF: - Sử dụng "chuỗi đồng bộ" cho mỗi thao tác quan trọng.

+ Máy chủ tạo "chuỗi đồng bộ" và gửi cho máy khách;

+ Khi máy khách gửi yêu cầu giao dịch, máy chủ kiểm tra "chuỗi đồng bộ" để xác thực yêu cầu có thực sựđến từ máy chủ.

- Sử dụng chuỗi xác thực CAPTCHAR. - Sử dụng Viewstate (ASP.NET)

44 + Kẻ tấn cơng khó làm giả Viewstate. - Sử dụng thƣ viện chuẩn để phòng chống CSRF: + OWASP CSRF Guard + PHP CSRF Guard + .Net CSRF Guard. - Sử dụng giao thức OTP/Challenge-Response:

+ Kiểm tra lại mật khẩu cho mỗi thao tác quan trọng;

+ Sử dụng one-time token/password.

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 (Trang 43 - 45)

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

(161 trang)