Dataset for paper Spotting the Hook: Leveraging Domain Data for Advanced Phishing Detection
收藏资源简介:
The dataset contains DNS records, IP-related features, WHOIS/RDAP information, information from TLS certificate fields, and GeoIP information for 432,572 benign domains from Cisco Umbrella and 68,353 phishing domains from PhishTank and OpenPhish services. The ground truth for the phishing dataset was double-check with the VirusTotal (VT) service. Domain names not considered as phishing by VT have been removed. The data was collected between March and November 2023.The final assessment of the data was conducted in December 2023. The dataset is useful for statistical analysis of domain data or feature extraction for training machine learning-based classifiers, e.g. for phishing detection. Data Files The data is located in two individual files: benign.json - data for 432,572 benign domains, and phishing.json - data for 68,353 phishing domains. Data Structure Both files contain a JSON array of records generated using mongoexport. The following table documents the structure of a record. Please note that: some fields may be missing (they should be interpreted as nulls), extra fields may be present (they should be ignored), due to a processing error, the common_name field of the certificate objects always contains trailing symbols: ‘> . Field name Field type Nullable Description domain_name String No The evaluated domain name url String No The source URL for the domain name evaluated_on Date No Date of last collection attempt source String No An identifier of the source sourced_on Date No Date of ingestion of the domain name dns Object Yes Data from DNS scan rdap Object Yes Data from RDAP or WHOIS tls Object Yes Data from TLS handshake ip_data Array of Objects Yes Array of data objects capturing the IP addresses related to the domain name DNS data (dns field) A Array of Strings No Array of IPv4 addresses AAAA Array of Strings No Array of IPv6 addresses TXT Array of Strings No Array of raw TXT values CNAME Object No The CNAME target and related IPs MX Array of Objects No Array of objects with the MX target hostname, priority and related IPs NS Array of Objects No Array of objects with the NS target hostname and related IPs SOA Object No All the SOA fields, present if found at the target domain name zone_SOA Object No The SOA fields of the target’s zone (closest point of delegation), present if found and not a record in the target domain directly dnssec Object No Flags describing the DNSSEC validation result for each record type ttls Object No The TTL values for each record type remarks Object No The zone domain name and DNSSEC flags RDAP data (rdap field) copyright_notice String No RDAP/WHOIS data usage copyright notice dnssec Bool No DNSSEC presence flag entitites Object No An object with various arrays representing the found related entity types (e.g. abuse, admin, registrant). The arrays contain objects describing the individual entities. expiration_date Date Yes The current date of expiration handle String No RDAP handle last_changed_date Date Yes The date when the domain was last changed name String No The target domain name for which the data in this object are stored nameservers Array of Strings No Nameserver hostnames provided by RDAP or WHOIS registration_date Date Yes First registration date status Array of Strings No The state of the registered object [TODO] terms_of_service_url String No URL of the RDAP usage ToS url String No URL of the RDAP entity whois_server String No WHOIS server address TLS data (tls field) cipher String No TLS cipher suite description according to [TODO] protocol String No One of “TLS”, ”TLSv1.2”, ”TLSv1.3” certificates Array of Objects No Array of objects representing the certificate chain, the first element is the root certificate IP data (elements in the ip_data array) ip String No The IP address from_record String No The type of the DNS record the address was captured from remarks Object No Ping round-trip time, “is alive” flag and rdap/geo/asn evaluation dates rdap Object Yes RDAP data, similar to DNS RDAP, see the JSON Schema for details geo Object Yes Geolocation data from the GeoLite2 City database (e.g. latitude, longitude, city, country, etc.) asn Object Yes Autonomous system data from the GeoLite2 ASN database (ASN, organization, network) Acknowledgements We would like to thank the OpenPhish Team for grating permission to use and publish their dataset. We also thank VirusTotal for providing us access to the API for research purposes. The research has been supported by the Flow-based Encrypted Traffic Analysis project, no. VJ02010024, granted by the Ministry of the Interior of the Czech Republic and the Smart Information Technology for a Resilient Society project, no. FIT-S-23-8209, granted by Brno University of Technology.
本数据集包含来自Cisco Umbrella的432572个良性域名,以及来自PhishTank和OpenPhish服务的68353个钓鱼域名的相关数据,具体包括DNS记录、IP相关特征、WHOIS/RDAP信息、TLS证书字段信息以及GeoIP地理信息。该钓鱼数据集的基准真值(ground truth)已通过VirusTotal(VT)服务进行双重校验,未被VT判定为钓鱼域名的条目已被移除。数据采集时间为2023年3月至11月,最终数据评估工作于2023年12月完成。 本数据集可用于域名数据的统计分析,或用于训练基于机器学习的分类器(如钓鱼检测分类器)的特征提取工作。 ## 数据文件 数据存储于两个独立文件中: - benign.json:包含432572个良性域名的相关数据 - phishing.json:包含68353个钓鱼域名的相关数据 ## 数据结构 两个文件均包含通过mongoexport生成的JSON数组格式的记录条目。下文将详细说明单条记录的结构,请注意以下三点: 1. 部分字段可能缺失,此类字段应视为空值(null); 2. 可能存在额外的未定义字段,此类字段应予以忽略; 3. 由于处理错误,证书对象的common_name字段始终带有尾部符号:`> ` ### 通用基础字段 | 字段名 | 字段类型 | 可空性 | 描述 | |----------------|------------|--------|----------------------------------------------------------------------| | domain_name | 字符串 | 否 | 待评估的域名 | | url | 字符串 | 否 | 该域名对应的源URL | | evaluated_on | 日期类型 | 否 | 最后一次采集尝试的日期 | | source | 字符串 | 否 | 数据源标识符 | | sourced_on | 日期类型 | 否 | 该域名的数据摄入日期 | | dns | 对象 | 是 | DNS扫描获取的数据 | | rdap | 对象 | 是 | RDAP或WHOIS获取的数据 | | tls | 对象 | 是 | TLS握手过程中获取的数据 | | ip_data | 对象数组 | 是 | 捕获与该域名相关的IP地址的数据对象数组 | ### DNS数据(dns字段) | 字段名 | 字段类型 | 可空性 | 描述 | |----------|--------------|--------|----------------------------------------------------------------------| | A | 字符串数组 | 否 | IPv4地址数组 | | AAAA | 字符串数组 | 否 | IPv6地址数组 | | TXT | 字符串数组 | 否 | 原始TXT记录值数组 | | CNAME | 对象 | 否 | CNAME目标及相关IP地址 | | MX | 对象数组 | 否 | 包含MX目标主机名、优先级及相关IP地址的对象数组 | | NS | 对象数组 | 否 | 包含NS目标主机名及相关IP地址的对象数组 | | SOA | 对象 | 否 | 所有SOA字段,若目标域名存在该记录则包含 | | zone_SOA | 对象 | 否 | 目标域区域的SOA字段(最近的委派点),若存在且并非目标域的直接记录则包含 | | dnssec | 对象 | 否 | 描述各记录类型的DNSSEC验证结果的对象 | | ttls | 对象 | 否 | 各记录类型的TTL值对象 | | remarks | 对象 | 否 | 区域域名及DNSSEC标志对象 | ### RDAP数据(rdap字段) | 字段名 | 字段类型 | 可空性 | 描述 | |--------------------|--------------|--------|----------------------------------------------------------------------| | copyright_notice | 字符串 | 否 | RDAP/WHOIS数据使用版权声明 | | dnssec | 布尔值 | 否 | DNSSEC存在标志 | | entities | 对象 | 否 | 包含各类数组的对象,用于表示发现的相关实体类型(如滥用、管理、注册人等),数组内包含描述各实体的对象 | | expiration_date | 日期类型 | 是 | 当前域名过期日期 | | handle | 字符串 | 否 | RDAP句柄 | | last_changed_date | 日期类型 | 是 | 域名最后一次修改的日期 | | name | 字符串 | 否 | 本对象存储数据对应的目标域名 | | nameservers | 字符串数组 | 否 | RDAP或WHOIS提供的域名服务器主机名数组 | | registration_date | 日期类型 | 是 | 首次注册日期 | | status | 字符串数组 | 否 | 注册对象的状态[待完善] | | terms_of_service_url | 字符串 | 否 | RDAP使用服务条款的URL | | url | 字符串 | 否 | RDAP实体的URL | | whois_server | 字符串 | 否 | WHOIS服务器地址 | ### TLS数据(tls字段) | 字段名 | 字段类型 | 可空性 | 描述 | |--------------|--------------|--------|----------------------------------------------------------------------| | cipher | 字符串 | 否 | 依据[待完善]标准的TLS密码套件描述 | | protocol | 字符串 | 否 | 协议类型,可选值为"TLS"、"TLSv1.2"、"TLSv1.3" | | certificates | 对象数组 | 否 | 表示证书链的对象数组,第一个元素为根证书 | ### IP数据(ip_data数组内的元素) | 字段名 | 字段类型 | 可空性 | 描述 | |----------|--------------|--------|----------------------------------------------------------------------| | ip | 字符串 | 否 | IP地址 | | from_record | 字符串 | 否 | 捕获该地址的DNS记录类型 | | remarks | 对象 | 否 | 包含ping往返时间、"是否存活"标志及RDAP/地理信息/ASN的评估日期的对象 | | rdap | 对象 | 是 | RDAP数据,与DNS字段中的RDAP数据结构类似,详情请参阅JSON Schema | | geo | 对象 | 是 | 来自GeoLite2 City数据库的地理定位数据(如纬度、经度、城市、国家等) | | asn | 对象 | 是 | 来自GeoLite2 ASN数据库的自治系统数据(自治系统号、组织、网络等) | ## 致谢 本研究感谢OpenPhish团队授权使用并发布其数据集,同时感谢VirusTotal为研究目的提供API访问权限。本研究得到捷克共和国内政部资助的「基于流的加密流量分析」项目(编号:VJ02010024),以及布尔诺理工大学资助的「面向韧性社会的智能信息技术」项目(编号:FIT-S-23-8209)的支持。



