好久没写文章了,之前写的文章都是实际解决方案的文章常常看起来比较晦涩,本文就说说与我工作有关的故事吧。
先声明一下小我不雅点:
1. 利用安然工作决不成能都是由利用安然工作者完成的,不是全员介入的利用安然工作决不成能做出安然性很好的产品。
2. 公司期看所有与利用安然有关的工作均有益用安然工作者来完成,那必然是计谋上的不放在眼里、战术上的弊端,最终必将以重大年夜安然变乱的呈现而结束这场战争。
3. 企业利用安然工作者理应是:安然风险的辨认者、解决方案策划者与设计者及企业工程师安然意识的培训者,必需获得最高层的直接正视方可得以很好的实施。安然的具体实施理应由通俗的工程师完成,规范化渗入测试工作理应由通俗的测试工程师来完成。导弹是高科技产品,它的零部件仍然是通俗的工人来完成的,不要觉得利用安然很高深,通俗工程师做不了,那是利用安然实现“工艺设计”人员的工作没做好!
【故事一】:XSS的猜疑
在公司的初期,当我演示XSS的标题问题给我们的开辟者与测试人员的时辰(e.g. http://www.testfire.net/search.aspx?txtSearch=%3Cscript%3Ealert%281%29%3C%2Fscript%3E),他们最最猜疑的一个标题问题是:
|谁没事把本身的页面注进一串javascript的然后在本身的浏览器傍边履行?这是缝隙吗?
这个标题问题看起来仿佛很傻,其实不然,这里蕴涵着一个很是首要的标题问题:谁是报复打击者、谁是受害者和谁是责任者的标题问题,你想过这些标题问题吗?若想让你的公司的员工大白XSS标题问题标严重性必需让他们从底子上理解标题问题,方可以得以从心底里接管。因而我就做了一个虚拟的场景:
假定我是黑客,我发现某公司网站上可以注进JS脚本,因而我就奇妙的机关报复打击URL,经由过程社会工程学的编制诱使对方点击我的URL,当对方处于登录状况时,我可以获得对方的会话信息、本地cookie信息等等,我可以做的事你可以想象了…,在这里我是报复打击者,我们的产品用户是受害者,我们公司是责任者,你说我们要不要措置这个标题问题?
【故事二】:关于CSRF的那些事
先问问读者:CSRF是缝隙吗?
在我要求开辟人员解决CSRF(CSRF概念可查询CSRF)标题问题标时辰,我曾被一个资深开辟人员问的呆头呆脑,开辟人员的标题问题是:
一个需要做身份验证的URL,我们在实现的时辰已做了严格的身份验证,此刻你的要求便是是让我我们再做一次身份验证,这不是折腾吗?换句话问用户拜候了一个只有登录成功才可以拜候的URL,当用户登录后可以正常拜候,为甚么你还说它需要做身份验证?
开辟人员的标题问题是有效的,且我觉得是有价值的,假定你不克不及给开辟人员解决这个标题问题,他们是不克不及从心底里构成近似标题问题标防御意识,相反他们会构成一种心里的抵当,最终的结果将是可想而知的。因而我又做了一个场景的虚拟:
假定我是黑客,你是用户,我是黑客,当然我同时也是一个用户,没有迹象表白我是一个黑客,对别的用户来讲,我就是一个通俗的用户罢了。OK,你登录了我们的产品,我也登录了我们的产品,此刻我找到了changePasswd.do的API,我发现它并没有做CSRF防备,可是这个URL是做了严格的身份认证查抄的,此刻我用changePasswd.do?newPWD=XXXX来机关一个URL,发给你,为了有隐蔽性,我可利用短链接的编制发给你,你一眼也看不出来它里面包含了甚么,当你点击以后,它会如何样? 开辟说:可以正常运行! 我问:为甚么不需要登录、为甚么没要求身份验证? 开辟说:我已登录了!我说:这就是CSRF了,你感觉它严重吗?
此例子傍边报复打击者是我,受害者是阿谁开辟人员,责任者仍然是我们产品—办事的供给者。
【故事三】:身份认证与授权难解之惑
我们要求开辟描述清晰你写的URL或API的身份认证的要求,好比:myInfo.do,
开辟人员:只有登录的用户才可以拜候myInfo.do,不然会转到登录页面要求用户登录。
我说:如许写是不合弊端的,你如许写表白只要登录的用户都可以拜候myInfo.do了.
开辟人员:没错啊,登录的用户便可以拜候myInfo.do,这有甚么标题问题?
我说:假定我登录了,可是我拜候的是你的myInfo.do会如何样?
开辟人员:(…深思了一会…),这类环境是可能存在的,可是这是比较偏的环境
我说:我们做安然需要考虑的就是可能存在的安然风险,准确的描述拜候是:只有登录的用户才可以拜候他本身的myInfo.do!读者可能会问:句斟字嚼吗? 我想说的是:如许的句斟字嚼必需有,不然后果很严重。