恶意登录地址识别方法及装置与流程

文档序号:12493446阅读:251来源:国知局
恶意登录地址识别方法及装置与流程

本发明涉及网络安全技术领域,尤指一种恶意登录地址识别方法及装置。



背景技术:

随着互联网技术的发展,网络安全受到越来越多的关注。对恶意登录地址的识别是保证网络安全的重要手段。在网络管理的过程中,每个登录操作都会由日志文件记录,现在最常用的技术是通过人为浏览这些日志文件,通过人为的方式来找出发出恶意登录请求的IP地址。

现有技术中,日志检查者通过统计IP地址发出的请求数量,登录帐号的个数和自身经验来人为判断出哪些IP地址属于恶意发送登录请求。这种方式人为检索的工作量极大,需要的人数和设备都比较多,并且重复性劳动,效果也并不那么好,费时费力,且不能快速、准确的识别恶意IP。

现有技术中,对于大型网站或者庞大的帐号系统,由于庞大的系统产生的登录日志非常多而且实时性非常强,这时一般采用流式数据统计和固定规则的方法进行统计。比如,每小时统计一小时内各IP的请求数量,登录帐号数量等数据,依据一定的数学规则,对数据进行计算之后,根据阈值确定发出恶意登录请求的IP地址。这种方式十分依赖数学规则和固定的阈值,易被外部猜中从而使此规则失效。且此规则易误伤非恶意但登录比较频繁的IP地址,不能快速、准确的识别恶意IP。



技术实现要素:

本发明实施例提供一种恶意登录地址识别方法及装置,用以解决现有技术中存在的不能快速、准确的识别恶意IP,现有识别方法费时费力的问题。

一方面,本发明实施例提供了一种恶意登录地址识别方法,包括:

获取用户登录时产生的日志文件;

对获取的日志文件进行统计,得到日志文件统计结果;所述统计结果中包含每个登录地址的登录数据;

将所述日志文件统计结果输入预先建立的回归分析模型中,根据每个登录地址的登录数据,通过所述回归分析模型确定登录地址是否是恶意登录地址;

其中,所述回归分析模型根据历史日志文件统计结果生成,其输入参数为登录数据,输出参数为是否恶意登录地址判断结果。

在一些可选的实施例中,对获取的日志文件进行统计,得到日志文件统计结果,具体包括:

统计日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到日志文件的统计结果文件,所述登录数据包括下列信息中的至少一个:

发出登录请求的次数、登录帐号数、登陆成功比例、验证码输错比例。

在一些可选的实施例中,回归分析模型的训练过程,具体包括:

获取记录的历史日志文件;

统计历史日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到历史日志文件的统计结果文件;

使用选定的数据挖掘算法,对所述统计结果文件进行训练,得到回归分析模型。

在一些可选的实施例中,对所述统计结果文件进行训练,得到回归分析模型,具体包括:

采用下列公式对统计结果文件进行训练,得到逻辑回归模型参数:

其中,m表示数据的总个数;

i表示第i个分量;

j表示第j个日志文件;

xi表示日志文件向量;

yi表示是否恶意登录地址;

a表示学习率;

θ表示模型参数;

使用得到的逻辑回归模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的逻辑回归模型;或

使用决策树计算模型,得到决策树模型参数,使用得到的决策树模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的决策树模型。

在一些可选的实施例中,当逻辑回归模型是决策树模型时,根据每个登录地址的登录数据,通过所述回归分析模型确定登录地址是否是恶意登录地址,具体包括:

将登录数据作为输入参数x输入下列逻辑回归模型,得到登录地址是否是恶意登录地址的输出结果hθ(x):

其中,θ为训练得到的逻辑回归模型参数。

在一些可选的实施例中,所述日志文件中包括下列信息中的至少一项:登录时间,登录方式,登录设备,登录地址,登录浏览器,登录请求时长,登录结果,登录帐号。

本发明实施例还提供一种恶意登录地址识别装置,包括:

获取模块,用于获取用户登录时产生的日志文件;

统计模块,用于对获取的日志文件进行统计,得到日志文件统计结果;所述统计结果中包含每个登录地址的登录数据;

确定模块,用于将所述日志文件统计结果输入预先建立的回归分析模型中,根据每个登录地址的登录数据,通过所述回归分析模型确定登录地址是否是恶意登录地址;其中,所述回归分析模型根据历史日志文件统计结果生成,其输入参数为登录数据,输出参数为是否恶意登录地址判断结果。

在一些可选的实施例中,所述统计模块,具体用于:

