写点什么

黑哥谈应用安全:技术的进步就是为了解决矛盾

  • 2014-02-23
  • 本文字数:4364 字

    阅读完需:约 14 分钟

如果你是安全圈内或安全圈周边人士,或者如果你不懂安全但经常看道哥的黑板报,你应该知道黑哥。这里直接借用一下道哥在黑板报对黑哥的介绍:

黑哥真正的 id 是 superhei,熟悉他的人喜欢叫他黑哥,也有无聊者直译为“超级黑”、“素破黑”。在黑客的圈子里,有无数叫小黑或者黑哥的,但在资深黑客的眼中,只有一个黑哥,就是 superhei。黑哥真名周景平,目前是国内知名安全公司 — 知道创宇 — 的安全专家。

黑哥的故事在黑板报的那篇《中国黑客传说》中已经从圈内人的角度进行了相当广泛的描述,这里就不做搬运了。在下面的采访中,黑哥分享了他对当前Web 程序漏洞、后门、用户体验和安全的矛盾、以及漏洞报告平台的一些观点。对黑哥研究的领域感兴趣的同学可以关注他的微博 @hi_heige ,阅读他的博客,以及来QCon 北京2014 大会上听他的演讲并跟他交流:)

InfoQ:目前市面上有很多开源的 Web 程序可以给站长免费使用,但这些 Web 程序似乎都有补不完的漏洞及后门,您觉得这是什么原因导致的?

黑哥:这个问题提得好,我们先说说“漏洞”。我们安全联盟站长平台在以往就预警过大量 Web 程序的漏洞,去我们论坛查看我们预警过的记录,你会发现很多程序都是著名的开源程序,而且经常是刚刚被曝光一个漏洞,没多久又被曝漏洞,感觉有“补不完的漏洞”。

追其原因我认为主要是如下几个方面导致的:

i、开源市场的混乱:开源直接意味着这是一个开放的环境,任何人或者组织都可以加入进来,这直接导致程序员的水平参差不齐,对安全知识的缺乏,跟不用说自主发现并尽可能的避免安全问题出现了。

ii、官方对安全问题的漠视:“没有绝对的安全”,这个是安全界里的真理,所以有漏洞其实是没什么可怕的,真正可怕的是官方的冷漠态度:对报告的漏洞不承认、不修复,或者偷偷修复不发公告、不告知用户,还有对漏洞报告者不尊重——更加不要说起码的感谢了!

iii、Web 程序厂商缺少“高富帅”,对安全没有投入或者投入不足,这也导致了一个漏洞修复几次还修复不彻底(刚刚发布补丁就被绕过)、“见洞补洞(针对 POC 修复漏洞)”等情况大量存在。

我们再谈谈“后门”的情况,这个与“漏洞”的区分主要是:“漏洞”是开发过程中无意识导致的,而“后门”是主观意识下“有意为之”的产物。从我们的工作经验来看,后门问题也是一个非常严峻的问题,主要有几个方面:

i、官方后门:主要目的是方便调试,比如后台认证代码里使用固定硬编码的密码,还有的本来就是“恶意”目的留下的,比如某些电商类程序——尤其是团购、淘宝客等程序。

ii、黑客入侵后留下的后门:这个主要原因就是官方自身网站安全不到位。有一个普遍的问题:黑客发现某应用程序的漏洞后,发现官方 demo 或者本身就用这套程序,然后直接用发现的漏洞入侵官方后,篡改提供下载的文件包,在里面植入后门程序。

另外这里有必要强调一点,就是这些问题不是“开源”导致的,很多商业的闭源代码的问题可能更多,尤其是后门问题。因为对于安全研究者来说,开源代码都比较容易发现后门或者漏洞,也可以及时告知用户并可以推出临时补丁进行防御。而“闭源”的显然不行,所以一旦有漏洞或者后门,可能带来的危害就更大!

