软件定义安全及可编程对抗系统实战

978-7-115-48502-1
作者: 金飞 周辛酉 陈玉奇
译者:
编辑: 傅道坤

图书目录:

详情

本书详细讲解了信息安全行业所面临的现状,以及相应的应对之道,其内容涵盖了攻击技术的发展现状及趋势,软件定义安全与安全生态和正确认知,F5的安全属性,F5的安全产品体系以及应用场景,F5可编程生态,F5可编程的安全应用场景,F5安全架构、应用案例分享,信息安全的销售之道,以及6天学会iRules命令等。

图书摘要

版权信息

书名:软件定义安全及可编程对抗系统实战

ISBN:978-7-115-48502-1

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。

著    金 飞 周辛酉 陈玉奇

责任编辑 傅道坤

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


软件定义安全由软件定义网络引申而来,实现安全由业务和应用驱动,从而实现复杂网络的安全防护,提升安全防护能力和用户安全体验。可编程对抗防御系统是 F5 公司提出的一种基于云端的安全服务,可以灵活、便捷地应对各种攻击。

本书以作者多年的工作经验为基础,详细介绍了软件定义安全以及可编程对抗系统的相关概念和具体应用。本书共分 10 章,从安全现状、核心问题、防御架构、成功案例等几个方面,详细阐述软件定义安全在实际对抗场景中的应用细节,以及如何通过脚本驱动整个防御体系,实现高频、灵活的防御,展示可编程防御架构的实际功能。

本书适合架构师、IT管理人员、应用开发人员和安全相关人员阅读。


目前,全球企业安全防护技术与实践和用户对安全目标的准确认知、对市场中现有安全产品性能的准确定位,以及在生产环境中有效利用这些安全产品的安全运维体系息息相关。这种运营态势需要与业务无缝结合,需要高度的自动化。

软件定义安全的概念是软件定义网络方法论在安全实践领域的拓展应用。它和安全防护的新范式(持续监测、诊断和缓解,Continuous Monitoring,Diagnostics,and Mitigation)是相辅相成的。这本《软件定义安全及可编程对抗系统实战》总结了当前的安全现状和挑战,系统性地分享了对安全实践的深度认知,重点以F5公司的产品体系为技术参考,以多个客户实践中碰到的场景为案例,详细演示了怎样实现软件驱动,建设动态防御能力,做好安全的运营工作。作者还在讲解中融入了自己的思考和一些心得体会。尽管本书中的案例,尤其是安全系统配置的很多细节是以F5产品为基础的,但是从事企业安全架构设计、安全工具开发,以及安全运维的专业人员都可以从本书中获得有益的借鉴。

相信本书对提高安全从业人员的目标认知和工具评估能力,以及运维系统的搭建能力会有很大帮助。

——弓峰敏博士

硅谷安全创业教父、Palo Alto Networks公司联合创始人


金飞,F5亚太区安全解决方案架构师,主要研究方向为信息安全技术及防御架构设计。担任中央电视台、环球时报、中国银监会、北京市银监局等单位的信息安全顾问。于2008年参与了北京奥运会、北京残奥会的信息安全保障工作,并在2009年协助破获首例网络电话诈骗案。

周辛酉,MBA,现任F5中国区技术经理;资深讲师,资深架构师,可编程控制专家。主要研究方向为云计算及开发运维下的可编程控制、云计算及传统数据中心的安全架构及对抗、弹性架构及应用的高可用性、智能运维及自动化、软件定义的应用服务、业务连续性部署等。

陈玉奇,F5公司资深安全方案顾问,具有十多年的信息安全从业经验,熟悉各类信息安全技术和产品,自2012年起加入F5公司,负责应用交付和安全方案的设计和推广,专注于DDoS攻击防护和应用层攻击防护研究。在加入F5之前,曾先后供职于Servgate和Radware公司,从事应用交付、信息安全方案设计和支持等工作。


本书部分内容来自于F5工程师徐世豪、范恂毅、王英楠,技术经理刘旭峰,在此表示感谢!


信息安全是非常特殊的行业,在其他行业领域,多数情况下是领导型厂商代表行业的技术制高点,引领行业的发展方向,但信息安全行业的顶尖技术很多时候掌握在黑客手上,他们握有新的攻击技法,不断用独特的视角反复审视信息安全的基础架构,寻找新的攻击机会。而安全厂商正在竭尽全力地跟随和追赶新的攻击手段,为被攻击目标提供补救或加固的方案、产品及服务。这就是信息安全行业中攻防博弈的真实写照,永远都是先有矛后有盾。所以,信息安全厂商能在多大程度上跟上黑客的节奏,是衡量其技术能力的重要标准。

信息安全行业的另外一个重要趋势是企业小型化,掌握最先进防御技术的公司,从传统视角来看规模都非常小,比如美国的Shape Security公司。这些公司在一些细分的安全防御场景中颇有技术建树,能够解决非常具体和有针对性的安全问题。这种类型的公司如雨后春笋般地冒出来,它们要么是在短期之内获得巨大的风险投资,要么就是被较大的安全公司以高价收购,其活跃程度远远超过传统的安全厂商。

再者,安全行业正在走进场景防御的阶段,任何不落地到场景中的安全技术都是纸上谈兵。以网络为重心的安全防御已经成为明日黄花,攻击应用场景和商业模式已经越来越普遍。未来的信息安全将进入以用户行为分析为基础,以软件定义安全和可编程防御架构为实现技术,通过运营商和实体数据中心防御体系的联动,抵御机器和人混合攻击的SecurityaaS的时代。

威胁就在当下,攻击从未如此犀利!信息安全行业现在如火如荼,国家对信息安全的发展非常关切,媒体上关于信息安全案件的介绍也屡见不鲜,IT从业人员往往也能随口说出多家安全公司的名字。但是,即使这样,就可以说了解信息安全行业了吗?其实还远远不够,俗语云“一花一世界,一树一菩提”,让我们看看信息安全世界的全貌吧!

这就是信息安全在世界范围内的全景图,其中的每一个图标都代表一家公司,而且这里面有非常多的创新公司,它们绝大多数拿到了非常丰厚的风险投资,而且在各自的信息安全细分领域内经营得风生水起。这才是信息安全的魅力所在。

软件定义安全是未来的行业趋势和发展方向,在对抗场景中会有非常多的表现形式和支持技术。本书依托F5公司的安全理念和技术路线,重新定义了可编程防御系统,并使用大量详实的案例和多场景安全架构,进一步证明软件定义安全理论的优势和现实意义:可以使得防御架构更加灵活,能够应对越来越高频变化的攻击脚本。

第1章,“攻击技术的发展现状及趋势”,讲述了新的攻击技法和发展方向,以帮助大家重新认知信息安全。

第2章,“软件定义安全与安全生态和正确认知”,介绍了软件定义安全的概念、发展历程及相关的安全生态。

第3章,“F5的安全属性”,讲述了F5公司在安全领域内的积累和底层架构。

第4章,“F5的安全产品体系及应用场景”,逐一讲解F5的安全产品体系及每一种产品的具体应用场景。

第5章,“F5可编程生态”,详细介绍了F5可编程知识体系和F5可编程生态环境。

第6章,“F5可编程的安全应用场景”,介绍了F5可编程技术在不同对抗场景中的实际应用。

