大型互联网企业安全架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 快速治理阶段

很多互联网公司的业务发展通常先于安全团队建设,在业务发展到一定规模、出现网络安全事故时才考虑在安全方面进行投入,但此时已是企业信息安全环境状况很差的时候,安全,作为业务的基本属性,已经严重滞后于业务的快速发展。此时可能出现的安全问题有:企业内网出现众多弱口令和未打安全补丁的系统,线上业务有大量XSS、SQL注入、逻辑和越权等漏洞,员工安全意识薄弱,数据泄露严重(如随意上传代码到GitHub),等等。这一阶段可以通过以下几个步骤进行快速治理,以解决企业面临的主要风险。

3.1.1 选择合适的安全负责人

选对一个经验丰富的安全负责人,企业的安全建设就成功了一半。通常,安全负责人在企业中的角色有首席信息安全官(CISO)、首席安全官(CSO)、首席风险官(CRO)、安全总监、安全经理等,企业根据发展规模、发展阶段对安全负责人会有不同的定位和需求。下面具体说一下安全负责人基本的职责、工作要求,以及企业的人才选型。

1.职责

·指定并指导安全专家团队。

·制定安全战略规划以实施信息安全技术和安全流程。

·监督并确保安全策略、安全标准、安全流程的合规和执行。

·对现有系统进行安全审计并提供全面的风险评估。

·参与安全架构和安全技术研发。

·制定处理和调查安全事件的战略。

·正确有效地确定安全资源的优先级并进行分配。

·与高级管理层合作,确保有效地实施、审查IT安全保护策略,并对其保护制度和流程进行维护和管理。

·制订企业安全文化建设计划。

·负责制定信息安全岗位的绩效考核规则。

2.工作要求

·学历及专业要求:本科以上学历,计算机科学或网络安全相关专业。

·工作经验:具有7~12年IT安全领域的工作经验,5年以上的安全团队和安全运营方面的管理经验。

·硬技能:①具备IT策略实施、企业安全架构实践经验,②熟悉ISO27002、ITIL和COBIT安全框架以及PCI、SOX等合规评估要求,③熟悉Windows、UNIX和Linux操作系统,④熟悉C、C++、Java、Python等编程语言,⑤有安全编码实践、黑客入侵、威胁建模经验,⑥熟悉TCP/IP、路由器、交换机等网络技术。

·软技能:①在组织沟通、结果思维导向、战略规划及创造性思维方面具有良好的能力;②可以建立良好的人际关系,有效地展开团队协作;③了解法律/监管要求,能够应对财务限制和技术选型的压力。

·相关证书:CISA、CISM、GSLC、CCISO、CGEIT、CISSP、CISSP-ISSMP。

3.人才选型

·小型企业的人才选型:负责人以熟悉安全运营的人才为主。小型互联网企业通常由于考虑到成本方面的因素而不需要成立安全产品开发团队,可以通过使用开源安全软件或购买安全产品和服务的方式满足公司的安全需求,此时安全负责人的主要工作包括对系统进行渗透测试、安全加固、应急响应、安全审计、安全产品选型和管理、组织安全培训、确保安全合规以及制定安全流程制度和规范等。

·中型企业的人才选型:负责人以精通安全技术和安全运营的人才为主。中型企业一般已经具备一定的经济实力和规模,同时面临的安全风险也更为复杂,因此购买的安全产品不一定满足企业需求,且由于部分安全产品的需求量比较大,成本也比较高,不如自研或使用开源产品定制更加经济。此时对安全负责人的要求不仅要有安全运营能力,还需要对安全产品研发有一定深度的把握,具备较好的架构开发能力和安全技术研究能力,能够自研安全平台来解决企业的安全自动化监控与响应问题。

·大型企业的人才选型:负责人以掌握实践方法论的人才为主。大型企业安全团队的规模通常能达到几百甚至上千人,安全职能更加细化,涉及的安全面也更为广泛,安全负责人已经不可能有精力去处理某项具体的安全问题。此时安全负责人以管理工作为主,并需要具备一定的实践方法论知识,这样才可以从全局视野和理论角度保障安全实践在业内领先。