统计日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到日志文件的统计结果文件,所述登录数据包括下列信息中的至少一个:

发出登录请求的次数、登录帐号数、登陆成功比例、验证码输错比例。

在一些可选的实施例中,上述装置还包括:

训练模块,用于训练回归分析模型,具体包括:

获取记录的历史日志文件;

统计历史日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到历史日志文件的统计结果文件;

使用选定的数据挖掘算法,对所述统计结果文件进行训练,得到回归分析模型。

在一些可选的实施例中,所述训练模块,具体用于:

采用下列公式对统计结果文件进行训练,得到逻辑回归模型参数:

其中,m表示数据的总个数;

i表示第i个分量;

j表示第j个日志文件;

xi表示日志文件向量;

yi表示是否恶意登录地址;

a表示学习率;

θ表示模型参数;

使用得到的逻辑回归模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的逻辑回归模型;或

使用决策树计算模型,得到决策树模型参数,使用得到的决策树模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的决策树模型。

在一些可选的实施例中,所述确定模块,具体用于:

当逻辑回归模型是决策树模型时,将登录数据作为输入参数x输入下列逻辑回归模型,得到登录地址是否是恶意登录地址的输出结果hθ(x):

其中,θ为训练得到的逻辑回归模型参数。

上述技术方案具有如下有益效果:

通过对登录时产生的历史日志文件的统计,建立回归分析模型,当需要识别登录地址是否为恶意登录地址时,将相应的日志文件输入到回归分析模型,得到是否是恶意登录地址的判断结果,这种方式,通过对历史日志文件分析得到回归分析模型,能够准确的识别恶意地址,且不需要大量的人工操作,节约人力资源成本,不需要设置阈值,不容易被猜测破解,从而能够更有效、更准确的识别出恶意登录地址,提高网络安全。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例一中恶意登录地址识别方法的流程图;

图2是本发明实施例一中恶意登录地址识别的原理示意图;

图3是本发明实施例二中恶意登录地址识别方法的流程图;

图4是本发明实施例三中回归分析模型训练的流程图;

图5是本发明实施例中恶意登录地址识别装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术中存在的不能快速、准确的识别恶意IP的问题,本发明实施例提供一种恶意登录地址识别方法,能够快速、准确的是被恶意登录地址,不需要大量的人工操作,省时、省力。下面通过具体的实施例进行详细描述。

实施例一

本发明实施例提供一种恶意登录地址识别方法,基于Scikit(面向对象、解释型计算机程序设计语言-Python的一个工具包)中回归分析功能的从日志中挖掘恶意登录地址,其流程如图1所示,其实现原理如图2所示,该方法包括如下步骤:

步骤S101:获取用户登录时产生的日志文件。

获取某网站一段时间内,比如一天内,登录产生的日志文件B。每次登录会产生一条日志纪录,而这条纪录里会有这些信息中的至少一个:登录时间,登录方式,登录设备,登录地址,登录浏览器,登录请求时长,登录结果,登录帐号等。如图2中右侧最上方的方框所示。

步骤S102:对获取的日志文件进行统计,得到日志文件统计结果。其中,获得的统计结果中包含每个登录地址的登录数据。

统计日志文件的所有日志纪录中出现的登录地址,比如IP地址。针对每个登录地址,比如IP地址,统计登录数据,得到日志文件统计结果。其中,登录数据包括下列信息中的至少一个:发出登录请求的次数、登录帐号数、登陆成功比例、验证码输错比例。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,格式如:132.223.12.244。

比如:统计每个IP地址发出请求次数、登录帐号数、登录成功比例、验证码输错比例等数据中的一项或几项,将统计数据写成一个统计结果文件。从而实现统计日志文件B的数据,得到统计结果文件X2。统计结果文件X2中,每行纪录一个登录地址和其请求次数/登录帐号数/登录成功比例/验证码输错比例。如图2中右侧第二个方框所示。

步骤S103:将得到的日志文件统计结果输入预先建立的回归分析模型中,根据每个登录地址的登录数据,通过回归分析模型确定登录地址是否是恶意登录地址。

得到日志文件统计结果之后将输入回归分析模型中,其中包括的登录数据作为输入参数,经回归分析模型进行处理后,输出登录地址是否为恶意登录地址的输出结果,参照图2中右侧下边两个方框所示。回归分析模型可以选择逻辑回归模型,也可以选择决策树模型,或其他的回归分析模型。

其中,回归分析模型根据历史日志文件统计结果生成,其输入参数为登录数据,输出参数为是否恶意登录地址判断结果。如图2中左侧方框所示,从历史日志文件中统计用于训练的统计结果,根据统计结果训练回归分析模型。

