概述
简介
虹膜检测防止恶意域名冒充您的品牌和域名,因此您可以保护您的组织,您的客户和您的商标。您还可以防御供应链攻击,其中恶意域名冒充知名技术供应商,甚至是与您经常合作的合作伙伴。乐动首页虹膜检测通过发现全球范围内出现的模仿您的品牌的新域名来做到这一点。您可以快速查看DNS、Whois和DomainTools风险评分的关键信息,轻松访问威胁级别。虹膜检测也监测域随着时间的推移,所以你可以看到他们如何演变,然后让你采取必要的行动。
关于Iris Detect api
许多通过Detect UI执行的操作可以通过编程方式进行调度,以方便操作。检测api可以进一步自动化您的工作流程,并将虹膜检测的数据输入到现有的应用程序中。
通过api支持的功能:
- 读取:检索数据
- 写:进行更改,例如将域添加到监视列表或升级域以进行进一步操作。
1.0版本的API不支持
- 监控器创建:所有监控器都需要通过虹膜检测界面创建。由于此任务的性质以及它的迭代性,目前不支持通过编程式访问。
- 截图:目前不支持通过API获取截图。
- 基于事件的更新:没有办法“订阅”更改,所有更新都需要通过“拉”操作来检索。
开始
虹膜检测要求企业帐户登录DomainTools,您的帐户必须包括虹膜检测访问。此外,用户权限控制用户是否可以管理监视器、分类域或升级域。默认情况下,用户对应用程序具有只读访问权限。要使用检测API,您还需要您的用户名以及API密钥。
API的限制
具有特殊费率限制的端点
- 域:可以以每小时最多一次的频率查询域端点
域/新
而且域/关注
调用。 - 获取完整域列表的分页请求不受限制。例如,如果对新域的每小时调用返回的值大于
限制
对于单个响应中返回的域,可以使用抵消
变量来完成结果,而不受每小时限制的影响。
在集成工作期间绕过速率限制
在域API端点集成期间,包括预览
请求中的参数将响应限制在10个域,但允许每分钟最多30个请求。这使得在开发和测试期间可以快速迭代。
身份验证
我们建议采用以下方法进行认证:
- 使用HTTPS(基于SSL的HTTP)而不是HTTP进行身份验证。
- 使用HMAC签名查询代替Open Key身份验证。
- 对签名查询使用SHA-256 HMAC,而不是MD5或SHA-1。
- 确保一个安全的过程来保护您的API凭证。
授权
根据您的帐户类型,您可能只能检索最新发现的域,或将上述域添加到监视列表中以进行持续监控和分析。
- 只读权限:该帐户将没有权限添加/删除监视列表端点。
- 读+写权限:该帐户将拥有现有的所有权限。
查找并重置API密钥
要找到或重置DomainTools API密钥通过//www.xylmmw.com:
登录到DomainTools API仪表板。只有API所有者帐户可以重置API密钥。有两个地方可以访问它:
- 选择账户菜单,并选择API管理菜单项来访问API仪表板。
- 在我的账户部分,选择查看API仪表板链接,该链接位于帐户摘要选项卡中。
- 在API产品资料选项卡,进入API用户名部分获取用户名。
- 在同一个选项卡中,您可以找到您的API密匙.
- 重置你的API键:
- 选择重启API密钥.
- 创建新密钥将导致现有密钥立即被丢弃。此操作无法撤消。
使用旧密钥发出的任何请求都将不再对该用户生效。
选择重置确认按钮。
保护API凭证
您的帐户将对所有使用您的用户名和密钥进行验证的查询收取费用,即使您后来确定该请求是欺诈或未经授权的使用。我们推荐以下步骤来保护您的API凭证:
- 对于支持请求,不要发送完整的
API密匙
到DomainTools支持。 - 使用hmac签名的方法处理请求。这确保用户和令牌不会作为URL的一部分发送。
- 当需要时,重置API密钥。
- 不要将它们放在公共存储库中,比如git存储库。
hmac签名认证URI/参数
参数/ URI | 价值 |
URI | API端点的URI。它位于api.domaintools.com之后,例如/v1/yourdomain.com/whois。 请查看每个DomainTools API产品的用户指南,以获得正确的URI格式。 |
api_username | 您的API用户名。 |
时间戳 | 当前时间戳,ISO 8601格式。时间戳应该包含时区偏移量,如下所示: 2020 - 02 - 01 - t14:37:59 - 0800 2020 - 02 - 01 - t22:37:59z 2020 - 02年- 02 - t10:37:59 + 1200 |
签名 | HMAC签名您的请求。 推荐使用SHA-256 HMAC协议。支持MD5 HMAC和SHA-1 HMAC。 只对URL路径进行签名。 |
构建hmac签名的身份验证请求
对HMAC
HMAC(散列消息认证码)是推荐的认证方案。它遵循RFC2104中概述的原则,并提供了一种简单而安全的方法来保护您的API密钥。
关于HMAC算法
HMAC哈希算法支持MD5、SHA-1和SHA-256。我们推荐SHA256 HMAC,作为SHA1的后续版本。尽管NIST关于哈希函数的策略仍然允许HMAC SHA-1,请参见NIST证监会中的哈希函数页面。总的来说,SHA-256 HMAC也比MD5 HMAC更安全(例如,对抗暴力攻击)。
关于应该使用哪些加密函数,请检查您自己的遵从义务或指导。例如,请参见NISTFIPS 140-2为必须使用FIPS 140-2兼容算法的组织提供更多信息的指南。
创建hmac签名的身份验证请求
要创建签名,需要构建一个包含API用户名、ISO 8601格式的时间戳以及请求的URI的字符串。然后使用HMAC函数生成签名,用API密钥对该字符串进行签名。步骤如下。
- 添加你的api_username。
API用户名是已提供访问相关DomainTools API产品(又名API端点)的帐户。如果该用户名没有访问权限,将返回错误消息。
- 关联时间戳。
散列的时间戳值和时间戳参数必须相同。确保您的服务器时间是准确的,并始终使用一个新的时间戳。
- 添加请求URI。
有关端点的URI格式,请参阅各个API产品的用户指南。
- 添加主机。
主机是API端点服务器。在这种情况下,的确如此api.domaintools.com.
- 使用合适的HMAC算法。
哈希算法支持MD5、SHA-1和SHA-256。有关更多信息,请参阅HMAC算法部分。
下面是一个示例,用于返回一个SHA-256 HMAC签名哈希请求,其中包含你的api_username, timestamp, URI, api_key。您可能会发现在首选编程语言中内置了对HMAC身份验证的支持。
返回hash_hmac('sha256', $this->api_username。美元的时间戳。美元的uri, $ this - > api_key);
- 结果是一个请求在短时间内过期,最重要的是,在clear中不包含您的身份验证密钥。
不管使用哪种编程语言,得到的url通常是相似的。
安全注意
确保您当前的语言版本支持所需的HMAC(和其他相关的)扩展和库。例如,hmac签名URL的失败将导致URL没有签名值,如下所示:
http://api.domaintools.com/v1/yourdomain.com/whois
API端点列表
监控列表
顾名思义,这个端点允许用户检索您帐户的监视器和相应的id。控件可以使用监控器id检索单个监控器新发现的或最近更改的域monitor_id
变量。属性,也可以在一个请求中跨所有监视器请求新的或已更改的域monitor_id
变量。由于域端点限制为每小时1个查询请求,因此为所有监视器执行请求可以每小时检索所有监视器的结果。如果对集成很重要的话,仍然可以使用监视器端点来帮助将域映射到它们的监视器。的include_counts
变量将显示每个监视器的New, Changed等的数量。
可以使用术语、创建日期、创建人等选项对结果进行排序。下面列出了必需的和可选的参数。
的/忽略
端点允许您查看您忽略的域。
端点URL
https://api.domaintools.com/v1/iris-detect/domains/new/
https://api.domaintools.com/v1/iris-detect/domains/watched/
https://api.domaintools.com/v1/iris-detect/domains/ignored/
方法
得到
参数
有条件的要求
的名字 | 类型 | 有效值 | 默认值 | 笔记 |
datetime_counts_since | datetime | 有条件要求,如include_counts参数包含 ISO-8601日期/时间格式 |
可选
的名字 | 类型 | 有效值 | 默认值 | 笔记 |
include_counts | 保龄球 | 假 | 包括每个监视器的新、监视、更改和升级域的计数 | |
排序 | string [] | Term, created_date, domain_counts_changed, domain_counts_discovered | 术语 | 提供排序监视器列表的选项。 |
订单 | 字符串 | asc, desc | desc | 切换所选排序选项的排序。 |
抵消 | int | 0 - 100000 | 0 | 用于对超出限制的请求进行分页。 |
限制 | int | 500 | 如果include_counts=true,则限制为最大100个 |
示例使用
检索所有有计数的监视器
GET https://api.domaintools.com/v1/iris-detect/monitors/?datetime_counts_since=2022-01-14%2016:27:31&include_counts=true &api_username=<用户名>&api_key=
域
Domains端点允许用户检索与特定监视器或所有监视器的域相关的详细信息。端点可以用来查看:
- 新发现的域
- 最近更改的域(应用程序跟踪的关键DNS和Whois数据的更改)
- 最近在应用程序中升级的域,升级是针对内部的
阻止或发送域到谷歌的钓鱼保护服务。升级可以是
可以直接在应用程序UX中触发,也可以通过API触发(下面的“升级”部分将介绍)。
有许多可选参数可用于根据需要筛选结果。
的/新
端点可以为在虹膜检测中创建的监视器提供新发现的域。
的/看
端点将从监视器的监视域列表中为域提供最近更改的域。(域可以选择从虹膜检测UX或通过API观看,下面讨论。)
的/看
端点也可以用来查询域已升级为阻止或谷歌安全浏览。(域可以从虹膜检测UX或通过API升级,下面讨论)。
端点URL:
https://api.domaintools.com/v1/iris-detect/domains/new/
https://api.domaintools.com/v1/iris-detect/domains/watched/
方法
得到
参数
要求
没有一个
可选
的名字 | 类型 | 有效值 | 默认值 | 笔记 |
monitor_id | 字符串 | 监视器响应中的监视器ID——仅在为特定监视器请求域时使用。 | ||
escalation_types | string [] | 封锁,google_safe | 筛选特定的升级类型 | |
顶级域名 | string [] | 特定tld的过滤器 | ||
risk_score_ranges | string [] | 0- 0,1 -39, 40-69, 70-99, 100-100 | 过滤具有不同范围风险评分的域。 | |
mx_exists | 布尔 | 域当前在DNS中是否有MX记录。 | ||
domain_state | 字符串 | 活跃,不活跃的 | ||
discovered_since | datetime | ISO-8601日期/时间格式 | 最相关的是/新 端点,用于控制发现新域时的时间框架。 |
|
changed_since | datetime | ISO-8601日期/时间格式 | 最相关的是/看 端点来控制所监视域的DNS或Whois字段更改的时间框架。 |
|
escalated_since | datetime | ISO-8601日期/时间格式 | 最相关的是/看 端点来控制域最近升级的时间范围。 |
|
搜索 | 字符串 | “包含”搜索域名。 | ||
排序 | string [] | Discovered_date, changed_date, risk_score | 域列表响应的排序顺序。 | |
订单 | 字符串 | asc, desc | 排序的排序选项 | |
include_domain_data | 布尔 | 包括DNS和Whois详细信息。 | ||
抵消 | int | 0 - 100000 | 0 | 用于对超出限制的请求进行分页。 |
限制 | int | One hundred. 如果include-domain-data=true,则为50 |
One hundred. 如果include-domain-data=true,则为50 |
限制结果大小。 |
预览 | 布尔 | 在API实现和测试期间使用。 包含with value = 1将结果限制为10,但不受每小时限制。 |
示例使用
注意日期/时间格式遵循ISO-8601。不包括时区指示器将被假定为太平洋时区。
响应数据的示例可以在本文档的附录中找到。
检索自太平洋标准时间的特定日期/时间以来新发现的域,具有毫秒精度
GET https://api.domaintools.com/v1/iris-detect/domains/new/?discovered_since=2022-01-12%2000:00.000000%20-08:00&api_username=<用户名>&api_key=
检索自给定日期/时间以来更改的所有监视域
得到https://api.domaintools.com/v1/iris detect/domains/new/?discovered_since=2022 - 01 - 08% 2000:00 % 20-08:00&api_username = <用户名> api_key = < APIkey >
检索自太平洋标准时间的特定日期/时间以来已升级为内部阻塞的域
GET https://api.domaintools.com/v1/iris-detect/domains/watched/?escalated_since=2022-01-11%2016:00:00%20-08:00&api_username=&api_key=&escalation_types[]=blocked
从监视列表中添加和删除
分析和筛选新发现的域是一项应该定期进行的活动,因此新域只显示最近发现的域。分类选择包括:
- 添加到监视列表:将一个域添加到监视列表将其从新建中移除,并允许跟踪域最近在DNS或Whois中更改的时间。被监视的域名将有每天捕获的屏幕截图,这样你就可以看到网页如何随着时间的推移而发展。
- 忽略:如果一个域明显是假阳性,忽略该域将它从New中删除,并将其放在Ignored下。这个决定总是可以逆转的,并且可以将域从Ignored移到watching。
端点URL:https://api.domaintools.com/v1/iris-detect/domains/
方法
补丁
参数
要求
的名字 | 类型 | 有效值 | 默认值 | 笔记 |
watchlist_domain_ids | string [] | 正在进行分类的域的ID。 | ||
状态 | 字符串 | 看,忽略 | 将域添加到监视列表或忽略并静音这些域的警报。 |
可选
没有一个
示例使用
将域添加到监视列表
URL:
https://api.domaintools.com/v1/iris-detect/domains/?api_username= <用户名> api_key = < API key >
身体:
{“watchlist_domain_ids”:[“域ID > <”),“状态”:“看”}
从监视列表中删除域
URL
https://api.domaintools.com/v1/iris-detect/domains/?api_username= < username&api_key = < API key >
身体:
{“watchlist_domain_ids”:[“域ID > <”),“状态”:“忽略”}
升级
API支持两个升级活动,如下所示。
升级一个新域也会将其添加到监视更改中。
- 域名可以发送到谷歌的网络钓鱼保护团队。如果谷歌同意该域是恶意的,则谷歌
将在全球Chrome浏览器中被屏蔽。苹果的Safari浏览器也采用了这个列表
浏览器和Firefox。 - 如果域要在内部网络防御基础设施中被阻止,则可以将域标记为阻止。
将域加载到公司的防火墙和其他系统中需要通过API乐动体育官网下载进行
结合客户端系统操作的查询。 - 升级请求API调用的限制
- 阻塞域:每个请求最多支持100个域。
- 谷歌钓鱼防护:每个请求最多10个域名。
- 每分钟限制30个请求(每个请求可以包含多个域)。
端点URL:https://api.domaintools.com/v1/iris-detect/escalations/
方法
帖子
参数
要求
的名字 | 类型 | 有效值 | 默认值 | 笔记 |
watchlist_domain_ids | string [] | 待升级域的ID | ||
escalation_type | 字符串 | 封锁,google_safe |
可选
没有一个
示例使用
升级至谷歌安全浏览
URL:
https://api.domaintools.com/v1/iris-detect/escalations/?api_username= <用户名> api_key = < API key >
身体:
{“watchlist_domain_ids”:[“域ID > <”),“escalation_type”:“google_safe”}
升级内部阻塞
URL:
https://api.domaintools.com/v1/iris-detect/escalations/?api_username= <用户名> api_key = < API key >
身体:
{“watchlist_domain_ids”:[“域ID > <”),“escalation_type”:“封锁”}
附录1:API响应示例
监视器列表响应示例
这是一个从查询到Monitor List端点的响应示例,前面是请求:
请求示例
GET https://api.domaintools.com/v1/iris-detect/monitors/?datetime_counts_since=2022-01-20%2011:03:21&include_counts=true&api_username=<用户名>&api_key=
反应的例子
以下是响应示例,包括每个监视器的计数:
{“total_count”:16,“抵消”:0,“限制”:500,“监控”:[{“术语”:“domaintools”,“match_substring_variations”:真正的,“nameserver_exclusions”:[],“text_exclusions”:[],“id”:“JKwjv5Xp8x”,分配”created_date”:“2022 - 01 - 15 t00:32:04.418134 + 00:00”,“updated_date”:“2022 - 01 - 15 t00:32:04.418134 + 00:00”,“状态”:“活跃”,“状态”:“完成”,“domain_counts”:{“新”:2,“看”:5,“升级”:1,“改变”:2},“created_by”:“<用户名>”}]}
域列表响应示例
下面的示例用于查询域/新端点,对于查询已更改的域或自给定日期/时间以来已升级的域,域/更改端点的结果将是相同的。
请求示例
该请求包括布尔变量,以包括DNS和Whois关键字段的域数据。
GET https://api.domaintools.com/v1/iris-detect/domains/new/?discovered_since=2022-01-20%20%2009:40:12.000000%20-08:00&api_username=&api_key=&include_domain_data=1
反应的例子
这是一个响应示例,包括DNS和Whois数据的详细信息。注意“risk_score_status”:“临时”
用于指示部分响应示例的字段,包括DNS和Whois数据的详细信息。风险评分状态指示评分是临时的还是完整的。新发现的域名将只有初始接近度或钓鱼分数,分数被指定为临时的。24-36小时后,计算完整的风险评分,并添加恶意软件和垃圾邮件评分值。
{“watchlist_domains”:[{“状态”:“新”,“域”:“bestanbanks.in”,“状态”:“活跃”,“discovered_date”:“2022 - 01 - 20 - t20:26:14.378000 + 00:00”,“changed_date”:“2022 - 01 - 20 - t20:27:58.000000 + 00:00”,“risk_score”:67,“risk_score_status”:“临时”,“risk_score_components”:{“距离”:21,“threat_profile”:{“网络钓鱼”:67}},“mx_exists”:真正的,“tld”:“在”,“id”:“8 avjyb1xaj”,“升级”:[{“escalation_type”:“封锁”,“id”:“p6db6jQbVJ”,“创建”:“2022 - 01 - 07 - t16:44:40.491903 + 00:00”,“created_by”:“<用户名>”}),“monitor_ids”:[“Y41pGXBjEq”),“name_server”:[{“主机”:“dimitris.ns.cloudflare.com”},{“主机”:“zainab.ns.cloudflare.com”}),“registrant_contact_email”:[“请与上述注册主任联系”),“注册”:“GoDaddy.com,有限责任公司”,“create_date”:20220120,“知识产权”:[{“country_code”:“我们”,“知识产权”:“172.67.192.30”,“服务提供商”:“CloudFlare公司。”},{“country_code”:“我们”,“知识产权”:“104.21.81.241”,“服务提供商”:“CloudFlare公司。”}),“mx”:[{“主机”:“mx1.hostinger.in”},{“主机”:“mx2.hostinger.in”}]}),“total_count”:1,“数”:1,“抵消”:0,“限制”:One hundred.}
添加监视域
此请求用于将一个域添加到帐户的监视列表中。属性用于忽略域,使用类似的请求"state": "ignored"
而不是"state": " watching "
.
请求示例
请求URL:
PATCH https://api.domaintools.com/v1/iris-detect/domains/?api_username=<用户名>&api_key= . PATCH
请求主体:
{“watchlist_domain_ids”:[“AaLMA1oOE0”),“状态”:“看”}
反应的例子
{“watchlist_domains”:[{“状态”:“看”,“域”:“facebook - 09835. - pl”,“discovered_date”:“2022 - 01 - 20 - t18:35:29.801000 + 00:00”,“changed_date”:“2022 - 01 - 20 - t18:57:34.000000 + 00:00”,“id”:“AaLMA1oOE0”,“assigned_by”:“<用户名>”,“assigned_date”:“2022 - 01 - 20 - t22:27:39.000000 + 00:00”}]}
以升级阻塞域为例
此请求用于升级一个域以进行内部阻塞。属性将域升级为谷歌安全浏览使用类似的请求"escalation_type": "google_safe"
而不是"escalation_type": "blocked"
.
请求示例
URL请求:
POST https://api.domaintools.com/v1/iris-detect/escalations/?api_username=<用户名>&api_key=
请求主体:
{“watchlist_domain_ids”:[“AaLMA1gOE0”),“escalation_type”:“封锁”}响应例子{“升级”:[{“watchlist_domain_id”:“AaLMA1gOE0”,“escalation_type”:“封锁”,“id”:“BWdgkK8g6p”,分配”created_date”:“2022 - 01 - 20 - t23:25:48.990908 + 00:00”,“updated_date”:“2022 - 01 - 20 - t23:25:48.990908 + 00:00”,“created_by”:“<用户名>”}]}