上面对安全负责人的选择做了一个大概的阐述,仅供参考。其中,国内CISO(首席信息安全官)考取安全证书的不多,美国的CISO考取各种证书的比较多,与国内安全人才现状不同,但有意向进阶的安全从业者系统地学习一下安全理论知识也未必不是一件好事。

3.1.2 识别主要的安全风险

快速治理阶段的主要目标是利用20%的资源解决80%的安全风险,所以第一步是识别主要的安全风险。互联网公司的特点是业务技术以Web和移动应用(App)为主(当然有的企业还涉及桌面软件、云服务、IoT硬件等),业务迭代快,人员变动较大,公司管理较松散。互联网企业的安全风险大多来自在线业务,同时企业内部也随时面临风险,接下来重点对这两种安全风险加以介绍。

1.在线业务

来自在线业务的风险包括Web安全风险、业务自身的安全风险及移动应用的安全风险,下面分别对这3种风险进行具体说明。

·Web安全风险:因为互联网公司业务以Web为主,所以业务面临的主要风险依然是Web漏洞,比如Facebook在“View As”功能中有一个代码漏洞,黑客可以通过该漏洞获取访问令牌从而控制用户的账号,由于这个漏洞,近5000万个用户账号的访问令牌被黑客获取,这无疑给风口浪尖上的Facebook在安全伤口上又撒了一把盐。目前,SQL注入漏洞随着SQL预处理框架(如Java的MyBatis、PHP的PDO)的流行已经变得比较少见,但以往常见的XSS跨站、越权、逻辑漏洞以及新兴的JSONP注入、SSRF、XML实体注入、Java反序列化(Tomcat JMX反序列化、Weblogic反序列化、Fastjson&Jackson反序列化、Spring RMI反序列化)漏洞依然流行,而且各种Web框架(如Struts2、Spring)漏洞和第三方组件漏洞(如引起QQ邮箱远程代码执行漏洞的图片处理组件ImageMagick的漏洞、读取YouTube敏感文件的视频处理组件FFmepg的漏洞)也不时出现。另外,与第三方合作的Web接口等也存在很大的安全风险,Facebook最大的数据泄露事件就是由于开放接口给第三方引起的。对于很多缺乏专业安全团队的公司来说,黑客上传的Webshell后门可以对其进行长达数年的远程控制。

·业务自身的安全风险:业务自身的安全隐患已经成为互联网公司的第二大安全风险,如某京东商户通过自买自卖、给予好评的方式获取京豆,并利用京豆再次进行虚假交易,在短短10个月内骗取了价值800多万元的京豆。一般业务安全可以分为账户体系安全、交易体系安全、支付体系安全。对账户体系安全造成威胁的行为包括撞库、盗号/洗号/养号、垃圾注册、暴力破解、短信轰炸、钓鱼攻击等;对交易体系安全造成威胁的行为包括促销时恶意下单后退款、营销活动中“薅羊毛”、虚假交易刷排名等;对支付体系安全造成威胁的行为包括欺诈、盗刷、洗钱、恶意提现、信用卡套现、优惠券套现等。当然,业务不同,面临的业务风险也不一样,如视频网站还涉及盗播盗看、广告屏蔽等方面的风险,博客贴吧和即时通信平台涉及垃圾广告、低俗色情、违禁品、谣言等内容方面的安全。