InfoQ:开源厂商里面是否有类似“内鬼”一样的角色在其中制造后门?如果有的话,您作为资深安全人员,您有没有什么好的建议给那些开源厂商?

黑哥:这里不应该针对“开源厂商”,所有的厂商都是一样的。目前来看这种“内鬼”还是可能存在的,当然了,很多事情是我们没办法去确认的,对于厂商来说这个是“家丑”。比如我们最近发现一个“案例”,对于用户来说没有啥“危害”,在这里可以提一下:

我们发现某个程序厂商的更新里,有几个默认链接被篡改了,如“CNZZ( http://www.cnzz.cn/,山寨的 CNZZ)”被修改为一个小说网链接。由于这样的手法以前在上面提到的黑客留“后门”的时也会顺带修改一个链接做恶意 SEO,所以我们当时就怀疑是不是被黑客入侵了,当我们联系官方后,他们给我们的答案就是他们自己人修改的!内部问题对于厂商来说可以通过一些管理手段来避免,比如对上线的程序修改要经过多名技术主管确认等。

InfoQ:外界盛传您是漏洞挖掘的高手,现在的 Web 漏洞还像以前那么容易挖吗?主要集中在哪几类(漏洞类型)?

黑哥:对于 Web 程序来说,相比过去还是有一些进步的,而这些改变主要体现在几个大的厂商。比如 Discuz!,在我的印象里他们是最早招聘安全研究人员进行代码审计的,有专业安全人员加入后,产品的安全性一下就提升不少。也就是说对于大型的程序,有安全投入的程序挖掘难度是越来越高的。不过前面我们提到的,由于整体环境的混乱,导致目前来说 Web 漏洞挖掘的难度整体上是不高的,有的程序你看一眼就是“满眼都是漏洞”!漏洞类型基本常见的比如代码执行、文件包含、上传漏洞、SQL 注入、XSS 都很常见。

而对于互联网在线服务来说,由于各个甲方都推出了自己的安全应急响应中心,及安全部门人才及设备等的投入,网站是越来越安全。我在参与 TSRC(腾讯安全应急响应中心)中就深有体会,他们会根据白帽子们报告的漏洞研究后来改进自己的扫描器,这样可以对一些新上线的服务上线前就进行漏洞扫描并修复漏洞。这样上线后,漏洞挖掘的门槛就高了。从 TSRC 公布的统计数据来看漏洞类型主要还是集中在 XSS/CSRF 等。

InfoQ:前一段时间 Github 似乎被黑客成功入侵了,您是否有关注这次入侵行为,能否跟大家介绍一下细节?Github 的安全系数在同类网站中算高的吗?

黑哥:对于这个事情还是有所了解的,不过这里用“入侵”这个词是不妥当的!应该说是“安全检测”,因为 Github 还给漏洞发现者提供了 USD $4,000 的奖励。具体细节漏洞发现者 Egor Homakov 已经写一篇文章并发布了,而且好像已经被翻译成中文了(编辑注:这篇《从“黑掉Github”学Web 安全开发》不完全是原文的翻译,而是 @左耳朵耗子 针对 Egor 的原文进行的复述和补充),有兴趣的朋友可以自己去看看。大体上是他利用了 Github 上 OAuth 的 5 个“bug”组合后完美实现了这一“入侵”,这个案例也说明了一个千古不变的道理:“千里之堤,溃于蚁穴”。另外说明在攻防粒度高度细化的时代,各种攻击漏洞组合成为突破防线的主要手段。这句话的另外一个意思就是:Github 的安全系数是比较高的。现在他们也加入到了“漏洞奖励计划”的大浪潮了,我相信在更多专业人士的帮助下,他们的网站会越来越安全!

InfoQ:您觉得用户体验和网站安全哪个更重要?如果网站的负责人非常在意用户体验,作为安全人员您建议如何与其沟通?

黑哥:又是一个非常好的问题,不过也是一个比较大的问题!如果要细说可能可以直接做一次演讲了。

这个问题不光是网站才有,对产品都有这个问题。说到底就是“业务”与“安全”的问题。终极的“用户体验”一直都是产品“业务”追求的目标,而往往在安全防御的问题上可能影响到这一目标。一个简单的例子:图片验证码主要是防御一些程序发起的恶意行为,毫无疑问这个也给“用户体验”带来了麻烦!那么怎么去衡量两者的关系呢?这个问题一直有争论,很多人都认为“安全”应该服从于“业务”,因为他们认为没有“业务”,那么“安全”也就没有意义了!

单看上去是没有破绽的,这里有一个比喻:“业务”比喻为“钱”,“安全”比喻为“保险箱”。在一个环境比较公开的场合,那么他们逻辑是“钱”都没有你就没有必要买“保险箱”了,我只是想说这样的人可能一辈子都只能是“屌丝”。换个角度,你的“钱”再多,如果你的“保险箱”连扫地的阿姨都能开……所以这个问题是没有绝对的答案的!

比较科学的方法,首先你得有“安全”意识,而不是一股脑的“脑残式”追求所谓的“用户体验”,而完全不顾安全问题。换个方式也可以说:“产品安全也是一种用户体验”!有了这种觉悟,然后你要根据你的资产,或者说用户资产去采用合适的安全保护方案。

不过在实际操作中,很可能出现一些特别针对性的矛盾问题:有个非常 nice 的用户体验,一旦实现就可能出现安全漏洞。那么怎么解决这个“矛盾”?这里提一下我个人的观点:在我看来技术的进步就是为了解决矛盾的!现有的技术水平可能没办法解决掉这个问题,那么有没有其他方式可以保障两者尽可能的平衡?当然技术的投入也是要看成本评估的。

那么我们怎么让 boss 们重视安全呢?这里推荐一下 MS 推出的 SDL 流程,这个流程的第一个环节就是“教育 boss 们”,赢得 boss 的支持。要“教育”boss 们不是一件容易的事情,目前很多情况都是被“安全事件”曝光来推动的,这个是现状也没办法。不过对于一个企业安全人员来说,你首先应该尽可能的把安全问题危害科普化的详细描叙给你的 boss(因为 boss 们不一定理解安全),如果 1-2 次没效果,你可以反复多提几次,所谓“尽力而为”,一旦有对应事件出现,那么 Boss 就可能马上想到你提的各种建议:)

