CSRF là gì? Những cú lừa ngoạn mục và cách phòng chống CSRF

ITNavi 19 Apr 2021 8535
Không ít Developer khi được nhắc đến CSRF luôn cảm thấy lo lắng, sợ sệt. Với tất cả các lập trình viên mới vào ngành hay đã trong ngành thì nhất định phải hiểu rõ CSRF là gì? Để từ đó, có thể xây dựng được cách phòng chống phù hợp nhất. Loại bỏ những cú lừa từ CSRF bằng kiến thức do các chuyên gia của chúng tôi chia sẻ trong bài viết sau. 

CSRF là gì?

CSRF (tên viết tắt của từ Cross Site Request Forgery) được định nghĩa là một dạng tấn công có thể gây ra sự nhầm lẫn. Nhầm lẫn ở đây là tăng tính xác thực và cấp quyền cho nạn nhân khi gửi request giả mạo đến cho máy chủ. Vì vậy, lỗ hổng CSRF sẽ gây ra ảnh hưởng nghiêm trọng đến một số quyền của người dùng như: quyền quản trị viên, bị mất quyền truy cập,... CSRF là gì?

CSRF là gì?

Nếu như thực hiện gửi request HTTP thì trình duyệt của “người bị hại” sẽ nhận về nhưng Cookie. Cookie này sẽ được lưu trữ ở mộ session nhằm định dạng người dùng không phải xác thực lại cho những yêu cầu được gửi lên.  Trường hợp phiên làm việc đã xác thực của nạn nhân được lưu trữ trong Cookie còn hiệu lực. Hoặc ứng dụng không bảo mật dễ tấn công CSRF. Khi đó, kẻ tấn công có thể sử dụng CSRF để chạy mọi request nào với ứng dụng web. Kể cả những trang web không có khả năng phân biệt được request đó là thực hay giả mạo.  Bạn có thể hiểu nôm na định nghĩa trên như sau: CSRF là loại kỹ thuật tấn công dựa vào cách mượn quyền trái phép con được gọi là “session riding hoặc XSRF”.

Rủi ro của CSRF là gì?

Lợi dụng lỗ hổng thông qua CSRF, các hacker có thể lợi dụng để: 
  • Đánh cắp đi nhưng dữ liệu bí mật
  • Thực hiện phát tán worm lên mạng xã hội. 
  • Cài đặt những phần mềm độc hại lên điện thoại di động. 
  • Thực hiện khảo sát trực tuyến. 
Thực sự rất khó để có thể ước tính được mức độ nguy hiểm và phổ biến của một cuộc tấn công CSRF. Theo các chuyên gia, CSRF được em là một trong mười lỗ hổng bảo mật hàng đầu của OWASP. 

Tìm hiểu về lịch sử và kịch bản tấn công CSRF

Lịch sử tấn công CSRF

Dạng tấn công CSRF xuất hiện từ năm 1990 và chúng xuất phát từ IP của người sử dụng. Vì vậy, log file của website không xuất hiện các dấu hiệu của CSRF. Những cuộc tấn công dựa theo kỹ thuật CSRF thường không được báo cáo đầy đủ. Cho đến năm 2007, thì các tài liệu miêu tả chi tiết về tấn CSRF mới có.  Đến năm 2008, đã có khoảng 18 triệu người dùng eBay tại Hàn Quốc bị đánh cắp thông tin cá nhân. Trong thời điểm đó, một vài khách hàng ở Mexico bị mất cắp tài khoản cá nhân của mình. Cả 2 trường hợp này thì hacker đều sử dụng kỹ thuật tấn công CSRF để tạo ra lỗ hổng và đánh cắp thông tin.  Tấn công CSRF để lại nhiều hệ lụy cho người dùng

Tấn công CSRF để lại nhiều hệ lụy cho người dùng

Cú lừa tấn công CSRF có kịch bản ra sao?

Ứng dụng web sẽ hoạt động dựa theo cơ chế nhận câu lệnh HTTP từ người dùng và thực thi câu lệnh này. Hacker se dùng biện pháp CSRF để tạo ra “cú lừa” với trình duyệt người dùng để gửi đi câu lệnh http đến các ứng dụng web.  Điều này có thể thực hiện bằng cách chèn mã độc hoặc link đến trang web đã được người dùng chứng thực. Với trường hợp phiên làm việc của người dùng chưa mất hiệu lực, các câu lệnh sẽ được thực thi bằng quyền chứng thực của người sử dụng.  Các kỹ thuật lừa đảo CSRF đang rất đa dạng như: lừa người dùng click vào link, thông qua gửi email chứa mã độc,... Nhiều trường hợp hacker còn che dấu các đường link ở vị trí khéo léo hơn nên rất khó để nhận ra.  Bạn đọc tham khảo thêm: Postman là gì? Hướng dẫn cách sử dụng Postman hiệu quả nhất