·移动应用的安全风险:随着手机和移动网络的普及,越来越多的网民通过手机应用上网,甚至超过了使用个人电脑上网的人数。Android和iOS移动应用的安全问题逐渐成为互联网公司的第三大安全风险,比如腾讯玄武实验室发现的“应用克隆”高危漏洞,利用该漏洞可以在他人毫无感知的情况下使用他人的支付宝进行支付操作,它实际上是Android WebView的一种跨域访问漏洞,历史上曾出现过WebView通过远程代码执行漏洞(CVE-2012-6636、CVE-2014-1939)的情况。移动应用主要存在的安全漏洞风险包括Android应用上存在的Log敏感信息泄露、Web HTTPS校验错误忽略漏洞、Provider组件暴露漏洞、Activity安全漏洞、使用不安全的加密模式等40多种漏洞风险,以及iOS应用上存在的未打开安全编译选项(-fobjc-arc、-fstack-protector-all、-pie)、不安全的随机数加密、后台模式敏感信息泄露(如打开了allowScreenShot配置)、不安全的剪贴板使用、不安全的反序列化(NSCoding、NSCoder)、SQLite注入、不安全的URL调用(registerForRemoteNotificationTypes、handleOpenURL)、不安全的数据存储、有漏洞的第三方组件(AFNetworking、ZipperDown)、含有后门的编译器(XcodeGhost)、溢出&UAF等几十种安全风险。另外,Android和iOS移动应用还存在二次打包、反编译、破解、外挂、数据加密等安全加固问题。

2.企业内部

来自企业内部的安全风险包括来自员工的安全风险、口令安全风险及来自钓鱼攻击和社会工程学的安全风险,下面对这3种安全风险做具体说明。

·来自员工的安全风险:企业的员工也有可能给企业带来安全风险。极端情况下,有个别员工会受利益驱使买卖公司数据,也可能有心怀不满的员工故意搞破坏,甚至有对手公司专门派来做间谍的。除此之外,由于员工安全意识淡薄,有可能会出现随意上传程序代码到GitHub、网盘、个人邮箱,或者离开电脑不锁屏的情况,这些行为也存在一定的安全风险。即便是美国国家安全局(NSA)这样在安全方面已经做得很好的机构,也会因内部员工或外包员工而泄露大量敏感数据,比如著名的“斯诺登事件”“The Shadow Brokers事件”。这样的案例在互联网公司也很多。2013年,大量安装迅雷产品的电脑在C:\Windows\System32目录下出现了一个名为INPEnhSvc.exe的带有迅雷数字签名的文件,该文件的运行特征和行为与远程控制类的木马后门和病毒类似,可以根据远程指令篡改IE浏览器,并下载大量推广的手机apk安装包来安装相应的应用,短短两个月时间INPEnhSvc.exe就被安装在了几千万台服务器上,为大量推广的手机应用带来了可观的流量。最后经迅雷内部排查,发现是集团子公司视频事业部所属的传媒部门负责人避开了公司正常流程,私下指示技术人员,擅自动用子公司资源并冒用迅雷数字签名,制造了这一带有流氓行为特征的插件。处置结果是开除了事件主要责任人,并表示今后会完善公司的员工和流程管理机制。第二个典型的案例是媒体报道的一起北京某公司前运维主管陈某在离职前夕受公司高管孙某授意,违反公司规定,私自开通公司多个重要技术项目权限,从而获取了大量自己本无权限接触到的核心代码,并通过自己的账号进行下载,离职后将代码带出倒卖并获利800多万元的案件。很多公司员工特别是在离职的时候喜欢拷走或上传大量自己工作中的文档和代码,所以企业员工离职的时期有可能就是数据泄露的高风险期。

