精华内容
下载资源
问答
  • 论IT运维自动重要性

    千次阅读 2019-03-08 11:26:02
    自动工作平台还可帮助IT运维人员完成日常的重复工作(如备份、杀毒等),提高IT运维效率。同时,IT运维的自动还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低...

    概念
    简单的说,IT运维自动化是指基于流程化的框架,将事件与IT流程相关联,一旦被监控系统发生性能超标或宕机,会触发相关事件以及事先定义好的流程,可自动启动故障响应和恢复机制。自动化工作平台还可帮助IT运维人员完成日常的重复性工作(如备份、杀毒等),提高IT运维效率。同时,IT运维的自动化还要求能够预测故障、在故障发生前能够报警,让IT运维人员把故障消除在发生前,将所产生损失减到最低。

    背景
    随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分。面对越来越复杂的业务,面对越来越多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来保障IT服务能灵活便捷、安全稳定地持续保障,这种模式中的保障因素就是IT运维(其他因素是更加优越的IT架构等)。从初期的几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术、业务、管理等方面的要求,那么标准化、自动化、架构优化、过程优化、等降低IT服务成本的因素越来越被人们所重视。其中,自动化最开始作为代替人工操作为出发点的诉求被广泛研究和应用。
    IT运维从诞生发展至今,自动化作为其重要属性之一已经不仅仅只是代替人工操作,更重要的是深层探知和全局分析,关注的是在当前条件下如何实现性能与服务最优化,同时保障投资收益最大化。自动化对IT运维的影响,已经不仅仅是人与设备之间的关系,已经发展到了面向客户服务驱动IT运维决策的层面,IT运维团队的构成,也从各级技术人员占大多数发展到业务人员甚至用户占大多数的局面。
    因此,IT运维自动化是一组将静态的设备结构转化为根据IT服务需求动态弹性响应的策略,目的就是实现IT运维的质量,降低成本。可以说自动化一定是IT运维最高层面的重要属性之一,但不是全部。

    存在问题
    目前许多企业的IT运维已经实现从人工运维到计算机管理,但在同客户的交流中发现其中很多企业的IT运维管理还只是处在“半自动化”的运维状态。因为这种IT运维仍然是等到IT故障出现后再由运维人员采取相应的补救措施。这些传统式被动、孤立、半自动式的IT运维管理模式经常让IT部门疲惫不堪,主要表现在以下三个方面:
    (1)IT 运维人员被动、效率低
    在IT运维过程中,只有当事件已经发生并已造成业务影响时才能发现和着手处理,这种被动“救火”不但使IT运维人员终日忙碌,也使IT运维本身质量很难提高,导致IT部门和业务部门对IT运维的服务满意度都不高。目前绝大多数的企业IT运维人员日常大部分时间和精力是处理一些简单重复的问题,而且由于故障预警机制不完善,往往是故障发生后或报警后才会进行处理,使到IT运维人员的工作经常是处于被动“救火”的状态,不但事倍功半而且常常会出现恶性连锁反应。

    (2)缺乏一套高效的IT运维机制
    目前许多企业在IT运维管理过程中缺少自动化的运维管理模式,也没有明确的角色定义和责任划分,使到问题出现后很难快速、准确地找到根本原因,无法及时地找到相应的人员进行修复和处理,或者是在问题找到后缺乏流程化的故障处理机制,而在处理问题时不但欠缺规范化的解决方案,也缺乏全面的跟踪记录。

    (3)缺乏高效的IT运维技术工具
    随着信息化建设的深入,企业IT系统日趋复杂,林林总总的网络设备、服务器、储存设备、中间件、业务系统等让IT运维人员难以从容应对,即使加班加点地维护、部署、管理也经常会因设备出现故障而导致业务的中断,严重影响企业的正常运转。出现这些问题部分原因是企业缺乏事件监控和诊断工具等IT运维技术工具,因为在没有高效的技术工具的支持下故障事件很难得到主动、快速处理。

    迫在眉睫
    尽管IT运维管理的技术在不断进步,但实际上很多IT运维人员并没有真正解脱出来,原因在于目前的技术虽然能够获取IT设备、服务器、网络流量,甚至数据库的警告信息,但成千上万条警告信息堆积在一起更本没法判断问题的根源在哪里。另外,目前许多企业的更新管理绝大多数工作都是手工操作的。即使一个简单的系统变更或更新往往都需要运维人员逐一登录每台设备进行手工变更,当设备数量达至成百上千时,其工作量之大可想而知。而这样的变更和检查操作在IT运维中往往每天都在进行,占用了大量的运维资源。因此,实现运维管理工作的自动化对企业来说已迫在眉睫。
    现在随着IT运维管理工作的复杂度和难度的大大增加,仅靠过去几个“运维英雄”或“技术大拿”来包打天下已经行不通了,企业开始需要运用专业化、标准化和流程化的手段来实现运维工作的自动化管理。因为通过自动化监控系统能及时发现故障隐患,主动的告诉运维人员需要关注的资源,以达到防患于未然。例如,全天候自动检测与及时报警能实现IT运维的“全天候无人值守”,大大降低IT运维人员的工作负担。而且,通过自动化诊断能最大限度地减少维修时间,提高服务质量。因此, 对于越来越复杂的IT运维来说,将纯粹的人工操作变为一定程度的自动化管理是一个重要发展趋势。原因有三:

    • 首先,IT运维流程自动化能够提高流程的可控性,可以基于业务需求来制定个性化的流程,使企业领导有机会看见他们的业务流程,对企业流程有一个深刻的分析和理解,进而改造和优化流程。
    • 其次,IT运维流程的自动化能提高透明度。因为随着业务需求的变化可能会有多个版本出现,手工流程的不透明将会给流程定制和优化带来相当大的困难,而自动化流程可以使用户能够一目了然的看到整个流程的各个节点运转情况,自动化工具潜移默化地提升业务保障能力。
    • 再者,运维系统实行了自动化监控以后,通过工具自动监控对人的工作是一种减负,也是一种降低成本的表现。

    工具
    对于企业来说,要特别关注两类自动化工具:一是IT运维监控和诊断优化工具;二是运维流程自动化工具。这两类工具主要应用于:

    • 监控自动化,是指对重要的IT设备实施主动式监控,如路由器、交换机、防火墙,服务器,存储和备份设备等。
    • 配置变更检测自动化,是指IT设备配置参数一旦发生变化,将触发变更流程转给相关技术人员进行确认,通过自动检测协助IT运维人员发现和维护配置,避免配置错误引发的故障。
    • 维护事件提醒自动化,是指通过对IT设备和应用活动的实时监控,当发生异常事件时系统自动启动报警和响应机制,第一时间通知相关责任人。
    • 系统健康检测自动化,是指定期自动地对IT设备硬件和应用系统进行健康巡检。配合IT运维团队实施对系统的健康检查和监控。
    • 维护报告生成自动化,是指定期自动的对系统做日志的收集分析,记录系统运行状况,并通过阶段性的监控、分析和总结,定时提供IT运维的可用性、性能、系统资源利用状况分析报告。

    建立管理步骤
    (1)建立自动化运维管理平台
    IT运维自动化管理建设的第一步是要先建立IT运维的自动化监控和管理平台。通过监控工具实现对用户操作规范的约束和对IT资源进行实时监控,包括服务器、数据库、中间件、存储备份、网络、安全、机房、业务应用和客户端等内容,通过自动监控管理平台实现故障或问题综合处理和集中管理。例如,在自定义周期内进行自动触发完成对IT运维的例行巡检,形成检查报告。包括自动运行维护,以完成对系统补丁的同步分发与升级、数据备份、病毒查杀等工作。

    (2)建立故障事件自动触发流程,提高故障处理效率
    所有IT设备在遇到问题时要会自动报警,无论是系统自动报警还是使用人员报的故障,应以红色标识显示在运维屏幕上。然后IT运维人员只需要按照相关知识库的数据,一步一步操作就可以。因此,企业需要事先建立自动工单式流程管理,当设备或软件发生异常或超出预警指标时会触发相关的事件,同时触发相关工单处理流程给相关IT运维人员。IT运维人员必须在指定时间内完成流程所规定的环节与工作,以提高IT运维响应问题的效率。

    (3)建立规范的事件跟踪流程,强化运维执行力度
    IT运维自动化管理建设时,首先需要建立故障和事件处理跟踪流程,利用表格工具等记录故障及其处理情况,以建立运维日志,并定期回顾从中辨识和发现问题的线索和根源。事实上许多实践也证明,建立每种事件的规范化处理和跟踪指南,可以减少IT运维操作的随意性和强化运维的执行力度,在很大程度上可降低故障发生的概率。同时,用户还应可以通过自助服务台、电话服务台等随时追踪该故障请求的处理状态。

    (4)设立IT运维关键流程,引入优先处理原则
    设立IT运维关键流程,引入优先处理原则是指要求CIO定义出IT运维的每个关键流程,不仅仅是定义流程是什么,还包括要指出每个关键流程对企业有什么影响和意义。同时,在设置自动化流程时还需要引入优先处理原则,例行的事按常规处理,特别事件要按优先级次序处理,也就是把事件细分为例行事件和例外关键事件。

        总之,实现IT运维的自动化管理是指通过将IT运维中日常的、大量的重复性工作自动化,把过去的手工执行转为自动化操作。自动化是IT运维工作的升华,IT运维自动化不单纯是一个维护过程,更是一个管理的提升过程,是IT运维的最高层次,也是未来的发展趋势。

    转载于:https://blog.51cto.com/jettcai/2360004

    展开全文
  • 被动攻击和主动攻击:根据攻击者对通信行为的干涉程度进行划分。攻击者可以被动监听或主动操纵目标流量。 单端攻击和端到端攻击:根据威胁模型的不同进行划分,攻击者通过监控或控制发送方或...

    本文仅为作者学习笔记,内容源自论文“匿名通信与暗网研究综述——罗军舟等”本身以及相关网络搜索

    匿名通信攻击技术

    匿名通信攻击可以分为

    • 针对网络流量的攻击:通常基于流量分析技术,即通过嗅探并分析网络通信流量的各自模式,以获取现有价值;
    • 针对节点的攻击:主要是匿名通信节点系统和协议存在漏洞的利用。

    网络流量攻击

    • 被动攻击和主动攻击:根据攻击者对通信行为的干涉程度进行划分。攻击者可以被动监听或主动操纵目标流量。
    • 单端攻击和端到端攻击:根据威胁模型的不同进行划分,攻击者通过监控或控制发送方或/和接收方侧的相关设备。

    被动攻击是指攻击者通过被动网络窃听、分析、抽取流量特征,在这个过程中并不会影响数据的正常传输,其优势在于隐蔽性强。主动攻击则是攻击则对数据通信过程本身施加干扰,例如对数据包进行修改、重放、丢弃或延迟等操作,从而达到更高效地进行流量特征分析和抽取的目的。

    单端攻击是指仅占据发送端或接收端实施的攻击技术,执行单端攻击的攻击者需要监控通过发送端或接收端设备的流量,从而破坏用户的通信保密性和匿名性。单端被动攻击提取流量模式作为指纹,并基于此推断应用层的流量内容,例如用户访问的网站。单端主动攻击则可以主动将内容注入到流量中,或控制客户端的入口节点以迫使客户端直接向攻击者发送信好并暴露其真实IP地址。

    端到端攻击是指同时占据同进入口和出口实施的攻击,可以采用被动或主动攻击方式来关联客户端和服务器之间的通信关系。攻击者通过在发送器和接收器两侧控制或监听设备(例如两端路由器,或Tor入口和出口节点),然后基于流量特征,比对嫌疑发送端发出的流量和嫌疑接收端收到的流量,以确认通信关系。

    被动端到端流量分析

    通过被动记录流量,并用统计方法来评估发送者的出站流量和接收者的入站流量之间的相似性。例如,攻击者可以简单地在发送其的输出链路上对几个时间间隔中输出的数据包数目进行计算,然后再接收器的输入链路上对时间间隔中到达的数据包数目进行计算,最后用距离函数来计算这2个链路在相关流量特征上的距离。

    Selecting the Target
    Recording the Traffic
    Extracting the patterns
    Calculating the Distance
    Correlating the Traffic

    由于端到端被动攻击仅需要监听流量,因此它的主要有点是具有较高的隐蔽性。然而,这种方案的准确利率低而误报率高。因此攻击者需要足够的时间来观察流量并发现发送方和接收方之间的流量模式相似性,以降低误报率。

    根据攻击者能力的不同,可分为全局监听:例如监听整个自治域系统(autonomous systems,AS)或互联网交换中心(internet exchange,IX)内的信道;局部监听:例如向匿名通信网络注入节点,通过一定策略增加自身被选中的概率,从而在某个节点上实施攻击。

    全局监听攻击,攻击者可以对独立的AS或IX或更大范围的匿名链路进行监控分析,从而实现通信关系确认。由于Tor现有的路由选择策略会尽可能使用一条链路穿越不同的国家,意味着即使是AS/IX级别的攻击者也不一定能同时监控出口和入口节点。

    全局监听攻击的相关研究

    1. Edman等人证实了单个自治系统能够通过流量观察和关联来危险Tor暗网的安全性,评估了一些简单的AS感知路径选择算法的有效性,提出了一种路径感知路由选择算法,改善路由选择中位置的多样性。
    2. Akhoondi等人设计一种高效算法,用于判断Tor链路是否能被AS进行流量关联,并设计了新的Tor客户端LASTor——可避免建立能够被被AS流量关联的Tor链路。
    3. Murdoch等人验证了IX具有比AS更大的监控范围;验证了IX界别攻击,通过对真实的流量进行采样、提取报文发送率、报文长度等统计特征,实现了实体通信关系的确认。
    4. Johnson等人在仿真环境下实验,在同时控制具有高带宽的Tor节点以及IX的条件下,可以对80%的随机链路实现通信关系的确认。
    5. Nasr等人设计了一个流量关联系统DeepCorr,利用深度学习架构学习适用于Tor复杂网络的流量关联函数,可将Tor连接关联起来,准确度明显强于现有算法。

    局部监听攻击,是指通过向网络中提供满足带宽、在线时间要求的恶意节点,使其成为匿名系统的一部分来实施攻击。而随着匿名网络的规模扩大,受限于攻击成本,攻击者无法提供足够的高带宽节点来获得更多的链路控制权,因此需要提高注入节点的被选中概率。

    局部监听攻击的相关研究

    1. Bauer等人提出策略:通过上传虚假高带宽信息,以提高恶意节点被选中概率。
    2. Pappas等人利用恶意用户节点构建环形链路,恶意消耗链路中合法中继节点的资源,最终使其资源耗尽并拒绝服务,从而间接提高恶意节点被选中的概率。

    主动端到端流量分析

    基本思想是攻击者可以通过在发送端或接收端的目标流量中嵌入特殊信号,然后检测接收端或发送端侧的流量,以便识别信号并确认发送端和接受端之间的通信关系。这种类型的攻击也被称为基于流水印的攻击
    在这里插入图片描述
    对于流水印嵌入,攻击者可以利用不同网络层的多种特征来使用基于流水印的攻击方法。

    网络层,攻击者可以利用如流量速率、包延迟间隔和包大小等特征来将信好嵌入到目标流量中(①-⑥)。此外,可利用随机化来抵御各种检测攻击,如多流攻击。攻击者还可以改变包大小来将信号嵌入到目标流中(⑦)。

    1. Yu等人提出一种水印嵌入方法,将不可见的直序扩频信号(direct sequence spread spectrum,DSSS)嵌入在流量中,以调制其流速率模式。最后,攻击者可以识别信号并破坏发送方和接收方之间的匿名性。
    2. 为了减少时延抖动,Wang等人提出一种攻击技术,可追踪互联网上的P2P匿名VoIP电话。在选定流的n个独立同分布的数据包中随机选择2r个数据包,分为r对,通过调整r对数据包的IPD(inter-packet delay)差值的平均值来嵌入追踪信息。该技术可追踪任何长度大于90s的P2P匿名VoIP电话。
    3. Wang等人研究了基于质心的包延迟间隔水印技术,通过调整时间间隔质心,可以将一系列二进制信号位嵌入流量中。
    4. Houmansadr等人利用非盲水印的思想调制报文间隔,并且使用扩频技术降低了先前技术中所用的时延,用少量的数据包就能保证流水印的鲁棒性和隐蔽性。
    5. 为了抵御多流攻击,Houmansadr等人还设计了SWIRL流水印机制,该方案是第一个可用于大规模流量分析的盲水印,可抵御多流攻击和Tor网络拥塞,并以不同模式标记每个流。SWIRL对于包丢失和网络抖动具有鲁棒性,且引入的延迟较小,因此隐蔽性较高。
    6. Rezaei等人提出了一种盲流水印识别系统TagIt,将水印信号调制成网络流的定时模式,即将数据包稍微延迟到只有水印识别方直到的隐蔽时间间隔,从而实现对第三方不可见。
    7. Ling等人提出了一种攻击方式,可以控制Web服务器并操纵响应HTTP数据包的大小,用特定包长度表示单个十六进制位,通过改变几个包长度,可以将消息编码到流量中,尽管包长度在单跳代理处被部分填充,但是攻击者仍然可以可以推断包长度,以便在接收端侧回复原始信号来确认发送端接收端之间的通信关系。另外,为了保证这种攻击的隐蔽性,攻击者需要保持原始包大小的分布和自相似性。为此,攻击者需要选择适当的包改变其大小。

    协议层,水印攻击可以采用匿名通信系统的不同协议特征。例如

    1. Ling等人在可控OR节点上控制Tor信元发送规律,在出口节点处连发3个Tor信元代表信号1,1个Tor信元代表信号0,并通过分析信元在网络逐跳传输中可能出现的变化,设计信号恢复算法;在入口节点处对信号进行识别,可以在较短的时间内实现对Tor匿名流量通信关系的快速确认。
    2. Ling等人深入探讨了Tor的通信协议,发现Tor使用高级加密标准(AES-CTR)的计数器模式来解密和解密Tor信元。因此,每个Tor节点,包括链路中的Tor客户端,维持本地计数器以使计数器值彼此同步,以便正确地加密或解密Tor信元。该攻击利用多跳路径中的计数器同步机制特征,并且干扰沿着该路径的某节点处的计数器值,会导致Tor信元的加密/解密失败。通过这种方式,攻击者可快速确认链路的源地址和目的地址之间的通信关系。

    应用层,攻击者可以在服务器端将特殊内容注入到目标网络响应流量中,以强制客户端生成特殊流量模式作为信号。然后,攻击者可以在客户端观察到该信号并确认发送方和接收方之间的通信关系。

    1. Ramsbrock等人在应用层改变数据包长度,通过在数据包填充字符来嵌入信号。
    2. Wang等人提出一种攻击方案,一旦攻击者发现通过其出口节点的目标响应流量,则可以注入空图像的恶意网络连接,使得客户都侧浏览器下载这些连接产生特定的流量模式。若攻击者在入口节点处检测到期望的流量模式,便可确认发送者和接受者之间的通信关系。
    3. Chakravarty等人在Web服务器端加入代码让用户下载一个较大且不易被察觉的文件,然后根据统计相关性在收集到的众多入口NetFlow流量记录中找到服务此流量特征的入口节点,从而确认通信关系。此类攻击还可在用户的返回流量中注入JavaScript代码,以触发用户端浏览器产生特定的信号量。

    被动单端流量分析

    也成为网站指纹(website fingerprinting,WF)攻击,思路是监控目标和匿名代理之间的流量,并通过将预期流量模式与预先手机的网站指纹进行对比来识别实际访问网络。

    基本工作流程包含离线训练在线分类2个阶段:

    离线训练阶段,首先,攻击者需要选择多个感兴趣的网站,并设置被攻击者的环境以模仿其浏览活动过程。然后,攻击者将逐一浏览网站并收集相应数据。此外,需要对收集的数据进行预处理以便去除噪声。例如因为网站上的广告链接是动态的,网站指纹攻击的准确性将收到影响。因此需要通过使用使用一些预处理的策略,对此类噪声进行过滤。接下来,攻击者从预处理的流量中提取合适的特征来表示通常隐藏在流量中真实有效的模式。目前已被验证的有效特征包含:包长度分布、流量、总时间、流量方向、包长度顺序、上行/下行字节、突发流量字节长度等。最后,攻击者选择合适的分类器,利用采集到的样本数据来生成分类规则。该类攻击中常用的分类器包括多项式朴素贝叶斯分类器支持向量机决策树等。

    在线分类阶段,攻击者利用相同的预处理方法去除噪声,然后根据训练好的分类模型对流量进行特征匹配和识别。
    在这里插入图片描述
    发展过程

    1. Hintz最先提出了Web站点指纹攻击的概念,并来理论上证明了指纹攻击的可行性和有效性,但该攻击方案仅适用于HTTP1.0协议。
    2. Liberatore等人在前人工作的基础上,仅使用报文长度分布为特征,并首次将机器学习领域的朴素贝叶斯分类器应用于试问识别,大大提高了单跳匿名代理上指纹攻击的成功率。但该方案依赖于上下行流量中报文的长度,并不适用于对报文进行定长封装处理的多跳匿名通信系统(如Tor)。
    3. Lu等人指出数据包长度顺序信息,可用于增强网站指纹识别。
    4. Panchenko等人综合多种流量特征,包括特定长度报文出现次数、总传输量、上下行报文数据量及所占比例等,并使用支持向量机对指纹进行分类,将多跳匿名代理上的识别率从3%提升至55%。
    5. Cai等人使用最佳字符串编辑距离(optiomal string alignment distance,OSAD)替换支持向量机的核心函数衡量指纹相似性,在Tor上取得较好攻击效果。
    6. 在此基础上,Wang等人将特征集扩大,调整不同特征权重,使K邻近作为分类器,降低了计算成本,攻击效果进一步提升。
    7. Hayes等人提出了一种基于随机决策森林的网站指纹识别技术,该技术比以前的工作更大规模的评估了在标准网页以及Tor隐藏服务上的攻击性能。结果表明性能得到很大提升。
    8. Panchenko等人提出了一种新颖的网站指纹攻击,利用具有代表性的数据集探索了互联网规模的网站指纹实际限制,并研究了攻击者可能遵循的不同策略的实际成功概率。
    9. Nasr等人将压缩感知技术应用于网站指纹识别,实验结果表明该技术能够保留最优的可压缩网络流量特征,在获得较好识别结果同时降低了攻击开销。
    10. Rimmer等人提出了一种自动化的特征提取方法,并应用深度学习 技术自动地对Tor流量进行去匿名化,达到较高的攻击准确率。
    11. Zhuo等人提出了一种基于隐马尔科夫模型的网站建模方法,实验结果表明该方法可以在closed world 环境下高效识别网页和网站。

    然而,Web站点指纹攻击的实施依赖于一系列假设,例如用户浏览器关闭了缓存功能、用户浏览网页过程中较少出现背景流量等,消除这些假设对于方法的实用性具有重要意义。

    此外还有部分针对Freenet的攻击技术:通过观测邻居节点流量特征判断其是否为文件请求的发起者,从而实现去匿名化攻击。

    1. Levine等人利用请求发起者的HTL默认初始值为18的特征以及相应的混淆机制,通过主动部署节点记录,从其邻居节点接收到的HTL值等于18或17的请求,并利用朴素贝叶斯的方法判断邻居节点是否为请求的发起者。实验结果表明该方法的误报率仅为2%。

    主动单端流量分析

    目前的主动单端攻击主要在2处位置实施:

    1. 在出口节点与应用服务器间的为止加密链路上注入恶意代码。
    2. 控制用户的入口节点或链路并执行主动Web站点指纹攻击。

    恶意代码注入是指在服务器端主动的将恶意代码插入到用户浏览中,以便代码到达被攻击主机并执行。如果流量端到端进行加密,攻击者可以实施中间人攻击,绕过匿名通信系统的客户端并直接建立直达恶意服务器的链接。为此,攻击者需要控制代理和远程服务之间的未加密链接。例如,在Tor网络中,攻击者可以控制Tor出口节点并任意地注入或修改非加密流量的内容。在控制了非加密连接后,攻击者可以将各种专家实例注入到连接中,包括Flash,Javascript,ActiveX控件和Java。一旦这些软件在浏览器中执行,他们将绕过流量器中的本地代理,直接创建到指定远程服务器的连接,这将会暴露客户端的真实IP地址。为了防止遇到主动的单端攻击,用户应禁用插件,以避免恶意代码在浏览器中的执行,或者用户可以在客户端部署透明代理,以确保所有流量都被引导到通信系统中。

    在被动的Web指纹攻击中,攻击者仅监听链路,并不会对流量进行主动调制。由于Tor等匿名通信系统的定长分主机制和HTTP持久连接、流水线等技术的影响,Web页面不同对象的数据在返回流量中出现重叠难以区分,导致指纹攻击的正确率无法进一步提升。如果可以采取某些方法使不同对象的返回流量区分开,则可以更好的为不同Web站点建立指纹。

    1. He等人首次提出并针对Tor系统进行了主动Web站点指纹攻击,通过对Tor流量进行观察确定用户开始发送请求报文的位置,然后主动延迟用户发出的请求报文,使前一个请求对象的响应数据有足够时间完成传输,从而达到分离不同对象流量的目的。然而该攻击会造成报文重传,隐蔽性较差,并且延迟操作的颗粒度较粗,未对上行流量中存在的大量匿名协议控制报文进行识别。
    2. 针对上述问题,Yang等人进而设计了Tor流量控制报文和Web请求报文识别算法。通过主动延迟HTTP请求报文,实现不同web对象响应数据的分离,达到了较好的Web站点识别效果。
    3. 针对Freenet,Baumeister等人利用Freenet邻居节点更新机制实施了一种路由表插入(routing tabel insertion,RTI)攻击,将恶意节点插入到目标节点的路由表中,并通过模拟实验验证了该攻击的有效性。
    4. Tian等人基于RTI攻击提出了一种追踪文件下载节点的攻击,根据多个检测节点收到的请求信息,推断该请求的发起节点。

    其他攻击技术

    节点攻击时对匿名网络中目标主机发起的针对性攻击,通过利用协议设计缺陷,始目标节点系统服务失效或暴露目标主机的隐私信息。

    在Tor网络中,攻击者可以利用Tor设计方面的不足来瘫痪任何一台中继节点,发现网络中的隐藏服务以及对用户进行去匿名化攻击。当前对Tor网络影响最大的节点攻击方法是Sniper攻击,该攻击方法有Jansen等人在2014年提出。

    Sniper攻击是一种针对Tor中继节点的拒绝服务攻击,可以用来瘫痪任意Tor中继节点,攻击成本非常低,但破坏性很强。Tor设计的拥塞控制算法并不能避免网络拥塞,而实实现了端到端的流量控制。利用该缺陷,攻击者可以杀死目标节点中的Tor进程,从而使其服务失效。

    此外,I2P网络中也存在类似的协议漏洞。Egger等人提出一种I2P节点上传并查询在身节点信息的漏洞,可以对I2P用户进行去匿名化攻击。I2P节点使用DatabaseStore消息将自己的RouterInfo等直接上传到与其逻辑距离近的恶意Floodfill节点上,并通过其探测隧道发送DatabaseLookup消息查询自身的RouterInfo等信息。因此在隧道有效时间内,恶意的Floodfill节点可以关联节点信息和探测隧道信息。当节点使用探测隧道向共谋(?)的Floodfill节点查询隐藏服务LeaseSet信息时,便可以关联节点和其访问的隐藏服务,从而完成对I2P节点的去匿名化攻击。

    展开全文
  • 主动攻击和被动攻击

    万次阅读 2014-06-29 17:01:20
    主动攻击与被动攻击  主动攻击包含攻击者访问他所需信息的故意行为。比如远程登录到指定机器的端口25找出公司运行的邮件服务器的信息;伪造无效IP地址去连接服务器,使接受到错误IP地址的系统浪费时间去连接...

    主动攻击与被动攻击

      

           主动攻击包含攻击者访问他所需信息的故意行为。比如远程登录到指定机器的端口25找出公司运行的邮件服务器的信息;伪造无效IP地址去连接服务器,使接受到错误IP地址的系统浪费时间去连接哪个非法地址。攻击者是在主动地做一些不利于你或你的公司系统的事情。正因为如此,如果要寻找他们是很容易发现的。主动攻击包括拒绝服务攻击、信息篡改、资源使用、欺骗等攻击方法。 

      被动攻击主要是收集信息而不是进行访问,数据的合法用户对这种活动一点也不会觉察到。被动攻击包括嗅探、信息收集等攻击方法。 

      说明:这样分类不是说主动攻击不能收集信息或被动攻击不能被用来访问系统。多数情况下这两种类型被联合用于入侵一个站点。但是,大多数被动攻击不一定包括可被跟踪的行为,因此更难被发现。从另一个角度看,主动攻击容易被发现但多数公司都没有发现,所以发现被动攻击的机会几乎是零。 

      再往下一个层次看,当前网络攻击的方法没有规范的分类模式,方法的运用往往非常灵活。从攻击的目的来看,可以有拒绝服务攻击(Dos)、获取系统权限的攻击、获取敏感信息的攻击;从攻击的切入点来看,有缓冲区溢出攻击、系统设置漏洞的攻击等;从攻击的纵向实施过程来看,又有获取初级权限攻击、提升最高权限的攻击、后门攻击、跳板攻击等;从攻击的类型来看,包括对各种操作系统的攻击、对网络设备的攻击、对特定应用系统的攻击等。所以说,很难以一个统一的模式对各种攻击手段进行分类。 

      实际上黑客实施一次入侵行为,为达到他的攻击目的会结合采用多种攻击手段,在不同的入侵阶段使用不同的方法。因此在这篇攻击方法讨论中我们按照攻击的步骤,逐一讨论在每一步骤中可采用的攻击方法及可利用的攻击工具。

    网络安全知识——黑客攻击步骤与方法

         黑客攻击的基本步骤: 

      搜集信息 

      实施入侵 

      上传程序、下载数据 

      利用一些方法来保持访问,如后门、特洛伊木马 

      隐藏踪迹 

      【 信息搜集 】 

      在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型、操作系统等等。踩点和扫描的目的都是进行信息的搜集。 

      攻击者搜集目标信息一般采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息。 

      找到初始信息 

      找到网络的地址范围 

      找到活动的机器 

      找到开放端口和入口点 

      弄清操作系统 

      弄清每个端口运行的是哪种服务 

      画出网络图 

      1> 找到初始信息 

      攻击者危害一台机器需要有初始信息,比如一个IP地址或一个域名。实际上获取域名是很容易的一件事,然后攻击者会根据已知的域名搜集关于这个站点的信息。比如服务器的IP地址(不幸的是服务器通常使用静态的IP地址)或者这个站点的工作人员,这些都能够帮助发起一次成功的攻击。 

      搜集初始信息的一些方法包括: 

      开放来源信息 (open source information) 

      在一些情况下,公司会在不知不觉中泄露了大量信息。公司认为是一般公开的以及能争取客户的信息,都能为攻击者利用。这种信息一般被称为开放来源信息。 

      开放的来源是关于公司或者它的合作伙伴的一般、公开的信息,任何人能够得到。这意味着存取或者分析这种信息比较容易,并且没有犯罪的因素,是很合法的。这里列出几种获取信息的例子: 

      公司新闻信息:如某公司为展示其技术的先进性和能为客户提供最好的监控能力、容错能力、服务速度,往往会不经意间泄露了系统的操作平台、交换机型号、及基本的线路连接。 

      公司员工信息:大多数公司网站上附有姓名地址簿,在上面不仅能发现CEO和财务总监,也可能知道公司的VP和主管是谁。 

      新闻组:现在越来越多的技术人员使用新闻组、论坛来帮助解决公司的问题,攻击者看这些要求并把他们与电子信箱中的公司名匹配,这样就能提供一些有用的信息。使攻击者知道公司有什么设备,也帮助他们揣测出技术支持人员的水平 

      Whois 

      对于攻击者而言,任何有域名的公司必定泄露某些信息! 

      攻击者会对一个域名执行whois程序以找到附加的信息。Unix的大多数版本装有whois,所以攻击者只需在终端窗口或者命令提示行前敲入" whois 要攻击的域名"就可以了。对于windows操作系统,要执行whois查找,需要一个第三方的工具,如sam spade。 

      通过查看whois的输出,攻击者会得到一些非常有用的信息:得到一个物理地址、一些人名和电话号码(可利用来发起一次社交工程攻击)。非常重要的是通过whois可获得攻击域的主要的(及次要的)服务器IP地址。 

      Nslookup 

      找到附加IP地址的一个方法是对一个特定域询问DNS。这些域名服务器包括了特定域的所有信息和链接到网络上所需的全部数据。任何网络都需要的一条信息,如果是打算发送或者接受信件,是mx记录。这条记录包含邮件服务器的IP地址。大多数公司也把网络服务器和其他IP放到域名服务器记录中。大多数UNIX和NT系统中,nslookup代理或者攻击者能够使用一个第三方工具,比如spade。 

      另一个得到地址的简单方法是ping域名。Ping一个域名时,程序做的第一件事情是设法把主机名解析为IP地址并输出到屏幕。攻击者得到网络的地址,能够把此网络当作初始点。
    2> 找到网络的地址范围 

      当攻击者有一些机器的IP地址,他下一步需要找出网络的地址范围或者子网掩码。 

      需要知道地址范围的主要原因是:保证攻击者能集中精力对付一个网络而没有闯入其它网络。这样做有两个原因:第一,假设有地址10.10.10.5,要扫描整个A类地址需要一段时间。如果正在跟踪的目标只是地址的一个小子集,那么就无需浪费时间;第二,一些公司有比其他公司更好的安全性。因此跟踪较大的地址空间增加了危险。如攻击者可能能够闯入有良好安全性的公司,而它会报告这次攻击并发出报警。 

      攻击者能用两种方法找到这一信息,容易的方法是使用America Registry for Internet Numbers(ARIN)whois 搜索找到信息;困难的方法是使用tranceroute解析结果。 

      (1) ARIN允许任何人搜索whois数据库找到"网络上的定位信息、自治系统号码(ASN)、有关的网络句柄和其他有关的接触点(POC)。"基本上,常规的whois会提供关于域名的信息。ARINwhois允许询问IP地址,帮助找到关于子网地址和网络如何被分割的策略信息。 

      (2) Traceroute可以知道一个数据包通过网络的路径。因此利用这一信息,能决定主机是否在相同的网络上。 

      连接到internet上的公司有一个外部服务器把网络连到ISP或者Internet上,所有去公司的流量必须通过外部路由器,否则没有办法进入网络,并且大多数公司有防火墙,所以traceroute输出的最后一跳会是目的机器,倒数第二跳会是防火墙,倒数第三跳会是外部路由器。通过相同外部路由器的所有机器属于同一网络,通常也属于同一公司。因此攻击者查看通过tranceroute到达的各种ip地址,看这些机器是否通过相同的外部路由器,就知道它们是否属于同一网络。 

      这里讨论了攻击者进入和决定公司地址范围的两种方法。既然有了地址范围,攻击者能继续搜集信息,下一步是找到网络上活动的机器。 

      3> 找到活动的机器 

      在知道了IP地址范围后,攻击者想知道哪些机器是活动的,哪些不是。公司里一天中不同的时间有不同的机器在活动。一般攻击者在白天寻找活动的机器,然后在深夜再次查找,他就能区分工作站和服务器。服务器会一直被使用,而工作站只在正常工作日是活动的。 

      Ping :使用ping可以找到网络上哪些机器是活动的。 

      Pingwar:ping有一个缺点,一次只能ping一台机器。攻击者希望同时ping多台机器,看哪些有反应,这种技术一般被称为ping sweeping。Ping war 就是一个这样的有用程序。 

      Nmap:Nmap也能用来确定哪些机器是活动的。Nmap是一个有多用途的工具,它主要是一个端口扫描仪,但也能ping sweep一个地址范围。 

      4> 找到开放端口和入口点 

      (1)Port Scanners: 

      为了确定系统中哪一个端口是开放的,攻击者会使用被称为port scanner(端口扫描仪)的程序。端口扫描仪在一系列端口上运行以找出哪些是开放的。 

      选择端口扫描仪的两个关键特征:第一,它能一次扫描一个地址范围;第二,能设定程序扫描的端口范围。(能扫描1到65535的整个范围。) 

      目前流行的扫描类型是: 

      TCP conntect扫描 

      TCP SYN扫描 

      FIN扫描 

      ACK扫描 

      常用端口扫描程序有: 

      ScanPort:使用在Windows环境下,是非常基础的端口扫描仪,能详细列出地址范围和扫描的端口地址范围。 

      Nmap:在UNIX环境下推荐的端口扫描仪是Nmap。Nmap不止是端口扫描仪,也是安全工具箱中必不可少的工具。Namp能够运行前面谈到的不同类型的 。

      运行了端口扫描仪后,攻击者对进入计算机系统的入口点有了真正的方法。 

      (2) War Dialing 

      进入网络的另一个普通入口点是modem(调制解调器)。用来找到网络上的modem的程序被称为war dialers。基本上当提交了要扫描的开始电话号码或者号码范围,它就会拨叫每一个号码寻找modem回答,如果有modem回答了,它就会记录下这一信息。 

      THC-SCAN是常用的war dialer程序。 

      5> 弄清操作系统 

      攻击者知道哪些机器是活动的和哪些端口是开放的,下一步是要识别每台主机运行哪种操作系统。 

      有一些探测远程主机并确定在运行哪种操作系统的程序。这些程序通过向远程主机发送不平常的或者没有意义的数据包来完成。因为这些数据包RFC(internet标准)没有列出,一个操作系统对它们的处理方法不同,攻击者通过解析输出,能够弄清自己正在访问的是什么类型的设备和在运行哪种操作系统。 

      Queso:是最早实现这个功能的程序。Queso目前能够鉴别出范围从microsoft到unix 和cisco路由器的大约100种不同的设备。 

      Nmap:具有和Queso相同的功能,可以说它是一个全能的工具。目前它能检测出接近400种不同的设备。 

      6> 弄清每个端口运行的是哪种服务 

      (1) default port and OS 

      基于公有的配置和软件,攻击者能够比较准确地判断出每个端口在运行什么服务。例如如果知道操作系统是unix和端口25是开放的,他能判断出机器正在运行sendmail,如果操作系统是Microsoft NT和端口是25是开放的,他能判断出正在运行Exchange。 

      (2) Telnet 

      telnet是安装在大多数操作系统中的一个程序,它能连接到目的机器的特定端口上。攻击者使用这类程序连接到开放的端口上,敲击几次回车键,大多数操作系统的默认安装显示了关于给定的端口在运行何种服务的标题信息。 

      (3) Vulnerability Scanners 

      Vulnerability Scanners(弱点扫描器)是能被运行来对付一个站点的程序,它向黑客提供一张目标主机弱点的清单。 

      7> 画出网络图 

      进展到这个阶段,攻击者得到了各种信息,现在可以画出网络图使他能找出最好的入侵方法。攻击者可以使用traceroute或者ping来找到这个信息,也可以使用诸如cheops那样的程序,它可以自动地画出网络图。 

      Traceroute 

      Traceroute是用来确定从源到目的地路径的程序,结合这个信息,攻击者可确定网络的布局图和每一个部件的位置。 

      Visual Ping 

      Visual Ping是一个真实展示包经过网络的路线的程序。它不仅向攻击者展示了经过的系统,也展示了系统的地理位置。 

      Cheops 

      Cheops利用了用于绘制网络图并展示网络的图形表示的技术,是使整个过程自动化的程序。如果从网络上运行,能够绘出它访问的网络部分。 

      经过一系列的前期准备,攻击者搜集了很多信息,有了一张网络的详尽图,确切地知道每一台机器正在使用的软件和版本,并掌握了系统中的一些弱点和漏洞。我们可以想象一下,他成功地攻击网络会很困难吗?回答是否定的!当拥有了那些信息后,网络实际上相当于受到了攻击。因此,保证安全让攻击者只得到有限的网络信息是关键.

    网络安全知识:口令攻击

         攻击原理 

      攻击者攻击目标时常常把破译用户的口令作为攻击的开始。只要攻击者能猜测或者确定用户的口令,他就能获得机器或者网络的访问权,并能访问到用户能访问到的任何资源。如果这个用户有域管理员或root用户权限,这是极其危险的。 

      这种方法的前提是必须先得到该主机上的某个合法用户的帐号,然后再进行合法用户口令的破译。获得普通用户帐号的方法很多,如: 

      利用目标主机的Finger功能:当用Finger命令查询时,主机系统会将保存的用户资料(如用户名、登录时间等)显示在终端或计算机上; 

      利用目标主机的X.500服务:有些主机没有关闭X.500的目录查询服务,也给攻击者提供了获得信息的一条简易途径; 

      从电子邮件地址中收集:有些用户电子邮件地址常会透露其在目标主机上的帐号;查看主机是否有习惯性的帐号:有经验的用户都知道,很多系统会使用一些习惯性的帐号,造成帐号的泄露。 

      这又有三种方法: 

      (1)是通过网络监听非法得到用户口令,这类方法有一定的局限性,但危害性极大。监听者往往采用中途截击的方法也是获取用户帐户和密码的一条有效途径。当前,很多协议根本就没有采用任何加密或身份认证技术,如在Telnet、FTP、HTTP、SMTP等传输协议中,用户帐户和密码信息都是以明文格式传输的,此时若攻击者利用数据包截取工具便可很容易收集到你的帐户和密码。还有一种中途截击攻击方法,它在你同服务器端完成"三次握手"建立连接之后,在通信过程中扮演"第三者"的角色,假冒服务器身份欺骗你,再假冒你向服务器发出恶意请求,其造成的后果不堪设想。另外,攻击者有时还会利用软件和硬件工具时刻监视系统主机的工作,等待记录用户登录信息,从而取得用户密码;或者编制有缓冲区溢出错误的SUID程序来获得超级用户权限。 

      (2)是在知道用户的账号后(如电子邮件@前面的部分)利用一些专门软件强行破解用户口令,这种方法不受网段限制,但攻击者要有足够的耐心和时间。如:采用字典穷举法(或称暴力法)来破解用户的密码。攻击者可以通过一些工具程序,自动地从电脑字典中取出一个单词,作为用户的口令,再输入给远端的主机,申请进入系统;若口令错误,就按序取出下一个单词,进行下一个尝试,并一直循环下去,直到找到正确的口令或字典的单词试完为止。由于这个破译过程由计算机程序来自动完成,因而几个小时就可以把上十万条记录的字典里所有单词都尝试一遍。 

      (3)是利用系统管理员的失误。在现代的Unix操作系统中,用户的基本信息存放在passwd文件中,而所有的口令则经过DES加密方法加密后专门存放在一个叫shadow的文件中。黑客们获取口令文件后,就会使用专门的破解DES加密法的程序来解口令。同时,由于为数不少的操作系统都存在许多安全漏洞、Bug或一些其他设计缺陷,这些缺陷一旦被找出,黑客就可以长驱直入。例如,让Windows95/98系统后门洞开的BO就是利用了Windows的基本设计缺陷。、放置特洛伊木马程序 

      特洛伊木马程序可以直接侵入用户的电脑并进行破坏,它常被伪装成工具程序或者游戏等诱使用户打开带有特洛伊木马程序的邮件附件或从网上直接下载,一旦用户打开了这些邮件的附件或者执行了这些程序之后,它们就会象古特洛伊人在敌人城外留下的藏满士兵的木马一样留在自己的电脑中,并在自己的计算机系统中隐藏一个可以在windows启动时悄悄执行的程序。当您连接到因特网上时,这个程序就会通知攻击者,来报告您的IP地址以及预先设定的端口。攻击者在收到这些信息后,再利用这个潜伏在其中的程序,就可以任意地修改你的计算机的参数设定、复制文件、窥视你整个硬盘中的内容等,从而达到控制你的计算机的目的。

    网络安全知识: 欺骗攻击的类型

    欺骗攻击类型 

      IP欺骗:公司使用其他计算机的IP地址来获得信息或者得到特权。 

      电子信件欺骗:电子信件的发送方地址的欺骗。比如说,电子信件看上去是来自TOM,但事实上TOM没有发信,是冒充TOM的人发的信。 

      WEB欺骗:越来越多的电子上午使用互连网。为了利用网站做电子商务,人们不得不被鉴别并被授权来得到信任。在任何实体必须被信任的时候,欺骗的机会出现了。 

      非技术类欺骗:这些类型的攻击是把经理集中在攻击攻击的人力因素上。它需要通过社会工程技术来实现。 

      ※ IP欺骗 

      IP欺骗的三种基本形式是: 

      基本地址变化 

      使用源路由选择截取数据包 

      利用UNIX机器上的信息关系 

      (1) 基本地址变化 

      IP欺骗的最基本形式是搞清楚一个网络的配置,然后改变自己的IP地址,伪装成别人机器的IP地址。这样做会使所有被发送的数据包都带有假冒的源地址。这是非常低等级的技术,因为所有的应答都回到了被盗用了地址的机器上,而不是攻击者的机器。这被叫做盲目飞行攻击(flying blind attack),或者叫做单向攻击(one-way attack)。 

      这种攻击虽有一些限制,但就某一特定类型的拒绝服务攻击而言,只需要一个数据包去撞击机器,而且地址欺骗会让人们更难于找到攻击者的根源。对某些特定的攻击,如果系统受到了意想不到的数据包,说明对系统的攻击仍然在进行。而且因为UDP是无连接的,所以单独的UDP数据包会被发送到受害方的系统中。

    展开全文
  • 针对被动推理攻击者和主动推理攻击者,分别设计了集中学习和联合学习的推理算法,并假设了不同的对手先验知识。 我们评估针对深度学习算法的新白盒成员推理攻击,以追踪它们的训练数据记录。我们表明,将已知的黑盒...

    一、摘要

    深度神经网络在记忆训练数据信息时容易受到各种推理攻击。我们设计了白盒推理攻击来对深度学习模型进行全面的隐私分析。我们通过完全训练模型的参数和训练过程中模型的参数更新来测量隐私泄露。针对被动推理攻击者和主动推理攻击者,分别设计了集中学习和联合学习的推理算法,并假设了不同的对手先验知识。

    我们评估针对深度学习算法的新白盒成员推理攻击,以追踪它们的训练数据记录。我们表明,将已知的黑盒攻击直接扩展到白盒设置(通过分析激活函数的输出)是无效的。因此,我们利用用于训练深度神经网络的随机梯度下降算法的隐私漏洞,设计了适应白盒设置的新算法。我们探讨了深度学习模型可能泄露训练数据信息的原因。然后,通过分析针对CIFAR数据集的最先进的预先训练和公开可用的模型,即使是非常一般化的模型也很容易受到白盒成员推理攻击。我们还展示了在联合学习环境中,敌对的参与者如何成功地对其他参与者执行主动成员推理攻击,即使全局模型达到了很高的预测精度。

    二、介绍

    从图像和语音识别到生成逼真的数据,深度神经网络在各种学习任务中表现出前所未有的泛化能力。这一成功催生了许多应用程序和服务,这些应用程序和服务在大维度(可能是敏感的)用户数据上使用深度学习算法,包括用户演讲、图像、医疗记录、财务数据、社会关系和位置数据点。

    在这篇论文中,我们有兴趣回答以下关键问题:深度学习算法对那些数据被用于训练深度神经网络的个人的隐私风险是什么?换句话说,深度学习算法对其各自训练数据样本的信息泄露程度如何?

    我们将模型中训练数据的隐私敏感泄漏定义为对手可以从模型中了解到的信息,而对手却无法从相同分布的其他数据中推断出这些信息。这区分了我们可以从模型中获得的关于数据总体信息和模型泄露中关于其训练集中特定数据样本的信息。前者显示了效用增加,后者反映了隐私损失。我们设计推理攻击来量化这种隐私泄露。

    机器学习算法的推理攻击分为两个基本的和相关的类别:跟踪(又称成员推理)攻击和重构攻击。在重构攻击中,攻击者的目标是推断训练集中记录的属性。然而,在跟踪攻击中,攻击者的目标是推断特定的个人数据记录是否包含在训练数据集中。这是一个决策问题,其准确性直接反映了训练数据模型的泄漏。因此,我们选择这种攻击作为我们深度学习模型隐私分析的基础。

    最近的工作研究了黑盒环境下针对机器学习模型的成员推理攻击,攻击者只能观察模型预测。这些工作的结果表明,训练数据的分布以及模型的可泛化性促进了成员泄漏。特别地,他们表明过拟合模型比广义模型更容易受到成员推理攻击。然而,这种黑盒攻击可能对泛化良好(有大量参数)的深度神经网络无效。此外,在各种真实世界的设置中,深度学习算法的参数对对手是可见的,例如,在联合学习设置中,多个数据持有者通过聚合器彼此共享参数更新来协作培训全局模型。

    我们的贡献

    在本文中,我们提供了一个使用白盒成员推断攻击进行深度神经网络隐私分析的综合框架。我们不仅仅针对完全训练的模型进行成员推断攻击。我们把深度学习用于训练和调整或更新模型,对于一个或多个协作数据持有者,当攻击者仅被动地观察模型更新或主动影响目标模型以谋取更多的信息,以及不同类型的先验知识的攻击者。尽管对手的知识、观察力和行动存在差异,但他们的目标是相同的:成员攻击。

    将现有的黑盒成员推理攻击扩展到白盒环境,将对模型的所有激活函数使用相同的攻击。我们的经验评估表明,这不会比黑盒攻击者有更好的推理准确性。这是因为与输出层相比,模型中的激活函数的泛化速度要快得多。经过训练的模型的早期层提取非常简单的特征,这些特征与训练数据无关。最后一层的激活函数提取了复杂抽象的特征,因此应该包含更多关于模型训练集的信息。但是,此信息或多或少与有关训练数据的输出泄漏有相同。

    我们设计了白盒推理攻击,利用随机梯度下降(sgd)算法的隐私漏洞。训练集中的每个数据点通过SGD算法影响许多模型参数,使其对模型训练损失的影响最小化。目标数据记录上的损耗相对于给定参数的局部梯度,代表:为了使模型适合于数据记录,需要更改参数的大小和方向。为了最小化模型的期望损失,SGD算法不断更新模型参数,使整个训练数据集的损失梯度趋近于零。因此,每个训练数据样本将在模型参数上的损失函数梯度上留下可分辨的足迹。

    我们将目标数据点上所有参数的模型梯度向量用作攻击的主要特征。我们设计的深度学习攻击模型的体系结构可分别处理从目标模型不同层提取的(渐变)特征,并将其信息组合起来以计算目标数据点的隶属概率。针对具有不同类型背景知识的攻击者,我们训练了攻击模型。假设攻击者知道训练集的子集,我们可以以监督的方式训练攻击模型。然而,对于缺乏这种知识的对手,我们以一种无监督的方式训练攻击模型。我们训练自动编码器以计算嵌入任何数据的成员资格信息。然后,我们在目标数据集上使用聚类算法,根据成员嵌入将成员与非成员分离开来。

    为了显示我们的白盒推理攻击的有效性,我们评估了CIFAR100数据集上经过预先训练且可公开获得的最新模型的隐私。
    我们对训练这些模型没有影响。我们的结果表明,DenseNet模型是CIFAR100的最佳模型,其82%的测试精度不易受到黑箱攻击(54.5%的推理攻击精度,其中50%是随机猜测的基线)。然而,我们的白盒成员推理攻击获得了相当高的准确率74.3%。这表明,即使是广义的深度模型也可能会泄露大量关于其训练数据的信息,并且容易受到白盒成员推断攻击。

    在联邦学习中,我们展示了一个奇怪的参数服务器甚至一个参与者可以对其他参与者执行精确得惊人的成员资格推断攻击。对于CIFAR100上的DenseNet模型,本地参与者即使只通过参数服务器观察聚合更新,也可以获得72.2%的成员推理精度。同样,好奇的中央参数服务器可以接收到所有参与者的个别参数更新,因此可以达到79.2%的推理精度。在联合学习中,在相同的基础训练集上,模型在不同时间点上的重复参数更新是提高推理攻击准确性的关键因素。

    由于对抗参与者的贡献(如参数更新)可能影响其他参与方的参数,因此在联合学习环境中,敌对方可以通过主动推送SGD来泄露更多关于参与者数据的信息。我们设计了一个主动攻击,在上传和更新全局参数之前,对一组目标数据点执行梯度上升。这会放大其他训练集中数据点的存在,就像sgd通过突然减少目标数据点(如果它们是成员)上的梯度而做出的反应一样。在Densenet模型中,这将导致对抗性参与者的推断准确率达到76.7%,而中央服务器主动推理攻击的准确率达到82.1%。通过在参数更新期间隔离参与者,中心攻击者可以将其准确率提高到87.3%。

    推理攻击

    通过对训练数据的深度学习模型,利用成员推理攻击来测量信息泄漏。数据用于训练模型的场景有很多种,攻击者观察深度学习过程的方式也有很多种。在表I中,我们介绍了对攻击进行分类的主要标准。这包括攻击观察、对对手知识的假设、目标训练算法和基于对手行为的攻击模式。在本节中,我们将讨论不同的攻击场景,以及利用深度学习算法的技术。我们也描述了我们的攻击模型的架构,以及对手如何计算成员概率。

    A.攻击观察:黑盒vs白盒推理

    对手对深度学习算法的观察构成了推理攻击的输入。

    黑盒

    对手的观察仅限于模型在任意输入下的输出。对于任意数据点x,攻击者只能得到f(x;W)。攻击者无法访问W模型的参数和计算的中间步骤。这就是机器学习作为服务平台的环境。针对黑盒模型的成员推理攻击已经被设计出来,利用模型对其训练集的预测与不可见数据之间的统计差异。

    白盒

    在这个设置中,攻击者获得模型f(x;W),包括预测所需的参数。因此,对于任何输入x,攻击者可以得到模型的输出和所有中间计算。也就是说,在给定的模型下,对手可以计算模型W和数据点x上的任意函数。最直接的函数是隐藏层的输出,即输入x上的hi(x)。【The most straightforward functions are the outputs of the hidden layers, hi(x) on the input x.】作为一个简单的扩展,攻击者可以将黑盒成员推理攻击(仅限于模型的输出)扩展到模型的所有激活函数的输出。【 The attacker can extend blackbox membership inference attacks (which are limited to the model’s output) to the outputs of all activation functions of the model.】但是,这并不一定包含所有对成员关系推断有用的信息。值得注意的是,如果模型正则化良好,模型输出和激活函数可以泛化。因此,在分布上,一个模型的训练激活函数与不可见数据之间可能没有太大的区别。这可以极大地限制推理攻击的能力(正如我们在评估中所展示的那样)。

    我们的建议是利用用于训练深度学习模型的算法:随机梯度下降(SGD)算法。设L(f(x;W),y)为分类模型f的损失函数。在训练过程中,SGD算法最小化训练集D上损失函数的经验期望:

    SGD算法通过反复更新参数W来解决这个最小化问题,以减少随机选择的d子集的损失。因此,对于训练数据集中的任何数据记录,在每轮训练后,数据记录上的损耗∂L/∂W的梯度都将推向零。【the gradient of the loss ∂L/∂W over the data record is pushed towards zero】。这正是我们可以用来提取有关模型训练数据的信息的工具。

    对于一个目标数据记录(x,y),敌方可以计算模型L(f(x;W),y)的损失,可以用一个简单的反向传播算法计算所有参数∂L/∂W的损失梯度。由于深度神经网络中使用的参数数量庞大(数百万个参数),具有如此大维数的向量无法正确地泛化训练数据(在许多情况下,训练数据的大小要小一个数量级)。因此,该模型在训练数据成员上与非成员上的梯度分布是可区分的。这可以帮助敌手进行准确的成员推理攻击,即使分类模型(相对于它的预测)已被很好地概括【wellgeneralized】。

    推理模型

    给定目标数据(x,y),攻击的目标是确定其在目标模型f的训练集D中的隶属度。攻击者在目标输入x上运行目标模型f,并在正向传递中计算所有隐藏层hi(x)、模型的输出f(x)和损失函数L(f(x),y;W)。攻击者还计算了每层∂L/∂W的参数在向后传递时的损失梯度。这些计算,除了真标签y的one-hot编码外,还构造了推理攻击的输入特征。攻击模型由卷积神经网络(cnn)和全连接网络(fcn)两部分组成。为了攻击联邦学习和微调,攻击者会观察每个攻击特性t次,并在将它们传递给相应的攻击组件之前将它们堆叠起来。例如,损失特征组成为L={L{1}、L{2}、···、l{t} }。CNN和FCN组件的输出被附加在一起,这个向量被传递给一个完全连接的编码器。在监督攻击环境中,该嵌入被训练成Pr{(x,y)∈D}。在无监督设置下,对译码器进行训练,从攻击输出中重构出攻击输入的重要特征。在无人监督的环境中,译码器是训练有素的重构攻击的重要特性输入(如模型的输出不确定度h (f (x))及其梯度范数)的攻击输出。这类似于深度自动编码器。所有未指定的攻击层都已完全连接。攻击架构的详细信息见附录A中的表XIV。

    我们在图1中演示了成员推理攻击。梯度(以及激活)计算对于成员推理攻击的重要性随深度神经网络的层次而变化。与来自相同底层分布的非成员数据记录相比,第一层包含的关于训练集中特定数据点的信息更少。我们可以提供给攻击者每个层的梯度和激活作为单独的输入,因为攻击者可能需要为每个层设计一个特定的攻击。这使得推理攻击能够将推理任务拆分到模型的不同层上,然后将它们组合起来以确定成员关系。攻击模型体系结构的这种工程增强了推理攻击的能力,因为它降低了攻击模型的容量,有助于在较少背景数据的情况下找到最优的攻击算法。

    攻击模型的不同输入是:梯度∂L/∂W1,∂L/∂W2,···、不同层的激活向量集合h1(x),h2(x),···、模型输出f(x)、标签y的一位有效编码【the one-hot encoding】、以及目标数据L(f(x;W),y)上的模型损失。每一个都被单独输入到攻击模型中,并使用独立的组成部分分别进行分析。

    推理攻击组成部分

    攻击模型由特征提取组件和编码器组件组成。为了从每一层的输出中提取特征,再加上真标签的一位有效编码和损失【the one-hot encoding of the true label and the loss】,我们使用了具有一个隐含层的全连接网络(FCN)子模块。我们使用卷积神经网络(CNN)的子模块来实现梯度。当梯度在全连通层上计算时(在目标模型中),我们将卷积核的大小设置为全连通层的输入大小,以捕获每个激活函数中梯度的相关性。我们将每个子模块组件的输出重新组合成一个平面向量,然后将所有组件的输出连接起来。我们使用具有多个隐藏层的完全连接的编码器组件来组合所有攻击特征提取组件的输出。编码器的输出是一个单独的分数,这是攻击的输出。这个分数(在有监督的训练攻击中)预测了输入数据的成员概率。

    B.推理目标:独立学习【Stand-alone】vs联邦学习

    深度学习有两种主要的训练算法,取决于训练数据是在一个地方全部可用(如独立的集中训练),还是分布在互不信任的多方之间(如联合学习)。在这两种情况下,攻击者可能是获得最终训练模型的实体。除了这种攻击环境之外,攻击者可能还会观察到模型经过微调后的更新版本,例如,这在深度学习中非常常见。此外,在联合学习的情况下,攻击者可以是参与训练的实体。表I描述了微调和联合学习的环境。

    独立学习的微调【 fine-tuning】

    模型f在数据集d上进行训练,在后期使用新的数据集dΔ进行微调后更新为fΔ。如果攻击者观察到最终结果,我们要测量最终模型fΔ关于整个训练集D∪DΔ的信息泄漏。但是,考虑到模型有两个版本(在微调之前和之后),我们还希望测量可以从两个模型快照【snapshots】中了解到的关于训练数据的额外信息。攻击者可能只对新数据集dΔ的恢复信息感兴趣。这在许多情况下非常有关,在这些情况下,原始模型是使用一些未标记的(可能是公共)数据进行训练的,然后使用敏感的私有标记数据对其进行了微调。针对fine-tunned模型的推理攻击模型是我们攻击联邦学习的成员推理模型的一个特例。在这两种情况下,攻击者观察目标模型的多个版本。

    联邦学习

    在这种情况下,拥有不同训练集Di的N个参与者,就一个深层学习任务和模型架构达成一致,以训练一个全局模型。中央服务器保存全局模型参数W的最新版本。每个参与者都有一个局部模型,因此有一组局部参数Wi。在每个训练阶段,每个参与者下载全局参数,使用SGD算法对其本地训练数据进行本地更新,并将其上传回服务器。参数服务器使用所有参与者上传的参数计算每个参数的平均值。这种协作训练一直持续到全局模型汇合为止。

    攻击者在联合学习中的位置有两种可能:攻击者可以是中央参数服务器,也可以是参与者之一。一个好奇的参数服务器【A curious parameter server】可以在时间内接收每个参与者的更新,并使用它们来推断每个参与者的训练集的信息。恶意的参数服务器还可以控制全局模型上每个参与者的视图【 the view of 】,并可以主动地提取关于参与者的训练集的更多信息(正如我们在主动攻击下讨论的那样)。或者,对手可以是参与者之一。对抗性参与者只能在一段时间内观察全局参数,并手工更新自己的对抗性参数,以获得关于所有其他参与者训练数据的联合的更多信息。

    在这两种情况中,对手会随着时间观察目标模型的多个版本。对手可以尝试对每一个模型运行一个独立的成员推理攻击,然后合并它们的结果。但是,随着时间的推移,这可能无法捕获参数值之间的依赖关系,从而泄漏有关训练数据的信息。相反,在我们的设计中,我们使用了单个推理模型,其中每个攻击组件(如第i层梯度的组件)在观察到的模型上同时处理其所有相应的输入。如图1所示。例如,分析损失值为L的攻击组件,如果对手在一段时间内观察目标模型的T个版本,则输入维度可以是1×T。攻击组件的输出也比攻击独立模型的情况大t倍。推理模型立即处理所有攻击组件的相关输出。【These correlated outputs, of all attack components, are processed all at once by the inference model.】

    C.攻击方式:被动推理攻击vs主动推理攻击

    推理攻击大多是被动的,对手在不改变学习过程的情况下进行观察。尤其是在训练结束后的攻击模型,例如独立的环境。【stand-alone setting】。

    主动攻击

    参与训练过程的敌手可以主动地影响目标模型,以提取更多关于其训练集的信息。在对联合学习进行推理攻击时尤其如此。在此设置中,中心参数服务器或好奇的参与者可以为后续推理攻击【follow-up inference attack】进行对抗性参数更新【adversarial parameter updates】。对于被动攻击和主动攻击,推理模型体系结构是相同的。

    主动攻击者可以利用SGD算法进行主动攻击。我们设计攻击的思路是,SGD算法有力地减小了训练数据损失的梯度,希望这也可以推广到测试数据上。更改的数量取决于数据点在损失中的贡献【the contribution of a data point in the loss.】。因此,当一个训练数据点导致较大的损失时,sgd算法会影响一些参数来适应,从而减少该点的损失。如果模型在训练过程中没有看到数据点,则在整个训练过程中,此点的梯度变化是逐渐变化的。这就是我们在主动成员推断攻击中利用的。

    设x为一条数据记录,对手会以此为目标来确定其成员。假设对手是参与者之一。攻击者在x上运行梯度上升,并在增加x损失的方向上更新其本地模型参数。

    仅通过在参数中添加参数的梯度来实现,其中γ是对抗性更新率。

    然后,对手将反向计算的参数上传到中央服务器,中央服务器将把它们与其他参与者的参数更新聚合起来。对手可以同时对一批目标数据点进行攻击。

    设x是在一个参与者的训练集中的目标记录,其本地SGD算法会突然降低对x的损失梯度,这可以通过推理模型检测到,并用于区分成员与非成员。在联合学习中发生的重复主动攻击会导致高可信度的推理攻击。

    D.先验知识:有监督推理vs无监督推理

    为了构建推理攻击模型,对手需要找到模型在数据点上的行为与其在训练集中的隶属度之间的有意义映射。学习这种关系最直接的方法是通过一些已知的训练数据成员,以及来自同一分布的一些不在训练数据集中的数据点。

    如表1所示。对手有一个与目标数据集D重叠的数据集D'。给定该数据集,他可以以监督的方式训练攻击模型,并使用该数据集攻击其余的训练数据集。

    设h为推理攻击模型。在有监督的环境中,我们将攻击者的(均方根)损失最小化,以预测其训练集D'中数据点的成员身份:

    如果对手没有来自目标训练集的已知样本,则有两种可能训练推理攻击模型:影子模型【shadow models】上的监督训练和目标模型上的无监督训练。影子模型是与目标模型具有相同架构的模型。影子模型的训练数据记录与目标训练数据分布相同,但与目标训练集没有已知的重叠。攻击者在影子模型上训练攻击模型。由于阴影模型在训练数据上的行为与目标模型在训练数据上的行为或多或少相似,因此在影子模型上训练的攻击模型是有效的。

    (影子)监督训练的攻击输出为隶属概率:

    推理模型的无监督训练

    我们提出了一种影子训练的替代方法,即攻击模型对目标模型的无监督训练。此攻击的假设是攻击者可以访问与目标训练集D部分重叠的数据集D',但是,对手不知道D'∩D中有哪些数据点。

    我们的目标是为每个数据点找到一个分数,以表示其在空间中的嵌入【find a score for each data point that represents its embedding in a space,】有助于我们轻松地将成员与非成员分离(使用聚类算法)。攻击的输出应该计算此类表示。我们使用编码器-解码器架构来实现这一点。这与无监督深度学习的自动编码器非常相似。如图1所示,攻击的输出被输入到解码器中。解码器是一个具有一个隐藏层的全连接网络。

    解码器的目标是重建攻击输入的一些关键特征,这些特征对隶属度推断非常重要。这包括损失值L、目标模型是否预测了正确的标记、模型对正确标记的确信度、模型的预测不确定度(熵)和梯度的范数【 the norm of the gradients】。这些特征是区分成员和非成员的有力信号。编码器-解码器结构最大化了攻击输出包含的关于这些特征的信息。因此,它为每个数据点生成一个成员嵌入。【generates a membership embedding for each data point】。在训练攻击模型之后,解码器在成员推断攻击中不起作用。

    在无监督环境下的攻击是一种批量攻击,对手攻击大量的数据记录(与背景知识分离)。我们将使用编码器为每个目标数据记录,并计算嵌入值(编码器模型的输出)。接下来,我们使用聚类算法(例如,我们使用谱聚类方法),将目标模型的每个输入分为两个集群。【 a clustering algorithm (we use the spectral clustering method) to cluster each input of the target model in two clusters.】注意,聚类算法的结果是一个阈值【threshold】,因为攻击输出是单个数字。我们预测梯度范数较大的集群为非成员。

    三、实验设置

    我们使用Pytorch实现了我们的攻击。我们在配备了4个Titan X GPU和12gb内存的一台电脑上训练所有的模型。【https://pytorch.org】

    A.数据集

    我们在实验中使用了三个数据集:一个标准的图像识别基准数据集CIFAR100,以及两个Purchase100和Texas100数据集。

    CIFAR100

    这是一个流行的基准数据集,用于评估图像识别算法[9]。它包含60000个颜色(RGB)图像,每个32×32像素。根据图像中的对象将图像分为100个类。

    Purchase100[6]

    Purchase100数据集包含数千名在线客户的购物记录,这些记录是在Kaggle的“获取有价值的购物者”挑战中提取的。这项挑战的目的是找出能吸引新顾客的商品。我们使用这个数据集的处理后和简化的版本。数据集中的每个记录都是单个用户的购物历史。数据集包含600种不同的产品,每个用户都有一个二进制记录,该记录表明她是否购买了每种产品(总共197324条数据记录)。根据购买的相似性,这些记录被分为100个类,我们的目标是确定每个用户购买的类别。

    https://www.kaggle.com/c/acquire-valued-shoppers-challenge/data

    Texas100[6]

    该数据集包括德克萨斯州卫生服务部3号发布的医院出院数据记录。这些记录包含有关患者(性别、年龄和种族)、外部伤害原因(如药物滥用)、诊断和患者程序的一般信息。与Purchase100类似,我们得到了处理后的数据集,其中包含67330条记录和6170个二进制特征。

    https://www.dshs.texas.gov/thcic/hospitals/Inpatientpudf.shtm

    B.目标模型

    我们研究了前面提到的三个数据集Texas100、Purchase100和CIFAR100的攻击模型。

    对于CIFAR100数据集,我们使用了Alexnet[10]、Resnet[11]、DenseNet[12]模型。我们使用SGD优化器[13]对CIFAR100模型进行训练,学习率分别为0.01、0.001、0.0001,对应地,在0-50、50-100、100-300阶段进行训练。我们使用权重为0.0005的l2正则化。

    对于Texas100和Purchase100数据集,我们使用全连接的模型。对于Purchase100,我们使用层大小为600、1024、512、256、128、100(其中100是输出层)的模型;对于Texas100,我们使用层大小为1024、512、256、128、100(其中100是输出层)。我们使用学习率为0.001的Adam[13]优化器来学习这些模型。在我们所有的实验中,我们为每个模型训练了100个阶段。我们选择了100个阶段中测试精度最高的模型。

    C.预先训练模型

    为了证明我们的攻击不局限于我们的训练算法,我们使用了公共可用的预训练CIFAR100模型。所有这些模型都经过调整,以使用不同的正则化技术获得最佳的测试精度。

    【我们使用ResNet、DenseNet和Alexnet预先培训的模型,这些模型在https://github.com/bearpaw/pytorch-classification中提供】

    D.联邦学习

    我们为所有的联邦学习实验进行了训练。具体来说,我们对联邦场景使用了平均聚合方法[8]。每个训练方在每个训练阶段结束后将参数更新发送到中心模型,中心服务器将来自各方的模型更新进行平均,并将更新后的模型发送给各方。在我们的实验中,我们对所有参与方使用相同的训练数据集大小,并且每个参与方的训练数据都是从我们现有的数据集中均匀随机选择的。

    E.攻击模型

    附录A中的表XIV给出了我们的攻击模型的体系结构。可以看出,我们使用了ReLU激活函数,并使用均值为0和标准偏差为0.01的正态分布来初始化权重。所有层的偏移值都初始化为0。所有实验的批次大小为64。为了训练攻击模型,我们使用学习率为0.0001的Adam优化器。我们训练100个阶段的攻击模型,并在所有100个阶段中选择测试精度最高的模型。

    表II和XI显示了用于训练目标和攻击模型的数据集大小。在训练攻击模型的监督环境中,我们假设攻击者可以访问训练集的一小部分和一些非成员样本。在这种情况下,为了平衡训练,我们从攻击者的背景知识中选择每个批处理的一半来包含成员实例,另一半是非成员实例。以这种方式创建批将防止攻击模型偏向成员或非成员实例。

    F.Evaluation Metrics

    攻击的准确性

    攻击者的输出有两个类“成员”和“非成员”。攻击准确度是针对未知数据点的正确成员预测(预测成员为成员,非成员为非成员)的分数。我们用来评估攻击的成员和非成员样本集的大小是相同的。

    True/False positive

    为了更详细地评估攻击性能,我们还测量了攻击者的真positive率和假positive率。positive与攻击者输出“成员”相关。

    预测的不确定性

    对于分类模型,我们使用给定输入的预测向量的归一化熵来计算其预测不确定性。【 the normalized entropy of its prediction vector for a given input.】

    ,其中k是所有类的个数,pi是第i类的预测概率。

    我们用softmax函数作为pi来计算概率

    四、实验

    我们首先给出独立学习的结果,然后给出联合学习的结果。

    A.独立环境:攻击完全训练的模型

    我们调查攻击者在白盒环境中访问完全训练的目标模型的情况。因此,攻击者可以利用目标模型隐藏层的输出和梯度来执行攻击。我们使用了预先训练过的CIFAR100模型,并使用表二所示的数据集大小训练了其他目标模型和攻击模型。

    不同层次输出的影响:

    为了理解和演示不同层输出的影响,我们使用各个层的输出分别执行攻击。我们使用预先训练的Alexnet模型作为目标模型,模型由五个卷积层和一个完全连接层组成。表III显示了使用最后三层中每层输出的攻击准确性。如表所示,使用最后一层攻击精度最大,即在层输出中,最后一层(模型输出)会泄漏有关训练数据的成员信息最多,其原因有两方面。进入后面几层,参数的容量会增加,从而导致目标模型存储关于训练数据集的不必要信息,从而泄漏更多信息。此外,第一层从输入中提取简单的特征,因此比最后一层概括/泛化【generalize】得更好,后者负责寻找抽象特征与类之间的关系这一复杂任务。通过组合多层输出,我们没有获得明显的精度提高;这是因为来自最后一层的泄漏(相当于黑盒推断攻击)已经包含从先前层的输出泄漏的成员信息。

    梯度的影响:

    在第II-A节中,我们讨论了为什么梯度会泄露关于训练数据集的信息。在表VIII中,我们比较了当攻击者使用不同数据集和模型的梯度和层输出时,成员攻击的准确性。总的来说,与层输出相比,梯度泄漏了更多关于训练集的成员信息。

    CIFAR100-ResNet和CIFAR100-DenseNet模型都是为同一图像识别任务而设计的,它们都是在同一数据集上训练的,并且都具有相似的泛化误差。结果表明,这两个模型都存在不同程度的成员泄漏,这说明在白盒设置下,泛化误差并不是衡量白盒环境下的隐私泄露的正确指标。该模型容量大,能够很好地学习复杂的任务,并具有很好的泛化能力,同时也能存储更多的训练数据信息。预训练的Densenet模型参数总数为25.62M,而ResNet参数仅为1.7M。

    我们研究了不同层次的梯度对攻击精度的影响。如表IV,后几层的梯度泄漏了更多的成员信息。这与我们对层输出的发现类似:最后一层概括了模型所有层中最小的一层,是对训练集依赖性最强的一层。通过结合所有层的梯度,只能略微提高攻击精度。
    最后,表V显示了当我们将输出层和不同层的梯度相结合时的攻击精度。最后一层的梯度泄露了最多的成员信息。

    训练规模的影响:

    表VI显示了不同大小攻击者训练数据的攻击精度。在所有这些场景中,模型都在同一组测试的实例上进行测试的。

    增加攻击者训练数据集的大小可以提高成员推断攻击的准确性。

    梯度范数【norm】的影响:

    在这个实验中,我们证明了模型梯度的范数与成员推断的准确性高度相关,因为它在成员和非成员实例中的表现不同。图3为成员实例和非成员实例(Purchase100数据集)绘制了连续训练阶段最后一层的梯度规范。可见,在训练过程中,成员实例的梯度范数随训练时间的延长而减小,而非成员实例的梯度范数并不是这样。【the gradient norms of the member instances decrease over training epochs, which is not the case for non-member instances.】

    图4显示了CIFAR100上三种不同的预训练体系结构上的成员和非成员在最后一层的梯度规范的分布。


    通过与表VIII的比较,我们发现当梯度范数的分布对于成员和非成员实例更加明显时【the distribution of the gradient norm is more distinct for member and non-member instances.】,模型会泄漏更多的成员信息。

    例如,我们可以看到ResNet和DenseNet都有相似的泛化误差,但是DenseNet的成员和非成员的梯度范数分布(图4b)比resnet(图4c)更容易区分。并且我们发现DenseNet的攻击精度远高于ResNet。

    而且,我们表明,对于(目标模型的)分类输出类,我们的推理攻击的准确性更高,成员/非成员梯度范数的差异也更大。

    图2a绘制了成员和非成员实例的不同输出类在最后一层的梯度范数的平均值;我们看到成员和非成员之间的梯度范数的差异在不同的类中是不同的。

    图2b为三个输出类的推断攻击的接受者操作特征曲线(ROC),这三个输出类的成员和非成员之间的梯度范数差异分别为小、中、大(在多个样本上取平均值)。【Figure 2b shows the receiver operating characteristic (ROC) curve of the inference attack for three output classes with small, medium, and large differences of gradient norm between members and non-members (averaged over many samples).】

    由此可见,成员与非成员之间梯度范数的差异越大,成员推理攻击的准确性越高。

    预测不确定性的影响:

    文献[6]认为:预测向量的不确定性是隐私泄露的重要因素。我们通过对不同预测不确定性的CIFAR100-Alexnet中不同类别的攻击进行评估,来验证这一说法。具体来说,我们选择了预测不确定性差异小、中和高的三个类别,其攻击精度如图6所示。类似于梯度范数的差异,预测不确定性值越高的类泄漏的成员信息越多。

    B.独立环境:无监督攻击

    我们也在一个无监督的场景中实现我们的攻击,在该场景中,攻击者从相同的底层分布中采样数据点,但他不知道其成员和非成员标签。在这种情况下,攻击者将测试记录分为两个集群,如第II-D节所述。

    我们实现了我们的攻击,并将其性能与shokri等人的影子模型进行了比较。[6]前面介绍过。我们根据表II中的训练和测试数据集的大小,在各种数据集上训练我们的无监督模型。根据表II的训练大小在每个Texas100和Purchase100数据集上训练影子模型。【We train a single Shadow model on each of Texas100 and Purchase100 datasets using training sizes according to Table II.】影子模型的训练集与目标模型的训练集不重叠。但是,对于CIFAR100数据集,我们的影子模型使用与目标模型数据集重叠的训练数据集,因为我们没有足够的实例(我们在总共60000个可用记录中训练每个模型50000个实例)。

    训练后,我们使用谱聚类算法[14]将输入样本分成两个聚类。如前所示(图4),成员实例具有较小的梯度范数值。因此,我们将成员标签分配给平均梯度范数较小的集群,将非成员标签分配给其他集群。

    表VII比较了我们的无监督攻击与各种数据集和架构上的影子训练[6]的准确性。我们的方法提供了更高的精确度。
    我们攻击工作背后的直观[【The intuition behind our attack working】,ours无监督算法的编码值对于成员和非成员样本呈现不同的分布。可以在图5中看到各种数据集和体系结构。

    C.独立环境:攻击微调【Fine-Tuned】模型

    我们研究了微调目标模型的隐私泄漏。在这种情况下,受害者使用数据集D训练模型,然后使用数据集DΔ微调训练模型以提高其性能。因此,攻击者有两个训练模型的快照snapshot,一个是仅使用D,另一个是同一模型下使用DΔ微调的。我们假设攻击者可以访问这两个经过训练的模型(在微调之前和之后)。我们想在此场景中应用成员推断攻击,对手的目标是区分的成员D、DΔ和D′,和一组非成员D′。

    我们使用与先前实验相同的训练数据集(表II);我们使用60%的训练数据集作为D,其余的用于DΔ。表IX显示了不同场景下的训练、测试和攻击精度。如图所示,攻击者能够区分成员(D或DΔ)和非成员(¯D),其精度与之前的设置类似。此外,攻击者还可以以相当高的精度区分D和DΔ的成员。

    D.联邦学习:被动推理攻击

    表XI显示了联邦攻击实验中使用的数据集大小。对使用CIFAR100数据集的本地攻击者的实验,每个参与者使用30000个实例进行训练,由于实例数量不多,参与者之间会出现重叠。对于所有其他实验,参与者使用非重叠数据集。在下面我们将在不同的环境中展示攻击。

    被动的全局攻击者

    在这种情况下,攻击者(参数聚合器【the parameter aggregato】)可以在多个训练阶段访问目标模型的参数(第II-B节)。因此,他可以在每个训练阶段被动地收集所有参与者的所有参数更新,并且可以分别对每个目标参与者执行成员推断攻击。

    由于GPU资源有限,我们的攻击仅在五个(非连续)训练阶段观察每个目标参与者。表XII显示了当我们的攻击使用不同的训练时段集时的准确性(对于带有AlexNet的CIFAR100数据集)。我们看到,使用后期,大大提高了攻击精度。直观地说,这是因为早期的训练阶段包含了数据集的一般特征信息,这些特征不会泄露重要的成员信息,然而,当模型开始学习这些阶段中的异常值【outliers】时,后期的阶段包含了更多的成员信息[15]。

    联邦学习设置中的攻击准确性。共有4名参与者。全局攻击者是中心参数聚合器,而本地攻击者是参与者之一。全局攻击者对每个参与者进行推断,并报告平均攻击精度。本地攻击者对所有其他参与者执行推断。被动攻击者遵循协议,只观察更新。主动攻击者更改其更新,或者(在全局攻击的情况下)隔离一个参与者,不将其他参与者的更新传递给它,以增加信息泄漏。

    表X显示了对不同数据集的攻击结果。对于Purchase100和Texas100数据集,我们使用[40、60、80、90、100]训练阶段;对于CIFAR100数据集,我们使用[100、150、200、250、300]阶段。当攻击者能够访问CIFAR100目标模型中的多个训练阶段时,他可以获得较高的成员攻击精度。然而,在Texas100和Purchase100数据集中,与独立设置相比,攻击的准确性降低。这是因为联邦学习场景中的平均值将减少各个参与方的影响。

    被动的本地攻击者

    本地攻击者无法观察参与者的模型更新;他只能观察聚合模型参数。我们使用与全局攻击相同的攻击模型架构。在我们的实验中,有四个参与者(包括本地攻击者)。攻击者的目标是了解:目标输入是否成为任何其他参与者的训练数据的成员。

    表X显示了我们攻击各种数据集的准确性。正如预期的那样,本地攻击比全局攻击具有更低的准确性;这是因为本地攻击者观察所有参与者的聚合模型参数,从而限制了成员泄漏的程度。对于更多的参与者,本地攻击者的准确性会降低。

    表XIII显示了AlexNet模型上的CIFAR100。

    E.联邦学习环境:主动推理攻击

    表X显示了对联邦学习的攻击结果。

    梯度上升的攻击者

    在这种情况下,攻击者对学习过程进行逆操作,以提高成员推断的准确性。主动攻击在第II-C节中进行了描述。我们通过从目标模型和100个非成员实例中,预测100个随机抽样成员实例的成员身份,来评估攻击的准确性。对于所有这样的目标实例(其成员身份对攻击者来说是未知的),攻击者将更新它们的数据特性,以提升全局模型(在全局攻击的情况下)或本地模型(在局部攻击的情况下)的梯度。

    全局主动梯度上升攻击对目标模型训练过程的影响。图中显示了在目标实例受到攻击的情况下,训练阶段各种实例(Purchase100数据集)的梯度范数。

    图7比较了不同数据点的目标模型的最后一层梯度范数。如图7a所示,在不同的训练阶段,目标成员的梯度范数与非目标成员实例的梯度范数非常相似。另一方面,对于图7b所示的非成员实例,情况并非如此。

    直观地说,这是因为对一个成员实例应用梯度上升算法将触发目标模型,试图通过在这些实例的模型梯度方向上下降来最小化其损失(从而消除攻击者上升的影响)。然而,对于目标非成员实例,模型不会显式地改变它们的梯度,因为它们不会影响训练损失函数。攻击者在训练的每个阶段都重复梯度上升算法,因此,在这种非成员实例上,模型的梯度会不断增加。图7c描述了成员和非成员目标实例的梯度范数之间的结果区别。主动梯度上升攻击迫使目标模型在目标成员和目标非成员实例之间表现出明显的差异,这使得成员推断攻击变得更加容易。结果表明,与被动全局攻击相比,主动攻击能显著提高攻击精度。在本地情况下,由于观察到来自多个参与者的聚合参数,其准确性低于全局攻击。

    孤立的攻击者

    联邦学习场景中的参数聚集会对成员推断攻击的准确性产生负面影响。主动全局攻击者可以通过隔离目标参与者并为其创建网络的本地视图来解决此问题。在这种情况下,攻击者不会将所有参与方的聚合参数发送到目标参与方。相反,攻击者会隔离目标参与者并隔离目标参与者的学习过程。

    当攻击者隔离目标参与者时,目标参与者的模型不会与其他方的参数聚合。因此,它在模型中存储了更多关于其训练数据集的信息。因此,简单地隔离目标模型的训练可以显著提高攻击精度。将该方法应用于梯度上升攻击,可以进一步提高攻击精度。所有结果见表X。

    五、相关工作

    研究深度神经网络的不同推理攻击是一个活跃的研究领域。

    A.成员推理攻击

    多篇研究论文研究了黑盒环境下的成员推断攻击[6]、[16]、[7]。荷马等人[4]对基因组数据进行了第一次成员推断攻击。Shokri等人[6]结果表明,机器学习模型输出的训练数据具有可区分性,容易被对手的推理模型所利用。他们引入了模拟目标模型行为的影子模型,攻击者使用这些影子模型来训练攻击模型。Salem等人[17]扩大了Shokri等人的攻击范围。[6]并根据经验证明,可以使用单个影子模型(而不是[6]中使用的多个影子模型)来执行相同的攻击。他们进一步证明,即使攻击者无法访问目标模型的训练数据,她也可以使用输出的统计特性(例如熵)来执行成员推断。Yeom等人[7]证明了过度拟合与成员推理攻击之间的关系。Hayes等人[18]使用生成性对抗网络对生成性模型进行成员攻击。

    Melis等人[19]为协作学习开发了一组新的成员推理攻击。该攻击假设参与者在每个小批量处理之后更新中心服务器,而不是在每个训练阶段之后更新[20],[21]。此外,所提出的成员推理攻击专门针对  小批量训练使用显式单词嵌入(以小批量展示训练句子中使用的单词集) 的模型而设计。【 for models that use explicit word embeddings (which reveal the set of words used in the training sentences in a mini-batch) with very small training mini-batches.】

    本文评估了深度学习的标准学习机制和各种体系结构的标准目标模型。我们展示了即使我们使用预先训练的最先进的目标模型,我们的攻击也是有效的。

    Differential privacy [22], [23] has been used as a strong defense mechanism against inference attacks in the context of machine learning [24], [25], [26], [27]. 
    差分隐私[22],[23]被用作机器学习背景下抵抗推理攻击的强大防御机制被广泛使用[24],[25],[26],[27]。一些著作[28]、[29]、[30]表明,通过使用对抗性训练,可以在隐私和模型精准度间找到更好的平衡。然而,这项工作的重点是在黑盒环境中的成员推理攻击。

    B.其他推理攻击

    具有有关训练数据分布的附加信息的攻击者可以执行各种类型的推断攻击。输入推断[31]、属性推断[32]、参数推断[33]、[34]和侧信道攻击[35]是此类攻击的例子。Ateniese等人[36]表明,能够访问机器学习模型参数(如支持向量机(SVM)或隐马尔可夫模型(HMM)[37])的对手,可以提取关于训练数据的有价值的信息(例如,语音识别模型中说话人的口音)。

    六、总结

    利用随机梯度下降算法的隐私弱点,设计并评估了一种新的针对神经网络模型的白盒成员推理攻击。我们在独立和联邦环境中演示了针对被动和主动推理攻击者的攻击,并假设不同的对手先验知识。我们发现,即使是很好的广义模型也很容易受到这种白盒成员推断攻击。本研究并未探讨白盒环境下深度学习隐私外泄的理论界限,这仍将是未来研究的课题。

    MY QUESTION:

    -》成员攻击 推理 概率。黑盒白盒攻击、 随机梯度下降gsd算法、损失梯度、DenseNet模型。全连通层。CNN。激活函数。谱聚类。正则化。梯度范数。ROC。隶属度。熵。

    展开全文
  • 在线学习算法对于有限内存来说、面对大数据时具有重要作用,显然重要是优化求解过程的在线性,这里理解调整梯度下降量的被动攻击学习以及鲁棒在线学习方法适应正则学习。 ...
  • 摘要:数字转型的本质是:在 “数据+算法” 定义的世界中,以智能数据服务的流动,化解复杂系统的不确定,优化资源配置效率,构建企业新型竞争优势。我们要换一个视角,我们从一种静态思维、机...
  • 今天面试官问了一些协议的基本知识,FTP的...FTP协议包括两个组成部分,其一FTP服务器,其二FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。eg:在开发网站
  • 自动运维一体

    千次阅读 2018-11-11 21:53:43
    运维一体中的平台一体,指的是运维一体与平台一体,其中运维一体是数据中心在运维方面的运营体系,它包括三方面:人员组织一体、流程一体、平台一体。 一、转型: 和目前大部从运维团队一样,我们...
  • 信息运维建设

    千次阅读 2017-08-12 16:40:51
    信息综合运维体系建设 目 录1. 用户现状分析 32. 运维服务的总体思路 32.1. 运维服务理念 32.2. 服务的目标及内容 42.3. 运维服务的保障体系 43. 运维服务体系 53.1. 运维服务管理 53.2. 运维服务工作规范 63.3....
  • 如何降低自动维护成本?

    千次阅读 2018-03-16 16:01:44
    自动测试的根本目标:测试环境中,保证新增接口功能正确,...业界普遍认为一下几种情况比较适合自动测试:回归测试主的支持维护项目,即需要长期做支持维护的产品。或者有过去版本需要长期做支持维护的产品...
  • 日本被动元件是怎样称霸全球的

    千次阅读 2019-02-08 15:24:22
    被动元件最初是台湾电子行业对某些电子元器件的叫法,区别于主动元件。而国内此前则称无源器件和有源器件。被动元件内部不需要电源驱动,其本身不消耗电能,只需输入信号就可以做出放大、震荡、计算等响应,无需外部...
  • 运行方式基于知识的推理。  专家系统使用粒度描述准确,依靠分解粒度解决矛盾,并反馈知识和推理规则更新。专家系统与机器学习有本质区别,但从机器学习的角度看,专家系统是一个给出了规则/函数又给了函数...
  • 而反观制造业,很多设备还相当原始,根本没有用到大数据或人工智能这一类的先进技术,很多甚至连自动还没有实现。 这么大的发展机遇,什么BAT们不去研究,却一个劲儿的整这些生活中本来已经很方便的服务,比如...
  • 碎片学习的骗局-如何构建自己的知识体系

    千次阅读 多人点赞 2020-02-12 10:22:44
    再次,我要留出足够的时间练习、思考、讨论,根据美国缅因州国家训练实验室的研究成果,学习方式分为主动学习和被动学习,主动学习的效率要远远高于被动学习。 1946 年,美国学者埃德加戴尔提出了 “ 学习金字塔 ” ...
  • java接口的初始

    千次阅读 2018-10-06 12:04:27
    类的四种主动引用和三种被动引用 下面来说说接口的初始 接口初始的时候编译器仍然会给接口生成一个()的类构造器,用来初始接口中的成员变量,这点在类的初始上也有做到。真正不同的地方在于第三点,类的初始...
  • 大数据的产生和力量

    千次阅读 2019-02-27 22:31:13
    这些被动主动和自动的数据 共同构成了大数据的数据来源,但其中自动式的数据才是大数据产生的最根本原因。   正如Google的首席经济学家Hal Varian所说,数据是广泛可用的,所缺乏的是从中��取 出知识的能力...
  • 红队攻防知识分享-被动信息收集

    千次阅读 2021-12-02 16:15:48
    对于收集到的信息尤其是重要信息要再三确认其信息的准确,对信息的内容中所涉及的技术点要手动查看。 3.时效: 对于收集到的信息要注意信息产生的时间和收集到的时间,是否具有时间差,时间差能否接受,如果存在...
  • 虚拟技术原理(CPU、内存、IO)

    万次阅读 2019-08-27 10:10:52
    虚拟 云计算现在已经非常成熟了,而虚拟是构建云计算基础架构不可或缺的关键技术之一。 云计算的云端系统, 其实质上就是一个大型... 比起直接使用物理平台, 虚拟在资源的有效利用、 动态调配和高可靠方面...
  • 自动运维

    千次阅读 2019-05-28 21:22:46
    这种被动、孤立、半自动式的IT运维管理模式经常让IT部门疲惫不堪,主要表现在以下三个方面。 (1)运维人员被动、效率低。 (2)缺乏一套高效的IT运维机制 (3)缺乏高效的IT运维技术工具。 二、自动运维简介 IT...
  • 分布式环境Raft一致共识算法解读

    万次阅读 2018-06-03 16:16:32
    Raft是分布式环境下的一致算法,它通过少数服从多数的选举来维持集群内数据的一致。它与RBFT算法名称有点像,然而Raft算法里不能存在拜占庭节点,而RBFT则能容忍BFT节点的存在。Raft非常类似于paxos协议(参见我...
  • 凌晨一点半的深圳雨夜: 引用上一篇文章: ...在这篇文章中,我将一个spinlock拆解成了per cpu的,然而并没有提及spinlock本身的性能和可伸缩(scalable),那么本文就来说一下。 一点说明 正...
  • 大数据可视 本篇只包含部分简答 第一章 一、填空与选择题 1.数据可视的主要作用包括___ 数据记录和表达_____、数据操作_____和____数据分析_ 三个方面,这也是可视技术支持计算机辅助数据认知的三个...
  • 被动实例

    千次阅读 2004-05-09 11:26:00
    被动实例 -- 性能与资源占用之间的平衡 译者注: 本来没打算翻译这篇文章,但前段时间进行代码走查和bug Fix工作的时候,发现程 序代码中依然存在这样的问题.于是我就将这篇文章翻译了出来.供大
  • Python入门(二)——IDE选择PyCharm,输入和输出,基础规范,数据类型和变量,常量,字符串和编码,格式我们从今天就开始正式的学习PY交易了,PY交易还行,我们有基础之后学习起来倒不是说那么的被动,我学习的是...
  • 一个是数据端口,一个是控制端口,控制端口一般21,而数据端口不一定是20,这和FTP的应用模式有关,如果是主动模式,应该20,如果为被动模式,由服务器端和客户端协商而定 FTP Port模式和...
  • 数字化工厂正在闪现迷人的色彩,制造业正在被其光芒所吸引... 数字工厂的定义虽然国内外对数字工厂的研究越来越多,但是对于数字工厂的定义确没有统一的定论。就目前而言,存在两种数字工厂的定义,一种是广义
  • 恒德可视指挥调度解决方案

    千次阅读 2017-11-15 15:07:10
    随着公安信息进程的强力推进,警用地理信息系统(PGIS)建设和应用成为提升公安信息应用水平的重要抓手,成为提高公安工作能力的重要途径。恒德PGIS在公安情报指挥中应用的实战、成效更强,从突发事件的调度...
  • 对于浏览过新品推荐的客户,电商网站主动为此类客户推荐一款新上市的商品 对于单笔订单总金额达到1000,并且该订单中包含化妆品的客户,此用户将被升级金牌客户,后续电商网站定期金牌客户推荐买一送一优惠促销 ...
  • 目前它是CAD技术应用领域内的一个重要的、且待进一步研究的课题。利用参数设计手段开发的专用产品设计系统,可使设计人员从大量繁重而琐碎的绘图工作中解脱出来,可以大大提高设计速度,并减少信息的存
  • 产品思维

    千次阅读 2018-07-06 09:44:54
    1.1 产品的本质能够供给市场,被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品、无形的服务、组织、观念或它们的组合定义:市场是提供给买卖双方交易的平台,而人在其中体现出主观能动需求对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 69,427
精华内容 27,770
关键字:

化被动为主动的重要性