第7章,“F5安全架构”,全面细致地剖析了F5公司诸多的安全架构。

第8章,“应用案例分享”,分享了作者在金融和通信等行业的一些成功应用案例,希望可以起到抛砖引玉的作用。

第9章,“信息安全的销售之道”,介绍了信息安全领域的销售人员会用到的一些方法,以及作者从业多年以来的一些体会。

第10章,“技术文档:6天跟我学iRules”,介绍了iRules的相关知识和使用技巧。

为了能更好地理解本书,读者需要具有网络、编程、安全方面的基础知识;如果具有一定的实际IT运维和信息安全对抗经验,则会对本书讲述的安全架构有更深刻的感悟。

如果你是一位架构师,一位网络工程师,一位应用开发人员,一位传统安全产品的运维人员,你会越来越深刻地体会到,单一的技能已经无法应对现在面向场景的信息安全对抗,比如BDDoS(行为DDoS,Behavior DDoS)、薅羊毛攻击等。如果你想知道如何应对这些威胁,那么本书非常适合你——SecDevOps是本书的主旨。


本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。

异步社区

微信服务号


中国古语,知己知彼,百战不殆。但是真实的世界真的是你认为的样子吗?我们是否生活在一个经过修饰或伪装的世界里?也许可以这样阐述,这个世界里有一小部分人可以看到完全不一样的世界,如同黑客帝国里生活在锡安(Zion)而非母体(Matrix)中的人类(见图1-1)。

图1-1 真实的世界

网络是层级划的,分为表层网络(Surface Web)和深网(Deep Web),如图1-2所示。

图1-2 网络层级

表层网络主要由我们日常接触的一些应用构成,例如Google、Facebook、Twitter、Hotmail、WeChat之类的应用。再往下就是暗网(Dark Web)、幻影网络(Shadow Web)、马里亚纳网络(Marianas Web)。

表层网络最大的特点是信息查重率很高,相同的信息会在很多网站主机中同时存在。相比之下深网里的情况会非常不同,暗网的规模是表层网络的400~500倍,大约有100亿条不查重的数据。常规的搜索引擎和浏览器无法访问到这些信息,必须通过特殊的软件或网关才能做到,其中最具代表性的是洋葱浏览器(Tor Browser)。表层网络和深网的对比关系如图1-3所示。

图1-3 表层网络和深网的对比

为什么会有这么多的网站不能被搜索引擎找到并收录呢?这就要讲一下搜索引擎的工作原理。搜索引擎是靠网站根目录的robots.txt文件引导爬虫程序进行信息检索的。例如,www.bing.com的robots.txt文件就是下面的内容。

User-agent: msnbot-media 
Disallow: /
Allow: /shopping/$
Allow: /shopping$
Allow: /th?
User-agent: Twitterbot
Disallow: 
User-agent: *
Disallow: /account/
Disallow: /bfp/search
Disallow: /bing-site-safety
Disallow: /blogs/search/
Disallow: /entities/search
Disallow: /fd/
Disallow: /history
Disallow: /hotels/search
Disallow: /images?
Disallow: /images/search?
Disallow: /images/search/?
……

robots.txt文件主要告诉搜索引擎可以访问或不能访问哪些目录,如果某些网站不设置robots.xt文件,则意味着搜索引擎用常规方式不能收录该网站的信息并对外提供检索服务。这样一来,能找到这些网站并访问的人就会非常有限,甚至只有预先知道的人才能访问。而暗网里的绝大多数网站都属于这种类型。

需要强调的一点是,搜索引擎公司的浏览器工具栏(Tool Bar)或浏览器产品也会具有地址和信息收录的功能,这两个信息来源对于搜索引擎公司来说,与爬虫一样重要。这就能解释为什么在某些搜索引擎受限的地区,搜索引擎公司仍可以获得大量信息。基于浏览器获取信息是行业潜规则,区别在于做的程度和实现手段的高低。

要访问底层网络资源,需要使用特殊的浏览器软件,其中最具代表性的是洋葱浏览器(Tor Browser)。洋葱浏览器是本着访问者不可能被追溯的宗旨而设计的,目的在于充分保护访问者的个人隐私。

在最初版本的洋葱浏览器中,提供了三个中间路由跳转节点,即从用户通过洋葱浏览器访问暗网服务器时,会在途中建立三个节点的动态路由,以确保路径的不可追溯性。洋葱浏览器后来发展到提供5000个中间路由跳转节点。至此,如果想获取最终用户的相关信息将变得异常困难。所以洋葱网络也叫匿名者网络。

而且随着Tor用户数量的增加,洋葱网络的路由复杂度呈几何级数增大,而且在一个Timeout时间节拍后,所有的路由都会重新设定,这也使得完全不可能通过路径复原实现终端追溯,这也是洋葱路由的真正可怕之处。

洋葱网络也具有两面性,匿名者有可能是用户,也有可能是攻击者。洋葱网络在保护终端隐私不被获取的同时,也为攻击者提供了更多的有利条件。事实也是如此,现在很多网络犯罪的真实控制者也大量使用洋葱浏览器进行伪装和逃避打击。从本质上来讲,技术本身没有好坏之分,关键在于用技术实现的目的是什么,以及是否违背了人类社会的共识。

洋葱浏览器的设计者罗斯·乌布利希后来还创建了“丝绸之路”网站并将其上线运营。同时,基于比特币的支付体系也初步完成。

匿名者网络加虚拟货币最终也没让乌布利希逃脱法律的制裁,2013年10月,他在毫无察觉的情况下被捕。尽管乌布利希锒铛入狱,但“丝绸之路”似乎并没有终结,到目前为止“丝绸之路”3.1版本依然可以正常运转,不知道背后到底隐藏着多少不为人知的故事。

暗网是一个由软件、网络资源、私有协议构成的一个服务体系,并对用户提供诸多服务。如果比较同一类型的表层网络应用和暗网应用,则会发现暗网应用更加简洁高效,它们去除了很多商业元素,而且聚焦于提供服务这件事情,因此很少出现功能叠加的应用场景。

暗网本身是一种信息获取和分享的途径,表层网络加暗网代表一种客观认知互联网的视角,没有好与坏,只是一种存在形式。两者进行对抗的前提是,双方具有相当的信息量、技术手段和视野,而实际上暗网对我们来说只是一个客观且必要的补充,这也是它最大的价值。

IoT这个概念第一次提出是在2008年。十年间,IoT为我们提供了越来越便捷的生活体验,也让全球走进空前的“现代化”,如图1-4所示。

图1-4 物联网“现代化”

但是,IoT也暴露出很多可以被黑客利用的弱点。IoT安全吗?不,IoT很脆弱(见图1-5)!那么IoT设备可以给我们带来哪些威胁呢?

针对IoT发起的攻击主要分为三类:远程控制、信息获取、破坏服务。通过远程控制技术,黑客可以控制家电、汽车、便携胰岛泵、心脏起搏器等设备。可以通过个人手环、车辆信息和IP摄像头获得大量个人信息,如位置和影像资料。同时,外部信号可以干扰心脏起搏器、车辆发动机和智能家电的正常工作。由此可见,IoT给信息安全带来的挑战已经非常明显。

图1-5 物联网的脆弱性

