CSRF là gì? Cách ngăn chặn CSRF hiệu quả

Các hành vi tấn công mạng và xâm nhập dữ liệu ngày càng trở nên tinh vi, đánh cắp dữ liệu người dùng bằng nhiều hình thức khác nhau. CSRF là một trong những kỹ thuật tấn công nguy hiểm trong bảo mật web, cho phép kẻ tấn công thực hiện các hành động trái phép trên tài khoản của người dùng mà không cần sự đồng ý của họ. Cùng Techie tìm hiểu CSRF là gì để trở nên an toàn hơn khi sử dụng mạng.

CSRF là gì?

Cross-site Request Forgery (CSRF) hay còn gọi là tấn công giả mạo xuyên trang web, là một kỹ thuật tấn công mà kẻ tấn công lợi dụng quyền truy cập của người dùng hợp lệ vào một trang web để thực hiện các hành động trái ý muốn trên trang web đó.

Kẻ tấn công sẽ đánh lừa trình duyệt của người dùng để gửi đi các yêu cầu giả mạo đến máy chủ của trang web mà người dùng đang đăng nhập. Vì trình duyệt tin rằng các yêu cầu này là hợp lệ (bởi chúng đi kèm với cookie hoặc thông tin xác thực hợp lệ của người dùng), nên máy chủ sẽ xử lý chúng và thực hiện các hành động theo yêu cầu.

tìm hiểu CSRF là gì?
CSRF là gì?

Tác động của các cuộc tấn công CSRF là gì?

Khi một trang web gửi yêu cầu dữ liệu đến một trang web khác thay mặt cho người dùng cùng với cookie phiên của người dùng, kẻ tấn công có thể khởi chạy tấn công giả mạo yêu cầu trên nhiều trang web, lạm dụng mối quan hệ giữa trình duyệt của nạn nhân và máy chủ web.

Trong một số trường hợp, tùy thuộc vào loại hành động, kẻ tấn công có thể giành toàn quyền kiểm soát tài khoản của người dùng. Nếu người dùng bị xâm nhập có vai trò đặc quyền trong ứng dụng, kẻ tấn công có thể có toàn quyền kiểm soát tất cả chức năng và dữ liệu của ứng dụng. Điều này gây thiệt hại cho cả doanh nghiệp và người dùng. Kết quả có thể là bị đánh cắp dữ liệu, chuyển tiền trái phép, mối quan hệ với khách hàng bị tổn hại, mật khẩu bị thay đổi…

Nguyên lý hoạt động của CSRF là gì?

Khi người dùng cố gắng truy cập một trang web, trình duyệt thường tự động đưa thông tin xác thực vào yêu cầu để giúp quá trình đăng nhập thuận tiện hơn. Những thông tin xác thực này có thể bao gồm cookie phiên của người dùng, thông tin xác thực cơ bản, địa chỉ IP và thông tin xác thực miền Windows.

Rủi ro cố hữu trong cơ chế này là kẻ tấn công có thể dễ dàng mạo danh người dùng. Khi người dùng vượt qua quá trình xác minh danh tính của trang web, trang web không thể phân biệt giữa yêu cầu giả mạo và yêu cầu người dùng hợp pháp.

Trong một cuộc tấn công CSRF, kẻ tấn công giả định danh tính của nạn nhân và sử dụng nó để thực hiện các hành động thay mặt người dùng mà không có sự đồng ý của họ. Những kẻ tấn công thường làm theo quy trình này:

  1. Sử dụng các kỹ thuật lừa đảo để thuyết phục nạn nhân nhấp vào liên kết qua email, tin nhắn hoặc hình thức giao tiếp tương tự.
  2. Chính liên kết độc hại hoặc trang web mà người dùng truy cập sẽ kích hoạt yêu cầu đến trang web được nhắm mục tiêu.
  3. Yêu cầu được cho là đến từ người dùng và lợi dụng thực tế là người dùng đã đăng nhập vào trang web.
  4. Trang web thừa nhận yêu cầu và thực hiện hành động được yêu cầu của kẻ tấn công mà người dùng không biết hoặc không đồng ý.

Các cuộc tấn công CSRF thường cố gắng thay đổi trạng thái máy chủ nhưng cũng có thể được sử dụng để giành quyền truy cập vào dữ liệu nhạy cảm. Nếu kẻ tấn công thực hiện thành công cuộc tấn công CSRF vào tài khoản của nạn nhân, chúng có thể chuyển tiền, mua sản phẩm, sửa đổi thông tin tài khoản như địa chỉ giao hàng, sửa đổi mật khẩu hoặc bất kỳ hành động nào khác có sẵn khi người dùng đăng nhập.

nguyen-ly-CSRF
Hacker đã thực hiện tấn công CSRF như thế nào?

Các lỗ hổng CSRF phổ biến là gì?

Xác thực phụ thuộc vào sự hiện diện của mã thông báo

Trong một số ứng dụng, quá trình xác minh sẽ bị bỏ qua nếu mã thông báo không tồn tại. Điều này có nghĩa là kẻ tấn công chỉ cần tìm mã chứa thông tin mã thông, xóa mã đó và ứng dụng sẽ không thực hiện xác thực mã thông báo.

Mã thông báo CSRF không được liên kết với phiên người dùng