·口令安全风险:从互联网发展之初,弱口令等密码安全问题就一直困扰着互联网企业,时至今日依然是很多公司的主要安全隐患。口令安全常见的问题有下面几个。①由于员工安全意识薄弱而使用弱口令,黑客通过暴力破解手段即可获取该口令。②黑客利用互联网上泄露的各网站数据库账号通过撞库即可定位员工的账号和密码。③通过社工(社会工程学)手段针对企业员工定向猜解或钓鱼。④公司内部缺乏账户安全体系建设,比如缺乏双因素认证机制(2FA)、没有统一的SSO(Single Sign On,单点登录)系统、员工离职后账号没有被删除,以及由于各种内部系统随意架设并使用独立的用户名密码而导致有的系统口令比较安全而另外一些很脆弱等。⑤由于缺乏传输加密和防ARP (Address Resolution Protocol,地址解析协议)攻击等嗅探防护而导致黑客通过网络流量抓包即可获取用户口令。在我曾经负责的某公司就做过安全测试,有20%的员工使用的还是初始化口令(入职时系统提供的默认密码),还有50%的员工使用的是很容易破解的弱口令。很多企业的员工账户名都是姓名,黑客只要用中国叫得最多的100个姓名再加上使用量在前1000的弱口令,就几乎能百分之百地破解出部分企业员工的账号。这里介绍一下美国中情局局长约翰·布伦南(John Brennan)邮箱账号被攻击的案例。黑客首先获得了布伦南的手机号码,并得知其手机运营商是Verizon,于是冒充Verizon技术员向运营商客服索要布伦南的详细信息。事后被抓的黑客阐述:“我们告诉Verizon,我们是这个公司的员工,因为工具都坏掉了所以无法访问用户的数据。”而在提供了一个伪造的验证码后(Verizon提供给员工的特定验证码),他们就拿到了想要的信息,包括布伦南的账号、4位数的手机PIN码、备份的手机号码、AOL电邮地址以及银行卡的后4位数字。AOL电邮即布伦南的个人邮箱账号,接着黑客告知AOL工作人员说邮箱账号输入密码错误次数较多被锁定了,AOL工作人员在询问了账号绑定的姓名和手机号码还有银行卡后4位数字等密保问题后帮黑客成功重置了布伦南的邮箱密码,黑客在接下来的3天时间中获得了邮件中的不少敏感信息,包括长达47页的SF-86s表格,其中包含了军人和合同工等美国政府雇员的多项信息,甚至关联到这些人的朋友、配偶和其他家庭成员,以及一封来自参议院要求中情局停止使用严厉审讯手段的信件(备受争议的严刑逼供手段)。在互联网公司中也有不少类似的案例,例如乌云上披露的京东内网被漫游事件,黑客首先在GitHub上泄露的一个使用Python编写的发邮件源代码中获取了该公司一位员工的邮箱账号密码,但尝试登录后发现密码已经被改过了,原来京东内部有定期修改密码的安全规定。黑客在分析密码后发现该密码由近期的年月日组成,于是用密码字典生成器把日期部分近期的年月日都生成了一遍,很快破解出了改后的邮箱密码。通过翻阅邮件,黑客发现了京东VPN的登录地址,但尝试登录后再次发现VPN采用了手机短信双因素认证方式。然而这依然没有难倒黑客,通过发邮件给vpn@jd.com说“手机号换了,想重置VPN手机号,因为我已经有了VPN权限,所以应该不需要上级领导审批”的方式,直接把京东该员工的手机号修改为了黑客手机号,于是黑客堂而皇之地通过京东VPN接入了京东公司内网。由于该邮箱属于一个运维人员,所以接下来的若干天黑客访问了京东内网包括运维管理平台在内的大量敏感系统,甚至还破解了部分数据库管理系统phpMyAdmin的弱口令。