从时间轴来看,IoT的弱点也是逐步暴露和发现的,如图1-6所示。

图1-6 物联网弱点挖掘时间轴

遭到破解和攻击的设备,2008年主要是无线路由器,2012年则是安装有Android系统的智能电视机,2013年开始转向摄像头,到了2016年,已经有来自70家厂商的摄像头及外围设备被破解。通过Shodan搜索引擎在线查找到的具有漏洞的设备高达28万台。

什么是Shodan?人们普遍认为Google是最强劲的搜索引擎,而Shodan则是互联网上最可怕的搜索引擎。Shodan真正令人惧怕的能力是,可以找到几乎所有和互联网相关联的设备。而且Shodan找到的这些设备几乎都没有足够的安全措施,可被人随意访问。与Google不同的是,Shodan不是在网上搜索网址,不是获取数据,而是直接寻找可以被控制的所有联网设备。Shodan可以说是一款黑暗版的Google,一刻不停地在寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等。Shodan每个月会在大约5亿台服务器上日夜不停地搜集信息,而且搜集到的信息量极其惊人——连接到互联网的红绿灯、安全摄像头、家庭自动化设备以及加热系统等都会被轻易找到。曾经有一位用户使用Shodan发现了一个水上公园的控制系统、一个加油站,甚至一个酒店的葡萄酒冷却器。还有研究人员借助于Shodan定位到了核电站的指挥和控制系统及一个粒子回旋加速器。Rapid7公司的首席安全官HD Moore曾表示:“你可以用一个默认密码登录近乎一半的互联网设备。就安全而言,这是一个巨大的失误。”

在互联网上还可以查到几乎涵盖了所有设备厂商的默认口令列表。

根据F5 Labs发布的IoT安全分析报告,在遭受暴力破解扫描IoT的世界Top 10国家和地区报告中,无论是在过去的30天内还是6个月内,中国都排名第一。由此可见IoT设备在中国具有广泛的部署数量,而且大多数IoT设备的安全状况堪忧。更重要的是,攻击者已经开始把IoT设备作为重要的资源加以控制,所以才会存在如此巨大的扫描行为。

前面提到的心脏起搏器被远程控制的说法不是危言耸听,而是有事实依据的。事件的主人公叫巴纳比·杰克(1977年12月22日—2013年7月25日),是一位新西兰的黑客、程序员和计算机安全专家。是的,你没有看错,杰克已经不在人世。2013年7月25日的下午,我在位于硅谷的F5公司总部开会时,收到了当地运营商推送的公共信息,称杰克被发现死于旧金山Nob Hill的公寓中,而且经过警方尸检已排除谋杀的可能。而杰克原计划在两天后的7月27日,在Black Hat 2013大会上演示如何入侵心脏除颤器和心脏起搏器。他已经研究出一种方法,可以在距离目标15米左右的范围内侵入心脏起搏器,并让起搏器释放出足以致人死亡的830V电压,达到杀害佩戴心脏起搏器人员的目的。他的上一次壮举是在2010年7月28日的Black Hat 2010大会上,成功地演示了入侵安装有两种不同系统的ATM取款机,当场让ATM取款机吐出钱,他将其称之为“jackpotting”。他的表演让所有在场的同行无不惊诧地表示:智能真的不可靠!

据统计,2006年在美国大约有35万个心脏起搏器和12.3万个IDC(植入式心脏除颤器)被植入患者体内。2006年是一个特别重要的年份,因为在这一年FDA(美国食品药品监督管理局)批准了完全基于无线连接控制的医疗设备的临床应用。如今已有300万个心脏起搏器和170万个心脏除颤器处于使用状态。如果杰克的入侵技术被公开,则可以让黑客轻而易举地杀死植入了心脏起搏器和心脏除颤器的人员。

通常,DDoS攻击是通过僵尸网络(Botnet)实施的。僵尸网络的攻击节点在之前主要是个人电脑。作为攻击节点的个人电脑对黑客来说有一个问题,就是稳定性不好,个人电脑的用户很可能会通过各种操作来摆脱僵尸网络的控制。因此在实施每一次DDoS攻击之前,僵尸网络都要集中补充“肉鸡”数量,已确保攻击效果。但是,伴随着大量IoT摄像头的广泛应用,IP摄像头已经开始取代个人电脑成为僵尸网络攻击节点的主要组成部分。为什么IP摄像头会取代个人电脑成为新的“肉鸡”?有以下几点原因。首先,IP摄像头没有终端防御系统,它不能像电脑一样安装本地防火墙或杀毒软件。其次,IP摄像头的同质性高且部署数量巨大,一旦发现某一品牌的设备存在硬件漏洞,并研发出针对性的蠕虫病毒,就可以迅速传播。再次,IP摄像头的设备生命周期长且稳定。最后,也是最重要的原因,IoT替代个人电脑成为攻击节点,也让攻击的成本急剧降低。目前要组织一天TB级别的间歇性DDoS流量,只需要花费数万元人民币。

成本永远是攻击和防御的核心和焦点,哪一方在成本方面占有优势,就意味着能占据更多的主动,有更大的胜算战胜对手。而IP摄像头结合僵尸网络,几乎是核爆级别的攻击体系,可以瞬间形成巨大的DDoS流量。可以这样说,IoT让DDoS进入TB级时代。

另一个有趣的概念是僵尸网络分为Bad Bot和Good Bot,这说明并不是所有的Bot都是用来攻击的。同时也存在BotnetaaS(僵尸网络即服务),用户可以直接购买服务,从而节省了搭建基础架构的时间开销和成本开销。BotnetaaS在本质上可以认为是AttackaaS(攻击即服务)。

美国第一个TB级DDoS案例发生在2016年,OVH公司成为美国第一个遭受TB级DDoS的目标,而且很多流量都是IoT设备造成的。IP摄像头也因第一次成为非常可怕的对手而被世界认知。IP摄像头再也不是安静的守望者,很可能瞬间变成洪水猛兽,并无往不胜。

2016年10月,Mirai僵尸网络针对域名服务商Dyn发起了DDoS攻击,而且峰值速率达到1.2Tbit/s,这造成了美国互联网大面积的瘫痪,导致很多著名的网站无法正常提供服务。更要命的是,整个感染时间仅为短短的11天。同时,Mirai还感染了177个国家和地区的IoT设备。

相较于以个人电脑为攻击节点的传统僵尸网络,Mirai僵尸网络的扩散速度要更为惊人,如图1-7所示。

图1-7 Mirai僵尸网络的扩散速度

Mirai僵尸网络高明的地方是具备自防御和攻击两个主要功能,因此攻击性更强。图1-8是Mirai自防御相关的内容。

图1-8 Mirai自防御功能

美国的网络防御技术是相当强的,但即使这样一个严加防范的网络依然在很短的时间内就被攻陷,如果换成其他国家,后果可能会更加严重。

图1-9所示为IDG对全球DDoS流量样本的分析。

图1-9 DDoS攻击分类统计

从中可以看到,占比最大的是混合流量。混合流量的特点是同时会有网络层和应用层的攻击流量发生,第一秒打ICMP Flood,下一秒就可能是Slow Post或HTTP Flood。混合流量挑战的是用户是否具有完备的防御架构,而单一品种的攻击流量挑战的则是用户某一款安全设备的处理能力。另外,如果你正遭受混合流量的攻击,基本上意味着你正遭受机器人的脚本攻击,因为只有程序才能实现如此高频的攻击种类切换——机器人攻击的时代已经来临。那么,网络层攻击和应用层攻击的区别在哪里?