本发明实施例的上述方法,采用回归分析技术实现,回归分析具有学习能力,输入的数据越多,最后结果越准确,先训练一个回归分析模型,再把训练好的模型加入系统中,对以后的数据进行判断,用已经建立好的回归分析模型能够直接对以后对数据进行分析和预测。在用数据对回归分析模型进行训练之后,回归分析模型能够根据已有的数据进行概率预测或是非判断。但由于日志文件中的数据记录可能有超过一亿条甚至更多,如果人工判断的工作量将会非常大,因此本发明中采用训练模型的方式和利用模型进行判断,减少了人工工作量,并提高了判定的准确和有效性。

实施例二

本发明实施例二提供上述恶意登录地址识别方法的一种具体实现过程,其流程如图3所示,该方法包括如下步骤:

步骤S301:获取用户登录时产生的日志文件。

步骤S302:统计日志文件包括的日志记录中出现的登录地址。

首先,统计所有日志纪录中出现的登录地址,比如IP地址。

步骤S303:针对每个登录地址,统计登录数据,得到日志文件的统计结果文件。

针对每个登录地址,比如IP地址,统计登录数据。比如:统计日志文件B的数据,得到统计结果文件X2。

步骤S304:将日志文件统计结果输入预先建立的回归分析模型中。

要判断日志B中的登录地址是否为恶意的发出登录请求的登录地址,对日志B进行同样的登录数据统计后,在Python中输入如下的代码:

predicted=model.predict(X2)

X2是日志B的统计结果。这句命令能够根据已有的回归分析模型对统计结果X2做判断,即判断X2中的登录地址是否是恶意的发出登录请求的登录地址。这样Predicted中就存放了X2中的所有登录地址和其是否恶意发出登录请求的判断结果。

步骤S305:通过回归分析模型确定登录地址是否是恶意登录地址。

以逻辑回归模型为例,将登录数据作为输入参数x输入下列逻辑回归模型,得到登录地址是否是恶意登录地址的输出结果hθ(x):

其中,θ为训练得到的逻辑回归模型参数。

这个函数hθ(x)即已知x时对y的估计值的计算公式,其中,y=hθ(x)。从公式中可以看到,模型训练的过程需要找出一组参数θ,使模型的结果hθ(x)尽量符合训练数据的结果。模型的训练在后续实施例中描述,可以采用梯度下降法进行参数θ的挖掘。

本实施例中,利用回归分析模型挖掘恶意登录地址时,把要挖掘恶意登录地址的日志B做相似的统计工作,并输入训练好的回归分析模型,得到对日志B中每个登录地址的判断结果。

实施例三

本发明实施例三提供上述供恶意登录地址识别方法回归分析模型建立的实现过程,其流程如图4所示,包括如下步骤:

步骤S401:获取记录的历史日志文件。

通过对海量历史日志文件的分析,可以实现回归分析模型的训练。

训练回归分析模型时,需要利用编程的方法让系统从历史日志文件A中统计所需的数据,然后把这部分统计数据当作Scikit工具包中逻辑回归功能的输入,这样可以得到训练好的逻辑回归模型。

步骤S402:统计历史日志文件包括的日志记录中出现的登录地址。

在训练的过程中需要人为判断历史日志文件的日志记录中的登录地址是否为恶意的发出登录请求的登录地址,然后对恶意和非恶意的登录地址分别进行统计。

步骤S403:针对每个登录地址,统计登录数据,得到历史日志文件的统计结果文件。

统计历史日志文件的所有日志纪录中出现的登录地址,针对每个登录地址,统计登录数据,得到日志文件统计结果。

比如:统计每个登录地址发出请求次数、登录帐号数、登录成功比例、验证码输错比例等数据中的一项或几项,将统计数据写成一个统计结果文件。从而实现统计日志文件A的数据,得到统计结果文件X。统计结果文件X中,每行纪录一个登录地址和其请求次数/登录帐号数/登录成功比例/验证码输错比例。

步骤S404:使用选定的数据挖掘算法,对统计结果文件进行训练,得到回归分析模型。

训练回归分析模型时,在安装了Scikit的Python中,输入下列代码:

model=LogisticRegression()

model.fit(X,y)

第一句的意思是选择了回归分析作为模型,第二句是把上一步的数据输入到模型里。这样Scikit就利用这些数据对回归分析进行训练。训练过的模型可以对其他的日志数据进行预测,y是输出的是否是恶意登录地址的判断结果。