InfoQ:您在腾讯漏洞报告平台的排行榜上常年雄踞榜首,并获得高额奖金,您对此有何想法?

黑哥:其实奖金奖品不是我最看重的,我个人有一个常年坚持的目标:“把我的想法,尽可能都实践一把!”

谈到各大漏洞报告平台,不得不先提乌云漏洞报告平台。乌云的出现直接导致了各大甲方的觉悟,首先成立的是腾讯的 TSRC 漏洞报告平台。由于那段时间我一直在学习并思考《负责任的漏洞披露过程》,对甲方的这种平台建设有一些想法,那么我当时就参与到了 TSRC 漏洞报告活动里。在前期的交流里,我发现了很多问题和矛盾,于是我有一句名言:“甲方都需要教育”,所以我觉得应该“教育”一下,于是就在 blog 上公布了一些“争论”,当然随后我又在 blog 上陆续发布了我对甲方漏洞报告平台建设的一些“建议”,随后我们的很多建议都被 TSRC 采用,这才是我最在意的事情!

而 TSRC 的榜样在,也导致各甲方纷纷效仿成立 *SRC。由于这样的话题已经在 weibo 及 blog 上谈及过多次,还有好几次和朋友的论战,所以这里就不多提了,只再次强调一下:榜样其实是有毒的!一定要结合自己公司的一些实际情况来开展。

InfoQ:作为公认的脚本黑客 top1,能否谈谈脚本黑客的过去和未来?