·来自钓鱼攻击和社会工程学的安全风险:数据显示钓鱼攻击和社会工程学逐渐成为黑客首选的武器,是企业内部第三大安全风险。常见的有邮件钓鱼、论坛和评论钓鱼、通信软件(QQ、微信等)钓鱼,比如1.2.2节提到的Carbanak跨国网络犯罪组织就是通过发送包含后门附件的钓鱼邮件的方式攻击了全球100多家银行,获利超10亿美元。甚至连知名安全公司EMC RSA也中招,黑客向该公司一部分普通员工发送了带有名为“2011年招聘计划”的Excel表格附件的电子邮件,一些员工打开了附件并在表格空白处填写了内容。而该表格包含一个利用了Adobe Flash的“零日漏洞”,黑客通过该漏洞安装了“Poison Ivy RAT”远程控制程序。最初,黑客利用被入侵的低级别账号来收集登录信息,其中包括用户名、密码和域名信息等。之后黑客又将目标瞄向拥有更多访问权限的高级账号,一旦入侵成功他们就可以从RSA网络系统中盗取任何需要的信息,之后打包并通过FTP下载。事件造成的影响是直接威胁到全球4000万个使用RSA令牌的公司和政府的安全性。另外,国内也有不少利用公司QQ群、微信群冒充领导欺骗财务打款和套取公司内部信息的通信软件钓鱼案例。在我工作过的某公司就曾做过邮件钓鱼测试,发一封由于运维系统升级而需要大家修改OA系统密码的伪造邮件,约有三分之二的员工会把自己的密码泄露出来。全球知名黑客凯文·米特尼克就把社会工程学发挥得淋漓尽致,其创建的公司宣称可以达到100%的渗透成功率,米特尼克还专门写了一本书——《欺骗的艺术》。社会工程学中有一个比较经典的例子就是丢U盘,在Black Hat大会上来自Google反欺诈研究团队的负责人Elie Bursztein就做过丢U盘的实验,结果297个U盘中有135个U盘(约45%)被人捡走并直接插在了电脑上。另外一个例子是来自Reddit的报道,某大公司高管电脑感染了恶意程序。公司的安全研究人员检查了所有传统可能的感染途经都一无所获。最后从这位高管的饮食起居入手,才发现问题居然出在高管的电子烟身上,电子烟的充电装置包含了硬件编码的恶意程序。而这款电子烟是通过USB口充电的,这名高管为了充电,顺手会将其插在公司的电脑上,于是电脑就感染了恶意程序。在CSS 2018大会上凯文·米特尼克就演示了在一台MacBook设备锁屏的情况下插入一个USB设备就能盗取笔记本内存中登录密码的案例。据说NSA就有不少利用USB设备黑入电脑的工具。

除了上面讲到的安全风险,还有很多其他安全风险,例如业务中的DDoS,还有其他很多企业内部大量未打安全补丁的设备和工具,包括路由器、打印机、个人电脑、开源测试系统Jenkins、Elasticsearch、运维系统Zabbix、phpMyAdmin等。还有很多公司电脑未统一部署杀毒软件、EDR(终端防护与响应)产品,或者统一部署了相关产品却被员工私自卸载,导致感染恶意软件,比如WannaCry这款病毒软件就使不少公司的电脑罢工。某知名新闻头条和短视频公司CEO和我交流时就曾提到:“我们公司普遍采用苹果电脑,是不是很安全?”我的回答是,如果苹果电脑没有部署EDR产品,那么对黑客来说也是“一把梭”,比如CVE-2018-4407远程内核堆溢出的漏洞就通杀Mac、iPad、iPhone等苹果设备。企业的另一大安全隐患是BYOD设备,比如手机等,很容易造成数据泄露等安全风险(某企业因员工手机中安装的Wi-Fi万能钥匙泄露公司Wi-Fi密码,导致内网被漫游)。还有供应链安全问题,不少公司的OA、HR、ERP、邮箱、客服等系统都采购于第三方,如果供应商的安全做得不到位也会直接影响到公司自身安全。

3.1.3 实施快速消减策略

一般互联网公司初期的安全人员偏少,对安全的资源投入有限。安全负责人的初期工作除了识别常见的风险,还应采取快速有效的针对安全隐患的处置措施,解决主要安全风险。

解决Web安全风险可采取的处理方式按优先级排序依次为:①全站清理Webshell后门,购买或采用开源WAF(Web应用防火墙,如ModSecurity等)快速解决OWASP十大安全问题;②使用DAST(动态应用安全测试)、SAST(静态应用安全测试)、IAST(交互式应用安全测试)产品,如使用OpenVAS、Acunetix WVS、Safe3 WVS、Burpsuit、Veracode、Fortify、SpotBugs、SonarQube、Google CodeSearchDiggity、Synopsys Seeker等对Web业务进行黑盒、白盒扫描和人工测试,解决线上主要漏洞;③部署RASP(运行时应用自保护)时应当使用自保护产品对Web进行自免疫保护,比如使用Prevoty、OpenRASP等;④提供安全代码过滤库和安全编码培训,如使用OWASP的ESAPI(Enterprise Security API,企业安全API)等可以提升代码的安全质量。