上述实施例二中描述了训练回归分析模型需要得到回归分析模型参数,以逻辑回归模型为例,获取模型参数时,可以采用下面的梯度下降法:

采用下列公式对统计结果文件进行训练,得到逻辑回归模型参数:

上述公式减号后边表示梯度调整值。

其中,m表示数据的总个数;

i表示第i个分量;

j表示第j个日志文件;

xi表示日志文件向量;

yi表示是否恶意登录地址(例如:是与否可以分别用0和1表示);

a表示学习率;

θ表示模型参数,其形式比如可以是(0.1,0.1,0.1),维度数n可变,上述公式表示θj为之前得到的θj减去一个梯度调整值。

在梯度下降法中,对每一个θ的分量不断执行上式,这样做的话,所有的θ会收敛于全局最优解。也就是说当训练完成后,得到的是最符合训练集的参数组θ。

然后得到模型参数后,使用得到的逻辑回归模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的逻辑回归模型。即在使用模型进行恶意登录地址识别的过程中,已知X时,将X带入hθ(x)的表达式,并且表达式中已经有训练好的参数组θ,计算hθ(x)就得到在已知X情况下对y的预测值hθ(x)。

可选的,选用决策树模型时,使用决策树计算模型,得到决策树模型参数,使用得到的决策树模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的决策树模型。

基于同一发明构思,本发明实施例还提供一种恶意登录地址识别装置,可以设置在网络服务器中,也可以设置在用户设备中,实现对恶意登陆地址的识别。该装置的结构如图5所示,包括:获取模块501、统计模块502和确定模块503。

获取模块501,用于获取用户登录时产生的日志文件。

统计模块502,用于对获取的日志文件进行统计,得到日志文件统计结果;其中,统计结果中包含每个登录地址的登录数据。

确定模块503,用于将得到的日志文件统计结果输入预先建立的回归分析模型中,根据每个登录地址的登录数据,通过回归分析模型确定登录地址是否是恶意登录地址;其中,回归分析模型根据历史日志文件统计结果生成,其输入参数为登录数据,输出参数为是否恶意登录地址判断结果。

优选的,上述统计模块501,具体用于:

统计日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到日志文件的统计结果文件,所述登录数据包括下列信息中的至少一个:

发出登录请求的次数、登录帐号数、登陆成功比例、验证码输错比例。

优选的,上述装置,还包括:

训练模块504,用于训练回归分析模型,具体包括:

获取记录的历史日志文件;

统计历史日志文件包括的日志记录中出现的登录地址;

针对每个登录地址,统计登录数据,得到历史日志文件的统计结果文件;

使用选定的数据挖掘算法,对所述统计结果文件进行训练,得到回归分析模型。

优选的,上述训练模块504,具体用于:

采用下列公式对统计结果文件进行训练,得到逻辑回归模型参数:

其中,m表示数据的总个数;

i表示第i个分量;

j表示第j个日志文件;

xi表示日志文件向量;

yi表示是否恶意登录地址(例如:是与否可以分别用0和1表示);

a表示学习率;

θ表示模型参数;

使用得到的逻辑回归模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的逻辑回归模型;或

使用决策树计算模型,得到决策树模型参数,使用得到的决策树模型参数建立输入参数为统计结果文件中的登录数据,输出参数为是否恶意登录地址判断结果的决策树模型。

优选的,上述确定模块503,具体用于:

当逻辑回归模型是决策树模型时,将登录数据作为输入参数x输入下列逻辑回归模型,得到登录地址是否是恶意登录地址的输出结果hθ(x):

其中,θ为训练得到的逻辑回归模型参数。

本发明的实施例提供的上述恶意登录地址识别方法和装置,由于采用了回归分析的方法,找出恶意发出登录请求的登录地址所需要的人工工作量大大的减少了,并且没有阈值,不易被外界猜中并针对,并且随着处理的数据量的增大,逻辑回归的预测将会越来越准确。从而可以准确、高效的找出恶意登录地址,避免其他现有方式找出恶意登录请求的IP地址工作量太大,人工和开发成本较高的问题,也避免了采用阈值的方法存在易被猜中同意误伤善意登录用户的问题。

本发明实施例中,基于回归分析和Python/Scikit的发出恶意登录请求的登录地址挖掘流程,关键点在于利用已有工具包Python/Scikit的逻辑回归功能来寻找分散在日志文件中的关键信息——发出恶意登录请求的登录地址,而以往的方法都没有用到Scikit和回归分析的方法。

本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。

在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、DVD、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1