众包机制在信息安全中的应用现状和发展方向

2020-03-02 20:00刘轩宇杜小江
关键词:执行者发布者架构

刘轩宇, 杜小江, 伏 晓

(1.南京大学 计算机软件新技术国家重点实验室, 江苏 南京 210093; 2.天普大学 计算机与信息科学系,美国 费城 19122)

随着数字科技的高速发展,现代社会的平稳运行越来越离不开各种各样的信息技术,如通信网络、操作系统、移动应用、智能设备、物联网以及云计算等.这些先进的信息技术提高了社会的运行和生产效率,改变了人们的生活方式,促进了文化的交流和经济的发展.但是,信息技术在给社会带来诸多便利的同时,也不可避免地带来了很多安全问题.各种针对信息技术的攻击层出不穷,侵害了个人的权利和利益,也给社会带来了经济上的损失.要保证信息技术的发展可以正向地促进社会的进步,就需要保证信息技术的可信性和可靠性,也需要保护信息技术使用者的安全性和隐私性[1].

在信息安全研究领域,国内外的研究者们已经提出了很多种方法和机制,如入侵检测、访问控制、数据加密、异常检测和数字取证等.对于不同的技术、系统、设备、用户或者平台,往往已经有大量针对性的安全保护方法被开发和应用.然而,由于信息技术在不断地更新,信息系统的复杂度越来越高,类型和数量越来越多,规模也越来越大.与此同时,智能设备的数量和类型爆炸式增长,人们的日常生活也更加依赖这些智能设备,信息技术渗透进了社会的每一个角落.这些因素导致了在进行安全保护时,所要应对的场景变得越来越复杂,而这些复杂的场景又反过来提出了更高的安全诉求.不幸的是,当下的信息安全技术并没有能够很快地跟上信息技术的快速发展[2-5].技术的快速发展和场景的复杂化对安全从业者的技术能力和知识储备提出了更高的要求,他们可能需要对不同的技术都有所了解,并能够掌握如何在不同的场景中设计安全方案或者使用安全工具的能力,这无形中带来了高昂的学习成本.此外,面对越来越复杂的攻击场景,已有的安全分析工具和安全增强方案由于只能作用于其中的某一个部分而不能洞悉全局,往往达不到很好的效果.所以,现在很多安全场景并不是使用单一或者几个工具就足够的,可能需要将很多个安全工具以一定的方式结合在一起,进行综合性分析[6].

此外,随着信息安全和隐私保护的概念深入人心,除了安全相关从业人员之外,政府、组织、企业甚至普通用户也会有相关安全需求,例如想要了解已有设备的安全性,想要知晓计算机系统是否运行正常,想要知道智能家居系统是否可靠,想要确定自己的信息是否在社交网络中被泄露和恶意传播等.然而,安全工具往往对使用者有较高的技术要求和知识门槛,对于没有任何相关知识或者说只有一些基础理论知识的普通用户来说,他们在使用基本工具获得其设备上的一些数据后,无法做出更进一步的分析,得到更深层次、更详细、更准确的结果.他们可能需要其他专业人员的帮助和指引.甚至对于一些专业安全从业人员,当面对的安全任务超出其自身能力范围时,例如遇到不熟悉的系统、设备和场景,也需要查询相关的知识或者寻求其他取证人员的帮助.

现如今,很多复杂的工作都是以流水线的方式分工合作完成的,工人只需要完成自己负责的那一部分工作,并提交工作成果[7-8].同理,在信息安全任务中,也可以指派多个专业人员来合作完成目标场景下的安全任务,每个人只负责完成自己擅长的部分.不同技术和知识领域的专家之间的合作可以显著降低复杂场景中执行安全防御任务的难度,安全从业人员的学习成本也会降低.因此,可以预见,未来将会有更多的研究关注这种多方参与合作式的安全方案.这种形式类似于众包这种成熟的分布式问题解决方案,可以整合大量的人力和知识,从而可以作为很多超出当下计算机解决范围方案的替代解决方案[9].近些年,一些研究者已经尝试将众包引入到信息安全研究当中[10-12].本文将探讨众包在信息安全领域的研究现状,并提出未来的一些方向.

1 众包背景知识

