20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结

课程:《密码与安全新技术专题》

班级: 201892
姓名: 郭开世
学号:20189221
上课教师:谢四江
上课日期:2019年2月26日——2019年6月4日
必修/选修: 选修

专题讲座总结

第一讲:web安全与内容安全

典型攻击方式:高等持续性攻击(APT):2010年6月震网(stuxnet)攻击⇒物理隔离是不安全的,第三方恶意代码注入:2015年9月Xcode Ghost⇒底层开发软件在编译过程攻击,上帝攻击模式(GPT):基于全球全网大数据能力对用户进行用户画像。

威胁方-防护方的非对称性:攻防技术非对称,攻防成本非对称和攻防主体非对称。

常见的Web漏洞:SQL注入:输入验证不足或Web应用程序中SQL语句构造不当,跨站脚本攻击漏洞,cookie欺骗,CSPF(跨站请求伪造),web信息泄露,权限问题,逻辑漏洞,第三方程序漏洞,web服务器解析漏洞,弱口令,SSRF。

在这次课程作业中,我对SQL Injection这一方面进行了一些论文阅读。对SQL注入有了一些了解。

常见的SQL注入攻击有:重言式(tautology),非法/逻辑错误查询(illegal/logically incorrect queries),联合查询(union query),堆叠查询(Stacked Queries),条件陈述和存储过程(stored procedures)等。

常见的SQL检测与预防有:静态分析(Static Analysis),动态分析(Dynamic Analysis)和组合方法(Combined Approach)。

  • 静态分析是在到达执行阶段之前在系统源代码中找到弱点和恶意代码,主要是语言特定的。
    静态分析缺点包括:
    • 开发人员需要手动更改易受攻击的部分
    • 无法识别存储过程攻击
    • 其结构直到运行时才被指定
  • 动态分析(Dynamic Analysis)
    • 动态方法技术可用于分析由Web应用程序使用用户输入数据生成的动态或运行时SQL查询。
    • 动态技术下在运行时生成的SQL注入检测方法,在将查询发布到数据库服务器之前执行查询,查询的异常性质导致它甚至不会传递到数据库执行。
    • 动态分析的主要缺点是在运行时生成模型所涉及的开销。
  • 组合方法(Combined Approach)
    • 组合方法利用静态分析和动态分析方法的优势来检测和防止SQL注入。在静态阶段,识别热点,之后创建模型,指示可以在该热点处进行的所有有效查询。在运行时,将检查运行时查询以查看它们是否与其模型匹配。如果不是,则不会将查询发送到数据库以供执行。

第二讲:量子密码技术

量子密码体制使用:
主要用于党政机关,实际使用中仅负责密钥分发。

量子密码算法:
- shor算法:提出大数分解,能在多项式时间内分解大数。受影响最大的密码体制为RSA等大数公钥密码
- Grover算法:提出搜索无序数据库量子算法,快速搜索算法。使密钥搜索的时间复杂度在二次加速的基础上得到了进一步的提速。

量子密码特点:

  • 并行性
  • 不可克隆定理
  • 测不准原理
  • 对未知量子态的测量可能会改变量子态

在这次课程作业中,我对量子密码技术的最新研究现状有了一些了解。

  • 海森堡不确定性原则:这个原则说如果你衡量一件事,就不能准确地测量另一件事。例如,如果您将此原则应用于人类,则可以测量一个人的身高,但您无法衡量他的体重。关于这个原则唯一奇怪的是它只有在你尝试测量某些东西时才变为现实。该原理适用于光子。光子具有波状结构,并且在某个方向上偏振或倾斜。在测量光子偏振时,所有后续测量都会受到我们为极化做出的测量选择的影响。该原则在防止攻击者在量子密码学中的努力方面起着至关重要的作用。
  • 光子偏振原理:这个原理指的是,由于无克隆原理,窃听者无法复制独特的“量子比特”(量子比特)即未知量子态。如果尝试测量任何属性,它将干扰其他信息。
  • 量子密钥分配(QKD):经典密码学中存在一些流,同时分配密钥,这些流量在量子密码学中被量子密钥分发方法所克服。QKD用于生成使用两个信道在双方之间共享的秘密密钥。QKD使用两个频道。首先,量子信道用于传输单光子透明路径,它可以由光纤或空间制成。第二个是用于传输编码数据的经典频道,它可以是电话或互联网线路。。
  • QKD基于以下协议。BB84协议:1984年,Charles H. Bennett和Gilles Brassard开发了第一个称为“BB84”的密钥分发协议。它基于海森堡不确定性原理。

