Trong hóa tệ học, đồng token là những đồ vật giống như tiền xu được sử dụng thay cho tiền xu. Lĩnh vực đồng token là một phần của exonumia và đồng token là tiền token. Mệnh giá của chúng được hiển thị hoặc ngụ ý theo kích thước, màu sắc hoặc hình dạng. Tuy nhiên nhiều người lại chưa thực sự quan tâm về vấn đề này. Hãy cùng LVN Group nghiên cứu các thông tin về csrf token thông qua nội dung trình bày dưới đây để hiểu rõ thêm về vấn đề này !.
csrf token
1. CSRF là gì?
CSRF được biết đến dưới nhiều cái tên khác nhau – Cross site request forgery (CSRF – XSRF), Sea Surf hay là Session Riding. Đây là một vector tấn công, có khả năng đánh lừa trình duyệt web thực hiện các hoạt động không mong muốn trong ứng dụng người dùng đã đăng nhập.
Một cuộc tấn công giả mạo chính chủ thể sẽ gây hậu quả nghiêm trọng cho các doanh nghiệp lẫn người dùng. Căn cứ là dẫn đến các hoạt động chuyển tiền trái phép, thay đổi mật khẩu, đánh cắp dữ liệu – gồm cả các session cookies.
Các cuộc tấn công mạng này thường lợi dụng các email hoặc liên kết giả mạo, nhằm đánh lừa nạn nhân gửi các request đến server. Nhiều trường hợp ứng dụng người dùng sử dụng đã được xác thực trước đó, nên rất khó phân biệt giữa các request hợp pháp và giả mạo.
2. Lịch sử của tấn cống CSRF
CSRF xuất hiện từ năm 1990 và 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 bất cứ các dấu hiệu của CSRF. Các cuộc tấn công theo kỹ thuật CSRF thường không được báo cáo trọn vẹn. Cho đến năm 2007, mới có trọn vẹn các tài liệu miêu tả chi tiết về CSRF.
Sau đó 1 năm, đã 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 cực kỳ nghiêm trọng. Trong thời gian đó, có một số 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, 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 cực kỳ nguy hiểm.
3. CSRF hoạt động thế nào?
Có ba yếu tố then chốt để thực hiện một cuộc tấn công CSRF:
- Hành động liên quan: Đây là các hành động được thực hiện trong ứng dụng mà các hacker có thể sử dụng làm phương tiện để tấn công. Chẳng hạn như các hành động đặc quyền (như sửa đổi quyền truy cập) hay các hành động trên dữ liệu của riêng người dùng (thay đổi mật khẩu).
- Xử lý dựa trên session cookie: Căn cứ, các hacker sẽ đưa ra một hay nhiều HTTP request, và ứng dụng chỉ dựa vào session cookie để xác định người dùng đã thực hiện request. Tức là không có cơ chế nào khác để có thể theo dõi session hoặc xác thực user request.
- Tham số request có thể đoán được: Các request thực hiện hành động chứa các tham số mà hacker có thể xác định hay đoán được.
Request này đáp ứng đủ ba yếu tố cần thiết cho CSRF:
- Hành động thay đổi địa chỉ email của người dùng là một hành động lý tưởng với các hacker để tấn công. Sau đó, chúng thường trigger một password reset, từ đó nắm được toàn quyền kiểm soát tài khoản của người dùng.
- Ứng dụng sử dụng session cookie để xác nhận người dùng đưa ra request.
- Không có token hay cơ chế nào khác để theo dõi user session.
- Kẻ tấn công có thể dễ dàng xác định giá trị của các tham số request cần thiết để thực hiện hành động.
Nếu nạn nhân truy cập trang web của hacker:
- Trang web của hacker sẽ trigger một HTTP request đến trang web dễ bị tấn công.
- Nếu người dùng đăng nhập vào trang web đó, trình duyệt sẽ tự động đưa session cookie vào request.
- Trang web sau đó sẽ xử lý request như bình thường, và thay đổi địa chỉ email theo yêu cầu.
Lưu ý: Mặc dù CSRF thường liên quan nhiều đến xử phiên session dựa trên cookie, nhưng nó cũng có thể phát sinh trong nhiều trường hợp khác. Chẳng hạn như khi ứng dụng tự động thêm một số thông tin đăng nhập của người dùng vào các request, ví dụ như xác thực HTTP Basic và xác thực certificate-based.
4. Cách xây dựng một cuộc tấn công CSRF
Việc tạo HTML cho CSRF là điều cần thiết nhưng tương đối phức tạp, đặc biệt là khi request mong muốn chứa nhiều tham số. Cách đơn giản nhất là sử dụng trình tạo CSRF PoC được tích hợp sẵn trong Burp Suite Professional:
- Chọn một request ở bất kỳ đâu trong Burp Site Professioanl để test hoặc exploit.
- Click chuột phải vào context menu, chọn Engagement tools / Generate CSRF PoC.
- Burp Suite sau đó sẽ tạo một số HTML để trigger các request đã chọn (ngoại trừ cookies – sẽ được trình duyệt của nạn nhân tự động thêm vào).
- Ta có thể điều chỉnh nhiều tùy chọn khác nhau trong CSRF PoC Generator nhằm chỉnh sửa một số khía cạnh khác của cuộc tấn công. Đặc biệt là với các request lạ.
- Copy HTML đã được tạo vào một trang web, xem nó trong trình duyệt được đăng nhập vào trang web dễ bị tấn công. Sau đó kiểm tra xem request dự kiến có được đưa ra thành công được không, và xem hành động mong muốn có xảy ra không.
Cách phân phối khai thác CSRF
Các cơ chế phân phối cho cuộc tấn công này về cơ bản giống như XSS. Thông thường, hacker sẽ đặt HTML vào một trang web mà chúng kiểm soát. Sau đó lôi kéo nạn nhân truy cập vào trang web đó. Chúng có thể gửi tới cho người dùng các liên kết đến trang, qua email hoặc tin nhắn trên mạng xã hội. Đôi khi tấn công CSRF có thể được đặt ở các trang phổ biến (chẳng hạn như phần comment của người dùng). Khi đó, các hacker chỉ cần “há miệng chờ sung” đợi người dùng truy cập vào.
Lưu ý rằng, một số khai thác CSRF đơn giản sử dụng phương pháp GET, và có thể hoàn toàn độc lập với một URL duy nhất trên trang web dễ bị tấn công. Khi đó, hacker không cần thiết phải sử dụng trang web bên ngoài mà có thể trực tiếp gửi tới các một URL độc hại trên domain dễ bị tấn công.
Trong ví dụ trước, nếu request thay đổi địa chỉ email có thể được thực hiện bằng phương pháp GET, thì một cuộc tấn công khép kín sẽ có dạng như sau:
5. Cách ngăn chặn tấn công CSRF
Cách mạnh mẽ nhất để có thể chống tấn công CSRF chính là có thêm các CSRF token bên trong những request liên quan. Token này nên:
- Khó đoán, có entropy cao, như đối với các session token nói chung.
- Bị ràng buộc với user session.
- Được xác thực nghiêm ngặt trong mọi trường hợp, trước khi hành động liên quan được thực hiện.
Bên cạnh đó, ta cũng có thể sử dụng SamSite cookies để chống bị tấn công. Đây là một phương pháp khá hiệu quả và có thể được sử dụng cùng với CSRF token.
Trên đây là một số thông tin về csrf token. Hy vọng với những thông tin LVN Group đã gửi tới sẽ giúp bạn trả lời được những câu hỏi về vấn đề trên. Nếu bạn cần hỗ trợ hãy đừng ngần ngại mà liên hệ với Công ty Luật LVN Group, để được chúng tôi hỗ trợ nhanh chóng. LVN Group cam kết sẽ giúp bạn có trải nghiệm tốt nhất về các dịch vụ mà mình gửi tới đến khách hàng. Chúng tôi luôn đồng hành pháp lý cùng bạn.