众包(Crowdsourcing)是指将通常由个人或者组织的内部员工完成的任务以公开征招的形式外包给外部群体来执行[13].与外包类似,众包也有两大利益相关者,即任务请求者(或者任务发布者)和任务执行者(有时候也称为工作者、工人).任务请求者是提供要执行任务的个人或组织,而任务执行者负责执行分配到的任务,是外部群体中的一员.任务请求者将任务划分为许多小型或者微型任务,并将这些任务分配给任务执行者去执行.这些外包任务的执行结果会被收集并汇总,生成最终结果,从而完成整个外包任务.任务的执行结果通常是由任务请求者进行评估的,并且基于任务的执行质量,任务请求者可能会向任务执行者发放相应的奖励.当前存在着一些成熟的众包平台,知名的有Amazon Mechanical Turk、 Crowdflower、 Top coder、 Innocentive以及Wikipedia等.其中,Amazon Mechanical Turk(AMT)是最受欢迎的平台之一.在AMT中,任务将会发布在市场中,而工人则可以挑选并执行任务.任务发布者会预先设定支付给任务执行者报酬的类型和数量,比如金钱、证书或者名声.该平台的主要功能是为任务设计、任务发布、工人的招聘和管理、奖励的管理和发放等功能提供必要的工具.

由于任务发布和分配的相对开放性,以及工人群体的特征未知性和不确定性,如何确保众包任务的整体质量面临着许多挑战[14].例如,任务的执行质量取决于任务执行者的技能、意愿和积极性,还取决于请求者提供的任务描述的清晰程度和提供给工人的报酬的丰厚程度.任务的整体执行效率也和任务的分配机制相关.文献[15]确定了在此背景下质量控制需要考虑的质量维度和属性,包括数据质量(例如,数据准确性)、任务质量(例如,任务复杂性)和人员质量(例如,工人的技能).

2 众包在信息安全中的应用

一些研究者已经尝试将安全任务外包,从而带来大量用户反馈来帮助评估系统和软件的可靠性,并制定相应的安全策略.例如,文献[16]通过获取用户对移动应用程序的评论来生成一个分数用于评估其安全性,类似地,文献[17]提出依据用户在网站上的体验报告来对网页的可信性进行评级.文献[18]使用机器学习方法和众包机制来评估应用程序的行为,并确定它是否正在访问未经授权的资源.此外,众包还被用于验证试图窃取信息的垃圾邮件或钓鱼链接.

对没有经验的用户来说,如何保护他们的设备是一项困难的任务.该任务可以外包给有经验的用户来完成,由他们分享自己的建议来帮助没有经验的用户进行安全配置.例如,文献[19]利用社区来评估应用程序的各种安全配置,并确定应用程序的最佳安全配置,力图在隐私和可用性之间实现平衡.在同样的背景下,一些移动应用程序依赖众包来获取推荐配置,以保护用户隐私不被泄露[20].个人、平台和社区之间可以通过共享最佳安全建议、配置和实践来加强整个计算机生态系统的安全性.

另一项常见的可以结合众包的安全任务,是发现和共享威胁信息,例如攻击者的特征及其攻击模式、恶意软件特征、攻击场景类型或者系统漏洞特征等.这些威胁信息有助于个人、企业和组织及时发现和理解各类攻击和漏洞,特别是刚出现的威胁,从而执行相应的应对措施来防止它们的发生,或者尽可能降低影响范围.例如,文献[21]就提出了一个威胁信息共享平台.文献[22]则探讨了共享威胁信息时在数据质量方面的问题和挑战,其研究发现,来自不同来源的共享信息的复杂性是影响质量的主要因素.依靠人群来提供发现和共享威胁信息可以最小化一些攻击场景被忽略的可能性[23].

3 在信息安全领域应用众包的关键因素

在信息安全领域引入众包机制通常需要明确以下关键概念.

(1)任务请求者:任务请求者可以是个人、公共机构、企业或者组织等.他们有安全相关的目标和需求,也负责发起任务众包请求.任务请求者可以自己管理和维护众包任务,也可以将其外包给专业的众包管理平台.任务请求者负责任务结果的验证,并给出最终的结果(接受或者拒绝).任务请求者还负责确定奖励策略并提供报酬.此外,他们还会根据接受的结果,对安全问题采取相应的补救措施.