单光子量子点的传输:

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第1张图片

第三讲:基于深度学习的密码分析与设计

深度学习与密码分析

  • 基于卷积神经网络的测信道攻击
  • 基于循环神经网络的明文破译
  • 基于生成对抗网络的口令破译
  • 基于深度学习的密码基元识别

深度学习与密码设计

  • 生成对抗网络设计密码

    研究人员MartínAbadi和David Andersen证明神经网络或“神经网络” - 松散地基于人工神经元的计算系统 - 可以解决如何使用简单的加密技术。

    在他们的实验中,计算机能够使用机器学习进行自己的加密形式,而不需要教授特定的加密算法。加密是非常基础的,特别是与我们当前的人工设计系统相比。即便如此,它仍然是神经网络的一个有趣的步骤,作者声称“通常并不意味着在密码学方面很出色”。机器学习提供了一种解决方案,但并不是一种简单的方法来理解它是如何实现的。在实践中,很难为以这种方式创建的加密方法提供任何安全保证。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第2张图片

在这次课程作业中,我对生成对抗网络比较感兴趣。对GAN方向的论文进行了一些阅读。

GAN的原理:

GAN的主要灵感来源于博弈论中零和博弈的思想,应用到深度学习神经网络上来说,就是通过生成网络G(Generator)和判别网络D(Discriminator)不断博弈,进而使G学习到数据的分布,如果用到图片生成上,则训练完成后,G可以从一段随机数中生成逼真的图像。G, D的主要功能是:

● G是一个生成式的网络,它接收一个随机的噪声z(随机数),通过这个噪声生成图像

● D是一个判别网络,判别一张图片是不是“真实的”。它的输入参数是x,x代表一张图片,输出D(x)代表x为真实图片的概率,如果为1,就代表100%是真实的图片,而输出为0,就代表不可能是真实的图片

训练过程中,生成网络G的目标就是尽量生成真实的图片去欺骗判别网络D。而D的目标就是尽量辨别出G生成的假图像和真实的图像。这样,G和D构成了一个动态的“博弈过程”,最终的平衡点即纳什均衡点.

GAN的特点:

● 相比较传统的模型,他存在两个不同的网络,而不是单一的网络,并且训练方式采用的是对抗训练方式

● GAN中G的梯度更新信息来自判别器D,而不是来自数据样本

GAN 的优点:

● GAN是一种生成式模型,相比较其他生成模型(玻尔兹曼机和GSNs)只用到了反向传播,而不需要复杂的马尔科夫链

● 相比其他所有模型, GAN可以产生更加清晰,真实的样本

● GAN采用的是一种无监督的学习方式训练,可以被广泛用在无监督学习和半监督学习领域

● 相比于变分自编码器, GANs没有引入任何决定性偏置( deterministic bias),变分方法引入决定性偏置,因为他们优化对数似然的下界,而不是似然度本身,这看起来导致了VAEs生成的实例比GANs更模糊

● 相比VAE, GANs没有变分下界,如果鉴别器训练良好,那么生成器可以完美的学习到训练样本的分布.换句话说,GANs是渐进一致的,但是VAE是有偏差的

● GAN应用到一些场景上,比如图片风格迁移,超分辨率,图像补全,去噪,避免了损失函数设计的困难,不管三七二十一,只要有一个的基准,直接上判别器,剩下的就交给对抗训练了。

GAN的缺点:

● 训练GAN需要达到纳什均衡,有时候可以用梯度下降法做到,有时候做不到.我们还没有找到很好的达到纳什均衡的方法,所以训练GAN相比VAE或者PixelRNN是不稳定的,但我认为在实践中它还是比训练玻尔兹曼机稳定的多

● GAN不适合处理离散形式的数据,比如文本

● GAN存在训练不稳定、梯度消失、模式崩溃的问题(目前已解决)

生成对抗网络(Generative Adversarial Network,简称GAN):

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第3张图片

第四讲:信息隐藏

信息隐藏:

信息隐藏是将消息隐蔽的藏于载体中,实现隐蔽通信,内容认证或内容保护等。

信息隐藏技术:鲁棒水印 (Robust Water making),可视密码(Visual Cryptography)以及隐写( Steganography)

隐写:LSB嵌入,矩阵嵌入,自适应隐写,隐写分析,高维特征以及隐写选择信道。