网络层攻击的主要目的是卸载掉具有Bypass功能的网络防御设备,应用层攻击的目标是获取有价值的数据或劫持用户的商业模式或资源。两种攻击相互配合可以隐藏攻击者的意图,让受害者产生误判。现在的网络层攻击可以识别防御设备的品牌,并根据该品牌设备的防御原理和弱点,实现极具针对性的打击,瞬间可以让目标设备Bypass。

浏览器是最常用的应用,是我们每天工作和生活都离不开的工具。但据2016年McAfee Labs的报告,浏览器以36%的占比,成为最容易遭受攻击的对象(见图1-10),之后才是大家耳熟能详的暴力破解、DoS和SSL等。浏览器成为最重要的网络安全威胁,你是否会觉得诧异?

图1-10 Top 7网络攻击类型

而从Kaspersky Lab的研究报告来看,则得到更惊人的数据(见图1-11)。

图1-11 企业用户遭受攻击的类型分布图

从企业级用户的视角来分析,基于浏览器的攻击高达58%。为什么浏览器成为越来越多的攻击入口,攻击者能使用浏览器能做哪些事情呢?

攻击者是如何在浏览器位置获取敏感信息并实施攻击的呢?请看图1-12。

攻击者从原来的中间人攻击(Man in the Middle Attack)变成浏览器中间人(Man in the Browser,MITB)攻击后,就避开了SSL的困扰。因为在浏览器内所有未经过特殊处理的参数都会以明文形式存在,因此相较于在链路上获取相应信息,会更容易。攻击位置的转变也使得攻击的成本急剧降低。趋利避害,浏览器中间人攻击也成为流行的攻击方式。安全经济学是攻击和防御都需要遵循的法则,攻击和防御都在追求最优化的投入产出比,在成本因素上获得主动权之后,就可以给对方造成更大的成本开销,迫使对方尽早耗尽资源,将其攻陷。

图1-12 浏览器中间人攻击

浏览器中间人攻击的日渐流行,也离不开另外另一个技术因素——JavaScript。JavaScript的大量使用让攻击变得“润物无声”。通过在浏览器的内部进行设置,可以禁止或允许JavaScript脚本的执行。但是考虑到下面将要提到的客观原因,绝大多数用户只能无奈地允许浏览器支持外部脚本。

全球绝大部分的网站采用JavaScript脚本来辅助页面显示和功能实现。如果禁用外部脚本,则意味着这些网站将无法正常运行。这绝对是一个投鼠忌器和需要妥协的问题。所以在绝大部分的时间和场景里,我们只能允许浏览器支持JavaScript脚本的运行。但是越来越多的恶意脚本开始成为显著的威胁,这是一个必须面对和解决的问题。

同时需要强调一点,Java和JavaScript没有关系,JavaScript不是Java系统中的一员。单独存在的JavaScript文件的运行效果我们都会很熟悉,例如预报天气的小程序。

MITB攻击并不是现在才有的技术,这种攻击由来已久,它原来不被人重视的根本原因是基于浏览器的应用多半是新闻类的应用,没有很高的价值。但是伴随银行业务的Web化,浏览器环境中的高价值应用越来越多,这种攻击方式才得到广泛的关注和应用。

2015年开始,一种名为Dyre的网银木马席卷全球,给银行带来了巨大的损失。Dyre完全采用MITB方式对银行用户进行攻击,并在获取客户信息后实施进一步的攻击。Dyre的工作原理如图1-13所示。

Dyre通过监控浏览器的send方法,把用户引导至假的银行界面对用户进行欺骗,在获得用户的账户信息之后实施进一步的资金侵占。

图1-13中提到的C&C Server(Command and Control Server,命令和控制服务器)是一种专门作为攻击代理和控制的代理服务,类似于我们访问互联网的HTTP代理服务器,但它的目的是攻击,而非浏览信息。如果攻击者没有很好地擦除C&C Server上的痕迹,安全研究员就可以根据这些历史记录和留痕,分析出攻击者曾经攻击过哪些目标和使用过哪些手法。

图1-13 Dyre工作原理

如何验证从浏览器获得用户的有价值信息呢?可以通过本地调试和引用外部脚本的方式来验证。首先来看本地调试的方式。使用Firefox浏览器打开eBay的网站,输入用户名和口令。现在的浏览器都支持调试功能,打开调试功能的方法也非常简单,右键单击窗口后选择Inspect Element就可以进入调试界面。

进入调试模式后,会看到非常多的详细信息(见图1-14和图1-15)。软件开发人员的技术水平在此一览无余,书写严谨的代码让人肃然起敬,而随意和不严谨的代码仿佛散发着强烈的“化学信息”。

图1-14 找到口令单行编辑器对应的页面脚本位置

图1-15 找到口令对应的参数名称name=“pass”

在图1-14和图1-15中可以看到从页面输入口令的功能、页面内的脚本描述信息、name= pass等信息。点击“控制台”选项卡,进入命令行状态,输入document.forms[0].pass.value,然后按回车键(见图1-16)。

图1-16 输入JavaScript指令

浏览器会直接显示在页面中输入的明文口令,如图1-17所示。

图1-17 得到页面输入的口令参数值

可见,通过在浏览器本地输入JavaScript指令,可以直接获取页面输入的任何参数值。

现在来看如何通过引用外部脚本的方式来验证。通过浏览器调用一个部署在公有云的外部JavaScript脚本Hack Tools,该脚本集成了很多攻击功能,例如偷页面口令、基于脚本实现键盘记录器等内容。Hack Tools的主界面如图1-18所示。

图1-18 Hack Tools主界面

在图1-18的左侧是脚本Hack Tools运行之后产生的页面。单击Steal Password按钮时,脚本会自动定位到应用中和口令相关的输入位置,并标红含有输入内容的单行编辑器。当用鼠标点击标红的单行编辑器后,出现如图1-19所示的内容。

图1-19 使用Hack Tools中的Steal Password功能获取页面输入口令参数值

Hack Tools脚本可以直接得到页面输入的口令明文。可以看到口令值和本地命令行状态的结果一致。然后单击Start Keylogger按钮,脚本将自动定位到页面中可以进行输入的位置,并标红所有单行编辑器,如图1-20所示。

图1-20 定位到可进行输入的单行编辑器位置

接下来在用户名单行编辑器内,继续输入1234567890abcdefgh,会发现脚本窗口会同步得到所有在应用页面输入的数值,同时本地防御体系没有告警和感知,其内容如图1-21所示。

图1-21 Hack Tools同步得到输入的所有数值

通过外部脚本可以实现非常容易的信息获取和记录,针对这种基于浏览器的攻击,行业内只有非常少的厂商能够提供解决方案,这是一种非常犀利的攻击,是信息安全未来的发展方向。

浏览器攻击是一种很新的攻击类型,所有行业都没针对这种攻击进行相应的防范,这是普遍客观事实,而非任何一个企业的个例。从来都是先有矛后有盾,这就是安全的世界。