在风机正常运行时,井下风流通过东翼风井到达地面风硐,通过岔口进入一号风机(在用),然后通过扩散器和扩散塔排到大气中。在风机进行性能测试时,立闸板门将二号风机(测试)与风井和一号风机隔离开来,保证矿井正常通风。风流由水平天窗进入被测风机风硐,然后通过一级电动机及二级电动机后由扩散塔排到大气中。

(2)安全目标和安全需求:安全目标指的是众包任务是为谁而设立的,可以是任何类型的信息系统,例如桌面应用系统、移动应用系统、网络应用系统、云计算架构、数据库或者物联网系统等.安全需求指的是众包任务是为了解决什么问题,通常是为了对信息系统进行安全性分析从而能够采取相应的安全性增强措施,包括漏洞发现、攻击防御、异常检测以及数字取证等.

(3)任务:任务指的是要外包给工人来执行的工作内容.任务的形式可以是多样的,会根据具体的安全目标和安全需求而变化.任务的要求也是多样的,例如,可以限定任务完成时间或者对任务执行者的选择提出要求.在复杂场景中的信息安全任务是复合的,会涉及到不同的元素,如系统、设备、技术和数据类型等,也就需要针对不同的元素使用对应的分析技术.复合任务可以拆分为若干独立的单元任务,计算量大的任务也可以拆分为很多计算量小的任务.以合理的标准将复杂的任务进行拆分将会极大地减小任务的整体难度,简化任务流程并提高处理效率,也便于任务执行者执行任务.这些拆分后的任务再通过一定的机制分配给他人来执行,而这些任务执行者拥有可以执行该任务的能力和意愿.

(4)任务描述:任务描述一般是由任务请求者提供的,描述了任务的内容、目标和需求,也可能会包含了一些可选的上下文信息,用来帮助任务执行者更好地理解和执行任务.任务执行者也会根据任务的描述来判断任务是否适合自己.因此,精简但清晰的任务描述是必不可少的.

(5)安全专家库:安全专家是能够承担并执行信息安全领域众包任务的备选人群,等同于众包机制中的候选工人群体.安全专家通常有不同的背景,可能包括研究人员、学生、爱好者和企业员工等.信息安全方面的任务具有较高的知识和能力门槛,对任务的完成质量和结果正确性提出了很高的要求,这就需要任务执行者拥有特定的领域知识储备和操作经验,导致了没有一定专业背景或者未受过专业培训的非信息安全从业人员很难快速参与进来.此外,即使是专业的安全从业人员,在面对复杂的或者未知的场景时,也会面临诸多挑战.由于安全从业人员不可能学会所有的安全知识,知晓所有的攻击和场景,熟悉所有的软硬件,超过其能力范畴的任务需要借助外部的资源,即其他的安全专家和知识.安全专家库的存在就是为了实现这种外部资源的借助机制.通过对安全专家进行筛选,提供一份任务执行者的备选名单,有助于将任务分配给合适的执行者.

(6)众包管理平台:众包管理平台可以帮助减轻任务请求者的任务管理负担.众包管理平台负责维持整个众包系统的正常运行,同时也负责管理和发布众包任务.此外,平台往往还会负责维护一个安全专家人员池,负责任务执行者的筛选、维护名声系统和支付奖励等.任务结果的收集也是由众包管理平台来负责.众包管理平台的管理通常包含任务拆分机制、任务分配和调度机制、任务追踪机制,以及任务验证机制等.

(7)任务结果报告:执行任务的安全专家在任务完成后必须向众包管理平台提交报告.该报告包含了详细的任务结果,例如安全隐患和漏洞的细节、严重性和风险,攻击者利用漏洞的步骤,攻击的存在形式以及它可能对系统产生的影响,数字取证的结论等.安全任务报告的质量将会决定整个任务的完成质量和结论是否可靠.翔实的安全任务报告还能帮助任务发布者及时发现安全问题,并制定相应的策略来避免潜在的危害.