隐写术的优缺点

  • 需要许多额外的付出来隐藏相对较少的信息。
  • 尽管采用一些诸如上述方案也许很有效;但是一旦被破解,整个方案就毫无价值。(改进:具体的加入方法由秘钥决定;先加密再隐写)
  • 隐写术适合:通信双方宁愿内容丢失,也不愿意它们进行秘密通信的事物被人发现。加密标志信息也是重要和秘密的,通过它可以找出想进行消息隐藏的发送方或接收方。

隐写分析:

数字隐写分析就是通过隐写技术或软件对隐藏的数据进行检测和取证的过程,可能的话,还会提取出被隐藏的载荷。如果被隐藏的载荷是加过密的,那么隐写分析就要对其进行破解。

主要采用以下两个手段:

  • 异常分析:异常分析会用到检测相似文件的对比技术,如果没有文件可以用于对照,还会采用一些分析技术来发现文件的其他异常特征。
  • 隐写分析工具:这些工具具有相同的工作原理:首先检测文件的某些信息,根据判断其中包含隐藏内容的,就标记为可疑文件。然后,将可疑文件寄存起来以便后续进行深度分析;第二步分析环节可以是半自动半手工的,大多数先进的工具都允许人工查看数据进而分析发现异常特征。

在课下我还深入学习了JPEG图像格式的Jphide隐写、LSB隐写以及Powload及压缩包类隐写。

Jphide是基于最低有效位LSB的JPEG格式图像隐写算法,使用JPEG图像作为载体是因为相比其他图像格式更不容易发现隐藏信息,因为JPEG图像在DCT变换域上进行隐藏比空间域隐藏更难检测,并且鲁棒性更强,同时Blowfish算法有较强的抗统计检测能力。

Jphide隐写过程大致为:先解压压缩JPEG图像,得到DCT系数;然后对隐藏信息用户给定的密码进行Blowfish加密;再利用Blowfish算法生成伪随机序列,并据此找到需要改变的DCT系数,将其末位变为需要隐藏的信息的值。最后把DCT系数重新压回成JPEG图片,下面是个人对隐写过程理解画出的大致流程图。

LSB隐写是最基础、最简单的隐写方法,具有容量大、嵌入速度快、对载体图像质量影响小的特点。

LSB的大意就是最低比特位隐写。我们将深度为8的BMP图像,分为8个二值平面(位平面),我们将待嵌入的信息(info)直接写到最低的位平面上。换句话说,如果秘密信息与最低比特位相同,则不改动;如果秘密信息与最低比特位不同,则使用秘密信息值代替最低比特位。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第4张图片

在Powload的案例中,使用隐写术来检索包含恶意代码的图像。基于趋势科技分析的Powload变体的代码提取案例程序,Powload滥用公开可用的脚本(Invoke-PSImage)来创建包含其恶意代码的图像。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第5张图片

在这次课程作业中,我阅读了一些行业大牛Jessica Fridrich的论文。

Jessica Fridrich确实在隐写方面造诣极深。

第五讲:区块链技术

比特币的特点:数字货币,不依托于任何国家或组织而利用计算机技术独立发行,通过P2P分布式技术实现,无中心点,所有人均可自由的参与,总量有限,不可再生,本身机制开源,可以被山寨。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第6张图片

区块链的一些要素总结:

  • 包含一个分布式数据库
  • 分布式数据库是区块链的物理载体,区块链是交易的逻辑载体,所有核心节点都应包含该条区块链数据的全副本
  • 区块链按时间序列化区块,且区块链是整个网络交易数据的唯一主体
  • 区块链只对添加有效,对其他操作无效
  • 基于非对称加密的公私钥验证
  • 记账节点要求拜占庭将军问题可解/避免
  • 共识过程(consensus progress)是演化稳定的,即面对一定量的不同节点的矛盾数据不会崩溃。
  • 共识过程能够解决double-spending问题

区块链技术的4个基本性质:

  • 点对点等网络。它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终结果。
  • 共识机制。防止了“双重支付”。
  • 数据可验证。PKI公钥体系,不可变数据。
  • 奖励合作的制度设计。非合作博弈是指在策略环境下,非合作的框架把所有的人的行动都当成是个别行动。它主要强调一个人进行自主的决策,而与这个策略环境中其他人无关。纳什均衡。

区块链技术发展的三个阶段:

  • 货币:货币的发行机制,货币的分配机制,货币的币值调节机制。
  • 合约:股权、债权,博彩,防伪等
  • 治理:身份认证,健康管理,公正、见证,司法仲裁等

个人对区块链技术的看法:

  • 区块链技术不等于炒币。
  • 技术是无罪的,而热点、泡沫经常一起出现。
  • 很多盲目的行为完全是在破坏市场

