这里是普通文章模块栏目内容页
企业安全项目|测试环境内网化

经过长时间的风险发掘与分析,企业面临的安全风险已逐渐清晰并有了比较全面的视野。从投入与产出比的角度出发,结合当前正在承受的危害和实施难易程度考虑,可以将前期所规划的安全项目排入实施计划周期并进行推动。按照优先级从左往右可以分为P0~P3,依次落地:

P0:正在遭受损失

P1:影响较大且容易做

P2:影响较大且难以做

P3:影响不大且比较难做

Clipboard Image.png

1 总体概况

为了减少企业对外资产暴露面,减少外部恶意攻击,首先应将不必要开放到互联网的测试环境进行内网化。在项目推动的过程中,再次证明安全工作的开展离不开各部门的协作支持。除了直接影响到的业务部门外,还有两个部门扮演着十分重要的角色–运维部&测试部,在本项目中将淋漓尽致的展现其重要性。

2 推动进程

在项目的推动进程中,由于没有太多甲方安全经验走了不少弯路(付出多产出小项目进度缓慢)。在部门leader的指点下重新进行微调,找准项目关键点并获得不错的效果。以下简要的将整个项目进行复盘:

Clipboard Image.png

<1>外部白帽子提交漏洞

当前公司没有成立SRC,但也鼓励外部白帽子提交相关漏洞,因此在漏洞盒子和补天(注:目前为止漏洞盒子上白帽子更加活跃一点)注册了企业账号,开始从外部接收漏洞。

<2>内部漏洞分析与风险调研

经过一段时间对漏洞进行分析时,发现测试环境占据大部分;且在挖掘公司内部安全问题时,发现测试环境管理不够上心、甚至杂乱等现象。

<3>组织安全接口人召开会议

正好以外部白帽提交漏洞为驱动力,召集安全接口人(一般由安全组成员、各业务部门leader组成)开会进行商议并立项。

Clipboard Image.png

<4>邮件搜集资产(效果不好)

这应该是进入甲方后负责的第一个全员推动性项目,理想化的认为先组织专题会议,再用邮件搜集各位业务leader所负责业务的测试环境及影响范围会比较容易,然而结果十分不理想。或许是因为新人的关系、没交情、各自忙业务、没有安全习惯等因素,仅少量的人反馈情况。 

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

<5>正确资产梳理

项目伊始,需要“完全”梳理公司的测试环境资产,这时候最可靠的方法便是找到运维部的应用组,请其协助提供测试环境清单,一般都是去查看nginx的配置文件,从而获取到相关资产。

<6>QQ群沟通(效果欠佳)

邮件沟通效率太慢,因此建立专门的qq群“测试环境内网化”,专项沟通测试环境内网化相关事宜。针对邮件中的内容及进展,及时到群里进行反馈与公布。

虽然更有针对性且提高了沟通效率,但是推进效果并不理想,反馈的人逐渐增多但还是低于意料与计划。

Clipboard Image.png

<7>优化推动思路

项目至此都是沿用“不理想的方法:

#p#分页标题#e#

梳理出每个测试域名下的warowner(基本上每个测试域名下挂着多个war包,每个war包虽有相对应的owner但是owner经常进行变更),并逐个与owner进行沟通

刚开始执行的时候就深感成本太大,耗时费力还低效,于是重新换思路进行内网化推动:

直接找各测试部门的leader梳理出必须对外交互的接口、war及测试域名,然后对未提及的测试域名做迁入内网处理。(测试部门的重要性已突显出来,这是本项目至关重要的转折点!再也没有比测试部门还熟悉业务系统环境的了!!)

Clipboard Image.png

Clipboard Image.png

Clipboard Image.png

按照这个思路很快便收集好对外网开放的测试环境,且基本没有遗漏或者误报的情况。

<8>分布式进行内网化

首先需要确定可以内网化的测试域名:

内网化测试域名 = 运维提供的测试域名 - 测试提供的必须对外开放域名

其次是确定内网化测试域名内网化时间:告知用户(各业务部门及测试部门)切入内网范围、时间:

Clipboard Image.png

与此同时还应该声明内网化后的访问方式,以不影响正常业务为基本准则:

Clipboard Image.png

至此,测试环境内网化的推动接近尾声。出乎意料的是:找出不少已经不再使用的测试环境,正好趁着这次整改统一进行关闭。

<9>持续优化测试环境管控

此部分主要是针对必须要外网开放的环境(比如与银行调试的接口、提供给用户的展示系统等)。在对外网开放前,必须提前提安全测试到信息安全组,经过严格安全测试并通过后才能对外网开放。一般而言,需要相关运维同学的配合把好测试环境申请与上线这道关卡。

3 项目重

【1】项目推动思路

关键词:测试部

经过前期的踩坑,才明白该项目的推动应该从测试部门出发,没有比他们更熟悉公司测试环境的。跳出该项目来思考,做好项目的KeyPoint还是“思路”。

【2】新人新环境沟通

关键词:勇敢主动

从最开始的会议上露面,接下来的邮件沟通,后续的qq群或电话专项沟通,直到后来的当面沟通,感受颇深。要想效率高,直接当面沟通;要想大家都认识你并做好事情,应当面沟通,主动出击。

【3】考虑业务感受

关键词:不影响正常作业是红线

开发使用测试环境、测试使用测试环境,如果影响到大家,那么就可能没有人陪安全玩耍。 

【4】测试环境梳理及内网化操作

关键词:运维部

从项目开始的资产梳理到执行内网化的操作,都离不开运维部的支持。

4 问题集锦

1)部分人员不知道内网化,出现系统访问失败的情况

Clipboard Image.png

原因剖析:

(1)虽然已经提前发邮件告知安全接口人,但效果并不好,应该抄送所有团队;

(2)公司各个大群(qq)也应该及时进行通知,即使部分人员可能屏蔽群消息;

(3)针对性强度不够,应以测试群、业务技术群为主,且应该消息连发三遍。

 

2)测试同学发现某业务接口受影响

测试同学反馈某个测试环境的接口提供给银联调用,在测试环境内网化后,通信已出现故障。

#p#分页标题#e#

Clipboard Image.png

针对接口问题,主要有以下2种解决方案(最终还是选取第一种):

(1)运维同学帮忙将接口放到必须开放的测试环境域名下,只需要修改源码中的回调接口地址,询问银联白名单使用的是否为IP/域名,即可解决问题。

(2)开发做MOCK(但是反馈不好做),将期望得到的结果进行反馈,从而测试同学可以继续进行测试。

5 总结反思

在整个测试环境的内网化推动项目中,从最开始提出内网化的概念,之后与运维沟通获取测试域名资产,后来与各位war owner、测试leader沟通梳理对外交互接口,优化推动思路,直到最后成功迁入内网并解决迁入后的后遗症。到目前为止,个人认为存在以下难点:

刚入职不久,对公司的环境与同事不熟悉;

因为还有其他项目,多件事情一起推动,精力有点分散;

推动前没有找准关键点(思路:直接找测试leader沟通),导致推动迟缓;

沟通过程中态度过于“客气”,应该直截了当的说明来意,即时通讯工具没人应答就直接找人当面沟通


原文发布于微信公众号 – 我的安全视界观(CANI_Security)

收藏
0
有帮助
0
没帮助
0