CSRF là gì? Tìm hiểu về CSRF và cách phòng chống tấn công hiệu quả

0
48
Rate this post

Vấn đề bảo mật website là một mối quan tâm quan trọng. CSRF, một loại tấn công phổ biến trên các website không bảo mật, cần được các lập trình viên như bạn nắm rõ để đảm bảo tính bảo mật cho ứng dụng web của mình.

CSRF là gì?

CSRF, còn được gọi là “Cross-site Request Forgery” – kỹ thuật tấn công giả mạo chính chủ thể của nó. CSRF liên quan đến việc tấn công chứng thực request trên web thông qua việc sử dụng Cookies. Nơi mà các hacker có thể sử dụng thủ thuật để tạo request mà bạn không hề biết. Đó là lý do tại sao một CSRF là hacker lạm dụng sự tin tưởng của một ứng dụng web trên trình duyệt của nạn nhân.

Cách thức hoạt động

CSRF là một loại tấn công gây sự nhầm lẫn tăng tính xác thực và cấp quyền của nạn nhân khi gửi một request giả mạo đến máy chủ. Điều này đồng nghĩa với việc tấn công CSRF ảnh hưởng đến các quyền của người dùng, ví dụ như quản trị viên, và kết quả là chúng truy cập được đầy đủ quyền.

Khi gửi một request HTTP, trình duyệt của nạn nhân sẽ nhận về Cookie. Cookies thường được sử dụng để lưu trữ một session để định danh người dùng, không yêu cầu xác thực lại cho mỗi yêu cầu gửi lên.

Nếu phiên làm việc đã xác thực của nạn nhân được lưu trữ trong một Cookie vẫn còn hiệu lực, và nếu ứng dụng không bảo mật, dễ dàng bị tấn công CSRF. Kẻ tấn công có thể thử dùng CSRF để chạy bất cứ request nào với ứng dụng web, trong đó có trang web không thể phân biệt được request nào là thực hay giả mạo.

Ví dụ để hiểu rõ hơn, khi ứng dụng web có một chức năng đơn giản là thay đổi mật khẩu người dùng. Việc gửi lên server theo phương thức HTTP GET thông thường. Nội dung gửi lên là password mới và confirm lại password:

CSRF Attack

Như vậy, khi người dùng vô tình vào một trang web giả mạo, hacker có thể reset mật khẩu người dùng trên trang web của bạn bằng URL giả mạo. Khi Victim (User) vô tình vào trang web-hacker-gia-mao, đã reset password của bản thân tại trang website-cua-ban. Nếu hacker biết thông tin username, họ có thể dùng password đã cài đặt để đăng nhập một cách bình thường.

Cách phòng chống tấn công CSRF

Dựa trên nguyên tắc của CSRF “lừa trình duyệt của người dùng (hoặc người dùng) gửi các câu lệnh HTTP”, thông thường để tránh tấn công ta sẽ chia làm hai đối tượng, một là cách một là phía client (người dùng cuối) và hai là phía server.

Phía User

Để tránh trở thành nạn nhân của các cuộc tấn công CSRF, bạn nên thực hiện một số lưu ý sau:

  • Đăng xuất khỏi các website quan trọng như tài khoản ngân hàng, thanh toán trực tuyến, mạng xã hội, gmail… sau khi đã thực hiện xong giao dịch.
  • Login vào một máy riêng và không cho người thứ hai tiếp xúc với máy đó.
  • Không click vào các đường dẫn mà bạn nhận được qua email hoặc qua Facebook. Khi bạn đưa chuột qua một đường dẫn, hãy lưu ý đến địa chỉ website đích phía dưới bên trái của trình duyệt để đến đúng trang mình muốn.
  • Không lưu các thông tin về mật khẩu tại trình duyệt của bạn. Không nên chọn các phương thức “đăng nhập lần sau”, “lưu mật khẩu”…
  • Trong quá trình thực hiện giao dịch hay vào các website quan trọng, không nên vào các website khác có thể chứa các mã khai thác từ kẻ tấn công.

Phía Server

Cho đến nay, vẫn chưa có biện pháp nào có thể phòng chống triệt để CSRF. Tuy nhiên, dưới đây là một số kĩ thuật sử dụng:

  • Sử dụng Captcha và các thông báo xác nhận: Captcha được sử dụng để xác định đối tượng đang thao tác với hệ thống là con người hay không. Các hành động quan trọng như “đăng nhập” hay “chuyển khoản”, “thanh toán” thường sử dụng Captcha. Ngoài ra, các chức năng như reset mật khẩu, xác nhận thay đổi thông tin tài khoản cũng nên gửi URL qua email đã đăng ký để người dùng có thể nhấp vào xác nhận.
  • Sử dụng csrf_token: Token này sẽ thay đổi liên tục trong phiên làm việc và được gửi kèm thông tin. Nếu token được sinh ra và token được gửi lên không trùng nhau, loại bỏ request này.
  • Sử dụng cookie riêng biệt cho trang admin: Nên đặt trang quản trị ở một subdomain riêng để không sử dụng chung cookies với front-end của sản phẩm. Ví dụ, hãy đặt là admin.dnulib.edu.vn thay vì dnulib.edu.vn/admin.
  • Kiểm tra IP: Một số hệ thống quan trọng chỉ cho phép truy cập từ những IP được thiết lập sẵn, hoặc chỉ cho phép truy cập quản trị qua IP local hoặc VPN.

Dnulib vừa giới thiệu các kiến thức về CSRF là gì? Tìm hiểu kỹ thuật tấn công CSRF cũng như cách phòng chống tấn công giả mạo CSRF. Hy vọng những thông tin trong bài viết sẽ giúp ích cho các bạn đang tìm kiếm thông tin. Chúc các bạn vui vẻ!

Dnulib là thư viện điện tử trực tuyến, cung cấp đa dạng tài liệu với hàng ngàn sách và báo online trên mọi lĩnh vực.]