在本次的课程作业中,我对区块链技术的研究现状有了一些了解。

区块链通过分布式数据存储和共识机制确保数据可以被跟踪并且不容易被篡改。它提供了一种思想和方案,以分散的方式建立信任关系,并在数字证书和身份认证领域受到广泛关注。 提出了第一个使用比特币块链系统作为框架的分布式PKI系统Certcoin,它相当于CA,提供有效的密钥查询服务。 使用区块链存储已发布或已撤销证书的哈希值。Axon 改进了Certcoin方案 并提出了PKI认证系统PB-PKI(基于区块链的PKI中的隐私感知),用于隐私保护。凯伦等人。 基于以太网块链平台提出的PKI认证系统,无需CRL或OCSP即可执行撤销检查。松本介绍了经济激励方法,并提出了基于以太网及时响应的PKI IKP(Instant Karma PKI)。

BC(区块链)是一种源自比特币基础技术的新技术系统。最早的定义来自Satoshi Takemoto在2009年发表的论文。BC具有许多技术特征,例如分散化,不可能被篡改和伪造,这使其在确保信息可靠性,安全性,可追溯性和传统技术的其他方面具有无可比拟的优势。基于ABC的PKI系统确保写入BC上的证书是可信的。它可用于跨多个组织发布和管理自签名数字证书,还可用于替换使用不同CA颁发证书的桥接CA连接的多个实例。

第六讲:漏洞挖掘及攻防技术

安全漏洞定义:指信息系统在设计、实现或者运行管理过程中存在的缺陷或不足,从而使攻击者能够在未授权的情况下利用这些缺陷破坏系统的安全策略。

安全漏洞事件:openssl (心脏出血);bash:原因是未检查输入边界;脱裤门:主要包括天涯、CSDN、人人、多玩、cnbeta、QQ关系数据库、携程;棱镜门;

漏洞挖掘示例

  • 路由器
    • 当远程向路由器的161端口发送大量畸形SNMP Get/Set请求报文时,Cisco路由器和华为路由器的进程Agent出现CPU使用率异常,分别为98%和100%。
    • 当远程发送SNMP空数据包时,Cisco路由器和华为路由器的CPU使用率出现异常,但远小于100%,发生“轻度拒绝服务”。
    • 当远程发送一个畸形ASN.1/BER编码(超长字符串)的SNMP数据包时,wireshark捕获并解析数据包,导致wireshark 1.4等多个版本栈溢出,导致空指针引用并崩溃。
    • 当向SNMP协议端口(161)远程发送一个使用“\x”等字符构造的畸形UDP数据包,科来网络分析系统7.2.1及以前版本均会因边界条件检查不严导致崩溃。
  • NFC漏洞挖掘
    • 目标选择:NFC手机系统和应用
  • 被动防御
    • 路由器:过滤特殊字符(如:科来网络分析系统对\x的处理);限制特定端口的传输速率;阻塞SNMP请求的端口;折中(编写ACL)。
    • NFC:协议解析(检查长度字段、数值范围、格式化字符串、特殊字符等);设计缺陷(修改设计逻辑,例如,蓝牙、wifi、屏幕亮度等)。
    • 滞后性
  • 主动防御:针对路由器和软件,成熟产品,入侵检测,防火墙,杀毒软件

我在课下对模糊测试和NFC进行了一些了解:

模糊测试是一种介于完全的手工渗透测试与完全的自动化测试之间的安全性测试类型。它充分利用了机器的能力:随机生成和发送数据;同时,也尝试将安全专家在安全性方面的经验引入进来。

从执行过程来说,模糊测试的执行过程非常简单:

  1. 测试工具通过随机或是半随机的方式生成大量数据;
  2. 测试工具将生成的数据发送给被测试的系统(输入);
  3. 测试工具检测被测系统的状态(如是否能够响应,响应是否正确等);
  4. 根据被测系统的状态判断是否存在潜在的安全漏洞。

NFC主要应用于:启动服务,将NFC用于“开启”另一种服务(例如为数据传输开启另一条通信链接);点到点,NFC可以用于实现两个装置之间的通信;付款和票务,将NFC搭建在新兴的智能票务和电子付款基础设施之上。

通过本次的课程作业,我对漏洞挖掘现状有了一些了解。

真正进行漏洞挖掘需要具备的知识