(8)激励:奖励的存在可以极大地激发安全专家的参与热情以及提高其积极性.奖励可以是金钱、名声和证书等多种形式.奖励的程度通常取决于任务的难度和完成质量.好的激励机制要保证公平性和平衡性,能够起到提高任务完成质量的正向作用,同时要避免任务执行者恶意赚取奖励的行为.

(9)安全性:作为一项服务于信息安全的方案,整个众包方案自身的安全性也要得到保证,要能够稳定地运行,能够防范常见的攻击,如DDoS攻击和系统入侵等.此外,数据是整个方案能够运行的核心,包含了任务信息和执行结果的数据会在任务发布者和执行者之间进行传输,更需要关注数据方面的安全.为了保证数据正确性,避免数据传输过程中的丢失、监听和篡改,在任务发布者和任务执行者之间需要建立安全可信的数据传输信道.此外,传输给执行者的数据本身可能会携带敏感信息,例如设备的运行状态、系统的架构和用户的操作记录等,这些信息也有可能会泄露用户隐私或者被不怀好意的攻击者利用,作为攻击的入口.任务信息也可能会包含敏感信息,如揭示任务发布者的身份或者整体任务的内容.任务发布者或者任务执行者都希望自己的身份信息或相关隐私信息不会因为任务的原因被发现.所以,对于数据、任务信息和参与者信息等都需要采取隐私保护措施.同时,还需要确保任务执行者彼此间是透明和未知的,以避免共谋攻击.任务执行者只能知晓自己的任务,访问到对应的数据,而不能得到其他任务执行者的信息.另外,一些数据或者信息可能会牵扯到多个利益相关者,建立完备的访问控制策略来对任务发布者和任务执行者的各项权限进行限制也是必不可少的.

4 众包信息安全的模式和架构

根据任务发布者和任务执行者之间的关系,信息安全领域的众包模型可以有如下三种模式.

(1)直接模式:在直接模型中,任务发布者和执行者直接进行通讯,不需要通过额外的第三方服务.发布任务的个人、组织或者企业等完全负责众包系统的管理.任务的生成和分配、结果的收集、奖励的发放等都需要任务发布者来负责,安全专家也需要自己去选择和指定.个人、组织或者企业可以公开征求安全专家的帮助,也可以与特定的专家签署劳务关系或者咨询关系.

(2)平台管理模式:在平台管理模式中,存在一个第三方管理平台作为任务发布者和执行者之间的中间商.个人、组织或者企业等通过管理平台发布任务,平台负责任务的管理、调度和收集以及执行者的指派.安全专家库也是由平台来负责维护,且由平台负责奖励的发放.总的来说,个人、组织或者企业等只需要向平台提出众包请求并发布其任务,剩下的事情都由平台来负责.值得一提的是,不同的平台会提供不同的项目管理服务,一些平台甚至还提供其他定制化服务,比如验证漏洞或为发现的漏洞提供解决方案.使用此模型的平台的一个例子是Bugcrowd,创建于2012年,目前维持着一个大约有25 000名安全专家的社区.它根据业绩、解决问题的数量等指标来给安全专家排序,还能以此判断提交报告的质量和发现漏洞的严重性.管理平台的存在可以减轻任务发布者的负担,提供了一种统一化的解决方案.

(3)竞赛模式:在竞赛模式中,任务请求者将要外包的任务以竞赛的形式发布,并对任务的完成质量提出要求(例如限定完成的时间).竞赛的组织者将会负责评估参赛结果的正确性、有效性和速度等决定比赛的获胜者,并提供奖励.这种竞赛的形式既可以激发参与者的热情,也可以提高任务完成的质量.

众包平台的架构设计通常有两种形式:中心化架构和分布式的架构.

(1)中心化架构:在传统的众包系统架构中,存在一个中心节点负责众包机制的运行,例如一个第三方的服务器.但是这种中心化的架构会不可避免地带来一些问题和挑战.该中心节点容易成为被攻击的目标,如DDoS和远程劫持等,也容易成为单一故障点.此外,信息的存储也会成为问题,用户信息和任务数据等容易因为单点故障而泄露或者丢失.中心化架构的优势是容易实现且便于维护和管理,但是需要做好安全性和可靠性的保障.

