业务颗粒化思考

smarttang 2015-02-17 11:18:00

0x01 需求背景


公司发展比较迅速,安全团队增长的速度永远跟不上业务增长的速度,同时给予安全人员的压力越来越大,每个系统的优先级别都一样的前提下,无法想象我们的工作量。同时对于我们来说,工作无法量化思考,领导也无法了解我们到底做了什么。

我初步列了下这种情况给我们带来什么:

1. 工作时间无法量化上峰随时有可能告诉你渗透一个网站只需要1个小时。(WTF
2. 对业务的不了解往往解决安全问题时很费脑子面对复杂的业务逻辑需要一步步分析。(开什么玩笑大家都这么忙
3. 老被研发喷你懂不懂业务这个就是这么干的!(我要懂还问你么..
4. 优先级不突出不明确分级的需求。(妈蛋大半夜一个被放弃的业务居然要我凌晨起来看看...

0x02 流程、分级


根据目前的情况,我们需要深耕业务,并且把业务进行颗粒化。这个过程枯燥、乏味,但是对于了解业务、提高作业效率有直线的提升。

具体流程如下:

以上是我们需要做的事情,简单阐述,但是并不能把所有的东西都叙述出来,例如,如何分级?如何把优先级别凸显出来?具体级别划分说明如下:

一级:非常重要、不可以发生意外,跟钱相关,而且用的人非常多。

二级:仅次于一级,跟钱关系不是特别大,但是用的人很多,包括BOSS也会去看的应用。

三级:发生意外也可以忽略,但是最好能够保证没有问题,降低负面影响。

在这个过程里面是不是只要划分了等级就可以按照这个管了?或者说,假设在一个小企业,可能安全投入不高的前提下(可以理解为不太重视),我们还能根据业务功能进行分级。将业务里面的每个功能细节都划出来,进行分析。(通常这个都是研发给的interface文档,这个需要自己推动,BTW,看你人缘了。)

0x03 实践、结果


根据自己所思考并且实践后,通过xmind 画出的图应该如下图一样复杂。

在这个过程里面,你应该非常深入的了解业务的每个环节,同时知道每个业务有可能存在的风险,并且一一列举出来。当然,你检测每个功能点所耗的时长,应该是一张非常细致的列表。诸如以下这样的方式,给你的上峰。

当然,那么小伙伴就会问,这个业务功能颗粒列表具体长什么样子?具体如下:

这个是我做了不久的业务,一个内部的业务系统,总共100多个功能模块,并且全部拆解分析,在这个过程当中,我发现了很多以往被我忽略的漏洞(见鬼)。在这个过程里面,分析业务的同时,把漏洞全部深耕出来。诸如以下这样…(诸位抱歉,我不能把公司的安全检测报告全部展现出来..)

0x04 最后


看完了整个列表和xmind的图后,领导也有些惊讶,原来我们的业务这么复杂,同时工作量居然这么大,从那以后领导再也没有质疑我到底在干嘛,同时表示谅解。在这个过程里面枯燥、乏味,基本上有好多次都准备放弃了。但是得到的好处是,在白帽子爆出一个漏洞时,我可以快速定位到这个漏洞所在的模块,并且迅速的了解到这个模块所存在的问题,然后让研发快速修复这个问题。同时再也不担心研发说我们不懂业务了…<sub>~</sub>~

评论

M

malayke 2015-02-17 13:16:34

思维图好小呀

黄口小儿 2015-02-17 18:20:27

一个盲注。七个跨站?

健宇 2015-02-18 17:12:08

很不错的思路,过年了,分享思路图学习一下,[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */

S

smarttang 2015-02-21 21:16:24

可以这么理解。。。只是列举下。。。

S

smarttang 2015-02-21 21:18:16

主要看你的业务,你可以直接把公司的业务按照这个思路一个个去分析,细化出来就好。。

S

smarttang 2015-02-21 21:19:07

略小。。Sorry。。这文章只是给大家列举下思路...还有工作的感悟。。。

路人甲 2015-02-25 12:39:43

没看懂是什么,这个网站公布漏洞前 是不是都修复好的?

路人甲 2015-02-25 17:30:46

LZ了解过功能测试的功能点和业务流程梳理吗,其实都差不多的。。。。

S

smarttang 2015-02-25 23:44:03

这个是提供一个思路。。说白了就是想办法让你的leader了解你在干什么,解决上面所说得一些问题。真实的技术含量不多..

S

smarttang 2015-02-25 23:47:22

这个我知道的。但是有一点就是如果按照测试给的和你自己挖掘的结果是不一样的,很明显里面包含很多死角,用自己的角度去看业务,甚至了解每个细节会比测试给你的结果更加完整。我看过功能测试的一些文档,我觉得是有点虚的。(我不知道是不是所有都是那样)写这个东西只是启发,做安全的时候可以把所有东西都量化出来,同时可以梳理业务。业务才是核心,我是这么想得。

D

D&G 2015-02-27 14:56:21

这样搞下来,一个应用/业务 要搞多久?

左手 2015-02-27 15:23:15

求发一份作为分析,[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */

我是壮丁 2015-02-27 17:14:23

真是辛苦楼主了

S

smarttang 2015-02-28 14:07:22

如果不是特别复杂的应用需要2-3天,如果逻辑非常复杂,模块特别多,需要10~15天。因为你需要整理、规划、还有分析、测试,整套流程做完是一件很需要毅力的事情。我做的时候,基本上有数次想放弃的冲动。。。最高峰做到1000多个模块。

S

smarttang 2015-02-28 14:08:14

这个你自己看自己保护的业务就有了啊。。。我发你的估计就是我自己分析我们这边业务的啊!大哥。。你说有啥不理解一起交流学习倒是可以。。

S

smarttang 2015-02-28 14:08:29

额。。客气了

T

Teufel 2015-02-28 14:57:02

做这个必须对业务流程相当了解吧,业务流的走向必须清楚楼主不简单啊

T

Teufel 2015-02-28 14:58:36

[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */,同求O(∩_∩)O哈哈~楼主好人

S

smarttang 2015-02-28 15:20:11

嗯。。因为领导要求必须要对业务熟悉,所以就做了这个颗粒化的事情。不过没有你想的那么复杂,只要真的把流程走完下来,对业务怎么着都有个深入的了解。

S

smarttang 2015-02-28 15:21:50

加了

路人甲 2015-03-02 15:31:21

[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */ 求发一份学习学习,了解下 具体要做什么 怎么做。

路人甲 2015-03-02 21:04:55

楼主能麻烦你发一份报告么
我还是安全业务的新手,希望能向楼主多多学习..
[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */
感激不尽!

S

smarttang 2015-03-04 14:48:03

我回头再发一篇更加详细的把。。。汗,或者你直接加我QQ跟我说都行。。QQ:505575655

封停 2015-05-07 22:46:14

楼主你写得太好了,[email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */,来一发

M

milan 2015-09-30 16:37:46

搂住,模板,求 [email protected]/* <![CDATA[ */!function(t,e,r,n,c,a,p){try{t=document.currentScript||function(){for(t=document.getElementsByTagName('script'),e=t.length;e--;)if(t[e].getAttribute('data-cfhash'))return t[e]}();if(t&&(c=t.previousSibling)){p=t.parentNode;if(a=c.getAttribute('data-cfemail')){for(e='',r='0x'+a.substr(0,2)|0,n=2;a.length-n;n+=2)e+='%'+('0'+('0x'+a.substr(n,2)^r).toString(16)).slice(-2);p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */

S

smarttang

乌云两个帐号都是我的... t.qq.com/mojige123

twitter weibo github wechat

随机分类

软件安全 文章:17 篇
事件分析 文章:223 篇
Web安全 文章:248 篇
业务安全 文章:29 篇
神器分享 文章:71 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录