从事漏洞挖掘工作需要具备的知识是极其广泛的,并且随着时间在不断改变,也取决于你所研究的对象(web程序、桌面程序、嵌入式等等)。不过,万变不离其宗,所需要掌握的知识领域却总可以认为是确定的,我认为大致可以分为以下四个方面:

  1. 程序正向开发技术。这是一个开发者需要掌握的能力,包括编程语言、系统内部设计、设计模式、协议、框架等。拥有丰富编程经验与开发能力的人在漏洞挖掘过程中往往比那些只对安全相关领域有所了解的人员对目标应用能有更深入的理解,从而有更高的产出。
  2. 攻防一体的理念。这些知识涵盖了从基本的安全原则到不断变换的漏洞形态及漏洞缓解措施。攻击和防御结合的理念,能够有效帮助研究者既能够发现漏洞,同时也能够快速给出有效的漏洞缓解措施和规避方法。
  3. 有效使用工具。能够高效的使用工具能够快速将思路转化为实践,这需要通过花时间去学习如何配置和使用工具,将其应用于自己的任务并构建自己的工作流程来不断积累经验。更进一步,需要深入掌握所使用工具的原理,以及如何对其进行二次开发,以使得其能够更加高效的应用于当前的工作实际。事实上,我认为面向过程的学习方法往往比面向工具的学习方法更加高效以及有价值,当自己发现一个在使用一个工具遇到瓶颈时,先不要退缩,尝试去改造它,或者通过自己动手实践去完成能够适应当前工作的工具,这往往能够帮助快速积累大量实践经验。帮助我们以后更加高效的去实践漏洞挖掘工作。
  4. 对目标应用的理解。最后,也是最重要的,作为一个漏洞挖掘人员,对自己研究的应用程序在安全性方面必须要比这个程序的开发者或维护者有更深的理解。这样你才能尽可能的发现这个程序中的漏洞并修复它。

一般漏洞挖掘框架:

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第7张图片

论文汇报总结

本组论文介绍:

Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning

作者:[Matthew Jagielski; Alina Oprea; Battista Biggio; Chang Liu; Cristina Nita-Rotaru; Bo Li

投稿:2018 IEEE Symposium on Security and Privacy (SP)

年份:2018

主题:在本文中,我们对线性回归模型进行了第一次中毒攻击的系统研究及其对策。

代码:https://github.com/jagielski/manip-ml

相关知识:机器学习 数据安全 线性回归 预测模型

论文成果:

  • 作者对线性回归模型的中毒攻击及其对策进行了第一次系统研究。
  • 作者提出了一个针对中毒攻击和快速统计攻击的新优化框架,该框架需要对培训过程的了解很少。
  • 作者还采用原则性方法设计一种新的鲁棒防御算法,该算法在很大程度上优于现有的稳健回归方法。
  • 作者在医疗保健,贷款评估和房地产领域的几个数据集上广泛评估作者提出的攻击和防御算法。
  • 作者在案例研究健康应用中证明了中毒攻击的真实含义。
  • 作者的工作将激发未来的研究,以开发更安全的中毒攻击学习算法。

论文结构

细读这篇论文,我发现他不愧是顶会论文,其行文结构、研究思路,都是极为科学、严谨,其缜密的研究思路,完备的研究过程,优秀的论文结构,细致的验证对比,给我很大帮助,很大启发。

  • 第一节:介绍背景知识,对相关论文进行了深入研究,大量的引文及其细致的分类描述佐证了这篇论文的优秀。
  • 第二节:系统和对抗模型,问题定义和对抗模型,描述了四种线性回归模型,描述了改编自Xiao等人的基线攻击。对
  • 第三节:攻击方法论,提出了两种攻击算法。首先讨论先前提出的基于梯度的优化方法来解决在分类设置中的问题。然后讨论如何使它们适应回归学习的情况,并提出新的策略以进一步提高其有效性——对当前攻击推导的重大改进是同时优化每个中毒点的响应变量及其特征值。随后重点介绍了在基于梯度的优化过程中如何更新每个中毒样本的一些理论见解,提出了更快的攻击。
  • 第四节:介绍新型的防御算法TRIM 。描述了针对中毒攻击的现有防御建议,并解释了为什么它们在训练数据中的对抗性腐败中可能无效。因此提出了一种名为TRIM的新方法,专门用于增强针对一系列中毒攻击的鲁棒性。
  • 第五节:包括对攻击和防御的详细实验分析,以及与以前的方法的比较。使用两个主要指标来评估我们的算法:MSE用于攻击和防御的有效性,以及运行时间的成本。描述了用于实验的数据集。然后,系统地分析新攻击的性能,并将它们与VB中的基线攻击算法进行比较。最后,提出了新的TRI M算法的结果,并将其与稳健统计数据的先前方法进行了比较。
  • 第六节:介绍了其他相关的研究论文,对整个论文提出的攻击算法、防御算法的实际应用前景进行了展望。
  • 第七节:使用很精炼的语言对本论文的工作进行了总结。立场中立,毫无夸大。

第一组:MassVet的新技术

论文选题为在10秒内找到未知的恶意:在Google-Play规模上大规模审查新的威胁。本文开发了一种名为MassVet的新技术,用于大规模审查应用程序,而无需了解恶意软件的外观和行为方式。与通常使用重量级程序分析技术的现有检测机制不同,文中所用的方法只是将提交的应用程序与已经在市场上的所有应用程序进行比较,重点关注那些共享类似UI结构(表示可能的重新打包关系)和共性的区别。

论文作者将应用程序的视图图形(即,其用户界面之间的互连)(例如窗口小部件和事件的类型)的一组特征投影到单个维度,使用唯一索引来表示应用程序在维度内的位置以及相似度。它的界面结构与其他人的界面结构。研究中将该指数计算为视图的几何中心,称为v-core。市场上所有应用程序的v核都经过排序,以便在审核新应用程序时启用二进制搜索,从而使此步骤具有高度可扩展性。

检测思路如下:

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第8张图片

第二组:幽灵攻击

论文选题:使用性能计数器的微架构跟踪在线检测幽灵 攻击

为了提高处理器性能,计算机架构师采用了诸如推测执行和缓存之类的加速技术。然而,研究人员最近发现,这种方法意味着固有的安全漏洞,正如Meltdown和Spectre所利用的那样。针对这些漏洞的攻击可以通过利用错误推测的执行来通过诸如数据缓存时序之类的辅助渠道泄漏受保护的数据。这些缺陷可能是灾难性的,因为它们是基础和广泛的,它们会影响许多现代处理器。减轻Meltdown的影响是相对简单的,因为它需要基于软件的修复,这已经由主要OS供应商部署。然而,直到今天,Spectre还没有有效的缓解措施。解决问题可能需要在未来的处理器中重新设计用于条件执行的体系结构。此外,使用传统的基于软件的防病毒技术很难检测到Spectre攻击,因为它不会在传统日志文件中留下痕迹。在本文中,作者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支错误预测,以在攻击运行时检测Specter。作者的检测器能够使用各种机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。作者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支误预测,以便在攻击运行时检测Spectre。作者的检测器能够使用各种机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。作者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支误预测,以便在攻击运行时检测Spectre。作者的检测器能够使用各种机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。

作者定期同时从四个性能计数器收集数据。在本节中,我们首先分析收集的原始数据,以确定通过可视化数据分布来区分清洁环境中的测量和受攻击的测量是否可行。然后我们使用不同的机器学习算法来训练分类器并使用前面讨论的滑动窗口方法构建实时攻击检测器。

LLC参考的分布,LLC未命中和分支未命中率特征:
20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第9张图片

本文提出通过监视微体系结构特征偏差来检测Spectre攻击,因为攻击利用了现代处理器硬件设计中的漏洞,例如推测执行和缓存侧通道。这些功能是从处理器中广泛使用的硬件性能计数器收集的。采用在线检测方法检测攻击早期的恶意行为,而不是在损坏完成后进行离线检测。实验结果表明,使用训练的多层感知器分类器,只有0.77%的假阳性和0%的假阴性,具有很好的检测准确度。由于对幽灵的完全缓解具有挑战性,现在主动检测此类攻击更为实际。

根据不同类型的硬件设计缺陷和侧通道被开发,Spectre有许多变种。不断发现新变种,最近研究人员发现了一种新的推测性商店绕过漏洞[15]。但是,所有不同的变体都使用侧通道来推断攻击最后阶段的机密信息。此外,隐身模式幽灵攻击通常无效。因此,我们认为可以通过监视这些硬件侧通道的变化来检测恶意行为。该研究表明使用这种方法检测Spectre的可行性。未来的研究可以针对不同配置下的其他攻击变体进行,例如在服务器和虚拟机环境中。

第三组:隐身操纵攻击

论文选题:All Your GPS Are Belong To Us: Towards Stealthy Manipulation of Road Navigation Systems

  • 作者首先通过实现便携式GPS欺骗器并在实际汽车上进行测试来进行受控测量。
  • 作者设计了一种计算Th值的搜索算法,实时移动GPS偏移和受害者路线。
  • 作者使用跟踪驱动的模拟(曼哈顿和波士顿的600个出租车线路)进行广泛的评估,然后通过RE验证完整的攻击AL-世界驾驶考试(攻击作者自己的汽车)。
  • 作者对美国和中国的驾驶模拟器进行了欺骗性的用户研究。显示,95%的参与者遵循导航。最终到错误的目的地而不认识到攻击。
  • 作者用这些结果讨论了反措施向前发展的方向。
  • 作者探讨了对道路导航系统进行隐身操纵攻击的可行性

算法思路:
20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第10张图片

第四组:针对迁移学习的对抗性攻击

论文选题:With Great Training Comes Great Vulnerability: Practical Attacks against Transfer Learning

根据训练过程中被冻结的层数K,可以把迁移学习分为以下3种方法:深层特征提取器(Deep-layer Feature Extractor)、中层特征提取器(Mid-layer Feature Extractor)、全模型微调(Full Model Fine-tuning)。

对抗性攻击就是攻击者通过设计一种有针对性的数值型向量从而让机器学习模型做出误判。白盒攻击中攻击者能够获知分类器的内部体系结构及所有权重。它允许攻击者对模型进行无限制的查询,直至找到一个成功地对抗性样本。黑盒攻击中攻击者不知道受害者的内部结构,攻击者要么尝试反向工程DNN的决策边界,建一个复制品用于生成对抗样本,要么反复查询生成中间对抗样本并不断迭代改进。这种攻击常常在最小的扰动下获得接近100%的成功,因为攻击者可以访问深度神经网络的内部结构,所以他们可以找到误分类所需的最小扰动量。然而白盒攻击一般被认为是不切实际的,因为很少会有系统公开其模型的内部结构。黑盒攻击容易被防御。

论文通过求解一个有约束的最优化问题来计算扰动。目标是是模拟隐藏层第K层的输出向量,约束是扰动不易被人眼察觉。即在扰动程度perturb_magnitude小于一定约束值(扰动预算P)的前提下,最小化对抗样本(扰动后的source image)第K层的输出向量与target image 第K层的输出向量的欧式距离。前人计算扰动程度都是使用Lp范数,但是它无法衡量人眼对于图像失真程度的感知。所以本文使用DSSIM计算扰动程度。论文还提出了3种针对本文攻击的防御方法,其中最可行的是修改学生模型,更新层权值,确定一个新的局部最优值,在提供相当的或者更好的分类效果的前提下扩大它和教师模型之间的差异。这又是一个求解有约束的最优化问题,约束是对于每个训练集中的x,让教师模型第K层的输出向量和学生模型第K层的输出向量之间的欧氏距离大于一个阈值,在这个前提下,让预测结果和真实结果的交叉熵损失最小。

第五组:未初始化读取漏洞缓解

论文选题:SafeInit: Comprehensive and Practical Mitigation of Uninitialized Read Vulnerabilities

作者通过在clang/LLVM编译器架构上,通过修改代码,实现了safeinit原型,在编译C/C++源代码时,传递一个标记即可使用safeinit实现优化编译,缓解未定义变量。使用了强化分配器的safeinit可以进一步优化代码的同时,保证所有需要初始化的变量进行初始化,删除多余初始化代码进行优化,这样既保证缓解了未定义变量漏洞的威胁,同时与其他现有方法相比,提升了性能。

  • 使用作者的工具链构建了最新的LLVM Linux内核树。
  • 作者定制了构建系统,以允许使用LTO,重新启用内置clang函数,并修改gold链接器以解决作者在符号排序时遇到的一些LTO代码生成问题。
  • 由于Linux内核执行自己的内存管理,因此它不会与用户空间强化分配器链接; 作者的自动加固仅保护局部变量。

在没有使用优化器的情况下应用时,运行时开销的(几何)平均值为8%。应用该优化器可以显着降低剩余基准测试的开销,与作者的基线编译器相比,导致CINT2006的平均开销为3.5%。 CFP2006的结果类似,如下图所示,平均开销为2.2%。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第11张图片

第七组:卷积神经网络用于句子分类

论文选题:[是Convolutional Neural Networks for Sentence Classification,作者是Harvard NLP组的Yoon Kim,并且开源了代码 sent-conv-torch。

单通道图像可以表示为一个矩阵,输入到CNN中,经过多组filter层和pooling层,得到图像的局部特征,然后进行相关任务。本文用拼接词向量的方法,将一个句子表示成为一个矩阵,这里矩阵的每一行表示一个word,后面的步骤仅采用一组filter、pooling层来得到句子的特征向量,然后进行分类。

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第12张图片

这里,模型根据词向量的不同分为四种:

  • CNN-rand,所有的词向量都随机初始化,并且作为模型参数进行训练。
  • CNN-static,即用word2vec预训练好的向量(Google News),在训练过程中不更新词向量,句中若有单词不在预训练好的词典中,则用随机数来代替。
  • CNN-non-static,根据不同的分类任务,进行相应的词向量预训练。
  • CNN-multichannel,两套词向量构造出的句子矩阵作为两个通道,在误差反向传播时,只更新一组词向量,保持另外一组不变。

论文在七组数据集上进行了对比实验,证明了单层的CNN在文本分类任务中的有效性,同时也说明了用无监督学习来的词向量对于很多nlp任务都非常有意义。

这里需要注意的一点是,static模型中word2vec预训练出的词向量会把good和bad当做相似的词,在sentiment classification任务中将会导致错误的结果,而non-static模型因为用了当前task dataset作为训练数据,不会存在这样的问题。具体可参看下图:

20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结_第13张图片

学习收获&建议意见

学习收获

从web安全到漏洞挖掘技术,从量子密码技术到深度学习的密码分析技术,从信息隐藏到区块链技术,一个学期一晃而过,再加上最后两次课的论文汇报,密码与安全新技术专题课程的六次教师讲座就这么结束了。

在本学习的课程学习中,我对密码和安全方面有了新的认识,对web安全、漏洞挖掘技术、量子密码技术、深度学习在密码分析的应用、信息隐藏和区块链技术等有了比较清晰的认知,也对自己在研究生阶段的研究方向和研究方法有了一些大致的想法。

我本科是学网络工程的,毕业设计做的是神经网络方面的内容,研究生阶段实验室的研究方向大致是密码安全方面及访问控制相关。在研一阶段看的论文不多,除了课程要求的相关论文外,只是大致看了导师要求的国密标准相关文档,这门专题课带着我看了几个细方向的论文,如SQL注入攻击、生成对抗网络、隐写技术及隐写分析、漏洞挖掘,也看了一些比较火的研究方向,如量子密码和区块链技术。这些顶会论文带个我的最大收获就是眼界上的开阔,以及研究方法和论文结构上的指导,这对于我研二的研究工作有极大的帮助。

收获主要归纳为以下几点:

  • 要敢想敢干,找准方向,找到兴趣点,深入研究,抓住机会,埋头苦干,不要怕吃苦,更不要想太多,不能失了年轻人的朝气。
  • 要多和老师交流,提出问题之后一定要找老师把关,分析可行性,看能不能出成果,有没有研究价值。研究生阶段是离不开老师指导的。

  • 深挖自己的研究方向的同时不能对其他的知识领域,尤其是主专业的其他研究方向放松,多学习多交流,有很多东西是共同的,而且很多技术的应用是可以结合起来的。

建议意见

我本人的可能更想做理论研究,功利一点来说也想多发一些论文。这门专题课对我有很大的帮助。

意见建议归纳为以下几点:

  • 前几次的作业要求里的顶会论文要求很有意义,如果课时量可以加一些的话,我希望能在平时课程中就让同学们对自己每次看的几篇论文进行交流,因为平时大家的兴趣点也不太一样,论文交流不仅能督促同学们看的更细致,也能让大家开拓眼界。
  • 论文复现工作的交流方式其实可以不仅局限于汇报演示,而且事实上也不需要分组完成,我是一个人一组完成复现工作的,工作量其实也没那么大,而且分组复现也带来很多不必要的麻烦。我个人觉得只要预留时间足够,完全可以鼓励大家单独完成复现工作。

十分感谢王志强老师组织、讲解的专题讲座课程,也十分感谢张健毅老师、孙莹老师、金鑫老师、夏超老师几位老师的授课和对我们的建议!

参考链接

相关博客链接:

  • 第一讲:web安全与内容安全
  • 第二讲:量子密码技术
  • 第三讲:基于深度学习的密码分析与设计
  • 第四讲:信息隐藏
  • 第五讲:区块链技术
  • 第六讲:漏洞挖掘及攻防技术

论文报告链接:

  • 本组论文介绍

  • 第一组:MassVet的新技术
  • 第二组:幽灵攻击
  • 第三组:隐身操纵攻击
  • 第四组:针对迁移学习的对抗性攻击
  • 第五组:未初始化读取漏洞缓解
  • 第七组:卷积神经网络用于句子分类

你可能感兴趣的:(20189221 2018-2019-2 《密码与安全新技术专题》课程报告总结)