B2B创业型企业的安全运营建设之路

卞军军 高效运维 2017-04-20 09:54:52

说说找钢

发展史

我们找钢是在2011年年底成立的,之前也是响应国家“互联网+”号召,加上钢铁的产能过剩,于是我们公司成立了。

找钢网是全产业链的钢铁电商,从买钢材到仓储运输以及一些金融方面,加上智能数据形成了的一个完整的钢铁贸易的生态圈,一开始找钢网是做撮合业务,因为买卖双方渠道是不透明,现在我们也是做自营的业务,就是之前讲过的一些服务我们都可以做到。

规模上,到现在找钢网是有1400多人的大团队,也有一些分公司海外分公司,武汉二级研发中心。

找钢网B2B特色

相对其他的一些互联网企业来说,找钢网是还是一个偏向传统的 B2B 互联网企业,从两方面可以介绍一下,第一个是从用户来说,我们的用户群体比较集中,另外从业务量来说,我们相对 2C,没有那么大的用户量,另外我们的核心业务是在内网。

历史遗留问题

总体上,我们找钢网作为一个创业型的企业发展是很迅速的,相对的也有很多问题,这里简单讲一下,起初我们的物理机房很混乱,如上图所示,我想很多初创的公司都面临过这样的情况,还有应用的部署不合理,监控方面不全面等等问题。我们的安全运维建设都是从零到有的一个过程,包括标准化和自动化。

安全运营

下面介绍一下安全运营,找钢的安全也是从零开始建设的。

安全运营建设的通用公式

首先讲一下安全建设的过程,我也了解了一些其他些企业安全建设的过程,大致总结有四点,我把它定义为一个通用公式。

最开始的是救火阶段,当前优先要解决刻不容缓的问题,比如说我们有一些外部应用遭到了攻击,发现了高危漏洞,甚至造成业务瘫痪了,直接可造成公司形象、经济等损失等。

接下来是建设阶段,救火之后我们做防范建设措施。做建设可以从两点做起,第一个是基础建设,包括办公网络和生产网络,第二个是安全建设,基础建设建设完后我们可以做一些扩展的安全建设,比如从内部的IT的建设,运维的建设扩展得到全公司的业务,跟公司业务结合。

第三阶段是优化阶段,当公司规模发展到一定规模,当前的一些策略,或者是我们现有的一些产品不能满足自己的公司的业务需求,那么进入到一个自研的环节,这一点是根据当前现状去开发满足业务需求的工具和产品,

最后一个阶段产品的对外开放。

救火系列

之前也说了建设的四个阶段,首先讲一下救火阶段,我是2015年底加入找钢网的,当时第三方安全漏洞平台对爆出了找钢网的一些高危漏洞,那么首要解决这些高危安全漏洞,避免攻击扩大,漏洞修复完成后对存在漏洞的应用做一个整体的安全测试。

安全测试完全之后,接下来就是要让我们的研发人解决这些安全问题,同时也要提供安全解决方案,安全解决方案这可以整合成安全规范,比如针对当前比较常见的或者是基础的安全漏洞,例如 SQL 注入、以及常见的逻辑上的问题,提供一个完全的攻击案例和修复方案说。

再来就是对开发人员做安全培训,在一个公司中开发人员的水平也是不一样的,甚至有些开发人员对安全没有接触过,或者可以说没有安全基础的开发人员,对这一类开发人员要做的是先提高他们的安全认知。

我做了一个安全平台,这个安全平台初期的作用是作为安全漏洞的跟踪管理统计,后期会对它扩展,实现对所有安全的统一管理,比如说运维基准建设,自动化巡检以及日志平台的建立,实现自动化预警机制。

传统的安全体系

救火之后我们需要做一些安全建设方面的工作,安全体系的建设,相对其它互联网企业来说,传统的互联网企业需要做的安全建设项要稍有不同。

我们根据找钢网的现状,从这五大方面做它的建设,包括:基础安全,应用安全,访问控制,运维安全,以及内网安全,为什么把内网安全单独拿出来呢?因为我们核心的业务是在内网,这对我们的业务体系来说是非常重要的。

传统的安全体系架构如上图所示,接下来我们一一讲述。

基础安全

首先是基础安全,看上图中基础安全中的分类,他包含很多的方面,如网络安全物理安全等等。

做安全建设的时候,大家会参考同行中其他互联网公司怎么做的,我这里要强调的是,参考只是参考,而不是照搬。每一家企业都有自己独特的业务体系,别的企业的不一定完全适用于自己,可以参考自己需要的。

那么我们围绕基础安全分别介绍下具体是如何做的?

网络安全