Hướng dẫn phòng chống tấn công CSRF

CSRF dựa vào nguyên tắc “lừa trình duyệt người dùng để gửi câu lệnh HTTP”. Vì vậy, để tránh khỏi cấn công ta cần chia thành 2 đối tượng là phía client và phía server. 

Với phía người dùng (User)

Để không trở thành nạn nhân do tấn công CSRF, bạn cần bảo đảm các lưu ý như sau: 
  • Chủ động đăng xuất tài khoản khỏi những website quan trọng như: Tài khoản ngân hàng, mạng xã hội, gmail, thanh toán trực tuyến,... nếu như đã hoàn thành giao dịch. 
  • Chủ động login vào máy riêng và không cho người thứ 2 tiếp xúc với máy đó. 
  • Không được click vào đường dân mà bạn nhận được qua facebook, email,.. Nếu bạn đưa chuột thông qua 1 đường dẫn phía dưới bên trái trình duyệt. Sẽ luôn có địa chỉ website đích và bạn nên lưu ý để chúng đến đúng trang mà mình muốn. 
  • Nếu thực hiện giao dịch hoặc vào website quan trọng thì bạn không nên vào song song website khác. Bởi vì chúng có thể chứa các đoạn mã khai thác do kẻ tấn công để lại. 
  • Không nên lưu các thông tin về mật khẩu ở trình duyệt của mình. Nên hạn chế lựa chọn các phương thức “đăng nhập lần sau” hoặc “lưu mật khẩu”,...
Làm sao để bảo mật website?

Làm sao để bảo mật website?

Với phía Server

Theo các chuyên gia, đến hiện tại chưa thể tìm ra biện pháp chống CSRF triệt để. Tuy nhiên, phía server có thể áp dụng một vài kỹ thuật sau để phòng ngừa. 
    • Chủ động dùng captcha và các thông báo xác nhận: Mã Captcha thường được dùng với mục đích nhận biết thao tác trên hệ thống là người hay máy. Những thao tác “đăng nhập”, chuyển khoản hoặc thanh toán nên sử dụng mã captcha. Nên áp dụng các chức năng quan trọng như reset mật khẩu, xác nhận và thay đổi info của account. Ngoài ra, nên gửi url qua email đa được đăng ký để người dùng có thể thực hiện các click vào xác nhận. 
  • Sử dụng csrf_token: Token có nhiệm vụ thay đổi liên tục sau các phiên làm việc. Khi thay đổi thì các thông tin sẽ được gửi kèm từ token. Nếu như token sinh ra và token được gửi lên không trùng nhau thì request sẽ được loại bỏ. 
  • Kiểm tra IP: Những hệ thống quan trọng thì chỉ nên cho truy cập từ các IP đã được thiết lập sẵn. Hoặc chỉ nên cấp phép truy cập quản trị thông qua IP local hoặc VPN. 
  •  Chủ động dùng cookie riêng biệt cho trang chủ admin: Server nên để trang quản trị ở một subdomain riêng để đảm bảo chúng không sử dụng chung cookies với front end của sản phẩm. 
  • Kiểm tra Referrer: Bạn cần kiểm tra nhưng câu lệnh HTTP gửi đến được xuất phát từ đâu. Mỗi một ứng dụng web đều có thể hạn chế và chỉ thực hiện những lệnh http gửi đến từ một số trang đã được chứng thực. Tuy nhiên, cách này có thể mang lại nhiều hạn chế nhất định và không mang lại quá nhiều hiệu quả. 

Tổng kết

ITNavi vừa chia sẻ đến bạn đọc những kiến thức về CSRF là gì? Việc tìm hiểu về tấn công CSRF và cách phòng chống tấn công CSRF đối với mỗi Developer là rất cần thiết. Hy vọng, với những thông tin trong bài viết sẽ giúp ích được cho bạn trong quá trình phòng ngừa CSRF. 
ITNavi - Nền tảng kết nối việc làm IT

Nguồn: CSRF là gì? Những cú lừa ngoạn mục và cách phòng chống CSRF

Bài viết liên quan

NEWSLETTER

Nhập địa chỉ email của bạn dưới đây để đăng ký nhận tin mới nhất

KẾT NỐI VÀ THEO DÕI