课程:《密码与安全新技术专题》html
班级: 201892
姓名: 郭开世
学号:20189221
上课教师:谢四江
上课日期:2019年2月26日——2019年6月4日
必修/选修: 选修git
典型攻击方式:高等持续性攻击(APT):2010年6月震网(stuxnet)攻击⇒物理隔离是不安全的,第三方恶意代码注入:2015年9月Xcode Ghost⇒底层开发软件在编译过程攻击,上帝攻击模式(GPT):基于全球全网大数据能力对用户进行用户画像。github
威胁方-防御方的非对称性:攻防技术非对称,攻防成本非对称和攻防主体非对称。web
常见的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)。设计模式
量子密码体制使用:
主要用于党政机关,实际使用中仅负责密钥分发。api
量子密码算法:
- shor算法:提出大数分解,能在多项式时间内分解大数。受影响最大的密码体制为RSA等大数公钥密码
- Grover算法:提出搜索无序数据库量子算法,快速搜索算法。使密钥搜索的时间复杂度在二次加速的基础上获得了进一步的提速。缓存
量子密码特色:
在此次课程做业中,我对量子密码技术的最新研究现状有了一些了解。
单光子量子点的传输:
深度学习与密码分析
深度学习与密码设计
生成对抗网络设计密码
研究人员MartínAbadi和David Andersen证实神经网络或“神经网络” - 松散地基于人工神经元的计算系统 - 能够解决如何使用简单的加密技术。
在他们的实验中,计算机可以使用机器学习进行本身的加密形式,而不须要教授特定的加密算法。加密是很是基础的,特别是与咱们当前的人工设计系统相比。即使如此,它仍然是神经网络的一个有趣的步骤,做者声称“一般并不意味着在密码学方面很出色”。机器学习提供了一种解决方案,但并非一种简单的方法来理解它是如何实现的。在实践中,很难为以这种方式建立的加密方法提供任何安全保证。
在此次课程做业中,我对生成对抗网络比较感兴趣。对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):
信息隐藏:
信息隐藏是将消息隐蔽的藏于载体中,实现隐蔽通讯,内容认证或内容保护等。
信息隐藏技术:鲁棒水印 (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)直接写到最低的位平面上。换句话说,若是秘密信息与最低比特位相同,则不改动;若是秘密信息与最低比特位不一样,则使用秘密信息值代替最低比特位。
在Powload的案例中,使用隐写术来检索包含恶意代码的图像。基于趋势科技分析的Powload变体的代码提取案例程序,Powload滥用公开可用的脚本(Invoke-PSImage)来建立包含其恶意代码的图像。
在此次课程做业中,我阅读了一些行业大牛Jessica Fridrich的论文。
Jessica Fridrich确实在隐写方面造诣极深。
比特币的特色:数字货币,不依托于任何国家或组织而利用计算机技术独立发行,经过P2P分布式技术实现,无中心点,全部人都可自由的参与,总量有限,不可再生,自己机制开源,能够被山寨。
区块链的一些要素总结:
区块链技术的4个基本性质:
区块链技术发展的三个阶段:
我的对区块链技术的见解:
在本次的课程做业中,我对区块链技术的研究现状有了一些了解。
区块链经过分布式数据存储和共识机制确保数据能够被跟踪而且不容易被篡改。它提供了一种思想和方案,以分散的方式创建信任关系,并在数字证书和身份认证领域受到普遍关注。 提出了第一个使用比特币块链系统做为框架的分布式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关系数据库、携程;棱镜门;
漏洞挖掘示例
我在课下对模糊测试和NFC进行了一些了解:
模糊测试是一种介于彻底的手工渗透测试与彻底的自动化测试之间的安全性测试类型。它充分利用了机器的能力:随机生成和发送数据;同时,也尝试将安全专家在安全性方面的经验引入进来。
从执行过程来讲,模糊测试的执行过程很是简单:
NFC主要应用于:启动服务,将NFC用于“开启”另外一种服务(例如为数据传输开启另外一条通讯连接);点到点,NFC能够用于实现两个装置之间的通讯;付款和票务,将NFC搭建在新兴的智能票务和电子付款基础设施之上。
经过本次的课程做业,我对漏洞挖掘现状有了一些了解。
真正进行漏洞挖掘须要具有的知识
从事漏洞挖掘工做须要具有的知识是极其普遍的,而且随着时间在不断改变,也取决于你所研究的对象(web程序、桌面程序、嵌入式等等)。不过,万变不离其宗,所须要掌握的知识领域却总能够认为是肯定的,我认为大体能够分为如下四个方面:
通常漏洞挖掘框架:
做者:[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
相关知识:机器学习 数据安全 线性回归 预测模型
细读这篇论文,我发现他不愧是顶会论文,其行文结构、研究思路,都是极为科学、严谨,其缜密的研究思路
,完备的研究过程
,优秀的论文结构
,细致的验证对比
,给我很大帮助,很大启发。
论文选题为在10秒内找到未知的恶意:在Google-Play规模上大规模审查新的威胁。本文开发了一种名为MassVet的新技术,用于大规模审查应用程序,而无需了解恶意软件的外观和行为方式。与一般使用重量级程序分析技术的现有检测机制不一样,文中所用的方法只是将提交的应用程序与已经在市场上的全部应用程序进行比较,重点关注那些共享相似UI结构(表示可能的从新打包关系)和共性的区别。
论文做者将应用程序的视图图形(即,其用户界面之间的互连)(例如窗口小部件和事件的类型)的一组特征投影到单个维度,使用惟一索引来表示应用程序在维度内的位置以及类似度。它的界面结构与其余人的界面结构。研究中将该指数计算为视图的几何中心,称为v-core。市场上全部应用程序的v核都通过排序,以便在审核新应用程序时启用二进制搜索,从而使此步骤具备高度可扩展性。
检测思路以下:
为了提升处理器性能,计算机架构师采用了诸如推测执行和缓存之类的加速技术。然而,研究人员最近发现,这种方法意味着固有的安全漏洞,正如Meltdown和Spectre所利用的那样。针对这些漏洞的攻击能够经过利用错误推测的执行来经过诸如数据缓存时序之类的辅助渠道泄漏受保护的数据。这些缺陷多是灾难性的,由于它们是基础和普遍的,它们会影响许多现代处理器。减轻Meltdown的影响是相对简单的,由于它须要基于软件的修复,这已经由主要OS供应商部署。然而,直到今天,Spectre尚未有效的缓解措施。解决问题可能须要在将来的处理器中从新设计用于条件执行的体系结构。此外,使用传统的基于软件的防病毒技术很难检测到Spectre攻击,由于它不会在传统日志文件中留下痕迹。在本文中,做者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支错误预测,以在攻击运行时检测Specter。做者的检测器可以使用各类机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。做者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支误预测,以便在攻击运行时检测Spectre。做者的检测器可以使用各类机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。做者建议监视微体系结构事件,例如缓存未命中,现有CPU性能计数器的分支误预测,以便在攻击运行时检测Spectre。做者的检测器可以使用各类机器学习分类器以及合理的性能开销实现0%的假阴性,误报率低于1%。
做者按期同时从四个性能计数器收集数据。在本节中,咱们首先分析收集的原始数据,以肯定经过可视化数据分布来区分清洁环境中的测量和受攻击的测量是否可行。而后咱们使用不一样的机器学习算法来训练分类器并使用前面讨论的滑动窗口方法构建实时攻击检测器。
LLC参考的分布,LLC未命中和分支未命中率特征:
本文提出经过监视微体系结构特征误差来检测Spectre攻击,由于攻击利用了现代处理器硬件设计中的漏洞,例如推测执行和缓存侧通道。这些功能是从处理器中普遍使用的硬件性能计数器收集的。采用在线检测方法检测攻击早期的恶意行为,而不是在损坏完成后进行离线检测。实验结果代表,使用训练的多层感知器分类器,只有0.77%的假阳性和0%的假阴性,具备很好的检测准确度。因为对幽灵的彻底缓解具备挑战性,如今主动检测此类攻击更为实际。
根据不一样类型的硬件设计缺陷和侧通道被开发,Spectre有许多变种。不断发现新变种,最近研究人员发现了一种新的推测性商店绕过漏洞[15]。可是,全部不一样的变体都使用侧通道来推断攻击最后阶段的机密信息。此外,隐身模式幽灵攻击一般无效。所以,咱们认为能够经过监视这些硬件侧通道的变化来检测恶意行为。该研究代表使用这种方法检测Spectre的可行性。将来的研究能够针对不一样配置下的其余攻击变体进行,例如在服务器和虚拟机环境中。
论文选题:All Your GPS Are Belong To Us: Towards Stealthy Manipulation of Road Navigation Systems
算法思路:
论文选题: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能够进一步优化代码的同时,保证全部须要初始化的变量进行初始化,删除多余初始化代码进行优化,这样既保证缓解了未定义变量漏洞的威胁,同时与其余现有方法相比,提高了性能。
在没有使用优化器的状况下应用时,运行时开销的(几何)平均值为8%。应用该优化器能够显着下降剩余基准测试的开销,与做者的基线编译器相比,致使CINT2006的平均开销为3.5%。 CFP2006的结果相似,以下图所示,平均开销为2.2%。
论文选题:[是Convolutional Neural Networks for Sentence Classification,做者是Harvard NLP组的Yoon Kim,而且开源了代码 sent-conv-torch。
单通道图像能够表示为一个矩阵,输入到CNN中,通过多组filter层和pooling层,获得图像的局部特征,而后进行相关任务。本文用拼接词向量的方法,将一个句子表示成为一个矩阵,这里矩阵的每一行表示一个word,后面的步骤仅采用一组filter、pooling层来获得句子的特征向量,而后进行分类。
这里,模型根据词向量的不一样分为四种:
论文在七组数据集上进行了对比实验,证实了单层的CNN在文本分类任务中的有效性,同时也说明了用无监督学习来的词向量对于不少nlp任务都很是有意义。
这里须要注意的一点是,static模型中word2vec预训练出的词向量会把good和bad当作类似的词,在sentiment classification任务中将会致使错误的结果,而non-static模型由于用了当前task dataset做为训练数据,不会存在这样的问题。具体可参看下图:
从web安全到漏洞挖掘技术,从量子密码技术到深度学习的密码分析技术,从信息隐藏到区块链技术,一个学期一晃而过,再加上最后两次课的论文汇报,密码与安全新技术专题课程的六次教师讲座就这么结束了。
在本学习的课程学习中,我对密码和安全方面有了新的认识,对web安全、漏洞挖掘技术、量子密码技术、深度学习在密码分析的应用、信息隐藏和区块链技术等有了比较清晰的认知,也对本身在研究生阶段的研究方向和研究方法有了一些大体的想法。
我本科是学网络工程的,毕业设计作的是神经网络方面的内容,研究生阶段实验室的研究方向大体是密码安全方面及访问控制相关。在研一阶段看的论文很少,除了课程要求的相关论文外,只是大体看了导师要求的国密标准相关文档,这门专题课带着我看了几个细方向的论文,如SQL注入攻击、生成对抗网络、隐写技术及隐写分析、漏洞挖掘,也看了一些比较火的研究方向,如量子密码和区块链技术。这些顶会论文带个个人最大收获就是眼界上的开阔,以及研究方法和论文结构上的指导,这对于我研二的研究工做有极大的帮助。
收获主要概括为如下几点:
要多和老师交流,提出问题以后必定要找老师把关,分析可行性,看能不能出成果,有没有研究价值。研究生阶段是离不开老师指导的。
深挖本身的研究方向的同时不能对其余的知识领域,尤为是主专业的其余研究方向放松,多学习多交流,有不少东西是共同的,并且不少技术的应用是能够结合起来的。
我本人的可能更想作理论研究,功利一点来讲也想多发一些论文。这门专题课对我有很大的帮助。
意见建议概括为如下几点:
十分感谢王志强老师组织、讲解的专题讲座课程,也十分感谢张健毅老师、孙莹老师、金鑫老师、夏超老师几位老师的授课和对咱们的建议!
相关博客连接:
论文报告连接:
第七组:卷积神经网络用于句子分类