首先说说网络安全,这个是做运维的基准。我们做网络安全要切合我们公司的网络架构,以最小的代价能获取最大利益。

安全域划分的原则,南北向业务是最小化的原则,也就是说访问控制分配最小化的权限,这点需要把控好,东西向的业务的需要分割,实现业务隔离。

对于无线安全这块,无线安全也是我们优先需要把控好的一点,我们无线安全是针对内网和外网用户实现访问控制的。

DOS 攻击防御,之前我跟很多专家沟通讨论过这个问题,必须要花钱,也只有多和少的区别。

我们找钢网是 2B 企业,没有 2C 那么大的流量,我们企业对 DOS 防御从两点做起,一个就是运营商帮我们做一些基础的过滤;再来需要采购流量清洗设备,大家需要评估一下你们自己的业务,选择适合你们的自己的产品。

入侵检测,我们没有采购单独的 IPS 防护设备,我们计划是自研轻量级的入侵检测。

数据安全

数据安全从三点来说

第一点是资产的管理,这是数据安全基础,不管要做哪一类的信息安全,你首先要知道我们有哪些数据,有哪些资产,这些数据和资产类型是怎么样的,这些数据等级划分怎么样的.

第二点是数据访问,一个是用户的分配问题,还有一个是访问控制,需要做好这两点。

第三点就是数据安全,一是备份,备份需要做到三方面,本地备份、本机备份、异地备份;数据安全的第二点内容是数据的存储和加密。

系统安全

接下来介绍一下系统的安全,上图所列出的,是根据我们当前实际情况定制的,包括:数据库,主机访问控制,操作系统安全,桌面工作站等等。

这个就不一一介绍了,需要强调的一点是,除了运维人员其他人员就不要接触服务器,如果有特殊情况,特殊处理。还有,管理员权限一定要回收,这个是做好系统安全基础。

物理安全

物理安全,看看上述这张图,我们有很多分公司,但是我们分公司没有专门配备IT人员。左图是曾经的场景,现在我们实现了右图。这样也便于对一些网络故障的分析和定位。

应用安全

接下来介绍基础安全中的第二块内容,应用安全。

应用是与用户直接交互的,做应用安全不是盲目的,我们需要先了解业务。我们当前的核心业务是什么?保护的对象是什么?了解这些我们才能更明确的去分析业务面临的危险有哪些,再来制定保护策略。

应用安全,我们从三方面去做,应用上线前的安全评估,应用完成后风险测试,应用日志的审计。

安全评估是我目前正在做的事情。我们核心的对外的应用,在 PRD 评审阶段,与产品和研发一起做安全评估,帮助他们在开发的阶段规避一些常见的安全问题。

应用安全风险,这里给大家推荐一个 STRIDE 模型。它对用户身份的仿冒、篡改,数据泄露完整性方面的安全都是有一个很好的解释。这个大家可以在百度上查阅。

最后一个就是日志和审计,根据日志就可以定位有哪些用户访问了我们的应用,他们做了什么事情,可以分析一些风险场景。

运维安全

再介绍一下运维的安全,上述图中描述的是我们目前正在做的。前面也说过,我们初期有一个很混乱的场面,因此我们要做标准化,自动化,信息化,每一家企业要做好运维安全,首先要做好这三点,才能做好后面的管控方面的工作。

自动化这方面,自动化是相当必须的,因为公司不会在同一个岗位配备多个人员,我们都知道运维人员加班加点特别多,做自动化也是必不可少的,可以减轻人工的工作,提高工作效率,像运维操作的流程很多,比如有很多人要申请权限之类,如果每一样都需要人工操作,那么运维人员就不用干别的事了,这充分说明了自动化的必要性,自动化的另一方面体系在监控上,做好更全面更广的监控,可以帮助我们快速发现并定位网络故障。

统一受权,这个是比较关键的,我们使用的是4A的产品,这个产品目前使用下来还是挺不错的。

内网安全

最后一个就是内网安全,对于我们来说是很重要的。所有公司内网安全都是也是必不可少的。

内网安全涉及的点比较多,首先是桌面的安全,从以下几点介绍,进程的控制,补丁管理,内容过滤,资产管理,文件共享,还有软件安装审计等等。

这里面简单说一下安全审计,初期没有一个系统化的管理平台,每一个员工都拥有管理员权限,这会带来很多的安全风险,因为很多员工并不懂安全,不知道他访问的哪些网站,安装的哪些软件会有安全威胁,这就需要我们IT人员做好管控,把普通员工的管理员权限取消。

