我们在做什么?将走向何方?
[发布时间:2010-02-23 09:04:05]
"我们在做什么?将走向何方?"
这本来是一个极具有哲学意味的命题,在读大学的时候,我的心理课程老师就专门给我们上过一堂这样的课。但今天在这里,我并不想探讨任何哲学或者人生的问题,只是想讲讲我对甲方安全发展方向的一些理解。对面临就业选择的朋友来说,可以作为一个参考。
甲方在这里就是指安全不是核心业务的企业,比如google,比如apple;相对而言,乙方就是指安全厂商、防病毒厂商了。一般来说,乙方的主要以安全产品或者安全服务为主。
在几年前,甲方招安全人员一般都是放到运维部门,主要工作还是扫描和服务器加固等。这也为乙方的生存和发展提供了市场。乙方到甲方做渗透测试、安全评估,然后出个安全解决方案,最后再把一大堆产品卖给甲方。
但是实际上,甲方的问题还是难以得到很好的解决,因为乙方毕竟是外来的和尚,念完经就走了,留下一堆文档和产品应付检查,但是文档和策略需要人去执行,产品需要人去维护,如果业务发生了变更,安全策略也需要跟着发生变更。如果没有人维护,那么很多产品都会用不好。做安全只做了个半调子,才是最可怕的。
IDS/IPS就是最好的例子,这个玩意说起来很唬人,市场也卖的很好,但是真正挡住了多少黑客攻击?估计抓的最多的还是漫无目的的蠕虫。人用不好产品,才是问题的关键。很多时候,这就是甲方的安全人员存在的意义,让这一切很好的执行下去。
互联网企业发展到了今天,已经出现了很多庞然大物,在如此恶劣的网络环境下,互联网企业都开始重视安全。互联网公司很早就招了自己的安全人员,正如之前说的那样,一开始,一般是放在运维部门下。后来随着这个部门的壮大,开始覆盖更多的工作,比如WEB安全。
因为部门壮大了,所以就能做更多的事情。乙方出于对市场的追求,其产品已经无法满足各个不同互联网公司的个性化需求,所以对于业务增长极其迅速的互联网企业来说,很多安全产品只能开始走自主研发的路线。在中国的互联网公司里,腾讯是走在最前面的。
腾讯很早就开始在研发自己的安全产品,比如扫描器、钓鱼网站检测、反欺诈、桌面安全(QQ医生)等,很多很多,到现在应该做的更好了。
阿里巴巴也是一样,我们在各个领域研发自己的安全产品,咋一听像是小安全公司。这是种很奇特的现象,因为我们的客户只有一个,就是我们公司自己。我们也需要做各种各样的安全研究和研发。和几年前比,现在的甲方安全显然更加的专业了。
曾经有朋友问我们是否有意向购买WAF(Web Application Firewall),我笑言道,我们自己做WAF。我们当然不会真的去做个box叫做WAF然后摆在网站的最前面,我们的思路是把WAF对抗的各种威胁,全部分析清楚,然后开发对应的方案或产品部署在我们网站的架构中,在最合适的地方做最合适的方案,完完全全的为我们自己定制化一套方案和产品。这是任何一家安全厂商都很难或者是无法做到的。比如某个安全厂商是做WAF的,那么这个产品势必是为了满足大多数企业的需求,很难实现真正的个性化,更不要说后期维护的事情,毕竟专门投一个人给某一家客户做维护,成本还是相当大的。
为什么说个性化如此重要?为什么很多时候必须得自主研发?举个例子,淘宝目前有上百个产品线,但是没有哪个人能够说清楚到底都有哪些产品。为什么?因为这些产品每天都在发生变化,每天都有新产品线出现或变更,对于这样的一个高速发展的庞然大物,不走自主定制的路线,是很难满足需求的。
当然这也不是说甲方就完全不需要购买安全产品了。一些基础安全需求,还是需要通过购买产品来解决的。比如大多数企业的桌面安全,杀毒软件等,可能需要购买。像防火墙这种设备则更是必不可少(除非你的网络方案真的很特别)。而对于很多在快速发展业务的互联网公司来说,没有太多的精力去做安全,可以适当的购买产品或方案以应付眼前紧迫的安全需求。
在国外的大型互联网企业,安全的自主研究、研发则相对更加成熟了。
苹果的appstore,是让开发者自己提交2进制代码到appstore上,我们曾经有一个疑问,如果开发者提交了恶意代码,或者是有攻击性的程序,appstore如何去审核呢?后来想到苹果的操作系统是自己做的,他们完全可以在OS上实现个sandbox,所以这个问题相对也好解决了(我不玩iphone,说的不对勿怪)。所以,这个sandbox,则完全需要apple的人自己来设计和实现,没有别的厂商能帮他们做。
类似的,google则做了更多的事情:chrome的安全模型、GAE安全、搜索内容过滤(色情等,涉及到很多算法方面的技术)。前段时间闹的很火的linux kenerl的空指针漏洞,exploit就利用了google的Tavis Ormandy发现的一个映射内存到0地址的技巧,他最近又发现了哪个windows内核提权漏洞,影响vista、windows7和2008。很难想象google的人会跑去研究软件漏洞吧?
yahoo也是让人敬仰的,在若干年前(至少大于5),他们就自己开发了扫描器去扫自己所有的页面的XSS。yahoo的apache是自己定制的,叫yapache;机器上装的OS也是freebsd改的,在这个过程中,很难想象没有安全专家的参与。而定制、修改webserver、OS,对于安全专家的吸引力是非常非常大的。
互联网公司的业务发展的越迅速,相应对安全的需求也就越高、越迫切。所以我前面有篇blog里提到,在互联网公司,永远会有非常多的新挑战在等着你。
前些时候,我与某资深黑客聊天的时候,说起我们的工作,他感觉web安全除了XSS,CSRF,SQL INJECT等就没啥了。我无言以对,因为我们已经在做很多的事情,并正在构思更多的事情,都不知道该从何说起了。SDL已经是2年前的重点,虽然我们会持续坚持把SDL做下去并做好,但是现在安全的产品线已经铺开,有更多的挑战在等我们。
(出于保密性的问题,我不会在blog过多的谈论我们的具体工作内容,所以最近扯淡越来越多,技术文章越来越少,因为大部分时间都在做公司的工作,需要保密 #_#)
以前读大学的时候,经常在论坛里看到的一句话就是:“破坏永远比建设容易”,很多老一辈的黑帽子们总是会用这句话教诲新人,虽然当时我也听进去了,但是直到今天,才对这句话有了深刻的理解。
熟悉各种hacking技巧,熟练掌握各种漏洞利用工具,在今天已经比较难以符合我们对人才的要求。两年前我们就意识到已经不太需要纯粹的乙方安服人员,如果应聘者只懂渗透的话。渗透技术在我们这里已经是最低要求,我们更看重的是其他方面的优势。比如对某方面有深刻的理解,比如kj -- 精通java与oracle安全,比如wzt -- 精通linux内核安全,或者是经验极其丰富的专家,比如hawk,云舒,或者是既精通安全又擅长开发,比如cnqing。部门还有很多牛人,各有所长,不一一说了。
讲这么多,其实也就是想说,今天的甲方安全和几年前比已经有了很大的不同。在一个高速发展的互联网公司里,技术挑战是日新月异的,一切皆有可能。年前和wzt聊天时,他也有感慨,现在给他做的东西是极其富有挑战性的,我告诉他,未来只会更多。
所以,如果还停留在每天修修补补几个漏洞上面,还停留在几年前的安全行业状况上,这样的企业安全,是在原地踏步。大型互联网公司安全的发展方向,势必是要将安全作为核心技术牢牢的把握在自己手上。