CSRF là gì? Cách hoạt động và phòng chống tấn công hiệu quả
CSRF (Cross-Site Request Forgery) đang trở thành một trong những mối đe dọa lớn đối với an ninh mạng hiện nay. Nếu không cẩn thận, người dùng sẽ dễ bị mất tiền mà không hay biết. Vậy CSRF là gì? Cách thực hoạt động và phòng chống CSRF như thế nào? Cùng Bizfly Cloud tìm hiểu trong bài viết sau.
CSRF là gì?
CSRF là một loại tấn công mạng lừa đảo khiến người dùng vô tình sử dụng thông tin đăng nhập của họ để thực hiện hoạt động thay đổi trạng thái, chẳng hạn như chuyển tiền từ tài khoản của họ, thay đổi địa chỉ email và mật khẩu hoặc một số hành động không mong muốn khác.
CSRF hoạt động như thế nào?
Tấn công CSRF khai thác sự tin tưởng của trình duyệt và người dùng. Khi đăng nhập, trình duyệt lưu thông tin dưới dạng cookies và tự động gửi yêu cầu đến máy chủ. CSRF xảy ra khi kẻ tấn công tạo yêu cầu giả mạo hoặc lợi dụng yêu cầu đã có trong trình duyệt để gửi đến máy chủ mà không cần sự biết đến của người dùng. Nếu người dùng truy cập trang web của kẻ tấn công, họ có thể thực hiện các hành động trái phép trên trang web mà nạn nhân đã đăng nhập.
Ví dụ về kiểu tấn công CSRF
Trong các cuộc tấn công CSRF, kẻ tấn công sẽ lợi dụng quyền truy cập của người dùng đã đăng nhập vào một website để thực hiện các hành động không mong muốn mà người dùng không hay biết.
Ví dụ như:
Hacker gửi một liên kết độc hại qua email. Khi người dùng nhấp vào liên kết, một yêu cầu không mong muốn được gửi đến trang web mà họ đã đăng nhập. Ví dụ: http://bank.com/transfer?amount=1000&to=attacker_account
Nếu người dùng đã đăng nhập vào ngân hàng trực tuyến, yêu cầu này sẽ chuyển $1000 từ tài khoản của họ đến tài khoản của kẻ tấn công mà không cần sự đồng ý của họ.
Hoặc các hacker có thể chèn một thẻ hình ảnh vào một trang web mà người dùng truy cập. Khi trang này được tải, trình duyệt sẽ tự động gửi yêu cầu GET đến URL trong thuộc tính src của thẻ hình ảnh. Ví dụ:
xml
<img src="https://bank.com/transfer?amount=1000&to=attacker_account" style="display:none;">
Tiền sẽ được chuyển mà không cần đến các thao tác hay sự đồng ý của người dùng.
Cách phòng chống tấn công CSRF như thế nào?
Sử dụng Token CSRF
Token CSRF là một phương pháp hiệu quả để ngăn chặn các cuộc tấn công CSRF. Mỗi khi người dùng gửi yêu cầu tới server, một token duy nhất sẽ được tạo ra và gửi kèm theo yêu cầu đó. Server sẽ kiểm tra token này để xác nhận rằng yêu cầu đến từ nguồn hợp lệ. Nếu token không hợp lệ hoặc không tồn tại, server sẽ từ chối yêu cầu.
Xác thực HTTP
Xác thực HTTP là phương thức yêu cầu người dùng cung cấp thông tin xác thực (tên người dùng và mật khẩu) trong header HTTP khi gửi yêu cầu đến trang web. Máy chủ sẽ kiểm tra và chỉ thực hiện yêu cầu nếu thông tin xác thực hợp lệ.
Đào tạo, nâng cao nhận thức của người dùng
Đào tạo người dùng về hậu quả khi bị tấn công CSRF và cách phòng tránh, cũng như tránh không nhấp vào liên kết lạ hoặc truy cập trang web không đáng tin cậy.
Sử dụng Cookie Bí Mật
Mọi yêu cầu sẽ được gửi kèm cookie, bao gồm cả cookie bí mật. Cookie bí mật có thể được sử dụng để lưu trữ thông tin phiên làm việc của người dùng. Kết hợp với các biện pháp bảo mật khác, cookie này có thể giúp xác thực yêu cầu từ client mà không bị giả mạo.
Thực hiện Giao dịch nhiều bước
Giao dịch nhiều bước (Multi-step transactions) có thể làm tăng độ an toàn cho các hành động quan trọng như thay đổi mật khẩu hoặc chuyển tiền. Ví dụ như yêu cầu người dùng xác nhận lại thông tin trước khi hoàn tất giao dịch. Hoặc gửi mã xác nhận qua email hoặc SMS để đảm bảo rằng người dùng là chủ sở hữu tài khoản.
Chỉ chấp nhận yêu cầu POST
Khi thực hiện các thao tác quan trọng, nhạy cảm thì chỉ chấp nhận các yêu cầu POST để từ đó giảm thiểu rủi ro do CSRF, vì hầu hết các trình duyệt đều không tự động gửi yêu cầu POST khi người dùng nhấp vào liên kết.
Kết luận
Hiểu rõ về CSRF và cách thức hoạt động của hình thức tấn công này là điều cần thiết để bảo vệ thông tin cá nhân và tài sản trực tuyến. Khi áp dụng các biện pháp phòng chống như sử dụng token CSRF, xác thực HTTP và nâng cao nhận thức người dùng, chúng ta có thể giảm thiểu nguy cơ bị tấn công.