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

1、教师讲座内容总结

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

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

常见的web漏洞

SQL注入攻击

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

  • 按提交字符类型可分为: 数字型 字符型 搜索型
  • 按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可以 作的事情包括:以你名义发送邮件,发消息,盗取你的帐号, 甚至于购买商品,虚拟货币转帐......形成的问题包括:我的隐私 泄露以及财产安全。java

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

讲座2、量子密码

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

量子的概念

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

量子通讯

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

量子态

  • 量子态即一组量子表征,用来表示量子力学某一粒子的运动状态。
  • 量子纠缠:在量子力学里,当几个粒子在彼此相互做用后,因为各个粒子所拥有的特性已综合成为总体性质,没法单独描述各个粒子的性质,只能描述总体系统的性质,则称这现象为量子缠结或量子纠缠(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可能得到的部分秘钥信息压缩至任意小,得到安全秘钥。
  • 提升实际系统的抗攻击能力:诱骗态和设备无关态。

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

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

技术背景

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

深度学习与密码分析

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

深度学习与密码设计

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

讲座4、信息隐藏

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

信息隐藏

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

鲁棒水印

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

可视密码

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

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

隐写

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

隐写分析

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

讲座5、区块链

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

区块链

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

区块链的架构模型

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

比特币

比特币由区块链完成,用数字加密算法、全网抵御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)。
对于不诚实节点来讲,结局是无奈的:能且只能加入主干挖矿。不加入即意味被抛弃,零收益;加入就是老实干活,按占比分红。

区块链与将来

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

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

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

安全漏洞介绍

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

漏洞挖掘技术

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

  1. 手工测试:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。
    • 优势:人的主观能动性,能够根据经验找到不少不明显、复杂不易见的漏洞。
    • 缺点:无规律可循、不可大规模进行等。
  2. 补丁对比:一种经过对比补丁之间的差别来挖掘漏洞的技术。补丁技术是实际漏洞挖掘中运用得十分广泛,对于定位漏洞的具体位置、寻找漏洞解决方式具备十分积极的现实意义。
    • 优势:发现速度快
    • 缺点:已知漏洞
    • 经常使用工具:PatchDiff二、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等

2、各小组讲座内容总结

第一组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的混合版本,即两种类型的输入。

3、感想与体会

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

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

  1. 论文复现的工做能够尽早布置下来,学生能够有不少时间选择并实现。
相关文章
相关标签/搜索