Are you not using any of the built-in spam functions?
I've found them to be fairly decent.
yoursite.com/admin.php?options/groups/spam/
If you need more than that.. there are paid resources available.
From (simple) multiple accounts detection to isp/connection fingerprinting with score-based moderating/rejecting logic. These are very effective low-hanging fruit at reducing spam. Supports migration configuration from the following XF1 add-ons...
xenforo.com