There are a number of IP Reputation services available for public consumption. A personal favorite was the Packetmail IP Rep service which unexpectedly shut down in September. Looking for an IP reputation API to replace Packetmail in some of my scripts lead me to Neutrino and their many APIs which can be used to query many facets of an IP. While their host-reputation API provides an adequate replacement for Packetmail, what got my attention was another Neutrino API, ip-blocklist, which, in my opinion, can be used as a wet finger estimate of potential badness of any IP. Once you have signed up for a Neutrino user-id and API Key, you can access the APIs through a web interface or programmatically via the APIs. The free API account is limited by the number of queries per day, but provides enough capability for the casual user who just wants to check out an IP. According to the ip-blocklist API documentation: "IP blocklist will detect the following categories of IP addresses:
The people at Neutrino do the aggregation of the various blocklists (including DShield) and provide you an easy way of measuring the general badness of an IP. So the next time you see an IP scanning your webserver you can run it through the Neutrino ip-blocklist API and get an idea of how nasty others think it is. I threw together a quick python script (included below) to use the Neutrino ip-blocklist API. When the script is run for an IP on Daniel Austin's Tor Node list the resulting output is: $python ipblocklist.py 1.172.112.36 Neutrino Blocklist Service IP: 1.172.112.36 When run for an IP on the DShield Blocklist the resulting output is: $python ipblocklist.py 196.52.43.0 Neutrino Blocklist Service IP: 196.52.43.0 Sorry, I was unable to find any nastier IPs to show the results, but I think you can see the potential. ---------------------- ipblocklist.py script ------------------------------------- #!/usr/bin/env python def ipblocklist_host(ip): NEUTRINO_URL = 'https://neutrinoapi.com/ip-blocklist' NEUTRINO_PARAMS = { req = urllib2.Request(NEUTRINO_URL, urllib.urlencode(NEUTRINO_PARAMS)) print "\n\nNeutrino Blocklist Service\n" return; def main(): parser = argparse.ArgumentParser() ipblocklist_host(args.IP) main() # invoke main P.S. I only use Python for quick and dirty tools for personal use. I am sure this script could be written a whole lot better by someone with actual skill in Python. (-; -- Rick Wanner MSISE - rwanner at isc dot sans dot edu - http://namedeplume.blogspot.com/ - Twitter:namedeplume (Protected) |
Rick 324 Posts ISC Handler Nov 12th 2018 |
Thread locked Subscribe |
Nov 12th 2018 3 years ago |
Sign Up for Free or Log In to start participating in the conversation!