Show HN: IP Geolocation and Threat Data API
ipdata.co
ipdata.co
What factors go into determining whether an IP is a threat, and how often is this reviewed?
One of the problems I have with most public intel (don't care if it's FireHOL, Crowdstrike, Alienvault or US-CERT) is that inevitably some GoDaddy (for example) site gets used by an APT and so a GoDaddy IP makes it onto a public blacklist, flagged as being abusive. But a billion other sites also share that IP on that host (or it gets reassigned, as in AWS) which leads to a deluge of false positives anytime anyone else happens across it by means of a legitimate site. Some of these IPs remain blacklisted for years despite any malicious infrastructure long being dismantled.
Do you add any value by mitigating this, or do you just suck down the same public blacklists every other product uses?
You make a valid point. A number of VPN providers for example use GCE/AWS/Softlayer to host their services. And these IPs do get reassigned. One of the ways we mitigate this is by limiting the age of IP addresses in our lists to a maximum of 30 days. If an IP address hasn't been reported to have been responsible for malicious behavior for a period of 30 days it shouldn't be in our lists.
We're also mulling adding an is_cloud_provider field to the threat response object.
A few years ago I ran a no-exit relay from home. Eventually Hulu blocked my IP, even though all traffic from my IP to hulu was from me, and not via tor. Hulu couldn't be bothered to differentiate, and just assumed that a tor node at my IP address meant that traffic coming from that IP must be something routed via Tor.
By not differentiating, you are making the same mistake, and will punish people for no reason.
Edit: Assuming you are pulling the 'exit node list' you link below, I don't see how that is happening, as it does at least claim to verify that you can actually exit through the node.
I've been using Cloudflare to detect TOR, but couldn't find a good way to detect proxies/etc.
And append it to https://api.ipdata.co. For example; https://api.ipdata.co/185.10.68.114
More importantly the performance is consistent and you'd get the same performance wherever you were in the world.
Today I'd say it depends upon exactly what your network data source latency measures out to. The answer could go either way.
- https://api.ipdata.co/1.1.1.1
City name: Research
- https://www.maxmind.com/en/geoip2-precision-demo?ip=1.1.1.1
City name: Research
Oh, that must be a very coincidence.
Nuh nuh nuh, nobody would ever want to launch a SaaS with a database they have stolen.
https://www.maxmind.com/en/geoip2-precision-demo?ip=185.10.6... (No data)
https://api.ipdata.co/185.10.68.114 (lots of data)
We'll work on exposing the individual fields and I can let you know once that is live.
Good work!
I think I will use it in https://apility.io, a service that competes at some point with this.
Not sure I would trust Apility.
A cyber Intel engineer would perform a check in these lists to find out why this is a false positive. In this case there are bogons lists, and they are correct. Others, means that a popular malicious domain has changed the public ip to a private range. So the domain should be removed from them, something normally happens automatically in hours.
Small suggestion : 1500 api request for free and 2500 api requests for 10€.
I think it's a huge leap for pricing, either reduce the requests for free user or reduce de price / increase the requests for the first payed plan.
<header class="section-header"> <small>Oops</small> <h2>Page Not Found!</h2> <hr> <p class="lead">Sorry. That page doesn't exist.</p> </header>
Edit: The images are loading now. But https://api.ipdata.co returns:
{"message": "Internal server error"}
and the demo on the right hand side of the frontpage shows: Your IP Address is {}0 items % curl --header "Accept: application/json" https://api.ipdata.co
{"message": "Internal server error"}
Also, this request doesn't seem to return valid JSON: % curl --header "Accept: application/json" https://api.ipdata.co/224.0.0.1
224.0.0.1 is a bogon address.Please email me your IP address at jonathan at ipdata dot co and I'll help you out.
{
"ip": "66.87.125.72",
"hostname": "66-87-125-72.pools.spcsdns.net",
"city": "Southbridge",
"region": "Massachusetts",
"country": "US",
"loc": "42.0707,-72.0440",
"postal": "01550",
"asn": {
"asn": "AS10507",
"name": "Sprint Personal Communications Systems",
"domain": "spcsdns.net",
"route": "66.87.125.0/24",
"type": "isp"
},
"company": {
"name": "Sprint",
"domain": "sprint.com",
"type": "isp"
},
"carrier": {
"name": "Sprint",
"mcc": "310",
"mnc": "120"
}
}
See https://ipinfo.io/responses for more of an overview of the differences between our plans.You made the same post during OP's last Show HN: https://news.ycombinator.com/item?id=15881463
I also wonder how mature a project has to be before it seems sheepish to "Show HN".
We're still less than a year old, so not at all sheepish about sharing whenever we can :)
Everyone's just trying to do the best they can with what they have.