(2)分布式架构:考虑到中心化架构存在的潜在问题,很多研究者寻求使用分布式解决方案,并确保能够保证可靠性、公平性和可信性.区块链技术是很多分布式方案选择的技术,引入区块链技术甚至可以允许用户不使用真实身份进行注册,并且可以使用分布式的加密存储来保存各种数据,从而保证了隐私[24-25].因为不依赖第三方,也可以减少大量的服务成本和维护费用.文献[26]将智能合约引入众包架构,合约将会贯穿众包机制的全过程,包括任务发布、任务接收及奖励分配等.为了描述复杂的众包逻辑,提高众包的灵活性,将会设计图灵完备的编程语言.三种标准的智能合约被引入:用户注册合约、任务发布合约、发布者-执行者关系合约,通过这三种契约,可以不依赖任何机构或中心化服务来发布和接收任务.此外,与传统系统相比,其最有用的特点在于可以借助智能合约而不是主观的第三方来评估要完成的任务.任务的发布者和执行者通过特定的客户端参与进来,整个过程如下:首先,任务发布者和执行者使用客户端注册.用户的信息被写入到一个事务中,然后发送给区块链,同时为每个注册用户分配一个公钥对.任何更新可以看作是需要确认的交易,也就是说数据和状态被永久地记录在区块链上.接着,由请求者发布任务.请求者可以提前支付给任务执行者“报酬”,并将“报酬”存入区块链.同时,任务分配程序会为执行者设置一个规则,以确保合格的执行者最终能够接收到任务.此外,还需要一个评估函数来评估解决方案.注册的任务执行者通过客户端进行交互来接收任务,而信誉值或者名声等机制将被引入以确保任务的完成质量.执行者需要在最后期限前完成任务并生成解决方案.执行者使用其公钥对待提交的解决方案进行加密后,将解决方案提交到分布式存储中,与此同时,相应的Hash值和指针也会被存储在区块链上.请求者可以通过指针找到解决方案,并用他的私钥解密它们.最后一步涉及到方案收集、奖励分配和任务评估.执行者或发布者可以通过向区块链发布一个事务来主动完成此步骤.奖励是根据考核结果自动分配给执行者的,考核结果决定了执行者能获得多少奖励,并与执行者的努力程度有关.努力和良好的表现会得到更多的回报,提高声誉.和中心化架构相比,分布式架构的实现更具有挑战性,也提出了更高的要求.分布式架构需要处理好多节点之间的通信和节点可信性等问题.

总体来说,中心化架构和分布式架构各有其优势和适用范围.信息安全领域的众包系统应该根据需求、场景和预算等灵活选择架构形式,两种架构形式甚至可以互为补充.

5 未来的研究和发展方向

根据已有的研究现状和上述的分析,本文在此列出了一些有待解决的问题和挑战,并提出了相应的研究方向.

(1)安全专家库的建立:安全专家库的存在提供了任务执行者的备选清单.这些任务执行者拥有不同的知识背景,掌握不同的安全技能,可以承担不同的安全任务.建立和维护该专家库,首先需要能够建立身份系统,标注基本信息,提供身份验证等功能.其次,要能够确定每个专家的知识、技能和偏好,这样便于专家搜索以及匹配最合适的任务执行者.最后,为了保证专家的参与热情和积极性,相关的激励机制也是必不可少的.此外,还要考虑专家的添加、更新和删除等基本数据库维护功能,以及专家搜寻和匹配等基本数据库查询功能.此外,如何建立安全专家的档案也是值得研究的方向.安全专家的能力、积极性、完成任务的质量等信息可以帮助判断该安全专家是否适合执行任务,也可以帮助生成任务分配的策略和算法.

(2)合理的架构和运行机制:整个系统的高效运转离不开合理的架构和运行机制.架构的选择需要根据具体的场景和需求.未来的研究还需要进一步解决中心化架构和分布式架构中存在的问题,保障架构的稳定性.同时任务的分配、调度和整合等机制也需要更加高效的算法和实现.

(3)任务的划分和封装:由于安全任务的特殊性、复杂性和高要求,其划分和封装不能照搬已有的众包机制中的方法.任务目标需要明确定义,包括其总体目标和子目标以及任务划分粒度.任务也需要有特定的封装格式,便于任务的管理和调度,也便于任务执行者的理解.

