CN114581086A - 基于动态时序网络的钓鱼账户检测方法及系统 - Google Patents
基于动态时序网络的钓鱼账户检测方法及系统 Download PDFInfo
- Publication number
- CN114581086A CN114581086A CN202210174263.9A CN202210174263A CN114581086A CN 114581086 A CN114581086 A CN 114581086A CN 202210174263 A CN202210174263 A CN 202210174263A CN 114581086 A CN114581086 A CN 114581086A
- Authority
- CN
- China
- Prior art keywords
- node
- account
- information
- transaction
- time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2413—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
- G06F18/24147—Distances to closest patterns, e.g. nearest neighbour classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Strategic Management (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biophysics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于动态时序网络的钓鱼账户检测方法及系统,包括:钓鱼账户和以太坊账户数据采集;构建动态时序交易网络图TTGN;将图中节点嵌入向量,利用SMOTE解决钓鱼账户类不平衡的问题,训练钓鱼账户检测模型;用测试集的数据进行钓鱼账户检测,对测试集采用相同方法构建动态时序交易网络图并将节点嵌入向量,输入训练得到的最优模型中进行检测,得到检测结果。本发明可以一定程度上解决静态交易网络方法中无法体现时序性、精度不高的问题;相较于基于统计特征的钓鱼账户检测方法,本发明可以通过动态时序图对收集得到的网络钓鱼账户进行验证,使得更加符合实际情况、精度更高。
Description
技术领域
本发明属于网络安全领域,特别涉及一种基于动态时序网络的钓鱼账户检测方法及系统。
背景技术
钓鱼账户作为区块链中一种常见网络犯罪,定义为模仿诚实公司的网站,旨在获取用户的私人信息,如用户名、密码和社会安全号码。2017年以来,网络钓鱼诈骗的数量占以太坊所有网络犯罪的50%以上,这类诈骗已成为以太坊交易安全的主要威胁,如何准确高效地检测出潜在的网络钓鱼账户俨然成为一项具有挑战性的工作。现有的网络钓鱼账户检测工作主要采用静态分析的方法对交易网络进行建模,分析图中账户和交易特征,通过图卷积等方法训练检测模型。然后由于实际情况中钓鱼账户是会一直产生的,并不仅局限于静态分析方法中固有的数据集,这样不能将最新的账户数据信息更新到模型中,无法形成良好分类效果的特征集,并且不符合实际情况。
目前已有一些工作使用静态的方法来检测网络钓鱼账户,如文献《Phishing ScamDetection on Ethereum:Towards Financial Security for Blockchain Ecosystem》采用基于图的级联特征提取的方法,可以方便提取丰富的交易结构信息,形成分类的特征集。也有一些工作开始通过挖掘以太坊交易记录的方法去检测以太坊上的钓鱼欺诈,如文献《Who Are the Phishers?Phishing Scam Detection on Ethereum via NetworkEmbedding》通过一种新的网络嵌入算法trans2vec来提取地址的特征,用于后续的网络钓鱼识别。最后,采用单类支持向量机将节点分为正常节点和网络钓鱼节点。但是以上方法仍存在没有考虑交易网络动态特性、精度不高的问题,使得方法的准确性难以保障、不符合实际情况。
发明内容
发明目的:针对上述现有技术存在的问题,本发明目的在于提供一种更加符合实际意义、精度更高的基于动态时序网络的钓鱼账户检测方法及系统。
技术方案:为实现上述发明目的,本发明具体采用了如下技术方案:
一种基于动态时序网络的钓鱼账户检测方法,包括:
步骤1,对钓鱼账户和以太坊账户进行采集得到账户数据集;
步骤2,通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;所述动态时序交易网络图TTGN中节点表示账户,边表示两个账户之间的交易;
步骤3,将图中表示的节点嵌入向量进行特征学习,并对节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,并基于平衡后的样本数据进行二分类训练得出最优模型;
步骤4,将得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
进一步地,在步骤1中,从以太坊客户端Parity中收集以太坊相关信息,包括:以太坊账户地址以及它们之间的交易信息;从Etherscan网站中收集钓鱼账户的地址;将收集的数据根据设置的规则进行过滤并划分为训练集、验证集和测试集。
进一步地,在步骤2中,将数据集分批次处理,构建动态时序交易网络图TTGN,具体包括:
将每批次新加入的交易存储于初始信息存储中,每个交易表示为eij(t),即在t时刻账户i向账户j产生了一次交易,存储节点信息分别为rmi(t)和rmj(t),其中rmi(t)的信息包含在t时刻账户i、账户j以及它们之间的交易信息,rmj(t)的信息包含在t时刻账户j、账户i以及它们之间的交易信息,交易信息包括交易时间和交易金额;
将上述存储的节点信息,对每个节点信息进行分别整合到已有节点上,若交易中产生一个新的节点,则创建一个新的空间内存;
对于这一批处理中涉及同一个节点的多个交易,将这些交易中的相同节点进行聚合;
节点信息聚合后,对于涉及节点i和节点j的交易,更新这两个节点的空间内存;
将更新完的以太坊账户节点信息进行嵌入向量,同时批处理中将新一批次的交易放入初始信息存储中开始新一轮的信息更新。
进一步地,采用LSTM网络对节点的空间内存进行更新,将聚合后的节点信息输入到LSTM内,利用LSTM中的输入门决定新加入的节点信息是否需要保存在当前空间内存中,通过如下公式计算:
式中,⊙为同或运算符号,Ct为t时刻的cell状态,能够确定当前输入中哪些信息是重要的,Ct-1为t-1时刻的cell状态,权重矩阵Ft决定要保留多少t-1时刻的信息,Ft的计算如下式:
Ft=σ(XtWxf+Ht-1Whf+bf)
式中,Wxf和Whf为遗忘门的权重矩阵,Ht-1为t-1时刻cell层输出的以太坊账户向量,Xt为t时刻cell层输入的以太坊账户向量,bf为遗忘门的偏置项,σ则为sigmoid函数,为新聚合后的账户信息,权重矩阵It决定保留多少新聚合后的账户信息;最后,将cell状态通过tanh函数进行处理并将它和Ot相乘,其中是Ot用来存储隐藏状态的值,Ot的计算如下式:
Ot=σ(XtWxo+Ht-1Who+bo)
式中,Wxo和Who为输出门的权重矩阵,bo为输出门的偏置项,最终将相乘后的信息作为更新后的以太坊账户信息进行输出。
进一步地,在节点嵌入时考虑新加入的节点对周围邻居节点会有一定的传播影响,只传播新加入节点的一阶邻居节点,具体计算如下:
Ci(t)=Ci(t-)+fa(ui(t-),us(t-))·g(Δf)·h(Δt)·Ws·eis(t)
g(Δt)=1/log(e+Δt)
hi(t)=tanh(Ci(t))
式中,ui(t-)、us(t-)分别表示节点i及其一阶邻居节点s在t时刻之前的特征,fa(ui(t-),us(t-))表示节点i与它的一阶邻居节点s的连接强度,N(s)表示邻居节点的集合,Ci(t)表示节点i在t时刻的cell特征,Ci(t-)表示节点i在t-1时刻的cell特征,g(Δt)为递减函数,e为自然常数值,Δt为节点i与节点s本次交易时间与节点i上一次交易时间的间隔,h(Δt)为避免与新加入节点时间间隔太久远的节点带来的噪声,若Δt小于设定阈值,则h(Δt)为1,否则为0,Ws为线性变换,eis(t)为t时刻节点i与邻居节点之间的交易,用于将交易的信息传播给邻居节点,最后通过tanh激活函数对t时刻节点i的cell特征进行激活得到传播后的节点信息hi(t)。
进一步地,在步骤3中,利用SMOTE算法合成钓鱼账户样本,以解决钓鱼账户与非钓鱼账户类别不平衡的问题;具体包括:
在SMOTE算法中对于钓鱼账户向量中每一个样本x,以欧氏距离为标准计算它到钓鱼账户向量样本集中所有样本的距离,得到其k近邻;根据样本不平衡比例设置采样比例以确定采样倍率N,对于每一个钓鱼账户向量样本x,从其k近邻中随机选择若干个样本;对于每一个随机选出的近邻xn,分别与原样本按照下述的公式构建新的样本:
xnew=x+rand(0,1)*(xn-x)
式中,rand(0,1)表示随机生成(0,1)内的随机实数。
进一步地,在步骤4中,用测试集的数据进行钓鱼账户检测,根据步骤2中相同方法进行构图,其中图中节点表示账户,边表示两个账号之间的交易,边为有向边;将账户节点嵌入向量放入步骤3中训练得到的最优模型中进行检测,得出账户是否为钓鱼账户的检测结果。
基于相同的发明构思,本发明提供的一种基于动态时序网络的钓鱼账户检测系统,包括:
数据采集模块,用以对钓鱼账户和以太坊账户进行采集得到账户数据集;
时序交易网络图构建模块,用以通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;所述动态时序交易网络图TTGN中节点表示账户,边表示两个账户之间的交易;
钓鱼账户检测模型构建模块,用以对图中表示的节点嵌入向量进行特征学习,并将节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,并基于平衡后的样本数据进行二分类训练得出最优模型;
钓鱼账户检测模块,用以将得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
基于相同的发明构思,本发明提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于动态时序网络的钓鱼账户检测方法。
有益效果:与现有技术相比,本发明具有如下优点:
(1)本发明从图的角度对以太坊交易网络进行建模,通过构造时序交易网络图TTGN(其中,节点表示账户,边表示两个账户之间的交易),充分挖掘账户和交易属性与钓鱼账户密切相关的特性;
(2)本发明提出基于动态方法来检测潜在的网络钓鱼账户,相较于之前使用的静态方法来检测潜在的网络钓鱼账户,可以分批加入新出现的账户交易,将新出现的账户交易考虑进来,更加符合实际情况;
(3)鉴于钓鱼账户出现严重的类不平衡的问题,本发明使用SMOTE算法通过对少数类样本进行分析并根据少数类样本人工合成新样本添加到数据集中,有效解决了类不平衡的问题。
附图说明
图1是本发明基于动态时序网络的钓鱼账户检测方法的流程图。
图2是本发明中时序交易网络图(TTGN)的原始图和第一批新节点信息加入的图。
具体实施方式
以下结合附图对本发明的具体实施方式进行说明。
如图1所示,本实施例提供一种基于动态时序网络的钓鱼账户检测方法,包括:步骤1,对钓鱼账户和以太坊账户进行采集得到账户数据集;步骤2,通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;步骤3,将图中表示的节点嵌入向量进行特征学习,并对节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,并基于平衡后的样本数据进行二分类训练得出最优模型;步骤4,将上一步骤中得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
具体地,在步骤1中,从以太坊客户端Parity中收集以太坊相关信息,该以太坊相关信息包括:以太坊账户地址以及它们之间的交易信息;从Etherscan网站中收集钓鱼账户的地址,该网站为检测钓鱼诈骗提供了足够的钓鱼账户示例。
在收集所有数据后,发现类非常不平衡,由此过滤掉涉及智能合约地址的交易、少于10条或超过1,000条交易的地址以及块高度超过200万之前的所有交易。
将过滤完的数据划分80%用于训练集,10%用于验证集,10%用于测试集。
在步骤2中,用上述训练集的数据开始构建时序交易网络图,如图2所示,将训练集数据放入批处理中,每次更新200个交易,其中图中节点表示账户,边表示两个账户之间的交易,边为有向边。
将每次新加入的200个交易存储于初始信息存储中,初始信息存储是用来存放每次新增批处理中的交易信息的,这是一个累加的过程。每个交易表示为eij(t),即在t时刻账户i向账户j产生了一次交易,这里账户i表示为源节点i,账户j表示为目标节点j,则存储节点信息分别为rmi(t)和rmj(t),其中rmi(t)的信息包含在t时刻账户i、账户j以及它们之间的交易信息,交易信息包括交易时间和交易金额,同样rmj(t)的信息包含在t时刻账户j、账户i以及它们之间的交易信息,交易信息包括交易时间和交易金额。
将上述存储的节点信息,对每个节点信息进行分别整合到已有节点上,若交易中产生一个新的节点,则创建一个新的空间内存,这里的内存是指在时序交易网络图中每个节点存储信息的大小,节点的存储信息为源账户、目标账户以及它们之间的交易特点(交易时间和交易金额)。如对于上述交易eij(t),产生了rmi(t)和rmj(t)的信息,则mi(t)将这次交易节点的特点信息与之前已有的该节点信息进行整合同理rmj(t)也一样计算:
mi(t)=msgs(si(t-),sj(t-),Δt,eij(t)),mj(t)=msgd(sj(t-),si(t-),Δt,eij(t))
式中,si(t-)是节点i在时间t之前的信息(即从之前涉及i的交互的时间开始),sj(t-)是节点j在时间t之前的信息(即从之前涉及i的交互的时间开始),Δt为该交易发生的时间差,msgs和msgd是可学习的信息函数,这里将采用MLP进行整合信息处理,通过MLP将C1维信息转换为C2维,这C2维中整合了新的信息以及原来全部的C1维信息,这里的C1维信息表示原本已存在的以太坊账户交易信息,C2维信息表示在C1维信息基础上加入的新的批处理的以太坊账户交易信息。
对于这一批处理中会涉及同一个节点的多个交易,出于效率的原因,将这些交易中的相同节点进行聚合,使用一个机制来聚合节点事件mi(t1),mi(t2),…,mi(tb),其中t1,t2,…,tb≤t,
式中,agg是一个聚合函数。为了简单起见,在实验中考虑了两种有效的解决方案:最近的信息(只保留给定节点的最新信息)和平均信息(给定节点的所有信息的平均值)。
节点信息聚合后,对于涉及节点i和节点j的交易,这两个节点的空间内存都会在交易发生后进行更新:
式中,mem是一个可学习的空间内存更新功能,这里采用一个递归神经网络LSTM进行内存更新,通过LSTM可以将以太坊账户信息长期保存。将聚合后的节点信息输入到LSTM内,利用LSTM中的输入门决定新加入的节点信息是否需要保存在当前空间内存中,可以避免不重要的信息进入到时序交易网络图的空间中,这主要通过如下公式计算:
式中,⊙为同或运算符号,表示前后两个值相同时为1,不同时为0。Ct为t时刻的cell状态,可以确定当前输入中哪些以太坊账户的信息是重要的,Ct-1为t-1时刻的cell状态,Ft通过计算权重矩阵决定要保留多少t-1时刻的信息,Tt的计算如下式:
Tt=σ(XtWxf+Ht-1Whf+bf)
式中,Wxf和Whf为遗忘门的权重矩阵,Ht-1为上阶段cell层输出的以太坊账户向量,Xt为这次cell层输入的以太坊账户向量,bf为遗忘门的偏置项,σ则为sigmoid函数。Ft为0时则上一阶段信息全部遗忘,为1是全部保留。为该节点新聚合后的账户信息,同Ft一样,It决定保留多少新聚合后的账户信息,为0时全部遗忘,为1是全部保留。最后,将cell状态通过tanh进行处理(得到一个在-1到1之间的值)并将它和Ot相乘,其中是Ot用来存储隐藏状态的值,Ot的计算如下式:
Ot=σ(XtWxo+Ht-1Who+bo)
式中,Wxo和Who为输出门的权重矩阵,bo为输出门的偏置项,Ht-1和Xt则与上同。最终将相乘后的信息作为更新后的以太坊账户信息进行输出。
将更新完的以太坊账户信息进行嵌入向量,同时批处理中将新一批次的200个交易放入初始信息存储中开始新一轮的信息更新。
在步骤3中,节点嵌入向量是将任意时刻的每个节点都表示为向量,在节点嵌入时考虑新加入的节点对周围邻居节点会有一定的传播影响,但传播更多节点会给钓鱼账户检测带来噪声影响,因此这里只传播新加入节点的一阶邻居节点,具体计算如下:
Ci(t)=Ci(t-)+fa(ui(t-),us(t-))·g(Δt)·h(Δt)·Ws·eis(t)
g(Δt)=1/log(e+Δt)
hi(t)=tanh(Ci(t))
式中,ui(t-)表示节点i在t时刻之前的特征,fa(ui(t-),us(t-))表示节点i与它的一阶邻居节点s的连接强度,Ns表示邻居节点的集合,若有多个连接的话,会将这些影响平均分到各个节点上。Ci(t)表示节点i在t时刻的cell特征,Ci(t-)表示节点i在t-1时刻的cell特征,g(Δt)为递减函数,这里的e为自然常数值,Δt为节点i与节点s本次交易时间与节点i上一次交易时间的间隔,h(Δt)为避免与新加入节点时间间隔太久远的节点带来的噪声,因此若Δt≤10000,则h(Δt)为1,否则为0,通过这样能删去间隔时间过长的邻居对钓鱼检测结果的影响,Ws为线性变换,eis(t)为t时刻节点i与邻居节点之间的交易,这用于将交易的信息传播给邻居节点,通过将这些数值相乘得到t时刻节点i的cell特征,最后通过tanh激活函数对t时刻节点i的cell特征进行激活得到传播后的节点信息,其中tanh激活函数的范围为(-1,1)。
由于为了避免传播太多节点带来噪声的影响,上述只考虑节点的一阶邻居节点传播,因此可能会造成新加入的节点长时间未更新(不在一阶邻居节点传播范围内),这会带来该节点账户变的不活跃,为了解决该问题,这里采用聚合该节点的一阶邻居节点,通过邻居节点使该节点变的活跃,该问题的解决方法在现有工作中已经有解决的方法,在此不做过多介绍。
其中节点嵌入模块通过从节点的邻居存储器中聚合信息来缓解过时问题。当一个节点不活动一段时间时,但很可能是它的一些邻居最近一直很活跃,通过聚合它们的信息,TTGN可以计算出节点的最新嵌入。此外,时序交易网络图还可以根据特征和时间信息来选择哪些邻居更重要。
利用SMOTE算法对节点嵌入的向量中少数类样本(钓鱼账户)进行分析并根据钓鱼账户向量的样本人工合成新的钓鱼账户样本,用来增加钓鱼账户向量样本的数量,这主要解决钓鱼账户与非钓鱼账户类别不平衡的问题。
在SMOTE算法中对于钓鱼账户向量中每一个样本x,以欧氏距离为标准计算它到钓鱼账户向量样本集中所有样本的距离,得到其k近邻。其次,根据样本不平衡比例设置一个采样比例以确定采样倍率N,对于每一个钓鱼账户向量样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为xn。最后,对于每一个随机选出的近邻xn,分别与原样本按照下述的公式构建新的样本:
xnew=x+rand(0,1)*(xn-x)
式中,rand()为随机函数,rand(0,1)表示随机生成(0,1)内的随机实数,且不包括0和1。
将处理平衡后的节点嵌入向量用激活函数Sigmoid进行二分类。Sigmoid将一个real value映射到(0,1)的区间,可以和概率轻易对应起来,可以更好的用来做二分类,Sigmoid函数形式如下:
式中,函数是一个常见S型曲线函数,将输入的值映射到(0,1)之间进行输出,若输出的f(z)大于0.5则为钓鱼账户,若输出的f(z)小于大于0.5则为非钓鱼账户。
通过节点嵌入向量进行特征学习、利用smote算法解决钓鱼账户类别不平衡的问题以及用sigmoid函数计算出分类的概率,得到钓鱼账户检测模型,并用验证集数据进行计算每次训练模型的损失函数,通过损失函数来评价模型的预测值和真实值不一样的程度,最终使模型训练达到最优。
在步骤4中,用上述测试集的数据进行钓鱼账户检测,根据步骤2中相同方法进行构图,其中图中节点表示账户,边表示两个账号之间的交易,边为有向边。将这些账户节点嵌入向量输入步骤3中训练得到的最优模型中进行检测,模型输出的范围为(0,1),其中输出的值大于0.5则为钓鱼账户,否则为非钓鱼账户,并将检测结果记录下来,用来评价已训练好的模型对于钓鱼账户的检测情况。
基于相同的发明构思,本发明实施例提供的一种基于动态时序网络的钓鱼账户检测系统,包括:数据采集模块,用以对钓鱼账户和以太坊账户进行采集得到账户数据集;时序交易网络图构建模块,用以通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;钓鱼账户检测模型构建模块,用以对图中表示的节点嵌入向量进行特征学习,并将节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,并基于平衡后的样本数据进行二分类训练得出最优模型;钓鱼账户检测模块,用以将得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的各模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。所述模块的划分仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统。
基于相同的发明构思,本发明实施例提供的一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的基于动态时序网络的钓鱼账户检测方法。
本领域技术人员可以理解的是,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例所述方法的全部或部分步骤。存储介质包括:U盘、移动硬盘、只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明具体实现该技术方案的方法和途径很多,以上仅是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (10)
1.一种基于动态时序网络的钓鱼账户检测方法,其特征在于,包括:
步骤1,对钓鱼账户和以太坊账户进行采集得到账户数据集;
步骤2,通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;所述动态时序交易网络图TTGN中节点表示账户,边表示两个账户之间的交易;
步骤3,对图中表示的节点嵌入向量进行特征学习,并将节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,最后基于平衡后的样本数据进行二分类训练得出最优模型;
步骤4,将得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
2.根据权利要求1所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:在步骤1中,从以太坊客户端Parity中收集以太坊相关信息,包括:以太坊账户地址以及它们之间的交易信息;从Etherscan网站中收集钓鱼账户的地址;将收集的数据根据设置的规则进行过滤并划分为训练集、验证集和测试集。
3.根据权利要求1所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:在步骤2中,将数据集分批次处理,构建动态时序交易网络图TTGN,具体包括:
将每批次新加入的交易存储于初始信息存储中,每个交易表示为eij(t),即在t时刻账户i向账户j产生了一次交易,存储节点信息分别为rmi(t)和rmj(t),其中rmi(t)的信息包含在t时刻账户i、账户j以及它们之间的交易信息,rmj(t)的信息包含在t时刻账户j、账户i以及它们之间的交易信息,交易信息包括交易时间和交易金额;
将上述存储的节点信息,对每个节点信息进行分别整合到已有节点上,若交易中产生一个新的节点,则创建一个新的空间内存;
对于这一批处理中涉及同一个节点的多个交易,将这些交易中的相同节点进行聚合;
节点信息聚合后,对于涉及节点i和节点j的交易,更新这两个节点的空间内存;
将更新完的以太坊账户节点信息进行嵌入向量,同时批处理中将新一批次的交易放入初始信息存储中开始新一轮的信息更新。
4.根据权利要求3所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:采用LSTM网络对节点的空间内存进行更新,将聚合后的节点信息输入到LSTM内,利用LSTM中的输入门决定新加入的节点信息是否需要保存在当前空间内存中,通过如下公式计算:
式中,⊙为同或运算符号,Ct为t时刻的cell状态,能够确定当前输入中哪些信息是重要的,Ct-1为t-1时刻的cell状态,权重矩阵Ft决定要保留多少t-1时刻的信息,Ft的计算如下式:
Ft=σ(XtWxf+Ht-1Whf+bf)
式中,Wxf和Whf为遗忘门的权重矩阵,Ht-1为t-1时刻cell层输出的以太坊账户向量,Xt为t时刻cell层输入的以太坊账户向量,bf为遗忘门的偏置项,σ则为sigmoid函数,为新聚合后的账户信息,权重矩阵It决定保留多少新聚合后的账户信息;最后,将cell状态通过tanh函数进行处理并将它和Ot相乘,其中是Ot用来存储隐藏状态的值,Ot的计算如下式:
Ot=σ(XtWxo+Ht-1Who+bo)
式中,Wxo和Who为输出门的权重矩阵,bo为输出门的偏置项,最终将相乘后的信息作为更新后的以太坊账户信息进行输出。
5.根据权利要求3所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:在节点嵌入时考虑新加入的节点对周围邻居节点会有一定的传播影响,只传播新加入节点的一阶邻居节点,具体计算如下:
Ci(t)=Ci(t-)+fa(ui(t-),us(t-))·g(Δt)·h(Δt)·Ws·eis(t)
g(Δt)=1/log(e+Δt)
hi(t)=tanh(Ci(t))
式中,ui(t-)、us(t-)分别表示节点i及其一阶邻居节点s在t时刻之前的特征,fa(ui(t-),us(t-))表示节点i与它的一阶邻居节点s的连接强度,N(s)表示邻居节点的集合,Ci(t)表示节点i在t时刻的cell特征,Ci(t-)表示节点i在t-1时刻的cell特征,g(Δt)为递减函数,e为自然常数值,Δt为节点i与节点s本次交易时间与节点i上一次交易时间的间隔,h(Δt)为避免与新加入节点时间间隔太久远的节点带来的噪声,若Δt小于设定阈值,则h(Δt)为1,否则为0,Ws为线性变换,eis(t)为t时刻节点i与邻居节点之间的交易,用于将交易的信息传播给邻居节点,最后通过tanh激活函数对t时刻节点i的cell特征进行激活得到传播后的节点信息hi(t)。
6.根据权利要求1所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:在步骤3中,
利用SMOTE算法合成钓鱼账户样本,以解决钓鱼账户与非钓鱼账户类别不平衡的问题;具体包括:
在SMOTE算法中对于钓鱼账户向量中每一个样本x,以欧氏距离为标准计算它到钓鱼账户向量样本集中所有样本的距离,得到其k近邻;根据样本不平衡比例设置采样比例以确定采样倍率N,对于每一个钓鱼账户向量样本x,从其k近邻中随机选择若干个样本;对于每一个随机选出的近邻xn,分别与原样本按照下述的公式构建新的样本:
xnew=x+rand(0,1)*(xn-x)
式中,rand(0,1)表示随机生成(0,1)内的随机实数。
7.根据权利要求1所述的基于动态时序网络的钓鱼账户检测方法,其特征在于:在步骤4中,
用测试集的数据进行钓鱼账户检测,根据步骤2中相同方法进行构图,其中图中节点表示账户,边表示两个账号之间的交易,边为有向边;
将账户节点嵌入向量放入步骤3中训练得到的最优模型中进行检测,得出账户是否为钓鱼账户的检测结果。
8.一种基于动态时序网络的钓鱼账户检测系统,其特征在于,包括:
数据采集模块,用以对钓鱼账户和以太坊账户进行采集得到账户数据集;
时序交易网络图构建模块,用以通过构建动态时序交易网络图TTGN来更新新加入的账户信息,在图中嵌入新加入的节点;所述动态时序交易网络图TTGN中节点表示账户,边表示两个账户之间的交易;
钓鱼账户检测模型构建模块,用以对图中表示的节点嵌入向量进行特征学习,并将节点嵌入的向量用SMOTE算法合成钓鱼账户样本,以解决类不平衡的问题,并基于平衡后的样本数据进行二分类训练得出最优模型;
钓鱼账户检测模块,用以将得到的最优模型用于钓鱼账户检测,采用测试集,对测试集构建动态时序交易网络图并将节点嵌入向量,输入最优模型进行检测,最终得出结果。
9.根据权利要求8所述的基于动态时序网络的钓鱼账户检测系统,其特征在于:在时序交易网络图构建模块中,
将数据集分批次处理,构建动态时序交易网络图TTGN,具体包括:
将每批次新加入的交易存储于初始信息存储中,每个交易表示为eij(t),即在t时刻账户i向账户j产生了一次交易,存储节点信息分别为rmi(t)和rmj(t),其中rmi(t)的信息包含在t时刻账户i、账户j以及它们之间的交易信息,rmj(t)的信息包含在t时刻账户j、账户i以及它们之间的交易信息,交易信息包括交易时间和交易金额;
将上述存储的节点信息,对每个节点信息进行分别整合到已有节点上,若交易中产生一个新的节点,则创建一个新的空间内存;
对于这一批处理中涉及同一个节点的多个交易,将这些交易中的相同节点进行聚合;
节点信息聚合后,对于涉及节点i和节点j的交易,更新这两个节点的空间内存;
将更新完的以太坊账户节点信息进行嵌入向量,同时批处理中将新一批次的交易放入初始信息存储中开始新一轮的信息更新;
其中采用LSTM网络对节点的空间内存进行更新,将聚合后的节点信息输入到LSTM内,利用LSTM中的输入门决定新加入的节点信息是否需要保存在当前空间内存中,通过如下公式计算:
式中,⊙为同或运算符号,Ct为t时刻的cell状态,能够确定当前输入中哪些信息是重要的,Ct-1为t-1时刻的cell状态,权重矩阵Ft决定要保留多少t-1时刻的信息,Ft的计算如下式:
Ft=σ(XtWxf+Ht-1Whf+bf)
式中,Wxf和Whf为遗忘门的权重矩阵,Ht-1为t-1时刻cell层输出的以太坊账户向量,Xt为t时刻cell层输入的以太坊账户向量,bf为遗忘门的偏置项,σ则为sigmoid函数,为新聚合后的账户信息,权重矩阵It决定保留多少新聚合后的账户信息;
最后,将cell状态通过tanh函数进行处理并将它和Ot相乘,其中是Ot用来存储隐藏状态的值,Ot的计算如下式:
Ot=σ(XtWxo+Ht-1Who+bo)
式中,Wxo和Who为输出门的权重矩阵,bo为输出门的偏置项,最终将相乘后的信息作为更新后的以太坊账户信息进行输出;
在节点嵌入时考虑新加入的节点对周围邻居节点会有一定的传播影响,只传播新加入节点的一阶邻居节点,具体计算如下:
Ci(t)=Ci(t-)+fa(ui(t-),us(t-))·g(Δt)·h(Δt)·Ws·eis(t)
g(Δt)=1/log(e+Δt)
hi(t)=tanh(Ci(t))
式中,ui(t-)、us(t-)分别表示节点i及其一阶邻居节点s在t时刻之前的特征,fa(ui(t-),us(t-))表示节点i与它的一阶邻居节点s的连接强度,N(s)表示邻居节点的集合,Ci(t)表示节点i在t时刻的cell特征,Ci(t-)表示节点i在t-1时刻的cell特征,g(Δt)为递减函数,e为自然常数值,Δt为节点i与节点s本次交易时间与节点i上一次交易时间的间隔,h(Δt)为避免与新加入节点时间间隔太久远的节点带来的噪声,若Δt小于设定阈值,则h(Δt)为1,否则为0,Ws为线性变换,eis(t)为t时刻节点i与邻居节点之间的交易,用于将交易的信息传播给邻居节点,最后通过tanh激活函数对t时刻节点i的cell特征进行激活得到传播后的节点信息hi(t)。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述计算机程序被加载至处理器时实现根据权利要求1-7任一项所述的基于动态时序网络的钓鱼账户检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174263.9A CN114581086A (zh) | 2022-02-24 | 2022-02-24 | 基于动态时序网络的钓鱼账户检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174263.9A CN114581086A (zh) | 2022-02-24 | 2022-02-24 | 基于动态时序网络的钓鱼账户检测方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114581086A true CN114581086A (zh) | 2022-06-03 |
Family
ID=81774330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210174263.9A Pending CN114581086A (zh) | 2022-02-24 | 2022-02-24 | 基于动态时序网络的钓鱼账户检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114581086A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115907770A (zh) * | 2022-11-18 | 2023-04-04 | 北京理工大学 | 一种基于时序特征融合的以太坊钓鱼欺诈识别与预警方法 |
-
2022
- 2022-02-24 CN CN202210174263.9A patent/CN114581086A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115907770A (zh) * | 2022-11-18 | 2023-04-04 | 北京理工大学 | 一种基于时序特征融合的以太坊钓鱼欺诈识别与预警方法 |
CN115907770B (zh) * | 2022-11-18 | 2023-09-29 | 北京理工大学 | 一种基于时序特征融合的以太坊钓鱼欺诈识别与预警方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ghil et al. | Extreme events: dynamics, statistics and prediction | |
JP6771751B2 (ja) | リスク評価方法およびシステム | |
CN107316198B (zh) | 账户风险识别方法及装置 | |
JP6898562B2 (ja) | 機械学習プログラム、機械学習方法、および機械学習装置 | |
CN111625516B (zh) | 检测数据状态的方法、装置、计算机设备和存储介质 | |
CN110046929B (zh) | 一种欺诈团伙识别方法、装置、可读存储介质及终端设备 | |
JP2004511834A (ja) | 一時的非定常性の存在下におけるデータ分類のための方法とシステム | |
CN108491714A (zh) | 验证码的人机识别方法 | |
CN107679626A (zh) | 机器学习方法、装置、系统、存储介质及设备 | |
CN111325619A (zh) | 一种基于联合学习的信用卡欺诈检测模型更新方法及装置 | |
CN110084609B (zh) | 一种基于表征学习的交易欺诈行为深度检测方法 | |
CN113221104B (zh) | 用户异常行为的检测方法及用户行为重构模型的训练方法 | |
CN114091034A (zh) | 一种安全渗透测试方法、装置、电子设备及存储介质 | |
CN112819611A (zh) | 欺诈识别方法、装置、电子设备和计算机可读存储介质 | |
CN113052577A (zh) | 一种区块链数字货币虚拟地址的类别推测方法及系统 | |
CN116318924A (zh) | 一种小样本入侵检测方法、系统、介质、设备及终端 | |
CN116362823A (zh) | 用于行为稀疏场景的推荐模型训练方法、推荐方法及装置 | |
CN114581086A (zh) | 基于动态时序网络的钓鱼账户检测方法及系统 | |
CN111160797A (zh) | 风控模型的构建方法、装置、存储介质及终端 | |
CN112347457A (zh) | 异常账户检测方法、装置、计算机设备和存储介质 | |
CN111951008A (zh) | 一种风险预测方法、装置、电子设备和可读存储介质 | |
CN115484112B (zh) | 支付大数据安全防护方法、系统及云平台 | |
CN111797942A (zh) | 用户信息的分类方法及装置、计算机设备、存储介质 | |
CN113079168B (zh) | 一种网络异常检测方法、装置及存储介质 | |
CN109657160B (zh) | 基于随机游走访问频数的入度信息估计方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |