证券交易的异常分析

证券交易的异常分析

 

1概述   随着互联网的普及以及网上证券交易系统功能的不断丰富、完善和使用的便利性,网上交易正成为证券投资者交易的主流模式,据统计,证券经营机构网上交易业务的交易量已经占到总交易量的80%以上,网上证券交易系统已经成为证券公司交易系统的重要组成部分。另一方面,随着互联网应用的普及,针对网上证券交易的安全事件日益增多。   “盗买盗卖”恶意行为、“证券大盗”等病毒木马给投资者和证券公司带来经济损失的同时,也影响到网上证券交易市场的长远发展,如何提升网上证券交易系统的安全性,已成为证券行业关注的热点。   2网上证券交易面临的问题和分析   2.1网上证券交易面临的安全问题   在当前信息技术日新月异、电子商务高速发展、资本市场规模不断扩大、业务创新层出不穷的前提下,证券业的信息系统变得越来越庞大和复杂。在行业信息化建设过程中,信息安全的各个环节都暴露了一些亟待解决的问题。   互联网应用的快速发展,促使攻击事件变得越来越普及,网络犯罪活动已经从最初的个人恶意攻击行为,转变成目标明确,有组织、有分工的职业化行为。危及网上证券交易安全的病毒、木马、钓鱼、窃取、篡改等攻击手段层出不穷,大部分网上证券交易的用户安全防范意识不高,对于可能盗取用户口令的攻击手段没有任何防范能力。这些问题极大地影响了证券交易体系的安全性。同时,以盈利为目的的黑色产业链,正促使这种局面愈加恶劣。   如近期集中爆发的网络钓鱼事件,更是给广大的网上用户,直接带来了巨大的经济损失。因此,维护网络安全成为了证券业信息化建设的重要工作。   网上证券交易系统的安全可以分为账户安全和系统安全。保护账户安全是指保护个人账户的账户/密码、资金、交易行为等信息的机密性,不被他人窃取或监听;保护系统安全是指保护网上证券交易系统,使之不受合法账户的非法交易行为的影响。   分析证券交易中的异常行为,有针对性地提出安全信息系统的解决方案,是保障网上证券交易系统安全、可靠运行的有效途径。   2.2网上证券交易异常行为定义和分析   证券交易中的异常行为主要表现在用户在买卖股票、债券或资金划转过程中出现的异常举动。根据《上海证券交易所证券异常交易实时监控指引》对证券交易异常行为的归类和定义,基本包括以下几种异常交易类别:高买低卖利益传送、资金频繁存取、长期闲置账户频繁异动、大量委托或查询请求、虚假申报、短线操纵、连续集中交易等。   1)高买低卖利益传送   证券交易盗买盗卖行为,通常是通过频繁交易国债或企业债品种,利用债券T+0交易、无涨跌停、且交投不活跃的特点,通过高买低卖方式,实现利益输送。此类异常行为一般在市场整体交投不活跃、投资者不经常查看账户状态的情况下进行,降低了被投资者及时发现的可能。   2)长期闲置账户频繁异动   长期闲置的账户突然发生异常波动,包括频繁登录、频繁交易,或无交易频繁转账等,都可以视为疑似异常行为。如,正常交易日无交易账户资金划转每天发生3次以上,或者无交易账户资金划转每天发生1次,且持续发生3天以上,出现接近于大额现金交易标准的现金收付的交易行为。   3)大量委托或查询请求   攻击者通过利用多个账户发送大量无效的委托或查询请求(如失败委托或不可能成交委托),攻击证券公司的交易系统。交易系统需要对委托、查询订单进行处理,势必会占用券商交易系统和交易所撮合系统的资源,也会影响到其他用户的正常交易行为。   除上面介绍的异常行为外,虚假申报、短线操纵、连续集中交易等也严重影响了网上证券交易的政策秩序,需要及时发现并予以控制。   但是,网上证券交易的异常行为是在不断变化的,很难仅凭借现有的行为特征予以识别和防范,还需要不断了解新的异常行为,并作出反应。本文提出了一种基于数据挖掘的异常行为分析方式,它通过收集交易行为数据,利用挖掘算法,对数据进行清理、降维、归纳、模式识别、结果分析与评价,不断丰富异常行为数据库,从而实现对网上证券异常交易行为的及时预警。   3基于数据挖掘的证券交易异常行为分析   3.1数据挖掘的概念及方法   数据挖掘常特指数据库数据挖掘(KnowledgeDiscoveryinDatabase),按照Fayyad的定义,“KDD是从数据集中识别出有效的、新颖的、潜在有用的,以及最终可理解的模式的非平凡过程”[1]。   数据挖掘的过程大体分为三个阶段:数据准备、数据挖掘以及结果的解释评估,可以参见图1中给出的多处理阶段过程模型。   1)数据准备   数据准备包括数据选取(Selection)、数据预处理(Preprocessing)和数据变换(Transformation)等工作。数据选取用来确定发现任务的操作对象,即目标数据(TargetData),根据用户的需要从原始数据中抽取一部分数据。数据预处理把目标数据处理成便于挖掘的形式,一般包括去噪声、缺值数据处理、消除重复记录以及数据类型的转换等操作。   2)数据挖掘   数据挖掘首先确定挖掘的任务,如分类、聚类、关联规则发现,或序列模式发现等。然后选择采用哪种挖掘算法,算法的选择主要基于两点考虑:一是针对数据本身的特点,采取相应的算法挖掘;二是针对用户的需求(是获取显式的规则还是抽象的模型等)采取相应的算法挖掘。数据挖掘阶段是数据挖掘过程的核心,目前的大多数研究也都是针对挖掘算法展开的。#p#分页标题#e#   3)结果的解释和评价   数据挖掘的结果可能并不完全符合用户的要求,其中可能包含冗余或无用的模式,这就需要将其剔除。另外,由于数据挖掘的结果是面向人类的,因此需要将结果转化成易于理解的形式(如产生式规则),提交给用户。   3.2基于数据挖掘的异常交易行为分析   系统从网络中得到反映交易行为的交易数据,存入交易行为库中,根据现有的异常交易行为的模型,提取其行为特征,判断该行为是否是为异常,能够明确判断为正常或者异常的行为可直接被处理,不能丰富异常行为库,本文分析的重点是无法判知的行为,对于未知行为,利用专家系统和数据挖掘算法对其进行威胁分析和特征提取,得到新的异常交易行为的规则和模型,扩充了异常行为库,并应用于之后的行为分析。   基于数据挖掘的方法主要基于历史交易行为数据提取交易行为异常特性,即使网络的拓扑结构和配置发生改变,也能从新的交易行为中自动发现新的异常行为特征。因此这种方法极大地降低了对专家知识的依赖,不存在知识获取的瓶颈,而且也减轻了人员的工作负担。基于异常交易行为分析应用模型,选取到合适的算法对交易数据进行数据挖掘就非常重要。   4常用的数据挖掘算法研究   4.1GSP算法研究   4.1.1算法简介   GSP(GeneralizedSequentialPatterns)算法是宽度优先算法,算法引入了时间约束、滑动时间窗和分类层次技术,同时利用哈希树来存储候选序列[3]。   GSP算法首先扫描序列数据库,得到长度为1的序列模式L1,作为初始的种子集。   根据长度为i的种子集Li通过连接操作和剪切操作生成长度为i+1的候选序列模式Ci+1;然后扫描序列数据库,计算每个候选序列模式的支持数,产生长度为i+1的序列模式Li+1,并将Li+1作为新的种子集。   重复上一步,直到没有新的序列模式或新的候选序列模式产生为止。   L1==>C2==>L2==>C3==>L3==>C4==>L4==>…连接阶段:如果去掉序列模式s1的第一个项目与去掉序列模式s2的最后一个项目所得到的序列相同,则可以将s1与s2进行连接,即将s2的最后一个项目添加到s1中。例如(1,2)(3)去掉第一个项目与(2)(3,4)去掉第二个项目所得到的序列均为(2)(3),因此将两者连接为(1,2)(3,4)。   剪切阶段:若某候选序列模式的某个子序列不是序列模式,则此候选序列模式不可能是序列模式,将它从候选序列模式中删除。   候选序列模式的支持度计算:利用hash树的方法。对于给定的候选序列模式集合C,扫描序列数据库,对于其中的每一条序列d,找出集合C中被d所包含的所有候选序列模式,并增加其支持度计数。   GSP算法也是一个Apriori类算法,它存在的主要问题和AprioriAll算法相似。由于约束条件的使用,相应会使算法复杂一些,也会以相应的开销为代价,但总体来说,效率比AprioriAll高2-20倍。   4.1.2算法分析   GSP算法有效地减少了需要扫描的候选序列的数量,同时克服了基本序列模型的局限性,减少多余的无用模式的产生,更加切合实际。但是,如果数据库的规模比较大,则有可能会产生大量的候选序列模式。需要对序列数据库进行循环扫描。对于序列模式的长度比较长的情况,由于其对应的短的序列模式规模太大,GSP算法很难处理。   对于证券交易行为库来说,这是一个相对较大的库,并且也只有库中的数据越多,得到的结果才能更接近实际情况,在用GSP算法对异常行为做数据挖掘时,算法的效率较低。   4.2PreFixSpan算法研究   4.2.1算法简介   PrefixSpan(Prefix-ProjectedSequentialPatternsMining)[4]算法是一种深度优先算法。通过扫描数据库发现频繁1-序列模式,把数据库投影到前缀序列库,重复序列发现和投影操作,任何一个频繁序列都可以由它的频繁前缀生长得到。   PrefixSpan算法的基本定义有前缀、后缀、投影等。   前缀:设每个元素中的所有项目按照字典序排列。给定序列=<e1e2en>,=<e1’e2’em’>(m≤n),如果ei’=ei(i≤m-1),,并且(em-em’)中的项目均在em’中项目的后面,则称β是α的前缀。   投影:给定序列α和β,如果β是α的子序列,则α关于β的投影必须满足:β是的前缀,是α的满足上述条件的最大子序列。   后缀:序列α关于子序列β=<e1e2em-1em’>的投影为=<e1e2en>(n>=m),则序列α关于子序列β的后缀为<em”em+1en>,其中em”=(em-em’)投影数据库:设α为序列数据库S中的一个序列模式,则α的投影数据库为S中所有以α为前缀的序列相对于α的后缀,记为。   投影数据库中的支持数:设a为序列数据库S中的一个序列模式,序列β以a为前缀,则β在α的投影数据库中的支持数为中满足条件的序列的个数。   算法的基本过程是:   首先扫描序列数据库,生成所有长度为1的序列模式。   根据长度为1的序列模式,生成相应的投影数据库。   在相应的投影数据库上重复上述步骤,直到在相应的投影数据库上不能产生长度为1的序列模式为止。#p#分页标题#e#   4.2.2算法分析   该类算法不需要生成候选项集,大大缩减了检索空间,聚焦于小搜索空间,寻找频繁模式的过程更有针对性且高效,映射后的序列库逐渐缩小,在实际情况中,映射库缩小很快,因为只有很小一部分前缀会生长到长模式。算法的主要开销在于投影数据库的构造,采用以空间换时间的策略。如果存在大量的序列模式,并且需要为每一个序列模式建立一个投影数据库,开销就比较大,为了能够更准确地分析异常行为模式,为异常行为分别建立投影数据库是很必要的,这样势必需要更大的空间来做分析,并且算法实现比较复杂。   4.3孤立点挖掘算法研究   4.3.1算法简介   孤立点挖掘技术[5]是数据挖掘技术的一种,用于研究偏离了绝大多数对象的很小一部分数据。孤立点挖掘可以描述如下:给定一个n个数据点或对象的集合,及预期的孤立点的数据k,设定某一阈值,以阈值来量化对象之间的差异,发现与剩余对象之间的差异超过该阈值的所有对象。本系统中使用的是孤立点挖掘的LDC-mine[2]算法,下面是几个定义:   定义1:对象p的k距离:对于任何一个正数k,对象p的k距离即,K-dis(p),被定义为d(p,o),在对象p于对象o之间满足:至少有k个对象,使得;至多有k-1个对象,使得。   定义2:对象p的k距离邻居:给定一个对象p的k距离,p的k距离包括所有和p的距离小于k距离的对象,即:。这些对象叫做p的k距离邻居。   定义3:对象p的局部偏差率:给出以对象p的k距离邻居,以p为圆心,以k距离为半径,得到一个包含所有k距离邻居的圆,计算出k距离邻居的质心,然后对象p的局部偏差率LDRrk(p)为:LDC-mini算法,简单地说,对象p的局部偏差率越大,就认为以对象p为圆心,k为距离的半径的圆内,对象集对对象p的影响越小,对象p偏离大多数对象的概率就越大,对象p就越可能是一个孤立点。   4.3.2算法分析   该算法在总体数据样本中,以孤立点表征异常行为,适用于证券交易的实际情况,并且算法在时间和空间上相对来说开销都较低,实现起来相对简单,在对交易行为进行数据挖掘时是较优的算法选择。   5孤立点挖掘算法在网上证券交易异常   行为检测中的应用本文将基于孤立点挖掘的算法用在如高买低卖模型、资金频繁存取模型、长期闲置资金频繁交易模型、委托请求DoS攻击模型、查询请求DoS攻击模型等模型中。各个模型中的k距离空间各维度的物理含义各不相同,但是应用的算法是相同的,下面以委托请求DoS攻击模型为例,说明LDC-mini算法在预警系统中的应用。   委托请求DoS攻击是指:是用户本人出于某种目的,使用自己的账号发送大量委托请求,攻击证券公司的交易系统,占用券商交易系统和交易所系统的资源,进而影响到其他用户的正常交易行为。   委托请求攻击中有两个指标有异于正常的委托请求:“小额委托/总委托”比和“失败委托/总委托”比。利用LDC算法进行委托请求DoS攻击检测步骤如下:   (1)根据历史样本得到“小额委托/总委托”比和“失败委托/总委托”比的缺省对象,Pd=<Sd,fd>。   (2)计算当前账户一段时间内的“小额委托/总委托”比和“失败委托/总委托”比,得到对象Pc=<Sc,Fc>。   (3)确定Pc的k距离。   (4)检索历史样本确定Pc的k距离邻居集合。   (5)计算出对象pc的局部偏差率(6)如果pC的超过预先设定的某一阈值,则说明Pc对象属于孤立点,该账户可能正在发起委托请求的DoS攻击。   6结论   本文通过对常用数据挖掘算法的对比分析,最终提出将孤立点挖掘算法应用于网上证券交易异常行为的检测方法,从而有效地解决了现有网上证券交易异常行为识别和分析的难题,提升了证券交易系统的整体安全防护能力,以确保进一步防范盗买盗卖此类业务风险,从而促进证券交易市场健康、平稳地持续发展。