Một số ứng dụng duy trì một nhóm mã thông báo. Miễn là mã thông báo từ nhóm đó được sử dụng thì nó sẽ được chấp nhận. Tuy nhiên, ứng dụng không ràng buộc các mã thông báo cụ thể với người dùng cụ thể. Kẻ tấn công chỉ cần lấy ít nhất một mã thông báo từ nhóm và có thể sử dụng nó để mạo danh bất kỳ người dùng nào.

Thay đổi xác thực mã thông báo bằng phương thức HTTP

Trong một số ứng dụng, việc sử dụng phương thức GET thay vì phương thức POST sẽ khiến quá trình xác thực CSRF không hoạt động bình thường. Kẻ tấn công chỉ cần chuyển từ POST sang GET và dễ dàng bỏ qua quá trình xác minh.

Một số giải pháp phòng chống CSRF

Sử dụng các kỹ thuật xác thực nâng cao

Kẻ tấn công có thể bắt đầu cuộc tấn công CSRF khi tất cả các tham số được sử dụng trong biểu mẫu được xác định. Do đó, để ngăn chặn cuộc tấn công CSRF, bạn có thể thêm một tham số bổ sung với giá trị bổ sung mà kẻ tấn công không biết. Tuy nhiên, máy chủ yêu cầu xác thực.

Kỹ thuật ngăn chặn được sử dụng rộng rãi nhất đối với các cuộc tấn công CSRF được gọi là mã thông báo chống CSRF hoặc mã thông báo đồng bộ hóa. Khi người dùng thực hiện một số yêu cầu được xác thực bằng cách gửi biểu mẫu, mã thông báo ngẫu nhiên sẽ được đưa vào yêu cầu đó. Sau đó, trang web sẽ xác minh sự xuất hiện của mã thông báo này trước khi xử lý yêu cầu đã gửi và nếu mã thông báo bị thiếu hoặc giá trị không chính xác. Yêu cầu sẽ bị từ chối và kẻ tấn công sẽ không thể thực hiện cuộc tấn công CSRF.

Thuộc tính Cookie SameSite

Thuộc tính Cookie SameSite, được xác định trong RFC 6265 bis, cố gắng giảm thiểu các cuộc tấn công CSRF. Thuộc tính này cho trình duyệt biết khi nào có thể gửi cookie với các yêu cầu trên nhiều trang web. Thuộc tính Cookie SameSite có ba giá trị có thể có – Strict, Lax, hoặc None. Phần lớn các trình duyệt trên thiết bị di động và tất cả các trình duyệt trên máy tính để bàn đều hỗ trợ thuộc tính này.

Bảo vệ CSRF dựa trên tương tác người dùng

Nói chung, các cơ chế bảo vệ yêu cầu sự can thiệp của người dùng có thể tác động tiêu cực đến trải nghiệm người dùng. Tuy nhiên, trong một số trường hợp, chẳng hạn như giao dịch tài chính, việc thực hiện loại kỹ thuật này là phù hợp và bắt buộc. Ví dụ: bạn có thể thêm CAPTCHA, giúp xác thực rằng đó thực sự là người dùng chứ không phải robot.

Mã thông báo một lần cũng có thể đảm bảo rằng đó là người dùng chứ không phải kẻ tấn công sử dụng phiên đăng nhập. Mã thông báo thường được gửi đến địa chỉ email hoặc số điện thoại của người dùng, xác thực bằng thông tin do người dùng cung cấp trước đó. Ngoài ra, có thể thực hiện xác thực lại, điều này có thể giúp phân biệt giữa phiên CSRF và người dùng thực.

Kết luận

Tóm lại, CSRF là gì? Đây là một mối đe dọa nguy hiểm trên internet. Người dùng cũng nên cẩn thận khi nhấp vào các đường link từ các nguồn không đáng tin cậy để tránh bị tấn công CSRF. Ngoài ra, cũng cần cẩn thận với các liên kết và email từ những người không quen biết, cài đặt phần mềm chống virus và chống lừa đảo, sử dụng mật khẩu mạnh và thay đổi mật khẩu thường xuyên.

>> Xem thêm: An ninh mạng là gì? Các biện pháp hàng đầu để bảo mật mạng

Khám phá thêm
Mối quan hệ tình yêu luôn là một chủ đề hấp dẫn và phức tạp. Cũng dễ hiểu khi nhiều...
“Chúng ta đang sống trong thế giới VUCA” – Câu nói này đã diễn tả đúng tình trạng thế giới...
Trong bài viết này, Techie sẽ giới thiệu đến bạn bản chất của tính năng constraints và auto-layout figma, cũng...
Temu, một ứng dụng mua sắm Trung Quốc, đang gây chấn động trên internet với những sản phẩm rất rẻ....
Theo một “nguồn tin mật” cho hay, Ghibli chính thức công bố trailer phần tiếp theo của tựa phim Vùng...
Cảm biến sinh học (Biosensor) đã đánh dấu một thành tựu quan trọng trong cuộc chiến chống đại dịch COVID-19 khi...
Thuật toán Dijkstra là một công cụ quan trọng trong lý thuyết đồ thị và tối ưu hóa. Với khả...
Với tỷ lệ dân số sử dụng Internet chiếm đến hơn 70%, Việt Nam luôn được coi là thị trường...