之前,终端的MAC地址或IMEI(International Mobile Equipment Identification Number,国际移动设备识别码)是唯一的,如果攻击者更换了设备,则需要重新追踪。那么,有什么方法可以实现终端追溯呢?一种全新的思路是借助于浏览器留痕来实现追溯。

其实,人们在使用移动终端一段时间后,都会在终端设备上留下操作痕迹,比如cookie、浏览器历史记录、保存在浏览器中的用户名和口令等信息。根据不同的权重分类统计这些信息,可以获悉留痕在每个分析项中的具体情况,再用分析项的内容进行交集统计,或许你的留痕就是那个独一无二的存在。如果你的行为留痕是独一无二的,追溯系统就可以唯一定位并追溯到你。各位读者可以尝试访问https://amiunique.org/fp链接,看自己是否是独一无二的(见图1-22)。

图1-22 测试设备是否可被追溯

可以看到,几乎所有的被检测者都是唯一的。一般来说,只要有人使用个人账户登录过移动设备,追溯系统都可以精确定位到,除非是完全没有使用账户信息登录过的新设备(此时它们具有相同的基础信息)。

思路的创新一日千里,没有做不到,只有想不到。技术只是想法的支撑。那么,如何唯一地识别一台设备的详细分类信息呢,请看图1-23。

在详细分类信息中,Cookies enabled占79.30%,Use of local storage占76.17%。这两项信息与用户操作过的浏览器痕迹直接相关。可见,只要你在浏览器中留下了痕迹,就可以被追溯到。其实,在最初设计cookie时,其本意就是让服务器更方便地找到客户端浏览器,只不过现在查找的不再是某一个应用和用户的简单关系,而是将查找访问扩展到了整个互联网。

图1-23 客户端痕迹收集各类权重

“撞库攻击”更为严谨的称呼是“凭据填充攻击”(Credential Stuffing Attack),它是网络犯罪分子实施犯罪的第一步。如果不扼制撞库攻击或降低攻击的成功率,可能会给用户造成非常大的财产损失。犯罪分子实施撞库攻击的作案流程如图1-24所示。

在撞库攻击成功后,就进入“养库”的阶段,即犯罪分子通过软件定期登录撞库成功的用户账户,对用户的资金状况进行轮巡监控。如果用户的资金有大额进项变动,就组织极具针对性的场景诈骗操作,实施大额金融诈骗行为。任何一个看似不严重的业务逻辑弱点,都有可能被犯罪分子构造成一个非常危险且成功率很高的诈骗场景。因此切莫掉以轻心,前车之鉴比比皆是。

图1-24 撞库攻击的作案流程图

图1-25所示的网站可以检测你的邮箱或用户名是否存在风险,各位读者可以去这里检测一下,地址为https://haveibeenpwned.com/。

图1-25 测试信息是否泄漏

撞库工具唾手可得而且使用简单方便,是撞库攻击泛滥的一个重要原因。此外,在安全场景防护层面,缺少针对撞库攻击的专门解决方案也是客观事实,目前还停留在用非技术手段干预对抗攻击技术的阶段,这种方法收效甚微,捉襟见肘。

低频撞库的感知比较困难。如果攻击者有意放慢单点访问频率,同时采用大量离散IP,则在大量的数字背景中找到撞库行为也是一个挑战。一般来说可以从两个方向着手:用户行为分析和客户端加固技术。

用户行为模型变化的原因,比变化本身更重要。但是通过行为模型的改变来判断攻击,则具有较差的时效性,没有办法对正在发生的撞库行为产生扼制,因此只可以作为辅助技术,不能作为对抗技术。

客户端加固技术是目前世界范围内最好的解决客户端Post攻击的技术,在国内就是应对撞库攻击的场景。该技术在第2章中详细阐述,这里不展开描述。

API(Application Program Interface,应用程序接口)攻击的出现和影响,导致2017年OWASP十大安全威胁在很长一段时间以来第一次有了新的内容(见图1-26)。

图1-26 2017 OWASP十大安全维系中新增的内容

Underprotected API(未受到充分保护的应用程序接口)会给应用带来怎样的风险呢?2017年2月22日,Bitfinex虚拟货币交易平台遭受了API DDoS攻击,如图1-27所示。

图1-27 REST API DDoS攻击案例

攻击者通过REST API对Bitfinex交易平台发起了超过其承载能力的高频请求,从而引发了针对该平台的API DDoS攻击。Betfinex采用了API请求限流的方式,如果用户的API请求速率超过每IP每分钟90次,就会被阻断10~60秒,借以缓解攻击者对应用的影响。

有软件的地方就有API。API大致分为三类:内部、外部和第三方。此分类的依据是使用场景,而非技术实现,从本质来讲这三种分类方法没有技术实现和安全等级上的区分。而且很多IT人员基本上对自己软件环境的API状况完全无知。如果大家觉得这个论点有些极端,那么请回答下面这几个问题。

……

你会发现,这些围绕API的所有问题,你完全无法应对并给出确切的答案。为什么会发生这样的情况?难道我还不了解自己的IT基础架构吗?非常不幸,这就是客观事实。API安全作为一个独立的安全视角,从未被人们关注过,这也是API攻击让大家如此陌生的根本原因。正如在图1-28中提到的那样,API攻击将成为针对电子业务的简化版的DDoS攻击手段。

图1-28 API攻击

根据apigee统计,从2014年1月到2015年12月,商用API的流量增长迅速,由此可以看到API被广泛使用的趋势(见图1-29)。

商用API的流量之所以就这么迅速地增加,其原因是API和企业的收入直接相关。据称,Salesforce.com公司50%的收入通过API实现,Expedia.com公司为90%,eBay公司为60%。可见,API具有相当大的价值,而且还是许多企业的命脉。API是否安全直接决定了是否可以对外提供服务并获得收入。对很多人来说,有必要重新认识API的重要性。

图1-29 API流量统计

API的可怕之处在于,凭借非常小的流量就可以对应用产生重要的影响。这个流量可以小到什么程度呢?我们来按攻击的层级梳理一下。网络层的DDoS可以到TB级别,成本约为数万元人民币;应用层的攻击可以到GB级别,成本约为数千元人民币;API攻击属于KB级别,几乎没有成本。

来看这个一个业务场景。很多Web应用通过短信网关发送六位动态口令,进行用户登录认证。这是一个第三方没有终端验证的API接口程序,只要按固定的格式Payload请求,短信网关就会响应,并向指定手机发送短信。如果攻击者用一个Post程序,频繁请求短信网管,以致其瘫痪,那么正常用户就无法得到验证短信,也就无法正常登录系统。一个简单的Post程序造成的API DDoS就可以终结一个应用,这就是API攻击的可怕之处。

最震撼的API攻击案例要数日产公司LEAF电动车的远程控制演示。一位身处澳大利亚的安全研究员通过在本地运行API请求,可以打开并关闭一辆位于伦敦北部的LEAF电动车的空调,还可以查询车辆的行车历史记录(见图1-30)。

图1-30中的右侧就是这位安全研究员在本地运行的API请求。

无论是服务器端软件环境还是客户端软件环境,只要存在API就可以对其发起攻击,两者唯一的区别在于窃取信息的不同。

图1-30 LEAF电动车被远程控制