解决来自业务的安全风险可采取的处理方式按优先级排序依次为:①初期针对业务特点,选择合适的第三方风控安全产品;②人员到位后,可以从接入层(查询引擎、规则引擎CEP、模型引擎)、处理层(基于Flink的实时处理,基于Spark、Impala/Hive的离线处理,基于HBase、Couchbase的数据存储,完成大规模异常检测和深度学习、图计算、知识图谱、实时特征、离线特征、环境特征以及安全画像方面的处理,并对外提供模型可实时调用的接口)和数据层(提供面向风控所需的基础安全情报数据、安全知识仓库)这3个方面构建自有的安全风控平台。

解决移动应用安全风险可采取的处理方式按优先级排序依次为:①采用商业方案对App进行漏洞扫描和安全加固来解决常见安全问题,这样的平台有很多,而且有些是免费的,如百度的MTC(参见参考资料[8])、360的App漏洞扫描(参见参考资料[9])、腾讯的金刚审计系统(参见参考资料[10]);②成立移动应用安全小组对手机应用进行深入的人工安全测试,可以参考参考资料[11],比较好的免费开源测试产品有MobSF(参见参考资料[12]);③提供基础移动安全组件和安全编码培训、安全编码规范,比如Android方面可以参考参考资料[13],iOS方面可以参考参考资料[14]。

解决来自员工的安全风险可采取的处理方式按优先级排序依次为:①部署可以统一管理的EDR安全产品,在生产环境中统一使用堡垒机进行远程审计管理,采用DMS(Database Management System,数据库管理系统)审计进行数据库访问;②员工入职时进行安全培训,在入职前对重点员工进行背景调查,制定员工信息安全行为规范并进行考试,发布安全周刊并组织安全月活动,在员工离职时需要告知其安全须知,并进行安全审计;③对重点人群(如编程开发人员、BI大数据团队、清算结算人员以及业务运营人员等)建立隔离受控网络(如Ctrix瘦终端、云桌面),统一访问互联网的代理服务器,确保包括HTTPS在内的网络流量可审计;④建立基于机器学习的用户异常行为发现系统,如Splunk产品中的UEBA模块。

解决口令安全风险可采取的处理方式按优先级排序依次为:①通过弱口令扫描器(如Hydra或Medusa)检测公司员工账号和内网(如SSH、MySQL、RDP、Web后台等)所有涉及密码的系统服务,并责令修改密码以快速解决弱口令隐患;②建设基于OpenLDAP的统一单点登录系统,并使用基于TOTP方案的动态口令双因素认证(如针对客户端的FreeOTP或Google Authenticator)或RSA Key,若使用Wi-Fi等技术,则可以通过RADIUS协议实现双因素认证;③建立更加严格的基于FIDO U2F认证协议的实体安全密钥登录系统和BeyondCorp账户安全体系,如Google的Titan Security Key通过规定需要使用USB设备或蓝牙进行接入并按压才能登录解决了以往OTP易被钓鱼的风险。通过以上处理,可以保障密码在被盗之后依然能进行安全访问。据Google表示,其公司员工从2017年年初开始使用硬件安全密匙进行双重身份认证后,8.5万名职工的工作账号就未再遭到泄露。

解决来自钓鱼攻击和社会工程学的安全风险可采取的处理方式按优先级排序依次为:①对员工进行相关安全意识培训,并不定期组织相关演练测试以验证培训效果,加强办公场地物理安全管控(如门禁和摄像监控),避免使用第三方通信软件建立的工作群;②强化对钓鱼攻击和利用社会工程学进行攻击的技术监控(如通过基于机器学习的内容识别系统和终端安全监控系统进行监控,终端安全监控方面的工具有Facebook开源的OSquery和微软的Sysmon),若要查看高风险文件(如Office文件、PDF文件、视频、邮件附件)则可利用沙箱技术进行隔离访问,对于浏览网页的高风险操作可以使用远程安全浏览产品(如Cigloo、WEBGAP、FireGlass);③加强BYOD设备的安全管理(MDM),如手机移动办公隔离的安全管理方案有三星的KNOX、Ctrix的XenMobile、IBM的MaaS360、SAP的Mobile Secure、黑莓的UEM等。