黑哥:首先要说明的是“公认的脚本黑客 top1”我是万万不敢当的!只是由于一些个人学习上的经历,导致一直都在研究应用层的安全问题。过去这样的没有啥太大意义的问题这里就不提了,至于未来其实也是没谱的事情,少谈比较靠谱!只是在这里稍微提一下:有一些圈外人士认为未来是属于移动互联的,他们认为“网站”会慢慢消失,被移动 app 替代。于是他们得到一个结论,“网站”都消失那么“网站”安全行业也就不存在了!之所以说他们是“圈外”是因为他们理解的“网站”只是被浏览器渲染出来的那个界面框架而已,他们忽视了移动 app 后端的“网站”是不会消失的,与 app 沟通的数据还是很多走的 web 服务。所以他们的担心只能是“杞人忧天”。随着脚本技术发展,用脚本实现的工作越来越方便快捷,所以脚本黑客未来是光明的!

2014-02-23 15:344986

评论

发布
暂无评论
发现更多内容

记一次java读取matlab数据方式

Lazy

Java 后端 matlab 脑科学软件工程

Docker网络学习第五篇-基础网络模式

Lazy

Docker

如何从Docker镜像提取Dockerfile?

运维研习社

Docker Dockerfile 5月日更

iOS 面试策略之系统框架-UIKit

iOSer

ios 面试 语言 & 开发 系统框架

Kubernetes入门——Kubernetes日志采集与监控告警

百度开发者中心

百度 Kubernetes 云原生 kubernetes入门 技术课程

Windows后渗透之权限维持

Thrash

cornerstone 基础概念篇(二)

Lazy

大前端 脑科学 脑科学软件工程 脑影像

开源十问, 社区新人快速上手指南

DT极客

Java岗面试攻略分享,阿里的offer真的不难拿

Java架构师迁哥

中国信创生态系列报道|融云CEO韩迎:坚持双轮驱动,信创未来大有可为

融云 RongCloud

如何设计高效的HBase数据模型

Jowin

HBase

容器Pod语系修改

ilinux

据说学会这款数据分析工具,会被各大名企高薪哄抢!

博文视点Broadview

canvas从零到一,实际案例

Vue 海报 js ts canvas

cornerstone 基础概念篇(一)

Lazy

cornerstone 脑科学 脑科学软件工程 脑影像

DICOM图像中灰度理解

Lazy

脑科学 脑科学软件工程 脑影像

在FL Studio中如何混音你的鼓组采样与旋律采样

奈奈的杂社

经验分享 知识分享

Webrtc 屏幕共享

融云 RongCloud

阿里技术官最新总结12W字JAVA面试宝典,吊打面试官的硬核法宝!

Java架构之路

Java 程序员 架构 面试 编程语言

ELK协议栈基本介绍

五分钟学大数据

大数据 5月日更

css与less,sass的奇妙之旅

less SASS

情场失意的我,幸获师兄捞了一把,助我拿到6个大厂offer,Java岗

Java架构师迁哥

CRUD程序员勿进!全身心投入才能读懂腾讯大佬亲码的“Java微服务”学习笔记

Java架构师迁哥

Flutter

Geek_7e907c

最强阿里巴巴历年经典面试题汇总:C++研发岗

linux大本营

c++ Linux epoll 服务器开发

Flutter Tab

Geek_7e907c

这份Github下载量高达76.9W次的《Java系列面试宝典》,足以吊打各个大厂面试官!

Java架构之路

Java 程序员 架构 面试 编程语言

阿里内网流传的9w字图解网络(全彩版)GitHub现已下载量过百万

Java架构之路

Java 程序员 架构 面试 编程语言

Serverless:这真的是未来吗?(一)

Serverless Devs

运维 云原生 服务器 #Serverless

【LeetCode】整数转罗马数字Java题解

Albert

算法 LeetCode 5月日更

Spark RDD详解

大数据技术指南

大数据 spark 5月日更

黑哥谈应用安全:技术的进步就是为了解决矛盾_安全_王文文_InfoQ精选文章