在Web层执行的攻击几乎都可以移植到API场景中,而且API攻击还有自己独特的攻击种类(见图1-31)。

图1-31 API攻击种类

对读者来说,图1-31中的这些词汇比较冰冷而且没有活力,因此无法单凭这些词汇就可以对API攻击有足够的认识。现在我们通过场景化Malicious Input(恶意输入)攻击来加深大家的认识——靓号场景。

运营商和运营商的代理商都有号码的销售业务,但是绝大多数靓号都在代理商那里,运营商的资源很少,这是为什么呢?原因就是有代理商使用外挂软件,恶意利用运营商提供的API接口,进行高频的占号操作。具体实现是这样的:运营商会给代理商安装一些业务程序,以便代理商与运营商系统对接开展业务。但这些程序与运营商主应用的API接口没有实施完善的加固和限制策略,所以代理商可以自己开发一些应用外挂程序,使用这些没有保护的API接口,实现无人值守的自动检索,一旦发现靓号就预定下来并据为己有。这样一来,运营商自己的营业厅使用官方程序反而难有机会得到靓号。这个事情已经存在很久,其本质问题是API接口被恶意使用。

考虑到手机靓号的场景太久远,有些读者可能不熟悉,我们再来看一个很新的例子。

假设机构A是为了实现互联网业务中间结算而刚刚组建的结算机构,它为各大互联网企业提供了API接口,以便进行金融结算和状态查询。而电商企业有一个具体业务是退货,在进行退货的流程中有个具体的操作是,电商企业要通过API查询该货品交易相关的资金信息。这是一个非常普通的操作,但很容易被电商企业恶意使用。具体是如何恶意使用呢?由于结算平台的API是请求应答模式,只要提供的Payload格式正确,结算平台就会将该笔交易的相关信息返回给电商企业,但是API并没有限制提交Payload的参数值范围。也就是说,只要电商B的程序改变Payload里标识自己是电商B的参数值,比如从001改为002,可能查到的数据就是电商C的交易信息。既然API本身没做任何限制,为什么不去查呢?问题来了,每个电商都想知道对方的信息,全连接的信息查询将在处理能力本来就不高的API环节爆发。结算机构由于没有考虑到API的越权使用这个细节,从导致整体安全受到威胁,因此千万不要小看API相关问题造成的危害。滥用API的场景很早就有,一直延续到今天,未来肯定会爆发,因此需要早做打算。多云环境的本质是更复杂的软件环境,API的使用将会成为普遍现象,真正的风险还没有到来。

早在2015年,在GitHub上就发布了API DDoS的脚本(见图1-32)。大家可以看到,尽管只有5行代码,但是就可以实现攻击。如果具备攻击脚本的开发经验,不得不承认API真的是门户大开。在攻击场景中,再找不到比五行代码更少的攻击程序。由此可见,API的攻击和防御都大有可为。

图1-32 API DDoS脚本

缓解API攻击的方法主要包含如下4个方面。

图1-33 丰富的HTTP状态码

大家对HTTP状态码都耳熟能详,但里面和API相关的状态码非常有限,所以建议自定义并丰富状态码,以得到对API状态描述的更多实时反馈信息。

要实现对API的生命周期管理,需要完备的管理环节和管理工具,如图1-34所示。

图1-34 API生命周期管理

从本质上来说,API是程序的一部分,针对软件的管理办法同样也适用于API,因此可以采用管理软件生命周期的方法和步骤来管理API。但是同时一定要使用一些专用的API管理工具进行辅助。GitHub上有很多非常不错的API管理工具,涵盖了很多范围,而且API安全只是其中的一部分,更多的内容属于API生命周期的全流程管理范畴。

API是未来重要的安全方向,因为在软件容器化之后,API的使用规模会有核爆级别的增长。而且API和软件密切相关,因此API也会经常发生变化。如果不从现在开始使用管理工具,搭建管理平台和监控平台,等哪一天KB级别的流量打倒应用的时候,悔之晚矣。

API的自检可以确保先于攻击者发现自身的弱点和漏洞。虽然有些老款的扫描工具能够扫描API,但是因为支持的API种类太少而没有任何价值,如AppScan或WebInspect。所以需要使用专门针对API的漏洞扫描工具,比如ReadyAPI。

ReadyAPI漏洞扫描工具从功能、性能、安全、集成测试开发层角度对API接口进行测试,考虑角度之全之广堪称完美。当然,它有一个唯一的缺点,即价格很高(这一点和F5公司的设备一样)。另外一款API测试工具是APImetrics,这是一个非常完备的API测试平台,可以对应用的API先进行扫描,再进行全方位的管理和运维,同时还提供详细的API使用报告信息。

薅羊毛攻击是以商家促销品为目标,在促销过程中通过海量受控终端对促销品行快速获取,并通过转售商品或提现的一种场景化攻击手段。薅羊毛攻击已经形成产业链(见图1-35),从业人数众多,行业产值巨大。根据FreeBuf发布的薅羊毛产业报告,在2017年前三个季度,企业平均每天遭受241万次薅羊毛攻击,约有110万个薅羊毛团伙在兴风作浪,薅羊毛产业规模千亿级别。

图1-35 薅羊毛产业链

对信息安全业界来说,2017年有两件事情不能忘怀,其中之一就是WannaCry勒索软件的爆发。WannaCry不是说要通过加密个人电脑勒索到多少钱,而是验证了用比特币作为支付手段的可能性。虚拟货币最大的好处是不可追溯性,于是更有胆量的一个组织粉墨登场——Armada Collective(无敌舰队)DDoS勒索。那封略显粗糙的勒索信开始出现在国内证券公司的邮件服务器中。

WannaCry针对个人发起勒索行为,无敌舰队针对的则是金融行业,这种跨越不是只靠技术可以支持的,需要很好的商业模式设计能力和胆量。金融行业会在未来面临更严峻的挑战,因此必须为此做好充分的准备。

伴随偶发性的勒索事件常态化,一个名为勒索软件即服务(RaaS)的新兴行业应运而生。IT研究和咨询公司Osterman的一份白皮书揭示,勒索软件目前处于“流行病”级别,去年近50%的美国公司都遭受过勒索软件攻击。当前约80种新勒索软件“家族”,相较于2016年上半年增长了172%。DDoS攻击能得到更多的媒体曝光,是因为被攻击的业务系统的所有用户都会受到影响,传统媒体的介入会加速事件的扩散。相反,勒索行为往往只会发生在公司内部,除非被勒索的公司、勒索者或者受影响的客户公开了消息。实际上很多公司出于各种原因,都不愿意曝光自己遭受了勒索软件攻击(而DDoS攻击在设计之初就希望能尽人所知)。不得不承认,勒索软件是个正在发展中的产业,远未达到巅峰,目前仅仅在起步阶段。

从整个互联网的流量来看,有52%的流量是有各种爬虫、扫描、攻击和渗透软件产生的。网络攻击正在以一种前所未有的速度发展着,远远超过了人为控制的传统防御体系的应对能力和及时性。在这样的攻击下,防御策略更新的节拍永远无法靠近甚至追赶攻击的节奏,我们需要更敏捷的防御体系来应对日新月异的攻击。

