Tấn công SSRF là gì? Cách phòng ngừa tấn công SSRF

1178
28-01-2025
Tấn công SSRF là gì? Cách phòng ngừa tấn công SSRF

Tấn công SSRF là một loại tấn công mạng mà kẻ tấn công lợi dụng khả năng của ứng dụng web để gửi yêu cầu đến các máy chủ nội bộ khác trong mạng. Thông qua kỹ thuật này, kẻ tấn công có thể khai thác thông tin nhạy cảm hoặc truy cập vào tài nguyên mà không có quyền truy cập trực tiếp. Hãy cùng Bizfly Cloud tìm hiểu tấn công SSRF là gì trong bài sau.

Tấn công SSRF là gì?

Server-side request forgery (SSRF) là một lỗ hổng bảo mật web cho phép kẻ tấn công lợi dụng chức năng của máy chủ để truy cập hoặc thao túng các tài nguyên mà họ không thể tiếp cận trực tiếp. Mặc dù SSRF đã bị lãng quên khi các cuộc tấn công XSS trở nên phổ biến, nhưng giờ đây nó đã trở lại làm tâm điểm chú ý.

Tấn công SSRF là gì?

Tấn công SSRF là gì?

Trong các cuộc tấn công SSRF, kẻ tấn công khai thác máy chủ để gửi yêu cầu đến các hệ thống khác, kết nối với dịch vụ nội bộ và đọc dữ liệu không được phép hiển thị trên internet. Hậu quả có thể bao gồm rò rỉ dữ liệu, thực thi mã từ xa và các vấn đề nghiêm trọng khác như tấn công chuỗi cung ứng.

SSRF hoạt động như thế nào?

Các cuộc tấn công SSRF bắt đầu khi kẻ tấn công gửi yêu cầu độc hại đến máy chủ phụ trợ, thường qua URL hoặc địa chỉ IP trong trường nhập liệu. Máy chủ xử lý dữ liệu đầu vào đã bị thao túng, gửi yêu cầu tới URL hoặc địa chỉ IP đó. Khi làm vậy, máy chủ hoạt động như một proxy cho kẻ tấn công, chuyển tiếp yêu cầu mà không kiểm tra, có khả năng làm lộ tài nguyên nội bộ nhạy cảm hoặc tương tác với các hệ thống bên ngoài, dưới vỏ bọc tin cậy của máy chủ.

Các loại tấn công SSRF

Có nhiều kiểu tấn công SSRF khác nhau, mỗi loại đều có cách thức hoạt động riêng biệt và mức độ nguy hiểm khác nhau. Dưới đây là một số loại tấn công SSRF phổ biến mà bạn nên biết để có thể phòng ngừa hiệu quả.

SSRF đầy đủ

Một trong những hình thức tấn công SSRF đơn giản và phổ biến nhất là SSRF đầy đủ. Trong tấn công này, kẻ tấn công sẽ cố gắng tận dụng lỗi trong mã nguồn ứng dụng để gửi yêu cầu đến các địa chỉ mà ứng dụng không nên truy cập.

Khi ứng dụng cho phép người dùng nhập vào một URL để lấy dữ liệu, kẻ tấn công có thể nhập một địa chỉ nội bộ, từ đó yêu cầu máy chủ gửi yêu cầu tới địa chỉ đó. Điều này có thể dẫn đến việc lộ thông tin nhạy cảm, bởi vì kẻ tấn công có thể truy cập vào các dịch vụ hoặc tài nguyên mà họ không có quyền truy cập.

Ví dụ, nếu một ứng dụng có chức năng lấy thông tin từ một API mà không kiểm tra kỹ URL, kẻ tấn công có thể nhập vào một địa chỉ như http://localhost:8080/admin. Điều này sẽ khiến máy chủ gửi yêu cầu tới dịch vụ nội bộ, nơi chứa thông tin nhạy cảm, từ đó tạo ra nguy cơ rò rỉ dữ liệu.

Blind SSRF

