- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Vấn đề bảo mật trang web luôn là vấn đề được nhiều người quan tâm. CSRF là một trong những cuộc tấn công nguy hiểm có ảnh hưởng lớn đến các dữ liệu quan trọng. Vậy cụ thể loại tấn công này là gì? Hãy cùng chúng tôi tìm hiểu chi tiết ở bài viết dưới đây.
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.
Để 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 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.
Để 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:
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.
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 đó.
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 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 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ả.
Ví dụ về cách CSRF tấn công tài khoản ngân hàng của người dùng như sau:
CSRF đánh lừa người dùng tải và gửi các thông tin quan trọng đến ứng dụng web. Chẳng hạn như A muốn chuyển 100 đô la cho B bằng ứng dụng web là Bank.com. Kẻ tấn công C sẽ lợi dụng ứng dụng web này để đánh cắp số tiền đó của A. Cụ thể như sau:
Đối với ứng dụng triển khai dựa trên GET scenario để chuyển các tham số và thực thi các hành động. Chẳng hạn như để chuyển tiền cần thực hiện yêu cầu như sau:
{{EJS0}}
Đầu tiên, C tạo một URL khai thác để chuyển 100 đô la từ tài khoản của A sang tài khoản của mình, tiếp theo lấy lệnh URL ban đầu để đổi tên A là C và tăng số tiền chuyển:
{{EJS1}}
CSRF đã đánh lừa A tải một URL giả mạo để đăng nhập vào ứng dụng ngân hàng bằng cách:
URL khai thác giả mạo một liên kết thông thường và đánh lừa người dùng nhấp vào nó. Cụ thể đường liên kết sẽ có dạng như sau:
{{EJS2}}
Hoặc với một 0x0 image giả mạo như:
{{EJS3}}
Trong đó, thẻ image này cũng được đính kèm trong email và A sẽ không thể phát hiện ra các điểm đáng ngờ.
Giả sử một ngân hàng sử dụng POST có yêu cầu dễ bị tấn công được hiển thị như sau:
{{EJS4}}
Yêu cầu này không thể được gửi bằng thẻ A hoặc IMG tiêu chuẩn mà được gửi mà thẻ FORM như sau:
{{EJS8}}
FORM này được gửi cho người dùng và yêu cầu họ nhấp vào nút gửi. Đôi khi thao tác này sẽ được thực thi tự động bằng JavaScript:
{{EJS5}}
Hầu hết các API của ứng dụng web hiện đại đều sử dụng phương thức HTTP khác như PUT hay DELETE. Giả sử với một ngân hàng dễ bị tấn công sẽ sử dụng PUT để lấy JSON làm đối số:
{{EJS6}}
Các yêu cầu này thực thi dựa trên JavaScript được nhúng vào một trang khai thác như sau:
{{EJS7}}
Bởi vì các yêu cầu này không được thực thi bằng các trình duyệt web hiện đại có những hạn chế về chính sách cùng nguồn gốc. Nên chúng được thực thi khi một trang web gốc kích hoạt công khai các yêu cầu có liên quan đến kẻ tấn công thông qua CORS. Ngoài ra, còn có một số cuộc tấn công khác như Cross-site Scripting (XSS) và Cross Site History Manipulation (XSHM).
Một số kiểm soát hỗ trợ ngăn chặn CSRF như sau:
Một số kỹ thuật hỗ trợ ngăn chặn CSRF như sau:
Như vậy, bài viết trên đây chúng tôi đã tổng hợp chi tiết về CSRF đến bạn đọc. Đây là một loại tấn công nguy hiểm nhắm vào các dữ liệu thông qua ứng dụng web. Hy vọng qua bài viết này bạn đã nắm được một số mẹo và kỹ thuật để ngăn chặn các cuộc tấn công nguy hiểm này.
Nếu bạn có thắc mắc về CSRF hoặc muốn tìm hiểu thêm về những loại tấn công nguy hiểm khác, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Thuê VPS Giá Rẻ tại BKHOST
Khuyến mãi giảm giá cực sâu, chỉ từ 62k/tháng. Đăng ký ngay hôm nay: