API Documentation
When queried using common command-line tools, the website will return a json object that can be parsed using a tool such as jq
:
$ curl -s https://opsec.live | jq '.passive.tls.ja3_hash'
"1e64af0e20d9a09d61bf7b9d5de76bc7"
Result Fields
Unset values or values without content are returned as null
- .ip string
- The IP address that made the request to the service.
- .port string
- The source port use to connect to the service.
- .ptr string
- The pointer record (PTR) associated with the requesting IP address.
- .user_agent string
- Content of the
User-Agent
HTTP header provided with the request.
- .geo object
- Geolocation of the IP address based on the GeoLite2 database provided by MaxMind, available from maxmind.com.
- .geo.city string
- The city of the requesting IP. Defaults to an empty string if it can't be determined.
- .geo.state string
- The state of the requesting IP. Defaults to an empty string if it can't be determined.
- .geo.country string
- The country of the requesting IP. Defaults to an empty string if it can't be determined.
- .geo.iso_code string
- The ISO 3166-1 alpha-2 of the associated country. Defaults to an empty string if it can't be determined.
- .asn object
- The autonomous system (AS) the requesting IP is announced from.
- .asn.asn string
- The ASN associated with the autonomous system.
- .asn.netblock string
- The IP block that the ASN is announcing and that the source IP is part of in CIDR notation.
- .geo.owner string
- The named owner of the netblock.
- .detections.ip object
- Categorization as applied to
.ip
. Detection categories are outlined in the Detection Categories section below. Detections are represented by a boolean
value.
- .detections.netblock object
- Categorization as applied to
.asn.netblock
. Detection categories are outlined in the Detection Categories section below. Detections are represented by a boolean
value.
- .passive.http object
- Fingerprinting and tampering detection as applied to the HTTP request. Passive HTTP fingerprinting relies on verifying which headers are present and in which order. RFC 2616 Hypertext Transfer Protocol -- HTTP/1.1 does not enforce a specific header order, so browsers and tools will implement them in different ways.
- .passive.http.sig string
- The passive HTTP signature calculated.
- .passive.http.tampering string
- One of:
Detected
if .passive.http.sig
doesn't match the expected browser specified in .user_agent
Not Detected
if no tampering was detected.
Unsure
if there wasn't enough information to determine tampering.
- .passive.tls object
- Fingerprinting and tampering detection as applied to the TLS Client Hello of the request. Passive TLS fingerprints are calculated using the JA3 method.
- .passive.tls.sig string
- The full JA3 signature for the Client Hello packet.
- .passive.tls.ja3_hash string
- The md5 hash of
.passive.tls.sig
- .passive.tcp object
- Fingerprinting and tampering detection as applied to the TCP packet. Passive TCP fingerprinting is based on fields within the TCP header that give insight on the network stack that made the request. Seeing as network stacks are highly coupled with operating systems, this is a good way to determine the OS of the client.
- .passive.tcp.sig string
- The passive TCP signature calculated. The p0f-style signature identifying the incoming TCP connection. A full breakdown of these fields can be found in the p0f documentation.
- .passive.tcp.tampering string
- One of:
Detected
if .passive.tcp.sig
doesn't match the expected operating system specified in .user_agent
Not Detected
if no tampering was detected.
Unsure
if there wasn't enough information to determine tampering.
Detection Categories
These categories are refreshed periodically from open source datasets
- Abuse
- IPs associated to spam, bots, and scams.
- Anonymizer
- IPs known to be VPN endpoints, TOR exit nodes, and proxies.
- Datacenter
- IPs known to be from server and cloud hosting providers.
- Malware
- IPs associated with malware campaigns and active attacks.
- Reputation
- Low reputation IPs associated with nefarious and illegal activity.
- Spoofing
- IPs that should otherwise be unroutable or dead.