Blind SSRF là một biến thể phức tạp hơn của tấn công SSRF đầy đủ. Thay vì nhận được phản hồi trực tiếp từ máy chủ, kẻ tấn công sẽ không thể nhìn thấy thông tin trả về từ yêu cầu mà họ đã gửi. Thay vào đó, họ phải dựa vào các dấu hiệu gián tiếp để xác định xem yêu cầu đã thành công hay chưa.

Trong trường hợp này, các kẻ tấn công thường sẽ thử nghiệm với nhiều địa chỉ khác nhau và theo dõi các phản hồi từ ứng dụng để tìm ra thông tin nhạy cảm. Họ có thể kiểm tra sự thay đổi trong thời gian phản hồi, lỗi hiển thị trên giao diện người dùng hoặc thậm chí là hành vi của các dịch vụ khác trong mạng.

Blind SSRF có thể rất nguy hiểm, đặc biệt khi các ứng dụng không có biện pháp kiểm soát đủ mạnh để ngăn chặn các yêu cầu không mong muốn. Nó cũng khó phát hiện hơn so với SSRF đầy đủ, vì không có triệu chứng rõ ràng nào cho thấy rằng một cuộc tấn công đang diễn ra.

Tấn công SSRF dựa vào thời gian

Một dạng tấn công SSRF khác mà các nhà nghiên cứu bảo mật thường gặp là tấn công SSRF dựa vào thời gian. Tấn công này dựa trên việc kẻ tấn công gửi một yêu cầu đến một địa chỉ mà họ cho là sẽ mất nhiều thời gian phản hồi hơn bình thường.

Thông qua cách thức này, kẻ tấn công có thể đo thời gian phản hồi và từ đó suy luận ra thông tin về cấu trúc mạng nội bộ. Ví dụ, nếu yêu cầu đến một dịch vụ nội bộ mất nhiều thời gian hơn so với yêu cầu đến các dịch vụ công khai, điều này có thể cho thấy rằng có sự tồn tại của các tài nguyên nội bộ.

Tấn công SSRF dựa vào thời gian có thể khó khăn hơn để thực hiện, nhưng nếu thành công, nó có thể mang lại cho kẻ tấn công rất nhiều thông tin quý giá về cấu trúc và tính bảo mật của mạng nội bộ.

Cách phòng ngừa tấn công SSRF

Để bảo vệ chống lại các cuộc tấn công SSRF, cần triển khai các biện pháp an ninh sau:

Cách phòng ngừa tấn công SSRF

Cách phòng ngừa tấn công SSRF

  • Xác thực đầu vào: Kiểm tra và làm sạch tất cả đầu vào từ người dùng, sử dụng danh sách cho phép URL chỉ cho các tên miền và giao thức an toàn như HTTP/HTTPS. Tránh cho phép các giao thức rủi ro như file:// hoặc ftp://.
  • Danh sách cho phép máy chủ và địa chỉ IP: Duy trì danh sách cho phép các máy chủ và địa chỉ IP mà ứng dụng có thể tương tác, giúp giảm thiểu yêu cầu đến các đích tin cậy.
  • Hạn chế quyền truy cập vào tài nguyên nội bộ: Thực hiện phân đoạn mạng và cấu hình tường lửa ứng dụng để chỉ cho phép các kết nối cần thiết từ máy chủ ứng dụng. Sử dụng proxy ngược để kiểm soát truy cập vào tài nguyên bên ngoài.

Kết luận

SSRF là một mối đe dọa phổ biến trong an ninh mạng, có thể dẫn đến vi phạm dữ liệu và thực thi mã từ xa, làm tổn hại tổ chức và dữ liệu nhạy cảm. Để ngăn ngừa rủi ro từ SSRF, bạn hãy áp dụng các biện pháp bảo vệ như xác thực đầu vào nghiêm ngặt, giới hạn tỷ lệ và sử dụng tiêu đề cũng như mã thông báo bảo mật.

SHARE