(4)任务描述格式和质量提升:任务的描述必须清晰明白,从而有利于安全专家的配对和任务的顺利执行.如何能够根据不同的任务类型和场景,高效生成描述是值得研究的方向.此外,还可以在已知任务描述的情况下,使用分类器来检测和跟踪,哪些任务描述能吸引合适的安全专家,哪些不适合,可以结合文本分析和机器学习算法等技术.

(5)任务结果和报告的评估机制:通常任务结果的质量是指提供的结果满足任务要求的程度.它可以是主观的也可以是客观的.如何定义满足程度,如何合理评估任务结果有待解决,也决定了任务最终结论的质量.此外,任务的结果报告也十分关键.由于每个任务执行者的背景和动机都是不同且未知的,他们提交报告的质量也会不同.此外,表达形式不好的报告将花费任务发布者更多的时间和精力来识别和理解,错误的报告也会影响最终的结论.所以,一个有效的任务结果和报告评估机制是必不可少的.这种机制应该尽量是自动化的,例如可以使用自然语言处理的技术来辅助检测,并可以提供警告或在任务执行者提交报告前提出改善报告质量的建议.

(6)更公平的激励机制:激励机制的存在是为了鼓励安全专家的参与,确保任务的质量.激励机制需要保证公平性,要能够按照真实的贡献程度向任务执行者发放对等的奖励.同时该机制的存在要能够给不积极的或者恶意的任务执行者一定的惩罚或者损失.一些执行者可能会想尽办法骗取报酬.激励机制要能够发现并避免这种行为.

(7)安全性和隐私保护:当将任务分配给其他人来做的时候,不可避免地要建立信道传输任务信息和待处理的数据.考虑到安全性和隐私性,这个信道应该是可信的一对一加密信道.任务执行者执行任务不一定必须是实时的,也可以是非实时的,所以该通讯信道应该是能够支持异步通信的.数据的存储也是需要考虑的问题,要保证收集到的数据不会丢失、不会被篡改,能够很方便的存取,要保证任务的中间结果被正确的保存.已有的在加密通信信道和安全增强数据库方面的研究和技术可以帮助实现这一点.除了数据传输和存储的安全,数据隐私保护也是要考虑的.由于数据本身会包含一些敏感信息,数据需要进行脱敏化和匿名化的处理,或者进行语义级别的提升,尽可能隐藏敏感信息,但是又不丢失包含的语义,不影响正常的功能.在任务分配和执行的过程中,需要保护任务发布者和执行者的隐私性,要避免任务发布信息、结果信息和任务分配机制等造成任务发布者和执行者以及任务自身无关的信息被泄露.

(8)知识产权保护:一些任务的内容可能会涉及到代码或者文件等知识产权的内容.例如代码分析任务可以泄露源代码.为了保护知识产权,需要研究任务分解技术,尽可能避免提供完整代码或者文件,也就是说,只提供最少但必须的数据,可以为不同类型的数据提供不同的任务封装机制,也可以制定相关条款来约束任务执行者.

(9)政策和法律:任务的外包是否符合对应国家的政策和法律是需要考虑的问题.任务在外包前需要确定其能否被外包,任务的内容是否有限制,执行任务的安全专家群体有没有限制.此外,由于安全专家可能处于世界各地,他们执行外包任务时需要考虑当地的政策和法规.

6 结 语

本文总结了众包机制在信息安全领域的应用现状,分析了在信息安全领域结合众包机制的关键因素、模式和架构,并提出了未来的发展方向.众包在信息安全领域的应用已经有了一些初步的研究进展,也帮助解决了一些复杂的问题,这表明众包在信息安全领域有着广泛的应用前景.未来随着更多有价值研究的出现,众包也将会和信息安全技术结合得更加紧密,从而促进信息安全领域的快速发展.

猜你喜欢
执行者发布者架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
新加坡新法规引争议
基于云服务的图书馆IT架构
“最关键”的施工力量——决策者、执行者与实施者
软件众包任务发布优先级计算方法
基于博弈论的社交网络转发控制机制
WebGIS架构下的地理信息系统构建研究
浅谈副校长在学校管理中的定位
广告发布者的著作权审查义务问题研究