2019年密码与安全新技术讲座-课程总结报告

一、教师讲座内容总结

讲座一、Web安全与内容安全

在本次讲座中,张健毅老师就Web安全与内容安全主题分了三大部分进行了讲解。分别为网络应用安全、信息安全问题、隐私安全问题。网络应用安全主要指SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造等;信息安全问题主要讲由于当前信息化发展进入了新的阶段而产生的攻防非对称问题;隐私安全问题指许多企业和公司对用户轨迹分析。课下正好参加了CTF比赛,比赛中涉及了一些机器学习在web安全方面的应用。主要在漏洞分析与挖掘、恶意代码分析、垃圾邮件检测等安全问题中,通过机器学习算法建立攻防模型。

常见的web漏洞

SQL注入攻击

由于程序中对用户输入检查不严格,用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

  • 按提交字符类型可分为: 数字型 字符型 搜索型
  • 按HTTP提交方式可分为: GET、POST、Cookie javascript:alert(document.cookie="id="+escape("x"))
  • 按注入方式可分为: 盲注 、 union注入、 报错注入
  • 编码问题:宽字节注入(构造[`])
XSS跨站脚本攻击

XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。跨站脚本的重点不在‘跨站’上,而在于‘脚本’上。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码。实际上是在目标网站的作用域下执行了这段js代码。恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。主要分为反射型XSS、存储型XSS。

CSRF跨站请求伪造

SRF(Cross-site request forgery)跨站请求伪造 。
攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够 做的事情包括:以你名义发送邮件,发消息,盗取你的账号, 甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私 泄露以及财产安全。

验证不充分之上传漏洞
  • 客户端检测(javascript扩展名检测)
    • 浏览器禁用JavaScript
  • 服务端检测(MIME类型检测)
    • 伪造Content-type: image/gif
  • 服务端检测(文件头检测)
    • 伪造文件头(GIF89a)
  • 服务端检测(目录路径检测)
    • %00截断
  • 服务端检测(文件扩展名检测)
    • ①白名单 ②黑名单

讲座二、量子密码

在本次讲座中,孙莹老师就量子密码基础知识和最新相关的研究进展做了详尽的讲解。老师先从公钥密码体制、混合密码体制两种密码体制引出量子密码的研究背景。接着就量子基本概念,量子、量子态、量子比特的测量、量子密钥分配做了讲解。最后讲解了典型协议和基本模型介绍。

量子的概念

量子(quantum)是现代物理的重要概念。最早是由德国物理学家M·普朗克在1900年提出的。他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位的整数倍,从而很好地解释了黑体辐射的实验现象。
后来的研究表明,不但能量表现出这种不连续的分离化性质,其他物理量诸如角动量、自旋、电荷等也都表现出这种不连续的量子化现象。这同以牛顿力学为代表的经典物理有根本的区别。量子化现象主要表现在微观物理世界。描写微观物理世界的物理理论是量子力学。
一个物理量如果存在最小的不可分割的基本单位,则这个物理量是量子化的。量子是能表现出某物质或物理量特性的最小单元。

量子通信

量子密钥分发可以建立安全的通信密码, 通过一次一密的加密方式可以实现点对点方式的安全经典通信. 这里的安全性是在数学上已经获得严格证明的安全性, 这是经典通信迄今为止做不到的。现有的量子密钥分发技术可以实现百公里量级的量子密钥分发, 辅以光开关等技术, 还可以实现量子密钥分发网络。 量子态隐形传输是基于量子纠缠态的分发与量子联合测量, 实现量子态(量子信息) 的空间转移而又不移动量子态的物理载体, 这如同将密封信件内容从一个信封内转移到另一个信封内而又不移动任何信息载体自身. 这在经典通信中是无法想象的事. 基于量子态隐形传输技术和量子存储技术的量子中继器可以实现任意远距离的量子密钥分发及网络。

量子态

  • 量子态即一组量子表征,用来表示量子力学某一粒子的运动状态。
  • 量子纠缠:在量子力学里,当几个粒子在彼此相互作用后,由于各个粒子所拥有的特性已综合成为整体性质,无法单独描述各个粒子的性质,只能描述整体系统的性质,则称这现象为量子缠结或量子纠缠(quantum entanglement)。量子纠缠是一种纯粹发生于量子系统的现象;在经典力学里,找不到类似的现象。
  • 量子计算的特点:
    • 量子计算具有并行性
    • 未知量子态不可克隆
    • 未知量子态不可准确测量
    • 对未知量子态的测量可能会改变量子态

量子密码简介

密码体制
  • 用公钥密码体制分发会话秘钥
  • 用对称密码体制加密数据
量子密码
  • Shor算法:大数分解算法
  • qGrover算法:快速搜索算法
计算能力对比
  • 经典方法:运算时间随输入长度指数增长
  • 量子方法:运算时间按多项式增长

典型协议和基本模型

BB84量子秘钥分配协议

  • 量子通信:采用BB84协议,传送量子态光子(量子密钥),运用一次一密的加密手段。为了实现量子通信,采用经典信道和量子信道同时使用的模式。
  • 经典信道:传送同步信号、对照数据等。
传送过程为
  • 1:量子通信

    • Alice从四种偏振态中随机选择发送给Bob。
    • 接收者Bob接受信息发送方Alice传输的信息,并从两组测量基中随机选择一个对接收到的光子的偏振态进行测量。
  • 2:经典通信

    • 接收者Bob发送信息给信息发送方Alice并告知他自己在哪些量子比特位上使用了哪一个测量基。信息发送方Alice 在接收到Bob发送的消息之后,与本人发送时采用的基逐一比对并通知接收者Bob在哪些位置上选择的基是正确的。
    • 信息发送方Alice和接收者Bob丢掉测量基选择有分歧的部分并保存下来使用了同一测量基的粒子比特位,并从保存的信息中选取相同部分在经典信道中作对比。信道安全的情况下信息发送方Alice和接收者Bob的数据应当是没有分歧的。若存在窃听,则Alice和Bob的数据会出现不同的部分。
    • 如果没有窃听,双方将保留下来的剩余的位作为最终密钥。
    • 假如Eve进行窃听,根据物理学中的测不准原理等基本物理规律窃听者的窃听行为肯定会使Bob的QBER值发生变化,这时,通信双方通过误码率的分析就能发现窃听者是否存在。
监听检测
  • 一般手段:随机选择部分量子载体,比较初末状态
  • 对好的协议:窃听必然干扰量子态,进而引入错误
    • 一旦发现错误率较高即存在窃听,则终止通信,丢弃相关数据
    • 因为传输的是秘钥,丢弃秘钥不会泄密
  • 针对于噪声问题
    • 设定一个阈值,当错误率高于这个阈值时丢弃通信数据,反之保留。
    • 保密增强:通过压缩秘钥长度,将Eve可能获得的部分秘钥信息压缩至任意小,获得安全秘钥。
  • 提高实际系统的抗攻击能力:诱骗态和设备无关态。

讲座三、人工智能与密码分析设计

在本次讲座中,金鑫老师通过密码分析与机器学习、深度学习简介与现状、深度学习与密码分析、深度学习与密码设计四个方面讲解基于深度学习的密码分析与设计初探。在深度学习与密码设计重点讲解了GAN原理与密码算法的结合。

技术背景

  • 用AI和ML解决安全问题(让安全更智能):
    计算机取证、垃圾邮件检测、身份验证、网络钓鱼检测与预防、僵尸网络监测、入侵检测和响应、异常行为检测、恶意软件标识、数据匿名/反匿名、社会网络安全、大数据安全分析等。
  • 用安全性解决A问题(让AI更安全):
    分布式安全推理与决策、安全的多方计算和加密方法、隐私保护数据挖掘、差异隐私、验证码的设计与分析、人工智能信任和声誉方法、通过智能探测进行漏洞测试、生成训练和测试集的技术和方法等。

深度学习与密码分析

  1. 神经网络的侧信道攻击
  2. 基于循环神经网络的明文破译
  3. 基于生成对抗网络的口令破译
  4. 基于深度神经网络的密码基元识别

深度学习与密码设计

密码设计主要借用GAN的思路。
生成式对抗网络(GAN, Generative Adversarial Networks)是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。
密码组件经过生成对抗网络中的算法生成器,得到设计出来的密码算法,同时密码破解器将对此密码算法进行破解,算法生成器和密码破解器就这样在相互博弈中学习产生出好的算法和好的破解方法。

讲座四、信息隐藏

在本次讲座中,夏超老师讲解了信息隐藏的四个方面,分别为鲁棒水印、可视密码、隐写、隐写分析四个方面。

信息隐藏

信息隐藏是指将特定用途的信息隐蔽地藏于其他载体(Cover)中,使得它们难以被发现或者消除,通过可靠提取隐藏的信息,实现隐蔽通信、内容认证或内容保护功能。

鲁棒水印

鲁棒水印是重要的数字产权管理与安全标识技术之一,指将与数字媒体版权或者购买者有关的信息嵌入数字媒体中,使攻击者难以在载体不遭到显著破坏情况下消除水印,而授权者可以通过检测水印实现对安全所有者或者内容购买者等信息的认定。

可视密码

可视密码技术使Naor和Shamir于1994年首次提出的,其主要特点是恢复秘密图像时不需要任何复杂的密码学计算,而是以人的视觉即可将秘密图像辨别出来。其做法是产生n张不具有任何意义的胶片,任取其中t张胶片叠合在一起即可还原出隐藏在其中的秘密信息。

隐写
  • 隐写是基于信息隐藏的隐蔽通信或者隐蔽存储方法,将秘密信息难以感知地隐藏在内容可公开的载体中,保护保密通信或者保密存储这些行为事实。
  • 称隐写后的载体为隐写媒体Stego。

隐写

  • LSB嵌入
  • 矩阵嵌入
  • 自适应隐写
    • 空域自适应隐写
    • JPEG域自适应隐写

隐写分析

  • 高维隐写分析特征
    高维隐写分析特征可以尽可能多地捕获隐写对图像统计特性的影响。
  • 空域高维隐写分析特征:
    • JPEG图像解压到空域,之前的JPEG图像隐写分析特征都是在DCT系数上提取的。因为空域提取的特征对JPEG图像自适应隐写更为敏感。
    • 利用了相位信息(JPEG phase),所以被称为JPEG-phase-aware特征。
  • 选择信道高维隐写分析特征

讲座五、区块链

在本次讲座中,张健毅老师讲解了区块链的概念、技术和未来。

区块链

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

区块链的架构模型

区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。

比特币

比特币由区块链完成,用数字加密算法、全网抵御51%算力攻击保证资产与交易的安全。交易记录以被全体网络计算机收录维护,每笔交易的有效性都必须经过区块链检验确认。区块回报每产出21万个区块减半一次,大约4年,最近一次减半在2016年7月9日,而此种收敛等比数列的和必然是有限的,到2140年时,将不再有新的比特币产生,最终流通中的比特币将总是略低于2100万个。截至2018年3月,比特币供应量约1700万个,实际的流通量还会因为私钥丢失等因素更加减少。

比特币交易


机制:每一位所有者(A)利用他的私钥对前一次交易T1和下一位所有者(B)的公钥(俗称:地址)签署一个随机散列的数字签名,A将此数据签名制作为交易单T2并将其(交易单T2)广播全网,电子货币就发送给了下一位所有者。
Block

  • 比特币网络中,数据以文件的形式被永久记录,称之为区块(Block)。
  • 记录交易单的数据单元叫做Block,一个Block上会记录很多交易单。
  • Block有很多份,每个Block只记录比特币全网10分钟内的交易信息,每约10分钟产生一个新的Block。
  • 每个新的Block含有的一定数额的比特币归创建者所有,此规则称为“激励”。
挖矿工作

生产Block的过程,被形象的称为“挖矿”,生产工也被称为“矿工”。
挖矿过程实际上就是反复去尝试寻找一个随机数(又称“幸运数”),使得将最后一个Block的hash值、当前世界中尚未被加入到任何Block的交易单、随机数三部分组织起来送入SHA256算法计算出散列值X(256位),如果X满足一定条件(比如前20位均为0),那么该节点初步获得创建Block的权利。

POW

对于每个Block存在一个难度系数,此系数可以转换为一个256位的整数,挖矿计算出的Hash值X必须小于该整数,此条件作为寻找随机数的附加条件。
当某时刻网络检测到新Block的产生速度不符合约10分钟一个时,将调解该系数(加大或者缩小),从而使下一个Block的产生速度符合预期。

每当节点(矿工)计算出了一个符合条件的随机数时,它仅仅获得了创建临时Block的权利,它立即将相关数据打包好作为一个临时Block并广播全网。
每10分钟内全网不止一个节点能计算出幸运数字,即十分钟内会有多个节点在网络中广播它们各自打包好的临时Block(都是合法的)。通过谁先计算出谁后计算出来决定接受谁的临时Block转正显然很难做到,因为所有节点的时间不可能严格一致(而且可以任意被调节),而且网络传输有快有慢。

Block链分支

某一节点若收到多个针对同一前续Block的后续临时Block,则该节点会在本地Block链上建立分支,多个临时Block对应多个分支。
从block hash算法我们知道,合理的block并不是唯一的,同一高度存在多个block的可能性。那么,当同一个高度出现多个时,主链即出现分叉(Fork)。遇到分叉时,网络会根据下列原则选举出Best Chain:

  • 不同高度的分支,总是接受最高(即最长)的那条分支
  • 相同高度的,接受难度最大的
  • 高度相同且难度一致的,接受时间最早的
  • 若所有均相同,则按照从网络接受的顺序
  • 等待Block Chain高度增一,则重新选择Best Chain
分支博弈

我们假设所有的节点都是理性的,追求收益最大化;都是不诚实的,且不惜任何手段获取利益;所有节点均独自挖矿不理会其他节点,并将所得收益放入自己口袋,现象就是一个节点挖一个分支。由于机器的配置总是有差别的,那么算力最强的节点挖得的分支必然是最长的,如果一个节点的分支不是最长的,意味其收益存在不被认可的风险(即零收益)。为了降低、逃避此风险,一些节点肯定会联合起来一起挖某个分支,试图成为最长的分支或保持最长分支优势。
一旦出现有少量的节点联合,那么其他节点必然会效仿,否则他们收益为零的风险会更大。于是,分支迅速合并汇集,所有节点都会选择算力更强的分支,只有这样才能保持收益风险最小。最终,只会存在一个这样的分支,就是主干分支(Best/Main Chain)。
对于不诚实节点来说,结局是无奈的:能且只能加入主干挖矿。不加入即意味被抛弃,零收益;加入就是老实干活,按占比分成。

区块链与未来

区块链未来主要起着货币、合约、治理作用。
在货币方面会涉及货币的发行机制、货币的分配机制、货币的币值调节机制。
在合约方面会涉及股权、债权、证券与金融合约、互助保险、权利的登记、转让、博彩、防伪、物联网、智能合约。
在治理方面会涉及身份认证、公证、见证、司法仲裁、投票、健康管理、人工智能、去中心化自治组织。

讲座六、安全漏洞利用与挖掘

在本次讲座中,王志强老师从安全漏洞利用与挖掘角度来讲解。首先讲了安全漏洞的定义以及最近一些安全漏洞引发的重大事件。接着讲了不同类型的漏洞挖掘技术。最后结合实例路由器协议漏洞挖掘,并在课堂展示了NFC打开手电筒的漏洞。

安全漏洞介绍

  • 安全漏洞定义:
    指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能够在未授权的情况下利用这些缺陷破坏系统的安全策略。
  • 安全漏洞事件
    • HeartBlood漏洞
    • Bash漏洞
    • 脱裤门:天涯、CSDN、人人、多玩、cnbeta、QQ关系数据库、携程;
    • 棱镜门

漏洞挖掘技术

常见漏洞挖掘技术如下:手工测试、补丁比对、程序分析、二进制审核、模糊测试

  1. 手工测试:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。
    • 优点:人的主观能动性,可以根据经验找到很多不明显、复杂不易见的漏洞。
    • 缺点:无规律可循、不可大规模进行等。
  2. 补丁对比:一种通过对比补丁之间的差异来挖掘漏洞的技术。补丁技术是实际漏洞挖掘中运用得十分普遍,对于定位漏洞的具体位置、寻找漏洞解决方式具有十分积极的现实意义。
    • 优点:发现速度快
    • 缺点:已知漏洞
    • 常用工具:PatchDiff2、bindiff
  3. 程序分析:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
    • 优点:漏洞检测范围大,覆盖率达100%,自动化程度高
    • 缺点:存在漏报和误报的可能性
    • 数据流分析:Fortify SCA、Coverity Prevent、FindBugs等
    • 污点分析:Pixy、TAJ(基于WALA)
    • 符号执行:Clang、KLEE
    • 模型检测:BLAST、MAGIC、MOPS
  4. 动态程序分析:在运行计算机程序的条件下,验证代码是否满足规范性、安全性等指标的一种代码分析技术。
    • 一般通过插桩技术分析程序的异常行为。插桩技术是指在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,然后执行插桩后的程序,通过“桩”的执行获取程序的控制流和数据流信息,进而分析程序的异常行为。
    • 优点:自动化程度高、覆盖率较高
    • 缺点:漏报和误报、冗余代码导致时间开销增大
    • 工具: Android——Xposed
  5. 二进制审核:源代码不可得,通过逆向获取二进制代码,在二进制代码层次上进行安全评估
    • 存在问题:逆向会导致信息丢失,理解困难,甚至引入逻辑错误
    • 二进制及编辑工具: IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
  6. 模糊测试:通过向被测目标输入大量的畸形数据并监测其异常来发现漏洞
    • 关键:测试用例构造,自动化
    • 优点:无需源码、误报低、自动化程度高
    • 缺点:覆盖率低
    • 工具:Peach、Sulley、Autodafe、SPIKE等

二、各小组讲座内容总结

第一组Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale

背景

绝大多数Android恶意软件都是重新打包的应用程序,经过观察结果也表明,恶意重新打包的应用程序是Android恶意软件的支柱。

方法

本文提出了一个市场或跨市场上检测重新包装的Android恶意软件MassVet,框架检测的范围包括

整个MassVet框架图:

MassVet首先处理所有的应用程序,包括用于查看结构的数据库和用于数据库的数据库。两个数据库都经过排序以支持二进制搜索,并用于审核提交到市场的新应用程序。考虑一个重新包装的AngryBird。一旦上载到市场,它首先在预处理阶段自动拆解成一个小型表示,从中可以识别其接口结构和方法。它们的功能(用于视图,用户界面,小部件和事件的类型,以及方法,控制流程和代码)通过计算映射到v核和m核分别是视图和控制流的几何中心。应用程序的v-cores首先用于通过二进制搜索查询数据库。一旦匹配满足,当存在具有类似的AngryBird用户界面结构的另一个应用程序时,将重新打包的应用程序与方法级别的市场上的应用程序进行比较以识别它们的差异。然后自动分析这些不同的方法(简称差异)以确保它们不是广告库并且确实是可疑的,如果是,则向市场报告。当没有任何东西2时,MassVet继续寻找方法数据库中的AngryBird的m核心。如果找到了类似的方法,我们的方法会尝试确认包含方法的app确实与提交的AngryBird无关,并且它不是合法的代码重用。在这种情况下,MassVet报告认为是令人感到满意的。所有这些步骤都是完全完全自动化,无需人工干预。

特征提取,将UI结构建模为视图,这个视图是一个有向加权图,包括应用程序中的所有视图以及它们之间的导航关系。在这样的图上,每个节点都是一个视图,其活动小部件的数量作为其权重,并且连接节点的网络描述了由它们之间的关系。根据其类型的事件,边缘可以彼此区分,这样的视图可以有效的描述具有相当复杂的UI结构的APP。视图的几何中心,称为v-core.
DiffCom分析

对于通过批量审查流程的应用程序,视图分析首先确定它是否与市场上已有的应用程序相关。如果是这样,将进一步比较这两个应用程序,以确定其恶意软件分析的差异。否则,将在方法级别针对整个市场检查应用程序,以尝试找到与其他应用程序共享的程序组件。进一步检查差异和公共组件以删除公共代码重用(库,示例代码等)并收集其安全风险的证据。这种“差异 - 共性”分析由DiffCom模块执行。 我们还提供了有效的代码相似性分析器的实体,并讨论了DiffCom的规避。

第二组Spectre Attacks: Exploiting Speculative Execution

背景

通常,处理器不知道程序的未来指令流。例如,当无序执行执行条件分支指令时,会发生这种情况,该条件分支指令的方向取决于其执行尚未完成的先前指令。在这种情况下,处理器可以保存包含其当前寄存器状态的检查点,对程序将遵循的路径进行预测,并沿路径推测性地执行指令。如果预测结果是正确的,则不需要检查点,并且在程序执行顺序中退出指令。否则,当处理器确定它遵循错误的路径时,它通过从检查点重新加载其状态并沿着正确的路径继续执行来放弃沿路径的所有待处理指令。执行放弃指令,以便程序执行路径外的指令所做的更改不会对程序可见。因此,推测执行维护程序的逻辑状态,就好像执行遵循正确的路径一样。

幽灵攻击

幽灵攻击涉及诱使受害者推测性地执行在正确的程序执行期间不会发生的操作,并且通过旁路分支将受害者的机密信息泄露给攻击者。论文中的幽灵攻击结合了侧信道攻击,故障攻击和面向返回编程的方法,可以从受害者的进程中读取任意内存。更广泛地说,论文说明了推测性执行实施违反了许多软件安全机制所依据的安全假设,包括操作系统进程分离,静态分析,容器化,即时(JIT)编译以及缓存时序/侧通道的对策攻击。由于在数十亿设备中使用的Intel,AMD和ARM微处理器中存在易受攻击的推测执行能力,这些攻击对实际系统构成严重威胁。

案例展示

下面这段代码中,攻击者首先使用有效的x调用相关代码,训练分支预测器判断该if为真。 然后,攻击者设置x值在array1_size之外。 CPU推测边界检查将为真,推测性地使用这个恶意x读取array2 [array1 [x] * 256]。 读取array2使用恶意x将数据加载到依赖于array1 [x]的地址的高速缓存中。当处理器发现这个if判断应该为假时,重新选择执行路径,但缓存状态的变化不会被恢复,并且可以被攻击者检测到,从而找到受害者的存储器的一个字节。

运行结果:

第三组All Your GPS Are Belong To Us:Towards Stealthy Manipulation of Road Navigation Systems

背景

道路导航系统进行隐身操纵攻击的可行性。目标是触发假转向导航,引导受害者到达错误的目的地而不被察觉。

攻击思路

略微改变GPS位置,以便假冒的导航路线与实际道路的形状相匹配并触发实际可能的指示。

贡献

本篇论文共做出三点贡献:

  1. 提出了一种秘密操纵道路导航系统的攻击方法。该算法利用了现实中出租车行驶轨迹,并对算法进行了广泛的评估。
  2. 我们实现了攻击算法和一个低成本的便携式GPS欺骗器.在道路上的实际测量和驾驶测试证实了攻击的可行性。
  3. 我们进行了一项用户调查研究,以证明在道路行驶过程中人为的因素可以影响攻击是否成功。这些结果表明,有些司机常见的驾驶习惯大概率会让他们遭受到GPS欺骗攻击,并对结果进行了分析和提出了相应的对策。

第四组With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning

背景

  1. 迁移学习:高质量模型的训练需要非常大的标记数据集,小型公司没有条件训练这么大的数据集或者无法得到这么大的数据集,往往采用迁移学习。第三小组介绍了迁移学习攻击:一个小型公司借用大公司预训练好的模型来完成自己的任务。我们称大公司的模型为“教师模型“,小公司迁移教师模型并加入自己的小数据集进行训练,得到属于自己的高质量模型”学生模型”。
  2. 黑/白盒攻击:白盒攻击是攻击者能够获知分类器的内部体系结构及所有权重。它允许攻击者对模型进行无限制的查询,直至找到一个成功地对抗性样本。这种攻击常常在最小的扰动下获得接近100%的成功,因为攻击者可以访问深度神经网络的内部结构,所以他们可以找到误分类所需的最小扰动量。然而白盒攻击一般被认为是不切实际的,因为很少会有系统公开其模型的内部结构。黑盒攻击是攻击者不知道受害者的内部结构,攻击者要么尝试反向工程DNN的决策边界,建一个复制品用于生成对抗样本,要么反复查询生成中间对抗样本并不断迭代改进。黑盒攻击容易被防御。

攻击思路

  1. 将target图狗输入到教师模型中,捕获target图在教师模型第K层的输出向量
  2. 对source图加入扰动,使得加过扰动的source图(即对抗样本)
  3. 在输入教师模型后,在第K层产生非常相似的输出向量。
  4. 由于前馈网络每一层只观察它的前一层,所以如果我们的对抗样本在第K层的输出向量可以完美匹配到target图的相应的输出向量,那么无论第K层之后的层的权值如何变化,它都会被误分类到和target图相同的标签。
  5. 计算扰动借用DSSIM、GAN的思想,来使扰动不易被人眼察觉。

复现结果

左图为source image,中图为加过扰动的对抗样本,右图为其要误分类成的target image。

第五组safeinit:Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities

背景

  1. 未初始化漏洞:未初始化值的使用仍然是C / C ++代码中的常见错误。这不仅导致未定义的和通常不期望的行为,而且还导致信息泄露和其他安全漏洞。
  2. 未定义行为:简单地说,未定义行为是指C语言标准未做规定的行为。编译器可能不会报错,但是这些行为编译器会自行处理,所以不同的编译器会出现不同的结果,什么都有可能发生,这是一个极大的隐患,所以我们应该尽量避免这种情况的发生。

攻击思路

  1. llvm/clang架构:LVM包括了一个狭义的LLVM和一个广义的LLVM。广义的LLVM其实就是指整个LLVM编译器架构,包括了前端、后端、优化器、众多的库函数以及很多的模块;而狭义的LLVM其实就是聚焦于编译器后端功能(代码生成、代码优化等)的一系列模块和库。Clang是一个C++编写、基于LLVM的C/C++/Objective-C/Objective-C++编译器。Clang是一个高度模块化开发的轻量级编译器,它的编译速度快、占用内存小、非常方便进行二次开发。
  2. safeinit架构:编译器在获得C/C++文件后,编译器前端将源文件转换为中间语言(IR),通过初始化、代码优化结合现存编译器的优化器,之后通过无效数据消除、强化分配器最后获得二进制文件。Safeinit在整个过程中所添加的就是 初始化全部变量、优化以及强化分配器,来避免或缓解未初始化值。最后,SafeInit优化器提供了非侵入式转换和优化,它们与现有的编译器优化(必要时自行修改)以及最终组件(现有“死存储消除”优化的扩展)一起运行。

实验结果

下表提供了每个基准测试的allocas数量(表示局部变量的数量,偶尔的参数副本或动态分配)的详细信息。 该表还提供了(剥离的)二进制大小; 在许多情况下,初始化的影响对最终的二进制大小没有任何影响,并且在最坏的情况下它是最小的。#INITS是现有编译器优化之后剩余的大量初始化数量,并且我们的优化器已经分别运行。

第六组Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning

攻击思路

理想世界:学习过程包括执行数据清理和标准化的数据预处理阶段,之后可以表示训练数据;
测试阶段:模型在预处理后应用于新数据,并使用在训练中学习的回归模型生成数值预测值;
对抗性世界:在中毒攻击中,攻击者在训练回归模型之前将中毒点注入训练集。

实现结果

  • 对三个数据集进行岭回归攻击的MSE,论文提出的新优化(OptP)和统计(StatP)攻击比基线更有效。OptP是根据表I的最佳最佳优化攻击。
  • 在三个数据集上攻击LASSO的MSE,发现StatP和OptP能够非常有效地毒害数据集,由于基线(bgd)。OptP是根据表I的最佳优化攻击。

第七组Convolutional Neural Networks for Sentence Classification

背景

这篇论文主要研究用于句子分类的卷积神经网络(CNN)的实验,这些实验是在预先训练过的单词向量的基础上训练的。一个简单的CNN具有很少的超参数调整和静态向量,在多个基准点上都能达到很好的效果。通过微调学习特定于任务的向量可以进一步提高性能。

CNN做句子分类的优势

  • 特征提取的高效性
  • 数据格式的简易性
  • 参数数目的少量性

实验结论

  • CNN-rand:所有的word vector都是随机初始化的,同时当做训练过程中优化的参数;
  • CNN-static:所有的word vector直接使用无监督学习即Google的word2vector工具得到的结果,并且是固定不变的;
  • CNN-non-static:所有的word vector直接使用无监督学习即Google的word2vector工具得到的结果,但是会在训练过程中被微调;
  • CNN-multichannel:CNN-static和CNN-non-static的混合版本,即两种类型的输入。

三、感想与体会

  1. 以前对密码和安全的看法只觉得安全对日常用户的影响不大,经过一学期的学习发现,安全涉及到我们的日常生活、学习等各个方面。安全是各个领域的基础。比如比特币正是因为其安全性才可以有充当货币的性质。
  2. 这门课有很多讲座都是学科之间相互交叉融合,拓展了我们的视野。每节课要求读论文的环节使得对该方向最新的趋势也有一定的掌握。

四、对本课程的建议和意见

  1. 论文复现的工作可以尽早布置下来,学生可以有很多时间选择并实现。

posted on 2019-06-16 21:07  20189214李熹桥  阅读(628)  评论(0编辑  收藏  举报

导航