CSRF là gì?

CSRF ( Cross Site Request Forgery) là kĩ thuật tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với 1 website khác. Các ứng dụng web hoạt động theo cơ chế nhận các câu lệnh HTTPtừ người sử dụng, sau đó thực thi các câu lệnh này.

Bạn đang xem: Csrf là gì

Hacker sử dụng phương pháp CSRFđể lừa trình duyệt của người dùng gửi đi các câu lệnh http đến các ứng dụng web. Trong trường hợp phiên làm việc của người dùng chưa hết hiệu lực thì các câu lệnh trên sẽ dc thực hiện với quyền chứng thực của người sử dụng.

CSRF còn dc gọi là “session riding“, “XSRF

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

Các kiểu tấn công CSRF xuất hiện từ những năm 1990, tuy nhiên các cuộc tấn công này xuất phát từ chính IP của người sử dụng nên log file của các website k cho thấy các dấu hiệu của CSRF. Các cuộc tấn công theo kĩ thuật CSRFk dc báo cáo đầy đủ, đến năm 2007 mới có một vài tài liệu miêu tả chi tiết về các trường hợp tấn công CSRF.

Năm 2008 người ta phát hiện ra có khoảng 18 triệu người sử dụng eBay ở Hàn Quốc mất các thông tin cá nhân của mình. Cũng trong năm 2008, một số khách hàng tại ngân hàng Mexico bị mất tài khoản cá nhân của mình.Trong 2 trường hợp kể trên hacker đều sử dụng kĩ thuật tấn công CSRF.

Kịch bản tấn công CSRF

Người dùng Alieduyệt qua 1 diễn đàn yêu thích của mình như thường lệ. Một người dùng khác, Bob đăng tải 1 thông điệp lên diễn đàn. Giả sử rằng Bobcó ý đồ k tốt và anh ta muốn lấy tiền từ những người có tài khoản tại ngân hàng như Bob.

Xem thêm: Thái Tuế Là Gì – Và Tại Sao Gọi Là Phạm Thái Tuế

Aliesẽ tạo 1 thông báo, trong đó có chèn 1 đoạn code như sau:

eBank vừa công bố lãi xuất mới….

Đoạn mã trên dc che giấu rất khéo léo, thứ nhất nó thêm các thông điệp bình thường để người dùng không chú ý. Thứ hai thẻ “ vừa mới truy cập vào tài khoản ngân hàng của mình và chưa thực hiện logout để kết thúc. Trình duyệt của Bob sẽ gửi câu lệnh HTTP GET đến địa chỉ lưu trong thẻ “.

Ngoài thẻ “link ref=”stylesheet” href=”http://eBank.com/withdraw?account=bob_id&amount=1000000&for=Alie_id” type=”text/css”/>bgsound src=”http://eBank.com/withdraw?account=bob_id&amount=1000000&for=Alie_id”/>background src=”http://eBank.com/withdraw?account=bob_id&amount=1000000&for=Alie_id”/>script type=”text/javascript” src=”http://eBank.com/withdraw?account=bob_id&amount=1000000&for=Alie_id”/>

Các kĩ thuật CSRF

rất đa dạng, lừa người dùng click vào link, gửi email chứa các đoạn mã độc đến người dùng… Hacker còn có thể che giấu các link ở trên rất khéo léo.Ví dụ trong trường hợp thẻ “ và cấu hình lại máy chủ:Redirect 302/abc.jpg http://eBank.com/withdraw?account=bob_id&amount=1000000&for= Alie_id”/>. Như vậy người dùng sẽ rất khó để có thể phát hiện, vấn đề trách nhiệm phần lớn thuộc về các website của các nhà cung cấp.

Trong bài tới tôi sẽ giới thiệu tiếp với các bạn các cách để phòng tránh CSRF đối với người dùng và đối với người phát triển website.

Xem thêm: Giải Mã Kỳ Thi Trung Học Phổ Thông Quốc Gia Tiếng Anh Là Gì

Tham khảo thêm từ Internet

-*-

> Phát hiện sớm lỗ hổng CSRF và nhiều lỗ hổng khác với WhiteHub Bug Bounty – Nền tảng bảo mật cộng đồng, kết nối chuyên gia an ninh mạng với doanh nghiệp có nhu cầu kiểm thử lỗ hổng cho sản phẩm.

Chuyên mục: Hỏi Đáp