I only know of one Librealsense-specific example of SURF, using the older 'legacy' Librealsense that came before SDK 2.0. ~In that example, the user was trying to find the depth of a pixel in the RGB image. In the end, the approach they took was to investigate the keypoints of the SURF algorithms and then look at the corresponding depth of it.
Legacy RealSense is not compatible with the 400 Series cameras, so you would have to find a way to convert the principles to SDK 2.0 (Librealsense2).
There was also a case relating to using OpenCV with SURF where scripting was posted.
In that article, they suggest that legacy Librealsense could be used to register depth / IR to RGB with the instruction rs_project_point_to_pixel. Librealsense2 has its own version of this called rs2_project_point_to_pixel