前言:
高效读书,一张逻辑图带你读懂、读薄书中重点。
注:下面文字只是对逻辑思维图的”翻译“,节省时间,只看图即可。
目录
STRIDE是微软开发的用于威胁建模的工具,或者是说一套方法论
理论篇思维导图
安全大环境与背景
切入“企业安全”的视角
企业安全是什么
从广义的信息安全或 狭义的网络安全出发,根据企业自身所处的产业地位、IT总投入能力、商业模式和业务需求 为目标,而建立的安全解决方案以及为保证方案实践的有效性而进行的一系列系统化、工程 化的日常安全活动的集合
CSO
CSO不会只停留在微观对抗上,而是会关注系统性建设更多一点。至于跟董事会 建立沟通桥梁,虽然也重要,不过关注的人就更少了
企业安全包括哪些事情
企业安全涵盖7大领域
- 网络安全:基础、狭义但核心的部分,以计算机和网络为主体的网络安全,主要聚焦在纯技术层面
- 平台和业务安全:属于特定领域的安全,不算广义安全
- 广义的信息安全:以IT为核心,包括广义上的"Information"载体:除了计算 机数据库以外,还有包括纸质文档、机要,市场战略规划等经营管理信息、客户隐私、内 部邮件、会议内容、运营数据、第三方的权益信息等,但凡你想得到的都在其中,加上泛 u Technology n的大安全体系。
- IT风险管理、IT审计&内控
- 业务持续性管理:BCM ( Business Continuity Management)不属于以上任何范畴, 但又跟每一块都有交集
- 安全品牌营销、渠道维护:CSO有时候要做一些务虚的事情,例如为品牌的安全形象出席一些市场宣介,现在SRC的活动基本也属于这一类
- CXO们的其他需求
建议
互联网行业安全工作总结
- 信息安全管理(设计流程、整体策略等),这部分工作约占总量的10%,比较整体, 跨度大,但工作量不多
- 基础架构与网络安全:IDC、生产网络的各种链路和设备、服务器、大量的服务端程 序和中间件,数据库等,偏运维侧,跟漏洞扫描、打补丁、ACL、安全配置、网络 和主机入侵检测等这些事情相关性比较大,约占不到30%的工作量。
- 应用与交付安全:对各BG、事业部、业务线自研的产品进行应用层面的安全评估, 代码审计,渗透测试,代码框架的安全功能,应用层的防火墙,应用层的入侵检测 等,属于有点“繁琐”的工程,“撇不掉、理还乱”,大部分甲方团队都没有足够的 人力去应付产品线交付的数量庞大的代码,没有能力去实践完整的SDL,这部分是 当下比较有挑战的安全业务,整体比重大于30%,还在持续增长中。
- 业务安全:上面提到7大领域的2,包括账号安全、交易风控、征信、反价格爬虫、反作弊、 反bot程序、反欺诈、反钓鱼、反垃圾信息、舆情监控(内容信息安全)、防游戏外 挂、打击黑色产业链、安全情报等,是在“吃饱饭”之后“思淫欲”的进阶需求, 在基础安全问题解决之后,越来越受到重视的领域。整体约占30%左右的工作量, 有的甚至大过50%,这里也已经纷纷岀现乙方的创业型公司试图解决这些痛点。
互联网企业和传统企业在安全建设中的区别
总体上
传统企业和互联网企业在安全建设需求上的差异
使用基于传统的资产威胁脆弱性的风险管理方法论加上购买和部署商业安全产品 (解决方案)通常可以搞定
安全建设
在边界部署硬件防火墙、IPS/IDS、 WAF、商业扫描器、堡垒机,在服务器上安装防病毒软件,集成各种设备、终端的安全日志建设SOC”当然购买的安全硬件设备可能远不止这些。在管理手段上比较重视ISMS (信息安全管理体系)的建设,重视制度流程、重视审计,有些行业也必须做等级保护以及满足 大量的合规性需求。
互联网行业的大部分安全建设都围绕生产网络,而办公网络的安全通常只占整体的较小比重
安全解决方案基本上都是以攻防为驱动的,怕被黑、怕拖 库、怕被劫持就是安全建设的最直接的驱动力,互联网公司基本不太会考虑等保、合规这种形而上的需求,只从最实际的角度出发,这一点是比传统企业更务实的地方
对于超过一定规模的大型互联网公司,其IT建设开始进入自己发明轮子的时代,安全解决方案开始局部或进入全部自研的时代
自研或对开源软件进行二次开发+无限水平扩展的软件架构+构建于普通中低端硬件之上(PC服务器甚至是白牌)+大数据机器学习的方式,是目前大型互联网公司用来应对业务持续性增长的主流安全解决方案
不同规模企业的安全管理
创业型公司
账号认证鉴权不求各种基于条件的高大上的实时风控,但求基本功能到位
办公网络做到统一集中管理(100人以上规模)和企业防病毒,几个人的话,就完全不用考虑了,APT什么的就听一听拉倒了
找两篇用到的开发语言的安全编程规范给程序员看看,安全专家们说的SDL就不要去追求了,那个东西没有一堆安全“准”专家玩不起来
系统加固什么的,网上找两篇文章对一下,确保没有root直接跑进程,chmod 777,管理后台弱密码对外这种低级错误
使用云平台提供的安全能力,包括各种抗DDoS、WAF、HIDS等
大中型企业
对所有的服务器、PC终端、移动设备,具有统一集中的状态感知、安全检测及防护能力
大型互联网企业
生态级企业vs平台级企业安全建设的需求
差别的表象
主要差别表现在是否大量地进入自己造轮子的时代,即安全建设需要依托于自研,而非采用商业解决方案或依赖于开源匸具的实现
差别的成因
第三个因素是人。安全团队的人员数量也只是一个很表面的数字,安全团队的构成才 是实力,能囤到大牛的安全团队和由初级工程师组成的安全团队显然是不一样的
平台级公司的"止步”点
可能也会自己定制一个WAF,或者搞搞日志的大数据分析。但比如涉及DPI、全流量入侵检测、SDN、内核级别的安全机制,基本上都不 会介入,对于一个规模不是特别大的平台级公司的甲方安全团队而言,这些门槛还是有点高
生态级公司的竞技场
主要工作还是在入侵检测、 WAF、扫描器、抗DDoS、日志分析等领域,而在SDL环节上可能也会自己研发些工具
云环境下的安全变迁
资源形式的变迁
云环境下安全问题
安全的组织
创业型企业一定需要CSO吗
招聘方的诉求
CSO,在这个语境下用来指代招聘方想找拥有全局安全管理经验的人,甚至最好是资深的从业者,他能带一支哪怕是几个人的安全团队,并能把安全相关的事全部揽过去
不同阶段的需求
创业型企业的挑战
如何建立一支安全团队
极客团队
如果你在一个小型极客型团队,例如Youtube被Google收购前只有17个人,在这样 的公司里你自己就是安全团队,俗称“ one man army”。此时一切头衔皆浮云,需要的只是 一个全栈工程师
创业型企业
对于绝大多数创业型企业而言,就像之前所说的,CSO不一定需要,你拉两个小伙伴
一起去干活就行了
不同的能力类型
第二类就是可能不是很热爱安全,但是CS基础极好的程序员,这一类人放哪里都是牛人
大型企业
对于比较大型的平台级公司而言,安全团队会有些规模,不只是需要工程师,还需要有经验的Leader,必须要有在运维安全、PC端、Web应用安全以及移动端App安全能独当 一面的人,如果业务安全尚有空白地带的话,还需要筹建业务安全团队
超大型企业
业务线比较长,研发团队规模通常也比较庞大,整个基础架构也构建于类似云计算的底层架构之上
有应用安全的人是不够的,安全的领头人必须自己对企业安全理解够深
实际上当你进入一个平台级公司开始,安全建设早已不是一项纯技术的工作,而技术管理上的系统性思路会影响整个安全团队的投入产出比
甲方安全建设方法论
从零开始
CSO上任之初要做些什么
第一张表:组织结构图,这些是开展业务的基础,扫视一下 组织结构中每一块安全工作的干系人
第二张表:每一个线上产品(服务)和交付团队(包括其主要负责人)的映射。这张图 实际就是缩水版的问题响应流程,是日常安全问题的窗口,漏洞管理流程主要通过这些渠道去推动,一个安全团队的Leader通常需要对应于一个或若干产品的安全改进
第三张表:准确地说应该是第三类,包括全网拓扑、各系统的逻辑架构图、物理部署 图、各系统间的调用关系、服务治理结构、数据流关系等
只能灰度处理,逐步建立入侵检测手段,尝试发现异常行为,然后以类似灰度滚动升级的方式去做一轮线上系统的后门排查
第一件是事前的安全基线,不可能永远做事后的救火队长,所以一定要从源头尽可能保证你到位后新上线的系统是安全的
第二件是建立事中的监控的能力,各种多维度的入侵检测,做到有针对性的、及时的救火
第三件是做好事后的应急响应能力,让应急的时间成本更短,溯源和根因分析的能力更强
一边熟悉业务,一边当救火队长,一边筹建团队基本就是上任后的主要工作了。如果团队筹建得快,这个阶段2 ~ 3个月就可以结束了
不同阶段的安全建设重点
战后重建
进阶
优化期
对外开放
安全能力对外开放,成为乙方,不是所有的甲方安全团队都会经历这个阶段
如何推动安全策略
公司层面
推动安全策略必须是在组织中自上而下的,先跟高层达成一致,形成共同语言, 对安全建设要付岀的成本和收益形成基本认知,这个成本不只是安全团队的人力成本和所用的IDC资源,还包括安全建设的管理成本
战术层面
从现在开始不要再用“你们”这个词,而改用“我们”,自此之后便会驱动你换位思考,感同身受,真正成为助力业务的伙伴
安全需要向业务妥协吗
业界百态
安全的本质
妥协的原则
既然安全建设的本质是以一定的成本追求最大的安全防护效果,那一定是会有所妥协的
妥协不应该发生在工程师层面,而是应该在Leader和安全负责人这个层面
选择在不同的维度做防御
技术实现维度场景
"—题多解”的场景
跨时间轴的场景
风险和影响的平衡
修复成本的折中
需要自己发明安全机制吗
安全机制的含义
安全机制包括:常见的对称和非对称加密算法,操作系统自带的RBAC基于角色的访问控制,自带的防火墙Netfilter, Android的基 于appid隔离的机制,kernel支持的DEP (数据段执行保护),以及各种ASLR (地址空间随 机映射),各种安全函数、服务器软件的安全选项,这些都属于已经存在的安全机制
企业安全建设中的需求
取舍点
如何看代SDL
攻防驱动修改
多数甲方安全团队所做的工作实际上处于这个维度。通过对已知的攻击手段,例如 SQL注入,XSS等建立事前的安全编码标准,并在发布前做代码审计、渗透测试和提出漏洞修补方案
SDL落地率低的原因
99%的甲方安全团队的工作都是以救火方式开始,SDL从来都不是安全建设第一个会想到的事情
对于以Web产品为主的安全建设,第一是事后修补的成本比较低,屡试不爽;第二是部分产品的生命周期不长
第一点是安全专家少,很多安全工作者懂攻防但未必懂开发,懂漏洞但未必懂设计,所以现实往往是很多安全团队能指导研发部门修复漏洞,但可能没意识到其实缺少指导安全设计的积累
因地制宜的SDL实践
公司内研发的偏底层的大型软件,迭代周期较长,对架构设计要求比较全面
对于较大软件的“大版本”,包括每个产品初始版本,还比如标杆产品的1.0到2.0类似这种里程碑式的版本发布
SDL在互联网企业的发展
目前SDL在大部分不太差钱的互联网企业属于形式上都有,但落地的部分会比较粗糙
STRIDE威胁建模
STRIDE是微软开发的用于威胁建模的工具,或者是说一套方法论
关于ISO27001
重建对安全标准的认知
最实用的参考
ITIL(BS15000∕IS020000)——绝大多数互联网公司的运维流程都是以ITIL为骨架建 立的,甚至连内部的运维管理平台,监控系统上都能一眼看出ITIL的特征
广泛的兼容性
局限性
流程与“反流程”
人的问题
作为安全负责人,必须周期性地审视安全和IT治理的流程是不是太冗余了,是否可以精简一下,或者在公司业务扩张、新建业务线的时候考虑一下原有的流程是否适用于新的领域
机器的问题
流程是用来解决人容易犯错的问题,而不是用来解决机器犯错的问题
业务持续性管理
业务持续性管理(BCM)是一个较高层次的管理机制,通常对应到公司层面,它使企业 认识到潜在的危机和相关影响,制订响应、业务和连续性的恢复计划,其总体目标在于提 高企业的风险防范能力,有效地响应非计划的业务破坏并降低不良影响
关于应急响应
安全建设的“马斯洛需求”层次
TCO和ROI
业界的模糊地带
关于大数据安全
关于现今流行的以Hadoop为生态的离线数据处理大数据架构和以Storm为生态的流式计算大数据架构
由于要处理的数据量比较大,传统的单机设备处理不了,所以需要用Hadoop 之类的技术解决数据处理中的数据规模和实时性要求这两个性能问题,但本质还是传统BI 的建模方法,解决的也是一个传统问题
解决方案的争议
在当下的安全产业,新概念层出不穷,但有很多属于旧酒装新瓶,换汤不换药,概念
变了,实操层面扩展或者优化了一点,但本质没变
以上内容均为博主原创手码梳理。码字不易,但只要能提高,都是值得的。如果您觉得,这篇文章对您的基础知识学习、巩固、提高有帮助,欢迎点赞、分享、收藏,谢谢。 --天天water