# 业务颗粒化思考
0x01 需求背景
=========
* * *
公司发展比较迅速,安全团队增长的速度永远跟不上业务增长的速度,同时给予安全人员的压力越来越大,每个系统的优先级别都一样的前提下,无法想象我们的工作量。同时对于我们来说,工作无法量化思考,领导也无法了解我们到底做了什么。
我初步列了下这种情况给我们带来什么:
“`
1. 工作时间无法量化,上峰随时有可能告诉你渗透一个网站只需要1个小时。(WTF)
2. 对业务的不了解,往往解决安全问题时很费脑子,面对复杂的业务逻辑需要一步步分析。(开什么玩笑,大家都这么忙)
3. 老被研发喷,你懂不懂业务!这个就是这么干的!(丢…我要懂还问你么..)
4. 优先级不突出,不明确分级的需求。(妈蛋,大半夜一个被放弃的业务居然要我凌晨起来看看…)
“`
0x02 流程、分级
==========
* * *
根据目前的情况,我们需要深耕业务,并且把业务进行颗粒化。这个过程枯燥、乏味,但是对于了解业务、提高作业效率有直线的提升。
具体流程如下:
![enter image description here](http://drops.javaweb.org/uploads/images/94cc301759bd8581d30aeba7dece517f10430775.jpg)
以上是我们需要做的事情,简单阐述,但是并不能把所有的东西都叙述出来,例如,如何分级?如何把优先级别凸显出来?具体级别划分说明如下:
“`
一级:非常重要、不可以发生意外,跟钱相关,而且用的人非常多。
二级:仅次于一级,跟钱关系不是特别大,但是用的人很多,包括BOSS也会去看的应用。
三级:发生意外也可以忽略,但是最好能够保证没有问题,降低负面影响。
“`
在这个过程里面是不是只要划分了等级就可以按照这个管了?或者说,假设在一个小企业,可能安全投入不高的前提下(可以理解为不太重视),我们还能根据业务功能进行分级。将业务里面的每个功能细节都划出来,进行分析。(通常这个都是研发给的interface文档,这个需要自己推动,BTW,看你人缘了。)
0x03 实践、结果
==========
* * *
根据自己所思考并且实践后,通过xmind 画出的图应该如下图一样复杂。
![enter image description here](http://drops.javaweb.org/uploads/images/da67d0f3a7fa066571e231ab837fe5aec3be3c72.jpg)
在这个过程里面,你应该非常深入的了解业务的每个环节,同时知道每个业务有可能存在的风险,并且一一列举出来。当然,你检测每个功能点所耗的时长,应该是一张非常细致的列表。诸如以下这样的方式,给你的上峰。
![enter image description here](http://drops.javaweb.org/uploads/images/4056567f31ec1828670b5e9e7c31e0b3672a9ac0.jpg)
当然,那么小伙伴就会问,这个业务功能颗粒列表具体长什么样子?具体如下:
![enter image description here](http://drops.javaweb.org/uploads/images/d0acab98357564f5d902728c26fb9db54485675f.jpg)
这个是我做了不久的业务,一个内部的业务系统,总共100多个功能模块,并且全部拆解分析,在这个过程当中,我发现了很多以往被我忽略的漏洞(见鬼)。在这个过程里面,分析业务的同时,把漏洞全部深耕出来。诸如以下这样…(诸位抱歉,我不能把公司的安全检测报告全部展现出来..)
![enter image description here](http://drops.javaweb.org/uploads/images/d27925ced600a12e864ecf6f0a39c1137f4a85c3.jpg)
0x04 最后
=======
* * *
看完了整个列表和xmind的图后,领导也有些惊讶,原来我们的业务这么复杂,同时工作量居然这么大,从那以后领导再也没有质疑我到底在干嘛,同时表示谅解。在这个过程里面枯燥、乏味,基本上有好多次都准备放弃了。但是得到的好处是,在白帽子爆出一个漏洞时,我可以快速定位到这个漏洞所在的模块,并且迅速的了解到这个模块所存在的问题,然后让研发快速修复这个问题。同时再也不担心研发说我们不懂业务了…~~~~
请登录后查看评论内容