(附讲稿全文和PPT)百度讲师:以struts2 为例,教(2)

说到web系统,不得不提扫描器。其实黑客大多数也很忙,没有时间针对每个网站一点点人工测试,大多数是这么做的:开一堆扫描器,任其疯狂扫描,坐等最终结果。如果结果中有了一些中高危漏洞,他们便尝试去利用,这时候才开始针对性测试。所以,扫描算是一个重要入口了吧,如果能挡住点扫描行为,扰乱扫描器这群傻机器,其实也可以很大程度上增强安全性了。

(附讲稿全文和PPT)百度讲师:以struts2 为例,教你打造一款互联网思维的安全防御 | 硬创公开课

对webserver进行些加固、用个效果不错的waf抵挡扫描器的探测、同时自己也用扫描器提前扫一下,针对已知漏洞还是有很大效果的。

但是针对struts2 s2-045 这样的0day漏洞,效果就很有限了。那如何在0day下,也有一部分的防御&感知能力呢?

由于是0day,第一时间:

Ø 没有规则,无法拦截

Ø 没有poc详情,无法扫描

但是,利用漏洞必定会 有攻击路径

Ø 特征(主要是 已入侵,得到shell的方法)

Ø 行为(主要是进一步攻击,漫游,扩大战果)

所以这时,用安全监控作为弥补,感知已入侵的入侵特征和行为,及时发现黑客入侵并应急处置,将变得异常重要和有效。

(附讲稿全文和PPT)百度讲师:以struts2 为例,教你打造一款互联网思维的安全防御 | 硬创公开课

下面,我会从这三个方面给大家介绍下互联网公司一般是如何做的,以及需要注意的问题。着重讲下安全监控的思路。其中的一些实践经验总结来自于大量的攻防对抗、入侵排查、0day应急处理。

关于扫描器,我们需要明白,扫描器并不是万能的,他主要的作用有两个:

已知问题提前发现,先于黑客发现并修复漏洞,防止被外界利用

新问题 快速review(0day、SRC、其他公司等近期多发高危case)

扫描器只能是一个公司安全整体情况的晴雨表,通过扫描结果反馈不足并不断改进。而这个晴雨表的效果来自于整体扫描能力的构建。

(附讲稿全文和PPT)百度讲师:以struts2 为例,教你打造一款互联网思维的安全防御 | 硬创公开课

如何评判一个扫描系统是否优秀呢?Poc的数量、质量、是否有智能识别是一个很重要的指标。数量代表了能扫到的漏洞范围(但切记范围要本地化、实用,一些老旧、无大风险的漏洞其实并没有必要),质量代表了扫描效果(例如sql注入扫描poc,是否覆盖了各种注入类型等),智能识别能极大的降低由于“傻扫”带来的资源占用、任务时间延长。

另一个常见问题是大多数扫描器资产发现能力很弱,单靠爬虫等会使得扫描输入源(访问url和参数)很有限,输入源少了,自然整体扫到的漏洞也少。一种有效的方法是通过流量中、浏览器插件、access日志等获取更多的输入源补充到扫描任务中。

(附讲稿全文和PPT)百度讲师:以struts2 为例,教你打造一款互联网思维的安全防御 | 硬创公开课

如果不满足商业扫描器的功能&灵活性,或者希望更深入了解扫描器的原理,或者干脆自己实现一款扫描器,那么可以参考下W3AF(如上图所示)W3AF是一款很优秀的开源扫描器,使用python语言实现。其中的audit模块包含了常见漏洞的检测及判断方法。而crawl模块包含了爬虫、google hacking、dictionary list等多种资产发现方式。整体上来看,很具有参考价值。

(附讲稿全文和PPT)百度讲师:以struts2 为例,教你打造一款互联网思维的安全防御 | 硬创公开课

WAF通常是放在了一些中小型企业DMZ区域的最外侧。同样的,WAF也不是万能的,别指望有了WAF就一切万事大吉了(这是大家一直的误区)。它所解决的问题,其一是让扫描器得不到想要的结果,混淆扫描器;其二是在拦截0day方面,由于是最外侧入口,有着不可比拟的优势,在业务没有统一修复之前,针对性利用代码,防范0day。

同时WAF也可以作为一些数据产出,比方说根据近期攻击情况做防御调整,比方说收集最新的POC等。