安全的本质
在企业做信息安全会遇到很多困惑,企业信息安全到底应该怎么做?管理、技术、流程还是人更重要?安全团队和安全人才该怎么建设培养和激励?带着这些问题参加了很多安全峰会,虽然有很多不错的会议和演讲者分享了很多体会,但相比之下,更多的会议和演讲者的做法还是不太专业。常见的套路:开篇讲一堆的安全事件,什么热讲什么;中篇讲所谓解决方案或思路,大部分代表其背后的利益团体,要么产品,要么先思路后产品;然后草草结尾。PPT做的很互联网,罗列的数据很多,可是没有讲清楚,中篇的方案或思路能解决上篇的热点问题吗?在企业信息安全人员觉悟普遍觉醒的今天,这样的会议会越来越没有市场。
在混迹于各种安全圈和各种安全人互动后,我越来越渴望长期以来一直困扰我的问题答案:安全的本质,或者说,安全问题的本质。
互联网本来是安全的,自从有了研究安全的人,就变得不安全了。SQL注入攻击自从1999年首次出现后就成为互联网安全的头号大敌,注入攻击的本质是把用户输入的数据当做代码执行,而开发人员设计用户输入的功能时,本身只是提供一个用户交互功能,根据用户的输入返回动态页面结果以便更好的用户体验,只是被恶意的人滥用了。再比如,钓鱼网站已成为很多金融机构的首要安全威胁,在2011年以前,很多金融机构的安全人员甚至都没有考虑过这个问题。时至今日,都会觉得很无辜,企业的网站没有安全漏洞,是钓鱼网站的狡猾和用户的“傻”才会让犯罪分子有机可乘。
上面两个例子中,开发人员信任用户输入,用户信任钓鱼网站,导致安全问题。个人认为,安全问题的本质是“信任”的问题。计算机用0和1定义整个世界,而企业的信息安全问题是解决0和1之间的广大灰度数据,运用各种措施,将灰度数据识别为0(不值得信任),或1(值得信任)。信任是安全问题的本源。比如企业设计安全方案时,要做基本的假设前提:安全人员、开发人员、运维人员默认是被信任的;比企业安全要求更高的国家设计安全方案时,安全人员、开发、运维人员可能就不是默认被信任的。不同的信任假设决定了安全方案的复杂程度和实施成本,安全需要平衡。
安全原则
(1)安全是持续改进的过程
如何让一台服务器不被不明武装分子攻陷,有没有一个类似“照妖镜”的工具,一旦安装上就可以高枕无忧,让恶意的攻击者无所遁形,有没有一个万能的“上帝之手”,帮我们干掉所有安全问题?很遗憾,没有。在解决安全问题的过程中,不可能一劳永逸。很多安全厂商在推销自己的安全产品时,会吹的天花乱坠,似乎无所不能,从早期的防火墙、防病毒,入侵检测,到现在的态势感知、威胁情报,智能分析,安全防御技术本身并没有革命性变化,一套入侵检测技术包装个名词,能从IDS到IPS、SIEM,再到现在的威胁情报,本质上还是开发检测规则,异常模式识别。实际上,安全产品、安全技术需要不断的随着攻击手段的发展而升级,也需要有人来运营,否则安全防护会成为稻草人,马奇诺防线,在变化的攻击手段前不堪一击。比如绝大多数公司的分支机构,安全人员都是兼职的,日常运维能保障安全设备可用性就很不错了,还能奢望这些每天忙于救火的安全人员能看懂数量不菲的各种安全告警吗?还有比入侵检测告警日志更难看的日志?
早期基于系统漏洞利用的攻击是主流,安全防护对应以防火墙和入侵检测为主,对互联网只开放少量端口,互联网资产管理主要是IP和端口的管理。随着攻击主流转变为Web攻击,安全防护对应升级为Web安全防护,出现了Web应用防火墙(WAF),互联网资产管理也相应转变为对第三方应用和开发使用框架为主,不再是旧有的资产管理概念。问渠那得清如许,为有源头活水来,有效的安全是持续改进,针对变化的安全形势和矛盾进行调整。
(2)纵深防御
我们坐飞机,从购买机票到最终到达目的地,如何保障全体旅客安全的过程就是纵深防御的例子。从购买机票实名制、机场防爆安检、行李安全检查、人、票、证一致,到机场登机检查、飞机安全员、起飞降落不能使用手机等种种安全措施的实施,事无巨细,是纵深防御的具体应用。在各种入侵案例中,基本都是利用Web应用漏洞,攻击者获得低权限WebShell,然后通过低权限的WebShell上传更多文件,并尝试执行更高权限的系统命令,尝试在服务器上提升权限为Root,并进一步横向渗透,获得更多内网权限。在这个典型的攻击路径中,在任何一个环节设置有效的安全检测和防御措施,都可能导致攻击被检测和阻止。目前在安全防护技术没有革命性发展下,纵深防御,从网络层、系统层、应用层、数据层、用户层、业务层进行层层防御,共同组成整个防御体系。
(3)非对称
对于攻击者来说,只要能够找到企业系统的一个弱点,就可以达到入侵系统的目的,而对于企业信息安全人员来说,必须找到系统的所有弱点,不能有遗漏,不能有滞后,才能保证系统不会出现问题。这种非对称是造成黑客和安全防护人员思维方式不同的根本原因,这种非对称,也是企业信息安全工作难做的根本原因。破坏永远比建设容易,怎么扭转劣势呢?安全防护人员也需要非对称思维。解放军和美帝博弈对抗中发明了反介入战略,发展各类型导弹,特别是反舰弹道导弹,阻止美军航空母舰进入第一岛链,如果解放军耗尽国力,拼命造航空母舰和美帝对抗,搞军备竞赛,可能就落得苏联解体的下场了。
那发展哪些非对称的安全防护武器呢?各种“蜜”的产品应用而生了,蜜网站、蜜域名、蜜数据库、蜜表、蜜字段、蜜数据、蜜文件,在面对攻击时进行安全反制,恶意攻击者很难全身而退。据我所知,很多企业已经进行了商业化大规模部署并在实际对抗中取得不错的效果,这应该是未来安全防护发展的一个有益方向。
安全世界观
安全人员最重要的是安全问题解决的思路,以及看待安全问题的角度和高度,而不是掌握多少漏洞,拿下多少权限,也就是安全世界观。我的安全世界观概述:信息安全就是博弈和对抗,是一场人与人之间的战争。交战双方所争夺的都是信息资产的控制权,也就是在博弈和对抗中,牢牢的把控住各类信息资产的控制权。
0x01 正确处理几个关系
科学与艺术
科学讲究严谨,艺术讲究美。安全既是一门科学,也是一门艺术。如何对安全进行科学或艺术的管理,也需要方法论和思路。好比画画,再厉害的老师也不可能在课堂上教你画出一幅传世作品,但并不否定画院老师的贡献。画院老师会教一些基本功,一些方法,介绍一些流派,开阔眼界。在此基础上,入门了,掌握了基本技巧,再辅以自己的天赋和勤奋,才能创造出好的作品。企业安全工作中,安全的科学性体现在安全工作无论安全体系还是具体安全技术都是严谨的,在企业内部系统和网站运维中,有的开发和运维同事觉得在内网就安全了,已经拒敌于国门外了,从而放松了安全要求,实际中攻击者通过一些边缘攻击进入内网,从而进一步渗透入内部服务器的案例比比皆是。安全的艺术性体现在安全工作的权变性,不是所有情况都适用同样的安全要求,需要不断的depend on,不断的权衡利弊,选择当前情况下的最优。比如要求内部服务器和面向互联网服务器一样的安全基线就是不现实的,也是不经济,难以实施落地的,实际情况中,更多的是两套基线标准,互联网服务器的安全要求更严格一些。
管理与技术
企业信息安全中安全管理与安全技术孰轻孰重?我认为是个伪命题。从事安全管理的人会觉得三分技术,七分管理,当然是安全管理重要,拼命搞ISO27001安全体系,发布各种安全制度政策,上各种安全流程控制,做各种安全审计和检查,搞得民怨沸腾,往往效果也不好。从事漏洞挖掘和攻防的人会觉得搞安全管理的人太虚,这也不会,那也不会,每天就是搞体系制度流程,能挡住我一个0day吗?能挡住我Getshell吗?会挖洞和写PoC吗?还是坚持纵深防御的原则。安全制度政策和流程没有技术和自动化手段保障,无法有效落地,管理10台服务器和10000台服务器的安全性,安全政策和流程肯定不能是一样的。只有安全技术,只能做破坏,而破坏远比建设容易,对企业安全建设也是没用的。如果侧重于安全管理的也能了解你的对手,像攻击者一样去思考。白帽子懂安全技术,学习一些安全管理知识,从安全建设的角度去思考破坏的防护之道,我相信安全人员的境界就提高了好几层。
企业安全,但凡和安全沾点边的,都可以归结于安全团队的职责和任务,怎么平衡?我觉得还是权变。安全的核心职责和任务是不变的,和这个相关的都是优先级排第一的,不做是要死人的,比如数据安全、核心业务系统安全、放在互联网的网站和服务器安全。采用短期快速止血和长期安全机制建设相结合的方法迭代改进。如果精力、投入和能力不够,那就把八成的资源投入到最关键的地方去,比如数据安全和互联网系统的安全保障上去。
业务与安全
这个关系话题非常有意思。刚工作时我认为安全是为业务服务的,但安全是阻碍业务发展的。随着认识加深,我的认知发生一些变化,安全是为业务服务的,安全是业务的属性之一。不安全或没有安全考虑的业务就像不合格的次品一样,终究是要被市场淘汰的。本质上,安全是一项服务,安全服务是安全团队提供给用户和客户的一种服务类别,如果安全方案和安全要求设计时没有最大化这种服务的价值,那么在充分竞争的情况下,安全团队是要被市场淘汰的。我经常问自己和自己的团队,如果公司不是只有我们一个安全团队,我们安全团队在公司这个范围内不是垄断的,而是有其他安全团队也提供服务,共同竞争的情况下,我们提供的安全服务还能被用户认可买单吗?我们传统中认为的安全总是这也不能做,那也要控制,安全就是拖业务的后腿,安全总是降低业务发展效率。我是反对的,但在企业中安全通常做成的就是这个样子。造成这种现状,企业安全主管首先要反思。这是因为安全团队设计安全方案和要求时,不是以业务和服务出发点,而是以安全团队省时省事,尽量少承担责任为出发点。后者设计出的安全方案当然是阻碍业务发展、降低效率。如果一套安全方案和要求,能够在少降低甚至不降低业务发展的情况下,又能保障安全,业务团队,开发运维当然是欢迎的,谁愿意冒着巨大的风险强行上线新的业务呢。如果安全团队能和业务、开发运维一道剖析,站对方立场设计方案和执行要求,用户从心里是认可安全团队和安全服务的。实际中,我遇到很多这种情况,坚持安全服务的做法,会让安全团队之路更顺畅。
甲方与乙方
乙方是指给企业提供安全产品和服务的一方,包括安全产品原厂、代理商、集成商和外包公司。甲方和乙方的关系我理解为灯芯和灯油的关系,谁离开谁都会失败。有好的灯芯和灯油,也会有差的灯芯和灯油,关键在于各守本分,各尽其责。见的较多的乙方老板是贵公司是我们的大客户,我们一定会服务好。乙方销售在旁边配合,我们的产品和服务是最好的,用我们绝对不会有问题。我再稍微问下,贵公司怎么服务好我们?你们的产品和服务好在哪?你们了解我们的实际问题和需求吗?基本上90%的就接不上话了,更有甚者,有的老板和销售的回答啼笑皆非,我们的产品和服务就是最好的,不用你们会后悔的。我还要保持心情平静的答复,你们的产品和服务我都了解了,挺不错的,希望有机会合作。听到较多的乙方抱怨甲方,主管啥也不懂,就知道不能出事,出事背锅。安全人员啥也不会,只知道指挥我们干活,把我们工程师不当人用。乙方眼里90%的甲方都是这个印象。
我无意为任何一方辩护,包括我做为甲方自己,因为甲乙双方都是站在自己立场处理问题,无可厚非。甲方和乙方都需要检讨。我理解的甲方应该是对自己承担的职责负责,不管用什么方法方案搞定安全问题,要能识别什么是能搞定的方案和方案中靠谱一员的乙方,和乙方的关系挺简单,如果乙方能为甲方创造安全价值,那匹配等量的安全回报给乙方,如继续长期合作,否则对不起,多听你一秒都是浪费生命。我理解的乙方应该是对自己的承诺负责,要了解你的客户,不是签单成功就万事大吉,合同落地才是刚开始,甲方的辨识能力和社会的口碑传播效应越来越强的今天,做一锤子买卖只能让自己的路越走越窄。谁都不傻,不是吗?
0x02 若干问题
什么样的安全是安全的?
企业负责人和IT部老总,以及安全人员都会问:什么样的安全是安全的?这个拗口的问题转化下就是:什么样的安全是有效的。我见过一些企业做安全,部署了各种安全设备,设计了各种安全管理措施和流程,领导也很支持,雷厉风行,安全预算和安全人员也都给足,结果还是出问题,安全有效性出了问题。设备部署了,规则做好了吗?告警正常吗?设备依赖的条件,比如镜像的流量一直正常吗?了解你保护的业务吗?更重要一点,能看懂告警日志的人有吗?很多安全技术人员,其实就是安全设备运维人员,每天要监控设备正常,处理各种安全流程,写各种安全报告,填报各种管理系统要求的信息,参加各种培训教育,还有时间研究究竟怎么管理好自己的这些设备和落实安全管控措施?以入侵检测系统管理为例,安全人员要根据后面保护的系统和网站做规则调优,要对所有安全有效性依赖的条件进行监控,对告警进行安全流程化处理,最重要一点,要做穿透性检测,比如在互联网上尝试攻击系统和业务,看入侵检测系统报不报警,不做安全穿透性检测,安全监测有效性就是个概率,靠运气活着。要将安全性当做可用性来运营,安全才是有效的。在这个前提下,我建议将安全划分成几个框架:安全防护框架、安全安全验证框架、安全反制框架、安全运营框架,安全支撑的人、制度流程都包含在安全运营框架中。四个框架的功能分工看名字就清楚了,四个构成安全体系,这样的安全才是安全的。
安全团队和安全人
企业信息安全建设需要什么样的团队和个人?我们从西游记中寻找答案。
唐僧这个西天取经五人组,先看团队成员组成:
唐僧,其领导能力有限,业务能力(降妖擒魔)更是等于一个零,但他是师傅,有个“领导位置”,可以拿“权力”制裁不听话的徒弟,使得三个“下属”不得不听,不敢不听。但他一心向佛,目标明确,任尔千般说万般阻,向西天取经的决心始终不动摇。
孙悟空,“业务能力”最强,疾恶如仇,敢说敢做,但性情脾气不好,西天取经不是他的目的,而是他的承诺,为了工作快速开展,尽快完成目标任务,委曲求全,甚至不惜与“领导”和“同事”决裂,贡献最大,在这个工作团队里却差一点无立锥之地,只因工作(擒妖降魔)离不开他,才被留在这个团队。
八戒,能胜任一般工作;好吃懒做,还有点色。溜须拍马、见风使舵、善于权谋、忍辱偷生、会沟通懂协调。但整个取天过程中他事情做的最多的,什么找住的啊、找吃的啊、探路啊、打水啊都是他的事情。这现也体现了他业务能力的全面与多样性,他虽然不如孙悟空在关键领域的能力那么突出,但他比孙悟空好用,这就是他的优势。他还有个最大的优点就是知道领导的心思。他是最能读懂唐僧想法的人,每次附和都是顺着唐僧的话音往下走。这极大的满足了唐总作为领导的优越感,所以他最受唐僧喜爱。不过唐僧毕竟是管理大师,他不是只喜欢听好话的人。他知道谁能帮助他实现目标,所以每次孙悟空闹情绪回花果山的时候都是让猪八戒去把他找回来。当然猪八戒动不动遇到师傅被妖怪抓走闹散伙的时候,又是孙悟空来稳定军心。所以这2个业务骨干起到非常好的相互牵制的作用。
沙僧,业务能力与八戒不相上下,忠厚老实,有自知之明,在团队里能够知道自己的位置,老老实实做事,不上窜下跳,不做小动作。白龙马,背景很硬,低调,不说话,一个踏实坚定的执行者。任劳任怨、不计得失,与唐僧有着同样的信念,除非死在路上。
这师徒五人,都有明显的缺点,但是,他们组成一个团队后,却爆发出强大的战斗力,西天路上九九八十一难,妖魔鬼怪都被他们一一战胜,最终完成“西天取经”大业。我们从中可以悟出这样的道理:一个团队的成功,不能靠单打独斗,团队中每个人都有其长处,必须发挥团队每个人的作用,才能实现团队的目标。
唐僧的团队,实际上是互补型团队。每个人都有自己的特点,关键是领导是否有识人用人的能力。德者—唐僧领导团队,能者—孙悟空攻克难关,智者—孙悟空出谋划策,劳者—沙僧、白龙马执行有力。猪八戒较特殊,但也具备自己的优势:善于权谋、忍辱偷生、会沟通懂协调。首先是性格互补,大智若愚、信念坚定的唐僧,敢作敢为、刚直不阿的悟空,油头滑脑、自私自利的八戒,实实在在、立场坚定的沙僧。其次优势互补,方向明确,掌控悟空的掌门唐僧,本领高强,降妖除魔的先锋悟空,懂沟通会协调的八戒,踏实肯干、任劳任怨的员工沙僧。,最后技术互补,有人缘,会念咒的唐三藏,会打架,千里眼顺风耳的悟空,会算计、耍聪明的八戒,肯吃苦、有力量的沙和尚。这确实是个优势互补,能力极强的团队。
安全团队的构建亦需如此。安全团队建设目标是所有安全人员均具备攻防兼备的能力。目前存在的问题是攻击的人员不具备防护思路,防护的人员不具备攻击的能力和思维,都无法做到知己知彼。安全人员三个发展方向,安全防护、安全运营、安全开发,安全人员均需具备攻防两端技能以及掌握一门开发语言,CCIE、CISSP、CISA、CEH、Python高级将成为安全人员上岗证。
非互联网企业头疼问题之一是安全人才的招聘和培养问题。非互联网企业CSO头疼的是即使招了一个综合能力很好的人才,可由于非互联网企业的性质决定,安全团队人数很少,投入有限,如何留住人才?我的实践和建议通常是适合自己就是最好的,理由参见唐僧师徒五人西天取经团队的组成。一个良性发展的团队,不可能个个都是孙悟空,也不可能个个是猪八戒,而是不同特长和特质的成员互补,用人所长,实现团队和个人的共发展。我从不要求团队成员在团队内一直待下去,这不现实也不科学,我只是希望团队成员从加入团队那刻起,恪尽职守,为团队做贡献,自身又能成长增值,这是我一直追求的团队和个人共赢目标。作为团队长,长期以来的实践告诉我,无论是讲情怀还是给予贡献相匹配的收益都是重要的,留住人才没有捷径,走近员工,了解员工,帮助员工,十二字口诀而已。
企业信息安全发展趋势
(1)安全度量
安全度量一词太书面,翻译一下就是如何衡量企业安全的效果。做安全的人,遇到的最大的挑战,就是讲不清楚安全的价值。安全这个东西很微妙,不像业务可以用销售额和用户数来衡量,也不像运维可以用可用性指标(比如故障数)来衡量,也不像研发可以用bug数、项目完成率、扩展性、专利等来衡量。安全往往是事件性的,很可能你什么都不做,但一年都不出问题;也可能你花了很大力气,花了很多钱,却还是问题频出。所以我们很难用单一的事件性指标来衡量数据安全做的好还是不好,到最后就变成了拼运气。
企业做安全,最终还是要对结果负责,对于安全效果,有两个指标是最关键的核心指标,一个是漏洞数,一个是安全事件数。这两个关键安全指标,却没有一个安全厂商愿意承诺,他们通常都只愿意承诺卖出设备的功能效果,或者是服务的响应时间。由于漏洞数涉及到企业发现能力的问题,每年第三方漏洞报告平台如乌云上,漏洞数量排前十的大多是互联网公司,但不能因此而认为互联网公司安全能力靠后,相反,由于互联网公司面临安全威胁和自身发现能力(各种SRC虽然是白帽提交的安全漏洞,但可以理解为是自身发现能力提高导致)较强,所以发现的漏洞数量靠前。很多没有爆出安全漏洞的企业不是因为做的有多好,而是自身发现能力不够。在这种情况下,有必要把漏洞数分成两类,一类是通过众测与SRC,获得的外部上报漏洞数量,一类是自身安全防护和检测发现的安全漏洞数。某些金融机构已引入专业的蓝军团队进行攻防,检测红军安全防护和安全检测能力,将是未来安全度量的发展趋势。
(2)历史问题免疫
运维管理目前事实上的标准是ISO20000服务管理体系,这套体系也叫ITIL运维流程管理,ITIL众多流程中有个核心流程:问题管理。问题管理有个有意思的做法,通过问题管理的思维模式,对企业所有曾经出现过的历史故障进行举一反三的持续改进,从而实现对历史故障免疫。既然安全性要当做可用性来运维,那么安全管理也应该能做到对历史问题免疫,而这也应该会成为安全未来趋势之一。我理解为有两个含义,一是对企业曾经出过的安全漏洞和安全事件做举一反三的彻底整改,从人、技术、流程、资源四个维度分析问题产生根源,查找差距,并建立机制进行防护,从而根本上解决已出现的安全问题,实现历史安全问题免疫。二是对已部署的安全措施的有效性做100%确认,比如已经部署了防病毒客户端,那么就一定要关注防病毒客户端安装率、正常率两个指标,这两个指标能做到99.99%的应该算执行力和安全有效性不错的企业了。类似的指标也同样应该在已部署的安全措施中得到确认。第二点其实不能算安全趋势,应该是常识,在各种安全概念层出不穷的今天,希望越来越多的甲乙方能回归常识。
(3)安全成为属性
越来越多的企业重视信息安全,这种重视可能是主动的,但仍然被动居多,不管怎样,今天的安全人员面对的安全环境越来越恶化,但得到的资源和支持却比任何时候都多,这一点体现在:安全将成为各类系统甚至人才的关键属性之一。举个例子,十年前,很少看到有系统需求阶段就会有安全需求,测试阶段有安全测试,开发人员需要接受专业的安全编码开发规范培训。十年后,这些都很常见自然了,甚至是标配(Default默认)。对安全知识和技能的掌握也从单纯安全人员必备变成了开发人员的必备技能,实际上,安全意识和安全开发能力较强的开发人员薪酬水平和发展空间已高于技能单一的程序员。程序员在用代码改变世界的同时,也有义务更好的保护世界。安全将成为越来越多的需求品,将是安全发展趋势之一。
(4)安全人才缺口增大
安全人才缺口越来越大,各位CSO们都深有体会吧。甚至越来越多的企业甲方要求乙方建立自己的专业安全队伍。从市场经济的角度,需求增大,必将导致更多的优秀人才投身安全行业,这对原有安全人也必将是个挑战,安全行业是典型的活到老,学到老。逆水行舟,不进则退,各位安全人也感同身受吧。在信息获取越来越便利的今天,安全知识和技能通过短期大剂量培训能够得到快速提升,很多专业的培训机构已经能流水线的培养出战术素养不错的白帽子,但安全意识和思维模式,权变和平衡的能力,则需要在解决各种实际问题中不断碰撞,归纳总结提升。
人生最美好的莫过于各种经历和难忘的体验,过程比较痛苦的,结果都还比较好。如果大家和我一样,在企业做安全中遇到各种颇为“痛苦”的体历,过后你一定会感谢和怀念这份体历的。
本文部分引用了吴翰清先生《白帽子讲Web安全》的内容和观点,表示感谢。
附注:
聂君,信息安全从业人员,十余年金融行业信息安全从业经历,默默无闻。好读书,不求甚解。性格开朗,爱好足球。本文章是个人对工作生活的一些体验和经历分享,站在不同角度和立场解读会有偏差,见仁见智,不求正确统一,但求真、善、美。
CIO之家 www.ciozj.com 公众号:imciow