20189220余超 2019年密码与安全新技术讲座-课程总结报告
课程学习内容总结
老师讲座
- 第一次网络安全与内容安全
本次讲座主要学习了网络安全以及网络内容安全相关的知识,首先通过信息化发展凸显了信息安全问题介绍了威胁方与防护方的非对称性,主要是指大量自动化攻击工具的出现使得攻击方所需的成本极低,且较为隐秘;而防护方的成本极高的一种现象,从而引出了三个方面的知识。第一个方面为Web应用安全,主要介绍了常见的Web漏洞,比如SQL注入,XSS跨站脚本攻击,CSRF跨站请求伪造,解析漏洞,弱口令等等。第二个方面,主要介绍了用户的隐私安全,通过介绍两个例子Stava户外运动软件和苹果手机收集用户的mac地址等用户信息,揭示了当今有一部分软件在未经用户的许可下擅自手机用户隐私的现象。第三个方面介绍了机器学习在网络安全方面的应用,机器学习有助于解决钓鱼攻击,水坑式攻击,内网漫游,隐蔽信道检测,注入攻击,网页木马,钓鱼网站URL识别等网络安全问题。
1.1常见的Web漏洞
- 第二次量子密码通信
本次讲座主要学习了量子密码的相关知识,主要分为以下几个内容:一、量子密码的研究背景;二、量子通信相关基本物理概念;三、量子通信的典型协议和基本模型介绍;四、量子通信研究现状和实验进展。
着重理解了一下量子通信最重要的协议,BB84协议的实现需要两个信道:经典信道和量子信道。经典信道要确保收发双方Alice和Bob之间能进行一些必要信息的交换,而量子信道用于传输携带信息的或者随机的量子态.
下面简要介绍BB84协议的实现思路,简要步骤如下具体的BB84协议流程如下:
(1)单光子源产生一个一个的单光子;(2)发送方Alice 使用偏振片随机生成垂直、水平、+45°或-45°的偏振态,将选定偏振方向的光子通过量子通道传送给接收方Bob;
(3)Bob 随机选用两种测量基测量光子的偏振方向;
(4)Bob 将测量结果保密,但将所用的测量基通过经典通道告知Alice;
(5)Alice 对比Bob选用的测量基与自己的编码方式,然后通过经典通道告诉Bob哪些基和她用的不同;
(6)Bob 扔掉错误基的测量结果(统计上会扔掉一半的数据);
(7)Alice 和Bob选取一部分保留的密码来检测错误率,如果双方的0、1序列为一致,则判定没有窃听者Eve窃听,剩下未公开的比特序列就留作量子密钥本。
如上图所示,假设B1偏振片检测水平,垂直为1,其余为0,B2检测45度为1,其余为0,Alice要发送1100101101字符串。
按照第一个字符看,Alice 发送了垂直的偏振态,Bob随机选择B1,B2接受,这里Bob有幸选对,Bob再传回所用偏振片,这里是B1,Alice收到后表示正确,因此保留此字符。
按照第三个字符看,Alice发送了45度的偏振态,Bob随机选择了B2,是个错误的选择,Bob传回所用偏振片,Alice收到后表示错误,因此舍弃此字符。
因此最终的密码本为1101010
- 量子通信可以应用到国防军事、金融、网络安全等方面的应用。
- 第三次机器学习与密码
本次讲座主要学习了机器学习、深度学习方面的基础知识以及与密码设计、密码分析相关的研究热点。主要分为以下四个方面来介绍:密码分析与机器学习、深度学习简介与现状、深度学习与密码分析、深度学习与密码设计。
- 首先,密码分析与机器学习之间有天然的相似性,在密码分析中,攻击者试图通过推算出密钥来破解密码系统。解密函数是从一个由密钥索引的已知函数空间(解空间)求解出。攻击者的目的是发现解密函数的精确解。如果攻击者能够获取多个获取密文与明文配对来进行密码分析,其与机器学习的概念相似:机器学习的研究人员也是试图从多个样本与标签配对来进行机器学习模型的求解(训练)。
- 人工智能是一个很大的方面,机器学习知识其中的一个研究方向,而深度学习是机器学习的重点研究内容,发展的最为迅速和成熟,这三者是包含的关系。
深度学习与密码分析
这一节主要讲了基于卷积神经网络的侧信道攻击、基于循环神经网络的明文破译、基于生成对抗网络的口令破解、基于深度神经网络的密码基元识别。
两类算法,一种寻找内在的相关性,一种尽量使相关性降到最低。对于一个已经经过实践检验的加密算法(如 RAS),要在未知加密密钥或者解密密钥的情况下利用机器学习寻找内在联系是近乎不可能的,所以,我们先从已被废弃,健壮性弱的加密算法入手。
或者从另一方面,两种算法,一种要寻找随机,一种要建立关联,在两者之间可以用与生成对抗神经网络类似的算法,进行训练,或许就可以得到两个加密解密能力较强的神经网络。
除此之外,对于加密解密而言,假设有对于每个比特有90%的准确率,但是,由于有那些10%错误的影响,解密出来的信息也是无法识别的。比如在计算机里,一个英文字符占8个字节,则在每个比特只有90%的准确率下,能够解密出真正的明文的概率只有0.98=0.430.98=0.43左右,而且,就算解密出来一个字符,你也不能知道是否正确。假如用utf-8编码的汉字,准确率只有0.079。
讲座总结
1.通过本次讲座,初步了解到了机器学习,深度学习相关的知识以及一些前沿的研究方向和热点。理解到了机器学习的原理、以及与密码分析的相似之处。我发现机器学习的一切应用都是建立在现有的大数据的基础上来实现的,这些应用可以用来替代一些大量的,重复性,危险性的工作。还学习到深度学习包含有大量性能优秀的深度神经网络( DNN: Deep Neura lNetworks ),例如卷积神经网络( CNN: Convolutional Neural Networks)、循环神经网络(RNN: Recurrent Neural Networks)、生成对抗网络(GAN: Generative Adversarial Networks)等,在大数据分析、图像识别、机器翻译、视频监控中取得了较大进步。这次讲座使我受益匪浅,对机器学习、深度学习有了一个浅浅的了解,扩大了我的知识面,我以后我继续关注机器学习方面的研究,并尝试寻找兴趣点来进行学习。
2.通过查阅一些论文和资料,发现深度学习,卷积神经网络的技术可以广泛的应用到图像处理、医学检测、数据安全保护。其中图像处理,计算机视觉方面的研究最为成熟和突出。在深度学习方面图像处理最基本的方法就是基于现有的图像数据集用算法对机器不断的进行训练来达到一个相对较高的准确识别率。但是假如现有的图像数据集不包含某种事物、或者已有的事物可以组合使用等等这些问题,那么它的准确率将会直线下降。这个问题我相信可以作为深度学习的一个研究方向。
- 第四次 信息隐藏技术
信息隐藏的基本原理
信息隐藏是把一个有意义的信息隐藏在另一个称为公开载体(Cover) 的信息中得到隐蔽载体 S(Stego Cover),非法者不知道这个普通信息中是否隐藏了其他的信息,而且即使知道也难以提取或去除隐藏的信息。所用的载体可以是文本、图像、声音及视频等。为增加攻击的难度,也可以把加密与信息隐藏技术结合起来,即先对消息 M 加密得到密文消息 M',再把 M'隐藏到载体 C 中。这样攻击者要想获得消息,就首先要检测到消息的存在,并知道如何从隐蔽的载体 S 中提取 M'及如何对 M'解密以恢复消息 M。
接!本次讲座主要学习了信息隐藏的定义,信息隐藏于密码的区别和联系,以及信息隐藏的最新研究前沿。
近年来信息隐藏技术发展的很快,已经提出了各种各样的实现方法。信息隐藏技术的方法主要包括隐写术、数字水印、可视密码技术、潜信道、匿名通信。其中隐写术的研究成为了信息安全的焦点。因为每个Web站点都依赖多媒体,如音频、视频和图像。隐写术这项技术可以将秘密信息嵌入到数字媒介中而不损坏它的载体的质量。第三方既觉察不到秘密信息的存在,也不知道存在秘密信息。因此密钥、数字签名和私密信息都可以在开放的环境(如Internet或者内联网)中安全的传送。以Jessica Fridrich为代表的团队在高维隐写术上不断的取得突破。
讲座总结
信息隐藏技术是一种横跨信号处理、数字通信、密码学、计算机网络等多学科的新兴技术,具有巨大的潜在应用市场,对它的研究具有重要的学术和经济价值。在信息隐藏中,T门认为数字水印代表了其发展方向,虽然它的技术要求更高,但是它的应用前景也更广。现在虽然已经有商业化的水印系统,但对水印的研究还远未成熟,许多问题如鲁棒性、真伪鉴别、版权证明、网络快速自动验证以及声频和视频水印等方面仍然还需要比较完美的解决方案。
随着该技术的推广和应用的深入,一些其他领域的先进技术和算法也将被引入,从而完备和充实数据信息隐藏技术。例如在数字图像处理中的小波、分形理论;图像编码中的各种压缩算法;Pi视频编码技术等等。目前,使用密码加密仍是网络上主要的信息安全传输手段,信息隐藏技术在理论研究、技术成熟度和实用性方面都无法与之相比,但它潜在的价值是无法估量的,特别是在迫切需要解决的版权保护等方面,可以说是根本无法被代替的,相信其必将在未来的信息安全体系中发挥重要作用。同时,信息隐藏技术和力口密技术的结合,必将在信息安全领域得到广泛的应用。
- 第五次比特币技术
本次讲座主要学习了比特币、区块链的基本原理和交易流程,以及挖矿的意义和区块链的特点、未来的发展预测。
区块链基本概念
1.区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
2.区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
3.狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式账本。
4.广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。
区块链的架构模型
一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成。 其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点。
区块链技术
区块链主要解决交易的信任和安全问题,因此它针对这个问题提出了四个技术创新:
- 第一个叫分布式账本,就是交易记账由分布在不同地方的多个节点共同完成,而且每一个节点都记录的是完整的账目,因此它们都可以参与监督交易合法性,同时也可以共同为其作证。跟传统的分布式存储有所不同,区块链的分布式存储的独特性主要体现在两个方面:一是区块链每个节点都按照块链式结构存储完整的数据,传统分布式存储一般是将数据按照一定的规则分成多份进行存储。二是区块链每个节点存储都是独立的、地位等同的,依靠共识机制保证存储的一致性,而传统分布式存储一般是通过中心节点往其他备份节点同步数据。没有任何一个节点可以单独记录账本数据,从而避免了单一记账人被控制或者被贿赂而记假账的可能性。也由于记账节点足够多,理论上讲除非所有的节点被破坏,否则账目就不会丢失,从而保证了账目数据的安全性。
- 第二个叫做非对称加密和授权技术,存储在区块链上的交易信息是公开的,但是账户身份信息是高度加密的,只有在数据拥有者授权的情况下才能访问到,从而保证了数据的安全和个人的隐私。
- 第三个叫做共识机制,就是所有记账节点之间怎么达成共识,去认定一个记录的有效性,这既是认定的手段,也是防止篡改的手段。区块链提出了四种不同的共识机制,适用于不同的应用场景,在效率和安全性之间取得平衡。区块链的共识机制具备“少数服从多数”以及“人人平等”的特点,其中“少数服从多数”并不完全指节点个数,也可以是计算能力、股权数或者其他的计算机可以比较的特征量。“人人平等”是当节点满足条件时,所有节点都有权优先提出共识结果、直接被其他节点认同后并最后有可能成为最终共识结果。以比特币为例,采用的是工作量证明,只有在控制了全网超过51%的记账节点的情况下,才有可能伪造出一条不存在的记录。当加入区块链的节点足够多的时候,这基本上不可能,从而杜绝了造假的可能。
- 最后一个技术特点叫智能合约,智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款。以保险为例,如果说每个人的信息(包括医疗信息和风险发生的信息)都是真实可信的,那就很容易的在一些标准化的保险产品中,去进行自动化的理赔。在保险公司的日常业务中,虽然交易不像银行和证券行业那样频繁,但是对可信数据的依赖是有增无减。因此,笔者认为利用区块链技术,从数据管理的角度切入,能够有效地帮助保险公司提高风险管理能力。具体来讲主要分投保人风险管理和保险公司的风险监督。
区块链近年来的研究热点总结
近年来区块链技术发展的很快,已经提出了各种各样的实现方法。通过上面论文的总结,我发现区块链的主要研究热点如下:
第一类:恶意造成网络延迟或者隔离发起的攻击
1(15SECURITY)EclipseAttacks on Bitcoin's Peer-to-Peer Network.
2(15CCS)Tampering with the Delivery of Blocks and Transactions in Bitcoin
3(17DSN)TheBalance Attack or Why ForkableBlockchains are Ill-Suited for Consortium
4(17SP)Hijacking Bitcoin: Routing Attacks on Cryptocurrencies
第二类:智能合约安全性
5(15CCS)Demystifying Incentives in the Consensus Computer//浪费算力的恶意脚本
6(16CCS)TheRing of Gyges: Investigating the Future of Criminal Smart Contracts//犯罪的智能合约
7(16CCS)TownCrier: An Authenticated Data Feed for Smart Contracts//数据源安全
[NDSS'18]TLS-N-Non-repudiation over TLS //CES签名保障数据源的安全
8(16CCS)MakingSmart Contracts Smarter //智能合约漏洞
9(16SP)Hawk: The Blockchain Model of Cryptography and Privacy-Preserving SmartContract //智能合约隐私和交易隐私
10(18NDSS)ZEUS_AnalyzingSafety of smart contracts //智能合约漏洞检测工具
11(18NDSS)Chainspace_ASharded Smart Contracts Platform //智能合约效率扩展
12(18SECURITY)Enter the Hydra-Towards Principled Bug Bounties and Exploit-Resistant Smart Contracts//智能合约安全监测及预防
13[SECURITY'18]teEther-Gnawing at Ethereum to Automatically Exploit Smart Contracts//智能合约漏洞检测-bytecode level
14[SECURITY'18]Enter the Hydra-Towards Principled Bug Bounties and Exploit-Resistant Smart Contracts //智能合约
第三类:共识协议的设计与改进
12(16NDSS)Equihash:Asymmetric Proof-of-Work Based on the Generalized Birthday Problem //ASIC-resistent
13(16SECURITY)Enhancing Bitcoin Security and Performance with Strong Consistency viaCollective Signing //ByzCoin
14(16CCS)The Honey Badger of BFT Protocols //不需要时间假设仍旧保持活性
15(16CCS)A Secure Sharding Protocol For Open Blockchains //随机安全分片,性能高
16(17SECURITY)REM: Resource-Efficient Mining for Blockchains.//有用的工作
第四类:矿池
17(15SP)The Miner's Dilemma//矿池互相攻击
18(17SECURITY)SmartPool: Practical Decentralized Pooled Mining//矿池中心化
19(17CCS)Be Selfish and Avoid Dilemmas: Fork After Withholding (FAW) Attacks on Bitcoin //矿池攻击
第五类:隐私问题,包括交易隐私、支付通道隐私等
20(17NDSS)P2P Mixing and Unlinkable Bitcoin Transactions //交易隐私
21(17CCS)Solidus-ConfidentialDistributed Ledger Transactions via PVORM//交易隐私
22(17CCS)PracticalUC-Secure Delegatable Credentials with Attributes and Their Application to Blockchain //证书引发的隐私问题
23(17CCS)Bolt: Anonymous Payment Channels for Decentralized Currencies //支付通道隐私问题
24(17CCS)Concurrency and Privacy with Payment-Channel Networks//支付通道网络
25(17CCS)Revive: Rebalancing Off-Blockchain Payment Networks// 平衡链下支付通道
26(17CCS)Zero-Knowledge Contingent Payments Revisited: Attacks and Payments for Services //保证公平交换
27(17NDSS)SilentWhispers: Enforcing Security and Privacy in Decentralized Credit Networks
第六类:区块链的应用场景
28(15CCS)Liar, Liar, Coins on Fire!: Penalizing Equivocation By Loss of Bitcoins
29(17CCS)Betrayal, Distrust, and Rationality: Smart Counter-Collusion Contracts for Verifiable CloudComputing//降低云计算服务商的数量为2
30(17SP)IkTurninga pki around with decentralized automated incentives//CA正确行为
31(18SP)OmniLedger_ASecure, Scale-Out, Decentralized Ledgervia Sharding //账本分片
32(18'INFOCOM)CertChain Public and Efficient Certificate Audit Based on Blockchain for TLSConnections//基于区块链实现证书可公开验证
第九类:单
33(15CCS)Micropayments for Decentralized Currencies//降低交易成本使微支付可行
34(15SP)Bitcoin over Tor isn't a Good Idea //基于Tor增加BTC匿名性引发的攻击
35(16CCS)On the Security and Performance of Proof of Work Blockchains//度量框架
36(15CCS)Provisions: Privacy-preserving Proofs of Solvency for Bitcoin Exchanges//交易所可偿还能力证明
37(16NDSS)Centrally Banked Cryptocurrencies//去中心化交易仍保留银行
38(15SP)SoK:Research Perspectives and Challenges for Bitcoin and Cryptocurrencies //对第二代加密货币的综述
- 第六次漏洞挖掘技术
本次讲座主要学习了什么是漏洞挖掘、常见漏洞挖掘技术、漏洞挖掘示例、攻防示例。
常见的漏洞挖掘技术
手工测试:定义:由测试人员手工分析和测试被测目标,发现漏洞的过程,是最原始的漏洞挖掘方法。【凭经验依次检验每个可能产生漏洞的脆弱点】优点:人-主观能动性-显而易见和复杂不易见明显没有、没有明显; 缺点:人-无规律可循、不可大规模等。
补丁对比:定义:一种通过对比补丁之间的差异来挖掘漏洞的技术。文本(难定位,输出难理解)汇编指令(易理解,输出范围大,难定位)结构化(迅速直观,流行)。优点:发现速度快;缺点:已知漏洞;常见工具:PatchDiff2、bindif
程序分析:包括静态和动态
静态定义:是指在不运行计算机程序的条件下,通过词法分析、语法分析、语义分析、控制流分析、污点分析等技术对程序代码进行扫描,验证代码是否满足规范性、安全性等指标的一种代码分析技术。 优点:覆盖率100%,自动化程度高;缺点:漏报和误报(RICE,程序分析问题不可判定)工具: 数据流分析:Fortify SCA、Coverity Prevent、FindBugs等;污点分析:Pixy、TAJ(基于WALA);符号执行:Clang、KLEE; 模型检测:BLAST、MAGIC、MOPS。
动态定义:在运行计算机程序的条件下,验证代码是否满足规范性、安全性等指标的一种代码分析技术。一般通过插桩技术分析程序的异常行为。插桩技术是指在保证被测程序逻辑完整性的基础上在程序的关键位置插入一些“桩”,即加入一些测试代码,然后执行插桩后的程序,通过“桩”的执行获取程序的控制流和数据流信息,进而分析程序的异常行为。优点:自动化程度高、覆盖率较高缺点:漏报和误报(RICE,程序分析问题不可判定)冗余代码时间开销 工具:Android:Xposed。
二进制审核:定义:源代码不可得,通过逆向获取二进制代码,在二进制代码层次上进行安全评估。缺点:同静态审核逆向导致信息丢失,理解困难,甚至引入逻辑错误。二进制及编辑工具:IDA Pro、Ollydbg、UltraEdit、Hex Workshop以及WinHex
模糊测试:定义:通过向被测目标输入大量的畸形数据并监测其异常来发现漏洞。关键:测试用例构造,自动化。优点:无须源码、误报低、自动化程度高缺点:覆盖率低;工具:Peach、Sulley、Autodafe、SPIKE等
漏洞挖掘的方法
(1)白盒测试
白盒测试是一个极端,它需要对所有的资源进行充分的访问,这包括访问源代码、设计规约,甚至有可能还要访问程序员本人。
(2)黑盒测试
黑盒测试是另一个极端。黑盒,顾名思义,就是看不到盒子内部的情况,只能了解外部观察到的东西。所以作为终端用户,可以控制输入,从黑盒子的一端提供输入,从盒子的另一端观察输出结果,而无需了解被控目标的内部工作细节。模糊测试(Fuzzing测试)从某个角度来讲,也可以看做是黑盒测试。
(3)灰盒测试
介于两个极端之间。大致可以定义为:包括了黑盒测试审核,也隐含的提示了具体的功能所预期需要的输入,以及该具体功能的预期输出。所以即便是不知道源代码,也不意味着这种测试方法毫无用处。
漏洞挖掘一般流程
(1)提供源代码的情况
对于提供了软件源代码的情况来说,我们主要是针对软件的源代码进行阅读,找出其中存在安全漏洞的地方,判断该漏洞属于什么类型的漏洞,应当如何测试。然后,运行该软件的可执行文件,测试刚才发现的漏洞是不是能够成功地被触发。如果能被成功触发,那么就证明我们的分析是正确的。
(2)不提供源代码的情况
很多时候,程序的源代码并不容易获得,而在这种情况下,我们主要是向软件提供被刻意修改过的外部数据,同时借助一些工具型软件监视被测试软件在处理这些数据时会不会发生错误。然后,分析这些错误,检查其中哪些属于安全漏洞的范畴,并判断漏洞的类型。
(3)fuzzing测试的工作流程
总结
通过对漏洞挖掘的学习,我发现漏洞的复杂性分布非常广。一方面,有很多漏洞非常简单与直观,并且利用代码一目了然,比如说经典的sql注入。另一方面,在系统中有的看似并不相关,并且就其自身而言并非不安全,但是当这些东西以一种特定的方式结合起来的时候,就有可能引发大的漏洞,比如说条件竞争,或者一些其他的复杂的逻辑漏洞。各种眼花缭乱的安全漏洞其实体现的是人类在做事的各种环节上犯过的错误,通过改进工具流程制度可以得到某些种程度的解决,但有些涉及人性非常不容易解决,而且随着信息系统的日趋复杂,我们可以看到更多的新类型漏洞,这个领域永远都有的玩。漏洞挖掘技术脱胎于软件测试理论和软件开发调试技术,可以大大提高软件的安全性。网络安全界的第三方机构、技术爱好者也利用该技术寻找各种软件漏洞,并及时发布给大众,为提高信息安全整体水平做出了贡献。但漏洞挖掘也是一把双刃剑,已经成为黑客破解软件的主流技术。漏洞挖掘技术的发展前景是广阔的,随着信息安全越来越被重视,软件开发技术越来越先进,新的分析手段会随之出现。
同学们的报告
- 第一组 在Google-Play规模上大规模审查新的威胁
这篇论文主要讲述了自己设计了一个全新的算法,并将diff-com算法引入其中,这个算法可以快速搜索到相关页面,来分析判断,然后通过搜索相对应的数据库的进行分析。以往的安全漏洞扫描都是慢速单个的,而这个是大量快速的。具体流程如下:
MassVet首先处理所有的应用程序,包括用于查看结构的数据库和用于数据库的数据库(第3.4节)。两个数据库都经过排序以支持二进制搜索,并用于审核提交到市场的新应用程序。考虑一个重新包装的AngryBird。一旦上载到市场,它首先在预处理阶段自动拆解成一个小型表示,从中可以识别其接口结构和方法。它们的功能(用于视图,用户界面,小部件和事件的类型,以及方法,控制流程和代码)通过计算映射到v核(第3.2节)和m核(第3.3节)分别是视图和控制流的几何中心。应用程序的v-cores首先用于通过二进制搜索查询数据库。一旦匹配满足,当存在具有类似的AngryBird用户界面结构的另一个应用程序时,将重新打包的应用程序与方法级别的市场上的应用程序进行比较以识别它们的差异。然后自动分析这些不同的方法(简称差异)以确保它们不是广告库并且确实是可疑的,如果是,则向市场报告(第3.2节)。当没有任何东西2时,MassVet继续寻找方法数据库中的AngryBird的m核心。如果找到了类似的方法,我们的方法会尝试确认包含方法的app确实与提交的AngryBird无关,并且它不是合法的代码重用(第3.3节)。在这种情况下,MassVet报告认为是令人感到满意的。所有这些步骤都是完全完全自动化,无需人工干预。
- 第二组 幽灵攻击:利用预测执行
论文中的幽灵攻击结合了侧信道攻击,故障攻击和面向返回编程的方法,可以从受害者的进程中读取任意内存。更广泛地说,论文说明了推测性执行实施违反了许多软件安全机制所依据的安全假设,包括操作系统进程分离,静态分析,容器化,即时(JIT)编译以及缓存时序/侧通道的对策攻击。由于在数十亿设备中使用的Intel,AMD和ARM微处理器中存在易受攻击的推测执行能力,这些攻击对实际系统构成严重威胁。
•通过直接读取cache中的值确定攻击是否命中,当命中某个值达到一定次数时判定命中结果
/* Time reads. Order is lightly mixed up to prevent stride prediction */
for (i = 0; i < 256; i++) {
mix_i = ((i * 167) + 13) & 255;
addr = &array2[mix_i * 512];
time1 = __rdtscp(&junk); /* READ TIMER */
junk = *addr; /* MEMORY ACCESS TO TIME */
time2 = __rdtscp(&junk) - time1; /* READ TIMER & COMPUTE ELAPSED TIME */
if (time2 <= CACHE_HIT_THRESHOLD && mix_i != array1[tries % array1_size])
results[mix_i]++; /* cache hit - add +1 to score for this value */
}
/* Locate highest & second-highest results results tallies in j/k */
j = k = -1;
for (i = 0; i < 256; i++) {
if (j < 0 || results[i] >= results[j]) {
k = j;
j = i;
} else if (k < 0 || results[i] >= results[k]) {
k = i;
}
}
if (results[j] >= (2 * results[k] + 5) || (results[j] == 2 && results[k] == 0))
break; /* Clear success if best is > 2*runner-up + 5 or 2/0) */
}
运行结果
预测执行在提高CPU运行效率的同时也带来了安全隐患,它本身会导致CPU去执行程序本不该执行的代码,再加之操作系统和处理器没有对程序或者说低权限程序访问内存地址的范围作出很好的限制,高速缓存更是只能共用,这就导致本不该执行的代码执行后,还会把信息泄露给攻击者。
- 第三组 您所有的GPS都属于我们:对道路导航系统的秘密操作
该论文针对当今全球数十亿用户使用的移动导航服务,提供了一种切实有效的攻击手段,具有把汽车导偏到危险道路上的功能。本文探讨了对道路导航系统进行隐身操纵攻击的可行性,目标是触发假转向导航,引导受害者到达错误的目的地而不被察觉。其主要想法是略微改变GPS位置,以便假冒的导航路线与实际道路的形状相匹配并触发实际可能的指示。为了证明可行性,该论文首先通过实施便携式GPS欺骗器并在真实汽车上进行测试来执行受控测量。然后,该论文设计一个搜索算法来实时计算GPS移位和受害者路线。该论文使用追踪驾驶模拟(曼哈顿和波士顿的600辆出租车道路)进行广泛的评估,然后通过真实驾驶测试(攻击我们自己的车)来验证完整的攻击。最后,该研究组在美国和中国使用驾驶模拟器进行欺骗性用户研究,结果显示95%的参与者遵循导航没有意识到这种攻击就到了错误的目的地。
论文所用到的简易攻击设备
harkrf one便携式GPS Spoofer,软件定义无线电(SDR)我们实施了便携式GPS欺骗器来执行受控实验四个组件:HackRF One-based前端,Raspberry Pi,便携式电源和天线整体欺可以放在一个小盒子里我们将其连接到频率范围在700 MHz至2700 MHz之间的天线,覆盖民用GPS频段L1(1575.42兆赫)。 Raspberry Pi 3B(四核1.2GHz Broad com BCM2837 64位CPU,1GB RAM)用作中央服务器。 它运行支持SSH的Raspbian Jessie操作系统和LAMP堆栈服务器。 GPS卫星信号由一个名为的开源软件生成在Raspberry Pi上运行的无线攻击发射盒(WALB)[6]。 Raspberry Pi具有蜂窝网络连接,并支持通过SSH进行远程访问(Se-并支持通过SSH(Se-cure Shell)进行远程访问。通过控制Raspberry Pi,我们可以手动或使用脚本来获取实时GPS位置信息。我们使用10000 mAh移动电源作为整个系统的电源。所有组件都是现成的。总费用大约是223美元(175美元+ 35美元+ 10美元+ 3美元)。
论文中所用到的欺骗原理
受害者是纽约市的旅行者,他不熟悉该地区,因此依靠GPS应用程序进行导航。图3a显示受害者正在从新泽西州的汉密尔顿公园(P)开车到曼哈顿的帝国大厦(D)。假设攻击者接管受害者在Lincoln Tun nel(A)出口处的GPS接收器,如图3c所示。攻击者创建错误的GPS信号以将GPS位置设置为附近的“主机”位置B.为了应对错误的位置漂移,导航系统将重新计算B和D之间的新路线。我们称之为新的路线鬼魂路线。在物理道路上,受害者仍然在位置A并开始按照应用程序的逐向导航。同时,导航应用程序不断接收欺骗的GPS信号。最终,受害者将最终到达不同的地方C.注意B鈫 D的形状路线类似于A鈫鈫C路线。根据攻击的目的,攻击者可以预先定义目标目的地C或者仅仅旨在转移受害者来自原始目的地D。图3:攻击示例:受害者的原始导航路线为P→D; 在位置A,欺骗者将GPS设置为幻影位置B,其迫使导航系统生成新的路线B→D。在逐向导航之后,受害者实际上在物理世界中从A行进到C.
- 第四组 伟大的训练带来巨大的弱点:针对转移学习的实际攻击
这组主要讲解了对迁移学习的攻击及预防,
攻击目标:把source图猫误识别为target图狗
本文的攻击思路:首先将target图狗输入到教师模型中,捕获target图在教师模型第K层的输出向量。之后对source图加入扰动,使得加过扰动的source图(即对抗样本)在输入教师模型后,在第K层产生非常相似的输出向量。由于前馈网络每一层只观察它的前一层,所以如果我们的对抗样本在第K层的输出向量可以完美匹配到target图的相应的输出向量,那么无论第K层之后的层的权值如何变化,它都会被误分类到和target图相同的标签。
预防迁移学习攻击的方法
论文还提出了3种针对本文攻击的防御方法,其中最可行的是修改学生模型,更新层权值,确定一个新的局部最优值,在提供相当的或者更好的分类效果的前提下扩大它和教师模型之间的差异。这又是一个求解有约束的最优化问题,约束是对于每个训练集中的x,让教师模型第K层的输出向量和学生模型第K层的输出向量之间的欧氏距离大于一个阈值,在这个前提下,让预测结果和真实结果的交叉熵损失最小。
- 第五组Safeinit:全面而实用的未初始化读取漏洞缓解
本文主要讲解了提出了SafeInit,一种基于编译器的解决方案 - 与强化分配器一起 - 通过确保栈和堆上的初始化来自动减轻未初始化的值读取。提出的优化可以将解决方案的开销降低到最低水平(<5%),并且可以直接在现代编译器中实现。基于clang和LLVM的SafeInit原型实现,并表明它可以应用于大多数真实的C / C ++应用程序而无需任何额外的手动工作。评估我们在CPU-intensiv占用CPU资源的操作、I / O-intensive占用I/O设备的操作以及Linux内核方面的工作,并验证是否成功地减轻了现存的漏洞。
LLVM框架
*实验结果的评估**
表I提供了每个基准测试的局部变量的数量的详细信息,同时包含了初始化的数量,在优化期间也会删除或缩短很多初始化
- 第六组操纵机器学习:回归学习的中毒攻击与对策
这组主要讲解了研究的中毒攻击的效果及其对线性回归的防御。对这种基本类型学习模型对敌人的适应能力的理解将使未来对其他类别的监督学习方法的研究成为可能。
系统构架
理想世界:学习过程包括执行数据清理和标准化的数据预处理阶段,之后可以表示训练数据;测试阶段:模型在预处理后应用于新数据,并使用在训练中学习的回归模型生成数值预测值;对抗性世界:在中毒攻击中,攻击者在训练回归模型之前将中毒点注入训练集。
防御算法—TRIM算法
修剪损失函数、迭代估计回归参数、正则化线性回归
三个数据集上脊上的防御MSE。作者从图中排除了chen,因为它的变异性很大。针对optp攻击评估防御。在这些情况下始终表现良好的唯一防御是作者提出的TRIM防御,在某些情况下,RANSAC,huber和RONI实际上比不防御模型表现更差;套索防御的MSE。作者从图中排除了chen,因为它的变异性很大。针对最有效的攻击opp评估防御。和Ridge一样,唯一一直表现良好的防守是作者的TRIM防守。
- 第七组卷积神经网络用于句子分类
这组所选的论文主要研究呢一系列的卷积神经网络(CNN)的实验,这些实验是在预先训练过的单词向量的基础上训练的,用于句子级的分类任务。且发现,一个简单的CNN具有很少的超参数调整和静态向量,在多个基准点上都能达到很好的效果。通过微调学习特定于任务的向量可以进一步提高性能。此外,我们还建议对体系结构进行简单的修改,以允许使用特定于任务的向量和静态向量。本文所讨论的CNN模型改进了7项任务中的4项,包括情绪分析和问题分类。
模型的介绍
通过卷积过程和池化过程来进行对句子的处理
1)CNN-rand:所有的word vector都是随机初始化的,同时当做训练过程中优化的参数;
(2)CNN-static:所有的word vector直接使用无监督学习即Google的word2vector工具得到的结果,并且是固定不变的;
(3)CNN-non-static:所有的word vector直接使用无监督学习即Google的word2vector工具得到的结果,但是会在训练过程中被微调;
(4)CNN-multichannel: CNN-static和CNN-non-static的混合版本,即两种类型的输入。
感想和体会
1.我导师最近在研究量子密码的一些技术,且有一些项目。所以,通过王老师这么课,我学习到了量子密码方向基本原理、重要的量子密码通信协议、以及一些量子密码的顶会,对我今后的科研工作很有帮助。
2.通过学习这门课,听了不同老师关于不同方向的讲座,了解到了网络安全、漏洞挖掘、区块链、信息隐藏技术、量子通信等一些最新的最前沿的研究方向,使我受益匪浅。
3.我觉这种上课的方式十分有趣,能使我们容易几种注意力去听老师所讲解的内容,跟不同研究方向的老师沟通,使我们的视野和研究领域更加开阔,激发我们主动学习的动力。
4.刚开始的时候,老师所要找顶会的文章,我们都不知道那些文章是顶会,后面通过同学的交流和网上搜索信息,发现了四大安全顶会和美密、欧密、亚密等这些顶会,现在我可以很轻松的找到一些研究领域的顶会论文,极大的提高我们查阅论文资料的能力。
5.很幸运选择了这门课,为我今后研二的科研工作打下了一个良好的开端、锻炼了我查找论文的能力、扩展了我们的视野。
对本课程的建议和意见
1.我觉得每个老师讲的专题都很前沿、很热门;我希望每次讲座后的作业,由所讲的老师来布置,这样可以增加学生与老师之间的沟通和交流。
2.我觉得学生和老师之间可以增加一些互动、可以增加一些现场演示一些前沿技术或老师自己研究的方向,让学生现场感受一下这些技术、印象更深刻、上课效果更好。
3.每次学生写完作业,我们可以在课堂上来讨论交流一下自己所看过的论文,与大家分享、共同学习和促进。