
CSRF là gì? Cách ngăn chặn tấn công CSRF hiệu quả
Nội dung bài viết
CSRF là gì?
CSRF (Cross-Site Request Forgery) là một kỹ thuật tấn công giả mạo nhắm vào các ứng dụng trang web, chẳng hạn như gửi liên kết qua email hoặc SMS. Kẻ tấn công sẽ dụ dỗ và đánh lừa để người dùng nạn nhân click vào đường link đã được request sẵn để lấy địa chỉ email hoặc cấp quyền truy cập vào các dữ liệu quan trọng.
Một số hoạt động bảo mật
Để kiểm tra lại các mã cho lỗ hổng bảo mật CSRF, người dùng có thể lựa chọn tìm hiểu về OWASP. Hoặc để ngăn chặn các lỗ hổng CSRF hãy sử dụng Csrf Prevention Cheat Sheet để tìm hiểu các phương pháp bảo vệ hiệu quả.
Một số phần mềm hỗ trợ CSRF tích hợp như Joomla, Spring, Struts, Ruby on Rails và .NET cũng được sử dụng để nâng cao hệ thống bảo mật. Đối với các ứng dụng Java có thể sử dụng OWASP CSRFGuard. Hoặc với các ứng dụng PHP nên lựa chọn dịch vụ CSRF Protection Project và các dự án được triển khai dựa trên Apache Server.
CSRF hoạt động như thế nào?
CSRF hoạt động bằng cách gửi các yêu cầu độc hại đến cho người dùng nạn nhân nhằm đánh cắp các thông tin cá nhân, quyền truy cập và dữ liệu nhạy cảm. Hầu hết các trang web không thể xác định các yêu cầu là giả mạo hay thực khi có người dùng đang được xác thực.
CSRF tấn công trực tiếp vào các trạng thái trên máy chủ như thay đổi địa chỉ IP hoặc mật khẩu của nạn nhân. Đầu tiên, kẻ tấn công sẽ yêu cầu nạn nhân đăng nhập vào tài khoản mà chúng đang kiểm soát để bổ sung các thông tin như thẻ tín dụng, tài khoản ngân hàng hay địa chỉ nhà. Sau đó, chúng sẽ tiến hành lấy các dữ liệu cá nhân vừa thu thập được để đăng nhập tài khoản trên ứng dụng web.
Lỗ hổng lưu trữ CSRF là các cuộc tấn công có sẵn trên các trang web bảo mật kém được thực hiện bằng thẻ IMG/IFRAME trong môi trường HTML. Bởi vì CSRF được lưu trữ trên trang web nên nó có thể đem đến nhiều mối nguy hại như các cuộc tấn công sẽ được kích hoạt và mở rộng bất cứ lúc nào.
CSRF còn được gọi bằng một số tên khác như XSRF, Sea Surf, Session Riding, Cross-Site Reference Forgery và Hostile Linking. Microsoft coi CSRF là một cuộc tấn công nhấp chuột có thể đe dọa đến nhiều tài liệu quan trọng.
Các biện pháp ngăn chặn CSRF
Để ngăn chặn các cuộc tấn công CSRF xảy ra và phát triển hãy lưu ý một số mẹo sau đây:
Sử dụng một Cookie bí mật
Hầu hết mọi Cookie công khai đều được gửi theo yêu cầu nên tất cả các mã thông báo xác thực sẽ được gửi đến người dùng cuối thực hoặc giả mạo. Các mã định danh phiên hay số nhận dạng của Cookie không thể tự xác minh mục đích gửi yêu cầu của người dùng.
Chỉ chấp nhận các yêu cầu POST
Một số ứng dụng được triển khai với mục đích chỉ chấp nhận các yêu cầu POST để thực hiện các nghiệp vụ khoa học. Tuy nhiên, hacker có thể tạo ra CSRF được thực hiện trên các ứng dụng POST đó.
Giao dịch nhiều bước
Phương pháp giao dịch với nhiều quy trình không phải là một kế hoạch hoàn hảo trong việc ngăn chặn CSRF. Bởi chỉ cần các hacker có thể dự đoán ra các bước đó thì cuộc tấn công CSRF vẫn có thể được thực hiện.
Viết lại URL
Viết lại URL là một kỹ thuật ngăn chặn CSRF khá hiệu quả vì kẻ tấn công không thể dự đoán được các ID phiên khác nhau. Tuy nhiên, các ID phiên này này được hiển thị trong URL nên đây cũng không phải là một lựa chọn khả thi.
HTTPS
HTTPS không có bất kỳ tính năng nào có thể chống lại CSRF nhưng nó giống như một điều kiện hoàn hảo cho các biện pháp ngăn chặn hiệu quả.
Tham khảo một số kỹ thuật ngăn chặn CSRF
Một số kỹ thuật hỗ trợ ngăn chặn CSRF như sau:
- OWASP giúp ngăn chặn các yêu cầu giả mạo từ trang web của CSRF.
- CSRF/XSRF FAQ giống như kho thông tin hay danh sách có khả năng cập nhật và phát hiện các thông tin mới.
- Testing CSRF, CSRF Vulnerability là các công cụ hỗ trợ ngăn chặn CSRF.
- Client Side Protection against Session Riding bao gồm các kỹ thuật tiềm năng được sử dụng để chống lại CSRF.
- OWASP CSRFGuard giúp cung cấp phạm vi bảo vệ mở rộng ngăn chặn CSRF trong các ứng dụng.
- Bộ bảo vệ OWASP CSRF được triển khai dưới dạng thư viện PHP giúp ngăn chặn và hạn chế CSRF trong ứng dụng web.
- Most-Neglected Fact About được sử dụng để giải thích về CSRF.
- Pinata-CSRF-Tool cho phép triển khai các trang Proof of Concept CSRF và hỗ trợ đánh giá lỗ hổng ứng dụng.




