Ⅰ 白帽子讲Web安全的前言
在2010年年中的时候,博文视点的张春雨先生找到我,希望我可以写一本关于云计算安全的书。当时云计算的概念正如日中天,但市面上关于云计算安全应该怎么做却缺乏足够的资料。我由于工作的关系接触这方面比较多,但考虑到云计算的未来尚未清晰,以及其他的种种原因,婉拒了张春雨先生的要求,转而决定写一本关于Web安全的书。 我对安全的兴趣起源于中学时期。当时在盗版市场买到了一本没有书号的黑客手册,其中coolfire 的黑客教程令我印象深刻。此后在有限的能接触到互联网的机会里,我总会想方设法地寻找一些黑客教程,并以实践其中记载的方法为乐。
在2000年的时候,我进入了西安交通大学学习。在大学期间,最大的收获,是学校的计算机实验室平时会对学生开放。当时上网的资费仍然较贵,父母给我的生活费里,除了留下必要的生活所需费用之外,几乎全部投入在这里。也是在学校的计算机实验室里,让我迅速在这个领域中成长起来。
大学期间,在父母的资助下,我拥有了自己的第一台个人电脑,这加快了我成长的步伐。与此同时,我和一些互联网上志同道合的朋友,一起建立了一个技术型的安全组织,名字来源于我当时最喜爱的一部动漫:“幻影旅团”。历经十余载,“幻影”由于种种原因未能得以延续,但它却曾以论坛的形式培养出了当今安全行业中非常多的顶尖人才。这也是我在这短短二十余载人生中的最大成就与自豪。
得益于互联网的开放性,以及我亲手缔造的良好技术交流氛围,我几乎见证了全部互联网安全技术的发展过程。在前5年,我投入了大量精力研究渗透测试技术、缓冲区溢出技术、网络攻击技术等;而在后5年,出于工作需要,我把主要精力放在了对Web安全的研究上。 发生这种专业方向的转变,是因为在2005年,我在一位挚友的推荐下,加入了阿里巴巴。加入的过程颇具传奇色彩,在面试的过程中主管要求我展示自己的能力,于是我远程关闭了阿里巴巴内网上游运营商的一台路由设备,导致阿里巴巴内部网络中断。事后主管立即要求与运营商重新签订可用性协议。
大学时期的兴趣爱好,居然可以变成一份正经的职业(当时很多大学都尚未开设网络安全的课程与专业),这使得我的父母很震惊,同时也更坚定了我自己以此作为事业的想法。
在阿里巴巴我很快就崭露头角,曾经在内网中通过网络嗅探捕获到了开发总监的邮箱密码;也曾经在压力测试中一瞬间瘫痪了公司的网络;还有好几次,成功获取到了域控服务器的权限,从而可以以管理员的身份进入任何一位员工的电脑。
但这些工作成果,都远远比不上那厚厚的一摞网站安全评估报告让我更有成就感,因为我知道,网站上的每一个漏洞,都在影响着成千上万的用户。能够为百万、千万的互联网用户服务,让我倍感自豪。当时,Web正在逐渐成为互联网的核心,Web安全技术也正在兴起,于是我义无返顾地投入到对Web安全的研究中。
我于2007年以23岁之龄成为了阿里巴巴集团最年轻的技术专家。虽未有官方统计,但可能也是全集团里最年轻的高级技术专家,我于2010年获此殊荣。在阿里巴巴,我有幸见证了安全部门从无到有的建设过程。同时由于淘宝、支付宝草创,尚未建立自己的安全团队,因此我有幸参与了淘宝、支付宝的安全建设,为他们奠定了安全开发框架、安全开发流程的基础。 当时,我隐隐地感觉到了互联网公司安全,与传统的网络安全、信息安全技术的区别。就如同开发者会遇到的挑战一样,有很多问题,不放到一个海量用户的环境下,是难以暴露出来的。由于量变引起质变,所以管理10台服务器,和管理1万台服务器的方法肯定会有所区别;同样的,评估10名工程师的代码安全,和评估1000名工程师的代码安全,方法肯定也要有所不同。
互联网公司安全还有一些鲜明的特色,比如注重用户体验、注重性能、注重产品发布时间,因此传统的安全方案在这样的环境下可能完全行不通。这对安全工作提出了更高的要求和更大的挑战。
这些问题,使我感觉到,互联网公司安全可能会成为一门新的学科,或者说应该把安全技术变得更加工业化。可是我在书店中,却发现安全类目的书,要么是极为学术化的(一般人看不懂)教科书,要么就是极为娱乐化的(比如一些“黑客工具说明书”类型的书)说明书。极少数能够深入剖析安全技术原理的书,以我的经验看来,在工业化的环境中也会存在各种各样的问题。
这些问题,也就促使我萌发了一种写一本自己的书,分享多年来工作心得的想法。它将是一本阐述安全技术在企业级应用中实践的书,是一本大型互联网公司的工程师能够真正用得上的安全参考书。因此张春雨先生一提到邀请我写书的想法时,我没有做过多的思考,就答应了。
Web是互联网的核心,是未来云计算和移动互联网的最佳载体,因此Web安全也是互联网公司安全业务中最重要的组成部分。我近年来的研究重心也在于此,因此将选题范围定在了Web安全。但其实本书的很多思路并不局限于Web安全,而是可以放宽到整个互联网安全的方方面面之中。
掌握了以正确的思路去看待安全问题,在解决它们时,都将无往而不利。我在2007年的时候,意识到了掌握这种正确思维方式的重要性,因此我告知好友:安全工程师的核心竞争力不在于他能拥有多少个0day,掌握多少种安全技术,而是在于他对安全理解的深度,以及由此引申的看待安全问题的角度和高度。我是如此想的,也是如此做的。
因此在本书中,我认为最可贵的不是那一个个工业化的解决方案,而是在解决这些问题时,背后的思考过程。我们不是要做一个能够解决问题的方案,而是要做一个能够“漂亮地”解决问题的方案。这是每一名优秀的安全工程师所应有的追求。 然而在当今的互联网行业中,对安全的重视程度普遍不高。有统计显示,互联网公司对安全的投入不足收入的百分之一。
在2011年岁末之际,中国互联网突然卷入了一场有史以来最大的安全危机。12月21日,国内最大的开发者社区CSDN被黑客在互联网上公布了600万注册用户的数据。更糟糕的是,CSDN在数据库中明文保存了用户的密码。接下来如同一场盛大的交响乐,黑客随后陆续公布了网易、人人、天涯、猫扑、多玩等多家大型网站的数据库,一时间风声鹤唳,草木皆兵。
这些数据其实在黑客的地下世界中已经辗转流传了多年,牵扯到了一条巨大的黑色产业链。这次的偶然事件使之浮出水面,公之于众,也让用户清醒地认识到中国互联网的安全现状有多么糟糕。
以往类似的事件我都会在博客上说点什么,但这次我保持了沉默。因为一来知道此种状况已经多年,网站只是在为以前的不作为而买单;二来要解决“拖库”的问题,其实是要解决整个互联网公司的安全问题,远非保证一个数据库的安全这么简单。这不是通过一段文字、一篇文章就能够讲清楚的。但我想最好的答案,可以在本书中找到。
经历这场危机之后,希望整个中国互联网,在安全问题的认识上,能够有一个新的高度。那这场危机也就物有所值,或许还能借此契机成就中国互联网的一场安全启蒙运动。
这是我的第一本书,也是我坚持自己一个人写完的书,因此可以在书中尽情地阐述自己的安全世界观,且对书中的任何错漏之处以及不成熟的观点都没有可以推卸责任的借口。
由于工作繁忙,写此书只能利用业余时间,交稿时间多次推迟,深感写书的不易。但最终能成书,则有赖于各位亲朋的支持,以及编辑的鼓励,在此深表感谢。本书中很多地方未能写得更为深入细致,实乃精力有限所致,尚请多多包涵。 在安全圈子里,素有“白帽”、“黑帽”一说。
黑帽子是指那些造成破坏的黑客,而白帽子则是研究安全,但不造成破坏的黑客。白帽子均以建设更安全的互联网为己任。
我于2008年开始在国内互联网行业中倡导白帽子的理念,并联合了一些主要互联网公司的安全工程师,建立了白帽子社区,旨在交流工作中遇到的各种问题,以及经验心得。
本书名为《白帽子讲Web安全》,即是站在白帽子的视角,讲述Web安全的方方面面。虽然也剖析攻击原理,但更重要的是如何防范这些问题。同时也希望“白帽子”这一理念,能够更加的广为人知,为中国互联网所接受。 全书分为4大篇共18章,读者可以通过浏览目录以进一步了解各篇章的内容。在有的章节末尾,还附上了笔者曾经写过的一些博客文章,可以作为延伸阅读以及本书正文的补充。
第一篇 我的安全世界观是全书的纲领。在此篇中先回顾了安全的历史,然后阐述了笔者对安全的看法与态度,并提出了一些思考问题的方式以及做事的方法。理解了本篇,就能明白全书中所涉及的解决方案在抉择时的取舍。
第二篇 客户端脚本安全就当前比较流行的客户端脚本攻击进行了深入阐述。当网站的安全做到一定程度后,黑客可能难以再找到类似注入攻击、脚本执行等高风险的漏洞,从而可能将注意力转移到客户端脚本攻击上。
客户端脚本安全与浏览器的特性息息相关,因此对浏览器的深入理解将有助于做好客户端脚本安全的解决方案。
如果读者所要解决的问题比较严峻,比如网站的安全是从零开始,则建议跳过此篇,先阅读下一篇“服务器端应用安全”,解决优先级更高的安全问题。
第三篇 服务器端应用安全就常见的服务器端应用安全问题进行了阐述。这些问题往往能引起非常严重的后果,在网站的安全建设之初需要优先解决这些问题,避免留下任何隐患。
第四篇 互联网公司安全运营提出了一个大安全运营的思想。安全是一个持续的过程,最终仍然要由安全工程师来保证结果。
在本篇中,首先就互联网业务安全问题进行了一些讨论,这些问题对于互联网公司来说有时候会比漏洞更为重要。
在接下来的两章中,首先阐述了安全开发流程的实施过程,以及笔者积累的一些经验。然后谈到了公司安全团队的职责,以及如何建立一个健康完善的安全体系。
本书也可以当做一本安全参考书,读者在遇到问题时,可以挑选任何所需要的章节进行阅读。 感谢我的妻子,她的支持是对我最大的鼓励。本书最后的成书时日,是陪伴在她的病床边完成的,我将铭记一生。
感谢我的父母,是他们养育了我,并一直在背后默默地支持我的事业,使我最终能有机会在这里写下这些话。
感谢我的公司阿里巴巴集团,它营造了良好的技术与实践氛围,使我能够有今天的积累。同时也感谢在工作中一直给予我帮助和鼓励的同事、上司,他们包括但不限于:魏兴国、汤城、刘志生、侯欣杰、林松英、聂万全、谢雄钦、徐敏、刘坤、李泽洋、肖力、叶怡恺。
感谢季昕华先生为本书作序,他一直是所有安全工作者的楷模与学习的对象。
也感谢博文视点的张春雨先生以及他的团队,是他们的努力使本书最终能与广大读者见面。他们的专业意见给了我很多的帮助。
最后特别感谢我的同事周拓,他对本书提出了很多有建设性的意见。
吴翰清
2012年1月于杭州
Ⅱ Web3.0时代的云计算服务需求是什么
自从引入云计算以来,公共云和私有云都在不断发展,许多产品都添加了与云相关的特性,比如自助服务和自动化。云技术使企业能够开发新的颠覆性软件应用程序或解决方案,从而提高其业务收入。当下,全球互联网将要进入Web3.0时代,人们在这个时代掌控数据的权利将被重视。与此同时,用户也对私有云计算公司的产品提出了更高的要求,⌄ 自由的访问云供应商,快速稳定的连接,数据确权等都是企业用户所需要的。拥有敏感业务数据的企业更倾向于将其信息托管在私有云环境中,企业希望自己的云基础设施位于可以物理访问以进行审计的数据中心内。通过埃科锐国际企业能够将私有云基础设施作为一种服务来托管,埃科锐为企业提供24/7全天候监控服务,IT系统故障将被发现并迅速处理。
Ⅲ 云计算应用存在哪些问题,采取哪些安全防护措施
云计算存在的一些问题:
虚拟化安全问题:如果物理主机受到破坏,其所管理的虚拟服务器由于存在和物理主机的交流,有可能被攻克,若物理主机和虚拟机不交流,则可能存在虚拟机逃逸。如果物理主机上的虚拟网络受到破坏,由于存在物理主机和虚拟机的交流,以及一台虚拟机监控另一台虚拟机的场景,导致虚拟机也会受到损害。
2.数据集中的安全问题:用户的数据存储、处理、网络传输等都与云计算系统有关,包括如何有效存储数据以避免数据丢失或损坏,如何对多租户应用进行数据隔离,如何避免数据服务被阻塞等等。
3.云平台可用性问题:用户的数据和业务应用处于云平台遭受攻击的问题系统中,其业务流程将依赖于云平台服务连续性、SLA和IT流程、安全策略、事件处理和分析等提出了挑战。另外,当发生系统故障时,如何保证用户数据的快速恢复也成为一个重要问题。
4.云平台遭受攻击的问题:云计算平台由于其用户、信息资源的高度集中,容易成为黑客攻击的目标,由此拒绝服务造成的后果和破坏性将会明显超过传统的企业网应用环境。
5.法律风险:云计算应用地域弱、信息流动性大,信息服务或用户数据可能分布在不同地区甚至是不同国家,在政府信息安全监管等方面存在法律差异与纠纷;同时由于虚拟化等技术引起的用户间物理界限模糊可能导致的司法取证问题也不容忽视云计算的安全防护措施:
1基础设施安全
基础设施安全包括服务器系统安全、网络管理系统安全、域名系统安全、网络路由系统安全、局域网和VLAN配置等。主要的安全措施包括安全冗余设计、漏洞扫描与加固,IPS/IDS、DNSSec等。考虑到云计算环境的业务持续性,设备的部署还须要考虑到高可靠性的支持,诸如双机热备、配置同步,链路捆绑聚合及硬件Bypass等特性,实现大流量汇聚情况下的基础安全防护。
2数据安全
云数据安全包含的内容远远不只是简单的数据加密。数据安全的需求随着三种服务模式,四种部署模式(公共云、私有云、社区云、混合云)以及对风险的承受能力而变化。满足云数据安全的要求,需要应用现有的安全技术,并遵循健全的安全实践,必须对各种防范措施进行全盘考虑,使其构成一道弹性的屏障。主要安全措施包括对不同用户数据进行虚拟化的逻辑隔离、使用身份认证及访问管理技术措施等,从而保障静态数据和动态数据的保密性、完整性、可用性、真实性、授权、认证和不可抵赖性。
3虚拟化安全
虚拟化的安全包括两方面的问题:一是虚拟技术本身的安全,二是虚拟化引入的新的安全问题。虚拟技术有许多种,最常用的是虚拟机(VM)技术,需考虑VM内的进程保护,此外还有Hypervisor和其他管理模块这些新的攻击层面。可以采用的安全措施有:虚拟镜像文件的加密存储和完整性检查、VM的隔离和加固、VM访问控制、虚拟化脆弱性检查、VM进程监控、VM的安全迁移等。
4身份认证与访问管理(IAM,IdentityandAccessManagement)
IAM是用来管理数字身份并控制数字身份如何访问资源的方法、技术和策略,用于确保资源被安全访问的业务流程和管理手段,从而实现对企业信息资产进行统一的身份认证、授权和身份数据集中化的管理与审计。IAM是保证云计算安全运行的关键所在。传统的IAM管理范畴,例如自动化管理用户账号、用户自助式服务、认证、访问控制、单点登录、职权分离、数据保护、特权用户管理、数据防丢失保护措施与合规报告等,都与云计算的各种应用模式息息相关。
IAM并不是一个可以轻易部署并立即产生效果的整体解决方案,而是一个由各种技术组件、过程和标准实践组成的体系架构。标准的企业级IAM体系架构包含技术、服务和过程等几个层面,其部署体系架构的核心是目录服务,目录服务是机构用户群的身份、证书和用户属性的信息库。
5应用安全
由于云环境的灵活性、开放性以及公众可用性等特性,给应用安全带来了很多挑战。云计算的应用主要通过Web浏览器实现。因此,在云计算中,对于应用安全,尤其需要注意的是Web应用的安全。要保证SaaS的应用安全,就要在应用的设计开发之初,制定并遵循适合SaaS模式的安全开发生命周期规范和流程,从整体生命周期上去考虑应用安全。可以采用的防护措施有访问控制、配置加固、部署应用层防火墙等。