对抗是一场与时间的赛跑,绝大部分的攻击都是在分钟级别发生的,而防御架构绝大多数一般是在数天/周/月内才能发挥作用,攻击和防御相差一个或两个时间单位。如何能够让防御系统便捷起来呢?可编程防御体系是唯一的选择。所谓可编程防御体系,即用控制指令脚本来代替人类去操作数量众多的防御设备,实现同一个防御策略的下发和调整。它可以在一分钟的时间内让资源池中的数百个能力防御内核,快速拉起并部署完策略,马上验证防御效果。可编程防御架构是在虚拟化环境下,实现大集群快速部署和对抗的核心技术。


软件定义安全是一个明星概念,自诞生之日起就被Gartner收录并跟踪。图2-1~图2-3所示为Gartner在2015~2017年对软件定义安全成熟度的评估。从中看到,在2015年,软件定义安全处于技术萌芽期;2016年处于期望膨胀期;2017年进入泡沫破裂低谷期,并在未来2~5年的时间内达到成熟期。而且,从软件定义安全技术在三张图的分布位置可以得出这样的结论:软件定义安全正在迅速被市场所接受,并预计在未来2~5年的时间内达到成熟期。

图2-1 Gartner 2015

由此可见,软件定义安全是一个值得投资的技术,可以解决传统防御架构的很多弊端,让防御便捷高效,尽可能跟上攻击的节拍。

图2-2 Gartner 2016

图2-3 Gartner 2017

在真实的IT基础架构环境中,有三个非常重要的职能部门:安全、开发、运维。从传统认知的角度来看,这三个部门以相对割裂的模式运作,形象的比喻就是,开发的挖坑、运维的灭火、安全的背锅。伴随着DevOps的理念越来越深入人心,同时安全部门将更多的关注点放在了应用场景,这使得这三个职能部门对员工基本技能的要求越来越趋于一致。没有软件开发技能的员工,无法胜任软件定义网络(SDN)和软件定义安全(SDS)的工作,也不可能做好网络和安全相关的工作,因此一个更大的融合概念开始产生——SecDevOps(安全开发运维),如图2-4所示。SecDevOps打破了员工角色之间的壁垒,实现了更大范围内信息的共享,使得防御架构更加便捷,更能应对高频变化的攻击。

图2-4 SecDevOps

SecDevOps模式的精髓是对安全从业人员基本技能的巨大挑战。传统信息安全偏重的是网络层,所以在早期的信息安全工作中,网络占比很大。在那个时代,只要具有良好的网络背景知识,就可以称作合格的安全从业人员。但是伴随攻击越来越多地发生在应用层,甚至细化到应用场景后,整个信息安全行业的中心开始向应用层迁移,最具代表性的是公司是Palo Alto,该公司提出了下一代防火墙的概念。下一代防护墙虽然还是防火墙,但是加入了应用层的很多内容,可以从Application ID、Content ID和User ID三个维度描述应用层的策略。同时,重在应用层防护的WAF(Web Application Firewall,Web应用防火墙)厂商也得到突飞猛进的发展,比如Imperva公司。Gartner在2015年颁布了第一个WAF行业报告,当时F5公司还不是领导者象限厂商,到了2017年,F5已经成为领导者象限中的一员。至此,信息安全从业人员如果仅具有网络知识,将不能胜任岗位职责,因为真实的攻防对抗需要掌握娴熟的软件开发技能。Python和JavaScript成为信息安全从业人员的必备技能,熟悉常用的攻击原理和实现也成为他们的基础知识。可以这样说,不会写代码的安全人员已经没有前途。

总结一句话:网络视角的安全是无关内容的安全,应用视角的安全并不在意流量是怎么来的。

软件定义安全的最大亮点不在安全,而在于软件定义。

要实现软件定义安全,安全厂商需要完成两个准备工作:内部脚本化和外部可调用。内部脚本化指的是对设备的所有操作都能转化成脚本,脚本可以百分之百地描述一个人对安全设备的所有操作。外部可调用指的是安全产品的这些脚本可以被外部程序通过API的方式调用,即实现外部程序对安全设备百分之百的控制。

如果对安全设备的所有操作都能脚本化且可调用,那么该设备就可以对外提供全量API(这是最完美的情况)。如果只有部分功能可被调用,就是部分API。F5的设备就可以提供全量API。

如果整个行业的安全产品都提供API接口,那么也就存在了软件定义安全的行业基础,软件定义安全的理念就可以落地。国外大部分的安全产品都提供了API,国内安全厂商在这一点上做的则不甚如意,有些安全产品甚至连root权限都不开放,客户拿到的就是一个黑盒产品。没有API就没有安全联盟和安全生态,没有安全生态则意味着每个产品都在单打独斗,无法发挥行业优势形成聚力,最终的结果一定是无法应对高频攻击,让用户遭受损失。

要做到对安全的正确认知,首先要正确看待黑客和黑客技术。我们来看一下美国是如何看待黑客,以及运用黑客所掌握的顶尖技术的。

美国国防部(DoD),也就是大家俗称的“五角大楼”,于2016年11月21日首次与HackerOne合作,开展了Hack the Pentagon的漏洞众测项目,允许通过背景审查的安全研究人员在HackerOne平台发现并提交美国军方网站漏洞。图2-5所示为HackerOne网站上对此项目的详细介绍。

图2-5 五角大楼漏洞公测项目

该项目涉及的目标范围非常之大,.mil相关的网站和美国国防部使用的IP地址都在测试范围之内。五角大楼与HackerOne合作的漏洞众测项目表明,可以利用广泛的白帽黑客技能,以漏洞赏金的方式来及早地发现和预防安全隐患。这是一种积极的安全应对方式,可以有效实现漏洞堵塞和风险消除,能最大程度地保护目标测试范围内的资产和数据安全。技术本身没有好坏之分,而技术导致的结果的好和坏,也会因为立场不同而得到不同的结论。

值得肯定的是,2017年6月1日起《中华人民共和国网络安全法》的正式实施是一个重要的里程碑事件。该法案是我国第一部有关网络安全的基础性、“大纲性”的法律,意味着我国朝着网络安全强国迈出了重要的一步。

安全的全局观可以很简单,也可以很复杂(见图2-6)。

图2-6 静止的安全策略形同虚设

安全策略一旦静止下来,防御效果就会大打折扣,如果你只专注在一点进行防御,而缺乏全局观,攻击者就可以轻易躲过安全策略的拦截。那么什么才是安全的全局观呢,请见图2-7。

要解决安全的问题,首先要对安全有正确的认知。错误的认知一定导致错误的需求,而错误的需求一定导致错误的解决方案。即使解决方案本身没问题,得到的结果也一定不是最初要解决的那个问题该有的结果。探究生成安全问题的场景比直接解决问题本身更有意义。

图2-7 安全的全局观

很多安全问题的根源来自于编码的不严谨。在应用的开发环节中,代码的质量是一个非常基础性的问题,同时也是一个经济学问题。同样一个漏洞,在应用的设计阶段被修正的成本假如是1,在实现阶段修正就是6,在确认阶段就是15,在发布后就是100,如图2-8所示。

图2-8 安全经济学问题

有什么可以参照的行业规范吗?SAMM(Software Assurance Maturity Model,软件保证成熟度模型)是可以借鉴的规范,可以将其理解为安全视角的软件成熟度模型,SAMM的官方网站上有中文文档可以参阅,如图2-9所示。