另一点要说明的是补丁,并不是所有的应用补丁,或者是软件版本更新都需要升级,所谓要不要打补丁,要根据你的业务进行评估,如果对业务有影响,会造成业务或者网络中断,那么就不需更新补丁。

终端安全,包括终端行为监控,资产配置管理,终端远程维护,I/O 接口管理,系统账户监控。

这里不一一阐述了,简单说一下远程维护的必要性,比如很多分公司的员工会上报故障维修,如电脑故障之类,各个分公司配备多个IT人员成本较高,也不现实,那么我们就需要IT人员远程协助分公司员工解决故障了。

防泄密,每一家企业都会碰到的,我们目前还没有一个完整的解决方案,目前能够做的是对员工进行思想教育。

基于准入控制,这个也不用多说,大家都可以理解,你要判断哪些可以接入内网,要满足什么样的条件或需要什么条件能够进入内网。之后我们可以从两大点实现准入,一个是网络的准入,还有一个客户端的准入,应用可以归纳为客户端。网络的准入可以通过 802.1X 协议执行。

VPN 安全有两方面:第一个是管理,另外一个就是配置。管理方面,如权限开通一定要走审批的流程,VPN 日志需要定期分析安全隐患。在配置上需要做的几点,变更管理需要走流程,会话连接数设置,超时设置等等。

源码安全也是很重要的,这个也是我们保护的对象之一,源码的管理难以做到面面俱到,可以从三方面做一些管控,完整性、授权,以及复制和传播,彻底的杜绝泄露我们目前无法实现。

有条件的可以做内网日志,之前看到的一个文章,是阿里如何防止内部员工去泄露信息,它的实现是对内部信息做一个打码或者是加水印处理,水印中保存了用户登录 cookie,一旦泄露可以定位到哪位员工泄露的。

授权和访问控制

在访问控制上,我们现在实现的是身份管理这一块,其它方面也是慢慢做的实现。身份管理,单点登录时一个不错的方案,其它的比如访问管控,流程资源方面可以在实际问题中逐渐扩展。

安全驱动

上面写的运营方面的内容,是根据我们公司实际情况做的一个安全工作。

接下来是安全驱动,这个是比较抽象的东西,比如你要建设的策略、计划,你要推动这些事情怎么落实。现阶段也是我所面临的一个难点,在推动过程中遇到的一些问题,接下来跟大家分享一下我的想法。

资源分析

推动前先要做好事前分析,人力资源分析,当前你有多少人力可以助力推动这个事情。有多少的支持,又有多少的反对,支持和反对需要做好评估,如果阻碍太大做不下去就可以放弃了。

救火阶段

那么救火阶段的驱动需要做哪些呢?我个人总结了一些,时时跟踪,主动出击,紧迫盯梢,及时曝光。如果需要配合的人不配合,你可以曝光,至于曝光给谁,当然是上级,也就是可以做主拍板的人。

日常运营阶段

日常的运营阶段,我总结的几点是,首先要明确负责人,定时跟踪,流程约束,松驰有度,另外还要做奖惩的制度。明确责任人很重要,你发现问题了,你要驱动一个策略,要知道事件相关联的人。

之前公司,业务线比较多,组织的变动也带动了业务的变动,有一次我找人就找了两天,这个就是浪费时间的事情。我建议,进入公司时先要熟悉组织架构,自己可以维护一个表,记录每一个业务产品的对应的负责人。

建设阶段

建设阶段,我们找钢网,安全只有一个人,我们的运维人数也很少,一共就有八九个,人少能做的事情是有限的,你一个人可以做的很少,结合大家一起做的事情就比较多了,比如说结合运维、DBA、IT、基础架构等等,可以站在一个驱动的角度推动,涉及到运维就可以驱动运维人员协助完成,这就是一个相互协作的过程。

推广阶段&落地

推广落地我这边也总结了几点,首先安全要做好策略运营,还要有一个流程的约束,研发的配合也是跟安全特别相关的,比如说漏洞这一块,你要研发去配合解决。最重要的是要得到老板的支持,所有的推动从上而下可以很快落实,从下而上是比较难的。

平衡

最后是平衡,我们的公司的以为业务人员跟我说,安全是对我们业务的绑架。我说不是,我们安全是为业务服务的,是为了业务避免损失,包括公司品牌形象的损失和经济的损失。

那么如何去平衡这两者关系,如果安全阻碍了业务的发展,降低了用户体验,造成用户量下降,直接导致经济损失,这个就要安全让步了,但是涉及到原则问题,如果没有做好安全把控,因攻击事件造成公司名誉和经济损失,这个是不能让步的,所以要权衡好,最终的目的是为了让业务做的更好、更安全。


长按二维码关注我们