电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

北京Security SegmentFault2016开发者大会服务端安全专场

  • 资源ID:61909788       资源大小:101KB        全文页数:34页
  • 资源格式: DOC        下载积分:2金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要2金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

北京Security SegmentFault2016开发者大会服务端安全专场

<p>会议时间:2016年11月19日会议地点:新云南皇冠假日酒店会议主题:服务安全专场主持人:大家下午好。我们是做安全的,这次是安全和开发这样一个结合,因为在开发端,安全如果做好的话,那么就不会出现几年,十几年长老级的,很弱智的那些漏洞。今天天气不错,说到了,那么今天来的大牛也非常牛,首先我们请理财范儿资深研发周为,他带来的是NginxLua技术在网络安全方面的应用,大家欢迎。周为:今天人不少,先跟大家自我介绍一下,我是研发工程师,一直负责安全这方面,我们公司是做金融的,特别重视安全。在今年年初的时候,我把我们公司开发了一套NginxLua这么一套技术发布了,结果受到很多的好评,很惭愧,做了一点微不足道的工作,结果获得了很多赞赏。这次来跟大家分享一下这方面的应用和心得,因为Nginx大家用的会比较多一点,基本上各个公司都有在用,然后大家也会拿Nginx去做一些简单的安全配置,比如防止目录被访问之类的。但是普遍的应用都不深。所以今天我就来给大家讲一下,主要是为大家开拓眼界。首先不管做什么东西,我们都有套路,我先来给大家介绍一下,Nginx它进行防御的一个基本的套路是什么。然后大家看这里,上面是基础的套路,下面是高级一点的套路,像基础一点的套路,比如我们会拿Nginx来对访问者的IP进行这么一个匹配,比如我们会限制某一些IP不让它访问。然后再高级一点,比如我想来限制某一个爬虫,或者是某一个扫描器,这种情况下他们一般会有自己的UserAgent。用Nginx它很容易就把目录泄漏出去,这个时候我们会设置一下这个UPI不能被泄漏出去。接着有一些客户端不知道为什么访问得很快,然后这种情况下它有可能是善意的,也有可能是恶意的,但是一般情况下会说是一个限制,就是一个频率限制,就是上面的这四个Nginx自己都能做,基本上把上面的四个做了之后,它就能解决一大部分问题,但是没办法做得太好,因为它总是有办法绕过去,比如说我如果用现成的扫描工具扫描一个网站,现在有很多这种扫描工具,可能它会有自己的一个UserAgent,它也可以改,它的IP也可以通过各种代理服务器,把IP的限制绕过去。然后频率限制也可以放慢这个速度,也解决不了太多问题。但是有了扩展,我们可以做剩下的三个,比如我们可以根据它很复杂的特征来做匹配,就是一些组合的特征。因为这个理论基础是什么?浏览器的话它是一个很复杂的实现,它会有自己的一些特征在里面,比如说用扫描工具,或者是用某一个脚本来试图攻击你的时候,实际上它是在模仿这个浏览器的行为,但是它毕竟不是一个浏览器,所以它就没有办法百分之百做到跟它一样,中间这个细节实际上就会泄漏出来它的身份,它不是个浏览器,然后如果你能够观察出来,就能把它拦在外面。主动行为与探测就是说,比如你目前拿到了这个信息,比如来了一个访问请求实际上你从这个请求,你怎么看你都觉得它是正常的,或者你看不出来任何问题,然后这个时候,但是你觉得它可能有所问题,比如你从日志或者访问的频率,当你发现有问题的时候你可以进行一个主动的探测,比如你发给它一些回应,再观察它回来的反映,其实攻击者的软件,基本上没有办法做到跟人家浏览器组合一模一样,所以你对它进行探测的时候它也会泄漏出来一部分信息,这个时候你就可以把它拦住。如果这两个做好了,实际上它就能解决很多问题。接着就是后面这一个,如果这些行为它看起来都还是正常的,包括你对它进行探测,它也是正常的情况下,你可能会需要继续观察,我先放行请求,我先观察,收集它访问的这么一个规律,然后来再进行一个判断,然后最后当它暴露出来它恶意意图的时候,那你就可以把它拦住了,基本套路就是这个样子。但是一般来说,上面三个你拿Nginx自己的配置你是很容易去做的,再往下三个,就是Nginx它自己的一些限制导致没有办法去做,我们就会需要另外的一些工具来帮我们达到这个目的。比如说我们现在嵌的是Lua在里面,会有人问为什么要嵌Lua,而不嵌GS。为什么呢?Nginx它有官方嵌入Lua的实现,但是现在功能还不是很好用,基本上没办法做这个事情。但是嵌其他语言的话,实际上它可能会对性能损耗比较大,Lua它在这个地方是比较好的一个选择。因为Lua很小,Lua的功能虽然不是特别强,但是它本身很强,它很适合嵌入这种应用。我们接着往下。我们先看一下Nginx的这个工作模型,可以看到首先Nginx是一个多进程的一个工作模型,然后它有一个主要的进程用来控制其他的worker,最右边是我们需要注意的一点,其实它是有共享内存,是可以挂在一个共享的区域,这样的话各个Worker可以访问共享内存,这种情况下有一些信息我们是可以存在共享内存里面,包括Nginx自己访问频率限制,它也是这么做的。就说这个理论上,实际上Nginx它是可以把一些中间的信息存在那个地方,这样子它就可以做一个延迟的角色。比如像Nginx的频率访问限制,实际上它就是把一个计数器放在右边那个地方,当人家访问频率超过它允许的范围之后,它就会拦截,这个性能非常好。我们接着再往下。这是Nginx的一个配置模型。Nginx它的配置我们先要说它是一块一块的,一般情况下,我们会在HTTP里面支持多个站点。为什么给大家看这个呢?实际上是大家可以看到,中间那个Location,它就是一层一层下来,实际上Nginx它很神奇,它本身不是个,它的配置不是个编程语言,但是它能通过这样的组合,能实现很多玩法,就是可以做很多的事情。但是我们还是要知道,就是毕竟它不是一个编程语言,然后有时候它会有一些局限性,没办法做到很高级的一些应用,实际上Nginx所有的这个请求过来,它都会映射到一个Location里面,它就会加载Location自己的配置,这个配置是在Nginx启动的时候已经生成好的,它并不是,比如说Nginx里面写了Events,并不是说当我一个请求过来的时候,我再来判断这个Events怎么样再执行,并不是,它一开始就把Location配置好,直接走里面的配置。大家知道这一点就好,它能够Events,不是你想象的Events,这个时候如果用它的Events可能就会出现一些问题。我在这里先调查一下,就是在座的,比如说你们有用Nginx去配置过那种复合条件的判断吗?就比如说我同时要匹配它的IP地址或UserAgent,有吗?如果我们要在Nginx里面做一些复合条件的判断,要怎么做呢?那就得这个样子,因为Nginx有一些限制,首先它没有办法嵌套,第二个它不能用把条件并列起来,我就只能这么写,比如我要判断一个IP和U,我要定一个变量,把IP判断一下,接着在这个变量里面写一个标记,最后再来判断这个标记,看到没有就很别扭,这个东西不是很好用,这还只是两个,如果说要有更多的复杂判断,实际上就,反正不好搞。接着再看一个例子,基本上很多人都会IF,但是他们搞不清楚这东西到底是怎么回事,比如说这个例子,看到没有,这是一个Test路径,然后接着我Set一个变量,往下的时候我两次判断这个变量,然后在里面用了Location,实际上它是在IF里面响应,但是如果你测的话你会发现只有第二个有,第一个就丢了,这是很违反直觉的,这个地方是为什么呢?就回到刚开始的那个图,就是Nginx所有的操作它都是把这个配置,就是它是根据配置生成这个Location,然后把你的请求发到Location里面来执行,所以它并不是解释性执行,比如从上面IF,再IF,看到这个地方就两次加上去的标记都是1,大家可以想一想为什么。然后这个地方就是因为这样子,它会出一些问题,所以我想给大家说明的就是,拿Nginx自己的配置来做这这方面的拦截,确实不是一个好主意,比如有人来攻击你,你试图在Nginx里面写配置把它拦住,最后很有可能就是没有把别人拦住,反而把自己拦在外面,或者让业务崩掉了,因为一般人搞不懂这个东西。我的建议就是大家尽量少用这种复杂的判断,除非你知道它到底为什么。接着往下来,教给大家更靠谱的一些方法,我们现在有Lua,可以把它嵌入到Nginx里面做这个事情。它是高并发的,低内存消耗的,高可靠性的,热部署的,占用资源少的,高性能,易于开发的,无需编译的。它性能会比较好,但是实际上很不灵活,Nginx的性能一般都是过剩的状态,所以我们可以牺牲它的一些性能,去换取其他方面的一些,就是更好的,更灵活的这么一种优势。接着往下,NginxLua它的优点就是我们结合了Nginx的高性能和Lua的可编程能力,从数据结构还有各方面来说,实际上Lua都不是很强大的存在,这是为什么呢?因为Lua设计思想来说,就说这个东西要尽可能的小,尽可能小的情况下,它的解释器也可以很小,它就可以嵌入到其他程序里面做一个扩展,所以实际上它实现是很好的,而且我们还可以拥有Nginx的异步非阻塞的能力。比如说我一个核不够的话,我可以多起几个Nginx,然后这都完全不是问题。接着往下,接着我们来看一下我们是怎么样把Lua嵌入到Nginx里面去得。大家看这个图。Nginx大概分成这几个阶段,这个图有所减化,但是基本上就是这个样子,Nginx首先起来就是Init,接着每个请求过来都会循环下面的三个阶段,那就是init,rewrite和access。就是把这个请求给记录下来,然后这个蓝色的小方块,实际上它是一些外来点,就说我们可以通过这些挂在点,把Lua代码点挂在这里面去执行,相当于一些钩子嘛。我们可以挂在一些代码在这个,比如说在access by Lua上面的,这样子的话我们就能对所有的请求来进行这么一个过滤,因为我们可以获取到这个请求所有的信息。然后Lua它是一个完备的语言,我们就能在这里面进行一些复杂的判断。然后content by Lua可以直接回复给客户端,就说这是完整的一个框架,但是我们如果用它来做安全方面,实际上会比较合适,因为它的优势还是很明显的,它的速度很快,占用资源很少,而且很灵活。然后我们来看一下hello world,这是最简化的一个配置文件,它的重点在这个地方,这就是一个hello world,我在这个地方写了一句Lua的代码,当你访问这个的时候,它就会给你说Hello World,就是很简单,就是跟Nginx的配置文件很像。但是我在这个地方只是写了一行,实际上你还可以把它写在文件里面,或者其他的方法。你们可能想知道开始我演示了一下,拿Nginx自己的文件做这么一个复合条件的判断是怎么做,那现在来看Lua的版本,就是这个样子,首先我取了它的UA,又取了IP,我把这两个东西取到之后进行了一个匹配,然后如果命中了,那我就返回403,这个逻辑就很清楚,就不用像,这个就像,它就是一个编程语言,它不用像之前的我们在Nginx里面做它这种操作一样,就是想很多其他的一些办法来间接达到这个目的,这是用正当的手段来做这个事情,我们再比较一下开始的那一个。回到开始哪里,这个地方要这个样子,其实这两个一比较就很清楚,其实后面还是很有优势的。那我们接着再往下,其实在这个地方它就是演示一个最演示的,就是我们要把这一个IP端里面,把这样的请求拦住,实际上你可以在这里面写更复杂的逻辑,比如你可以到数据库里面动态的取一些规则,这样的话你的Nginx可以在不用重启的情况下,可以去达到规则更新的这么一个目的。这里给大家补充一些基础知识,我现在想在Nginx里面写Lua的代码,我到底需要什么东西,就是我讲了这么久,大家可能还不知道,然后我来给介绍一下。首先在这个地方,它是Nginx,它是最原版的这一个方块,它提供了一个HTTP的处理能力,还有可插拔的模块,然后接着是Nginx Lua Modele,其实有这两个我们就可以跑上面的Hello World,实际上你还需要其他库,你会需要一些锁,还有其他一些东西的实现,但是这个里面是没有的,然后你就需要其他的第三方的东西,因为Nginx它本身是一个很精简的东西,很多东西都是靠扩展来实现的,这个时候你就需要把扩展装起来,这样比较麻烦,所以你可以直接用OpenResty。然后有了这些东西,有了这个大方块里面的所有东西,那你就能愉快的写这个</p>

注意事项

本文(北京Security SegmentFault2016开发者大会服务端安全专场)为本站会员(1591****685)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.