图2-9 SAMM官网介绍

SAMM的目标和目的如图2-10所示。

图2-10 SAMM目标及目的

SAMM的业务功能主要是聚焦软件开发,通过监管、构造、确认、部署这四份关键业务,以及每个关键业务下面设立的三个安全措施来提供支撑,如图2-11所示。

SAMM实践涵盖的内容非常广泛,可以覆盖软件开发的全部流程,如图2-12所示。

尽管SAMM具有如此完备的软件开发辅助工具,但是因为各种原因而很少被软件开发企业采纳和应用,这也是软件导致的信息安全事故频发的根源所在。

图2-11 SAMM的业务功能

图2-12 SAMM实践内容

安全部门的分离是出于相互制约和监督的客观需要,但是在处理安全业务时部门之间需要充分融合,而不应该有部门的划分和区别对待,而且应该按之前提到的SecDevOps的概念来运作。安全部门的架构如图2-13所示。

从技术实现上来看,应该打破原有分离的技术岗位设置,因为现在面向应用场景的攻击,很多时候从单一视角来看是没有问题的,但是从业务健康度和业务成功率来考核就会发现严重的问题。因此原有分离的安全技术岗位不建议延续,原因如图2-14所示。

图2-13 安全部的架构

图2-14 传统设置的安全技术岗位已经没有意义

原有分离的技术岗位就好比单一视角的监视器,无法感知全貌,而现在的应用层攻击都是用软件模拟人的行为。假如一个人操作一个页面业务逻辑的极限时间是60秒,而一个软件以40秒为时间节拍,向服务器提交请求,那么人就完全没有可能战胜软件,从而被屏蔽在服务器提供的商业模式之外。即使是40秒发生一次的请求频率,对软件来说也是绝对低频的,但对人来则是绝对高频的,也就是说,攻击的高低频之分是要设定参照物的,而不能凭空而论。由软件引发的这种请求可以非常容易地隐藏在背景数据流量中,不易被发现,原有的分离的信息安全岗位无法发现这种模拟人类行为的低频软件业务攻击。因为网络管理人员认为流量平稳,没有攻击发生,运维人员发现服务器负载都不高,也没有发生攻击。但从业务健康度,也就是成单率来看,就会发现端倪。原有的这些岗位的人员如何应对这种攻击呢?

唯一的方法是从安全的视角进行业务职能的叠加,通俗来说就是网络运维部门要有软件开发人员,并执行图2-15中所示的岗位职责。软件开发人员会从业务逻辑的视角审视数据流,即用户从哪些地方访问应用,所在地是否与公司的商业规划相符,数据流经过哪些数据中心的设备,最终到达了哪台服务器,以及最后是否形成有效的订单并成功付款。这样按业务逻辑梳理之后,攻击行为就无处遁形,因为攻击者是不会最终付款的,一定会定在业务逻辑的某个环节终止下来。

图2-15 应对信息安全形势需要增设的岗位以及职责

岗位叠加是应对现在安全形势的有效手段,当前比较流行的称呼是SecDevOps,即安全视角的岗位融合。这是大势所趋,也是解决之道。

伴随信息技术的发展和应用的层出不穷,企业的IT架构经历了由简入繁的发展历程,在可预见的未来,IT架构还会继续复杂下去,所以我们必须做好充分的心理和技术准备,直面这些必定发生的变革。

早期的IT基础架构简洁到具有美感——Firewall、DNS、VPN、Forward Proxy Cache、Dictionary Service、Load Balancer(见图2-16)。

图2-16 早期的IT基础架构

但很快事情就变得不那么有趣,因为多用户接入的需求使得IT基础架构开始变得便捷起来。多用户类型产生了多链路接入的数据数据中心,在我国这个问题似乎更复杂一些。北联通和南电信这两大运营商的互联互通在早期是个不小的问题,所以链路负载均衡的场景曾经非常普遍。F5公司在相当长的一段时间里都承担着链路负载均衡的重要角色。今天这个场景在大型数据中心两地三中心的设计中,承担最优路径的选择功能。

如果你感受不到信息安全方面的威胁,根本原因不是没有威胁,而是你的应用的价值还不足以引起攻击者的注意。一旦有一天你的应用家喻户晓,它的商业模式能够产生巨大价值后,信息安全方面的威胁一定是你最深刻的感悟。

更多类型的用户接入,更复杂的IT运维工作,更多攻击者的袭扰,这才是真实的IT世界。

另外一个导致IT行业越来越艰难的原因是,软件规模越来越大,而软件规模越大,则包含的漏洞就越多。更重要的是,漏洞开始从软件层面发展到硬件层面——Intel的两个硬件漏洞让业界忧心忡忡。大家通过图2-17可以看到那些耳熟能详的软件体量有多大。

图2-17 常见软件的体量对比

由图2-18可见,很多软件的体量都是成倍地增长,Windows 2000的体量是Windows NT 4.0的252%,Microsoft Office 2013的体量是Microsoft Office 2001的180%。云环境下的软件规模已经无法统计,而未来是云的时代,我们面临的将是一个未知的世界。

云对安全来说既是挑战也是机遇。挑战在于,传统安全追求的是硬件支撑的单点高性能,并乐此不疲地走到巅峰。而云本身就是个压力均衡的体系,不会出现单点高性能的需求,所以在云环境中继续追求安全原来的发展方向没有意义。另外,云需要的是虚拟化形态的安全产品,如果实体的硬件安全产品没有虚拟化的产品形态,也会被云环境淘汰。机遇在于,可以将安全看作是云环境的第一需求。在实体数据中心的模式中,负载均衡和高可用性是第一需求,但在云环境中一切发生变化。云环境中的关注点情况如图2-18所示。

图2-18 安全是云环境下的第一需求

据调查问卷的结果显示,在云环境中部署应用的用户,首要关注的是安全。这也说明,云环境中的用户更具有安全意识。

云环境的潜台词是软件化,本质上来讲是网络产品和技术的去差异化,将重点更多地放在上层应用上,从而简化应用交付体系的构建流程。由此带来的直接结果是,云环境中 API的使用规模呈几何级数爆发,API攻击迅速成为可以对应用造成致命打击的技术手段。当将API这种很容易被忽视的技术应用模式放到聚光灯下审视的时候,才会发现它具有很多的致命弱点。未来一定会有一些以API做文章的加固产品出现,比如API Portal、API Gateway、API Firewall、API安全云服务等。Google的apigee就是API云安全服务平台,提供了对API进行加固和保护的整体解决方案。所有加固和安全服务必须以高性能为基础,没有性能保障的解决方案都是空中楼阁,这样的方案也没有办法真正进入用户场景,为用户提供切实的应用保障。所以不能抛开高可用性谈安全,以往的技术中有很多这样的教训。


相关图书

黑客秘笈 渗透测试实用指南 第3版
黑客秘笈 渗透测试实用指南 第3版
逆向工程权威指南
逆向工程权威指南
可信计算远程证明与应用
可信计算远程证明与应用
C++ 黑客编程揭秘与防范(第2版)
C++ 黑客编程揭秘与防范(第2版)
C++ 黑客编程揭秘与防范
C++ 黑客编程揭秘与防范

相关文章

相关课程