煮酒品茶:为什么要叫80安全了,其实也是因为喜欢80sec,紧跟时尚嘛。写的也就是那些道道。因为这方面文章不多,所以故有此文。在这里我希望申明一下我个人的观点,有人谈“黑客”色变,你说黑客都是坏家伙,请你上乌云看看。其实这是观点的理解错误,主要是因为工具化的普及,然后服务器管理的失误或者是更多的人为因素。安全这方面出在人身上的失误往往比出在技术上面的失误要多的多。安全意识不可失。
煮酒品茶:另外我也就是个小菜鸟,这只是一些经验之谈。也希望高手们来指点指点。让小菜我跟着进步哈。
思路:怎么防如何防?想这个问题还不如反过来白盒,怎么攻击?如何攻击?一台WEB服务器摆这里。让你攻,怎么攻。不知你们如何想。反正我是这么想。
设定假想攻击:
--------------------------------------------------------------------
一、我的想法是第一零日呗,这货比较难求,像“白帽子讲web安全”中讲的信任,我们应该相信我们的系统是没有漏洞的,不然我们的防无法做下去。还有服务器上面的软件,如果是连这也不相信那么没有继续看下去的必要了。我们对此做的只是用最稳定的,多注意漏洞厂商的官方以及漏洞库的查看。看看你是不是中了刀。出了漏洞尽快补以及查看日志是否中标。所以攻击第一步应该是收集信息。
二、既然排除了系统与软件的零日漏洞,那么我又如何攻呢?让我想想吧,扫描服务器开放端口,然后再针对端口进行相应的攻击,比如开了80,那么我又多了一条路,web,然后对web进行攻击。如果开了ftp,那么我又对ftp进行攻击,当然前面我讲过,信任。如果你连web服务器与ftp程序都无法信任,那无从谈起。开了22那么暴破,不管有没有结果,字典一挂,先在机器上跑着再说。
三、首先我们是web服务器,那么80端口是必要的,所以我们可以对其它服务进行关闭或者有偿连接。比如限制IP,VPN登陆。完了,我只有一条路可走,那就是80了。80怎么整?还是信息收集, 程序是asp?php?jsp?python? 动态还是静态?信息收集一般收集后台吖,上传地址啊,编辑器地址(ewe,fck这些都是赤果果的)埃以及有人会把网站整站打包到根目录,以及rebort信息埃有人喜欢把后台地址放到rebort上,这样就爽了。
四、找着后台就为我们暴破提供的场地,因为大家都爱用admin嘛,正合我意,不管出不出来,先破着再说。那么上传地址了,这货可以无验证上传哇,牛,扎包,发包哇。好事。如果后台没出来,也无上传组件,编辑器组件啊,那如何办?头疼啊,我xss和sql注入吧。与是拼命的找xss,一般体现在两方面,肯定是程序与用户的交互地。比如url比如程序内的文本输入框。精心构造呗。得xss就有了cookies有了cookies就有了数据和权限。有了权限就可以进一步获取更大的权限。sql注入,老生常谈埃注入这东西真的危害,你屏了常用的 ' and union order...等等,他就可以给用gb2312你转个码,没屏蔽?那我就直接上,当然还有各种方法,主要是构造思路。
五、那么如果以上都没有,我旁站?哈米你机器上只有一个站?那怎么办呢?暴库?这货基本上现在都没有用对了,网站是会员的,那会员肯定会有一些权限,比如说上传图片哇?试试能不能突破。还不行?那就C段。C段不行?那么最终 核武器。
六、社工,也叫社会工程学。这名字取的好啊,凯文干的活儿,较多的是社工,而且还出了本书叫斯骗的艺术,是叫艺术哦,他是最牛黑客喔。哈哈,社工指啥,利用人的问题,比如说钓鱼,dns劫持、站内发信息带连接阿站外QQ传毒啊,邮箱传毒埃拿你运维电脑的权限啊,然后挂个键盘记录器埃电话你人员说我是机房的,你们机器出现问题,然后我这边DDOS,你那边急哇,趁运维急想尽办法套权限哇。等等等。。。。只有想不到的没有做不到的。
七、没有七了,因为我也就知道这么点了,或许忘了些。但是思路要在这里就成。你可以扩散。
------------------------------------------------------------------
针对攻击设防御(请你扩散思维):、
煮酒品茶:没有攻击的假想你如何防?所以肯定是先设想再防御。一点一点来吧。
---------------------------------------------------------------------
一、针对零日,应该是没有任何办法。你自己做个系统?所以第一只我们只能退而求其次,首先保证服务器上只要可以运行业务的功能就行。其它软件能不装就不装。装了也定时查看官网看有没有出漏洞以及系统出漏洞,所以我们要尽可能的少装软件,更新倒没必要,主要是一个稳定,然后更新的话查看更新的内容,如果有漏洞那必须更。
二、端口,ftp,22 21等都没必要开放,连VPN吧,VPN才能访问,所以只开放一个端口:80。
三、只余80了,这里是最难防的。信息隐葳,后台这货一定的保证好,不行就后台指定IP连接。还有其它编辑器,这货无法隐藏,你必须得供用户使用,所以能不要的组件就尽量不要。rebort别太傻太天真。
四、 针对后台
后台被找着了?想暴破?那我给你设定个次数,就三次吧,超过三次那么你三小时后再来连接吧。ssh也可以设,但还有一层也就是VPN、你vpn都被干了那就没法了
针对上传。我们做如下设定。首先上传肯定要屏蔽好,只允许上传哪些,以及不允许上传哪些,为什么要写两个?万事无绝对,细心点好。可写不可读,可读不可写。这种境界一定要发挥好。有人就要说了缓存。缓存请分离,别放web上占着地方。缓存是静态的。那这个问题也解决了,不行上传也分离到别的服务器上,但是权限要把握手,可写不可读,你可以上传,但我不让你读龋就不存在webshell的问题了。定期查杀呗。
针对xss,这个自己一定得测,这个是靠经验,如我们构造一下// "> 这个">// 直接窗口跳出来,所以这个靠经验,事后可以自己测,注意两个方向,一个url一个文本输入框。
针对sql 刚也说了屏蔽掉一切可以屏蔽的,并且保证每个连接数据的文件必须引用。是必须。 还有一个无验证权限的,或者说在url上验证权限的,这种是程序的问题。只能写程序时注意。什么构造个UID就直接通过验证进行帐户了,而且这种漏洞最多啦。新浪手机的昨天就出个这样的,QQ空间也有。当然是我师傅发现的啦。
五、旁站,这个隔离吧,虚拟空间用户较多,这个依托与服务提供商。C段也是依托与别的服务器,但尽量做到只用可用的,而且你要用可用的那你还必须指定的IP来用我的。
六、社工,这个真没法说,只能自己加强安全意识,遇事不急。切记不可急。你急全完了。还有定期给同事客服进行培训。讲啥,讲你们别乱搞,乱搞出问题了我们都负不起责,然后再讲其它的。
七、未知的一切才最可怕,如果你自己都不知道还有哪里可以攻击到自己,那没办法,这就是失败的!这时你可以请专业人员来测试,什么像游戏一样,技术测试,技术一测技术二测技术三测,内部测试,第一次内测,第二次内测。。所以说游戏都是蛋疼的。无聊的。也可以找一些在线的安全测试,比如360啊,这类的。都有免费提供这样的服务的。
八、忘说一点,比如说web运行指定用户,数据库指定用户。但他们都不可以登陆系统,只能读访问。等等。。这个靠思维扩散。
九、漏了一点,测试,包括程序服务器的攻击测试,最后直接上传webshell进行提权测试。
十、有条件的可以考虑硬件防火墙,IPS等安全产品。毕竟人家是专业的。能挡则挡。
------------------------------------------------------------------
煮酒品茶:写到这里我已经无语了,脑力透之了。光打字和想就花了一个多小时。但你看看我们的成果,还是很烂。为啥发散不够彻底,第八点,我其实已经忘记写在攻击预想中了,没像我的马甲一样跳出这个思维。为什么会出现这种情况?我们想想,我们都是针对自己的攻击方案来防,但攻击方案丫根就没有放他到这一步来,理论上是他不可能得到WEB服务器权限,但我们看看第七点,未知的,如果你自己的假设攻击都有错误。那么安全就是失败的。此文就当一篇自我反省的文章,以及记录我想到的攻击方法。以及实际经验。根据白帽子一书上写的两点
【Secure By Default】以及 【Defense in depth】
去做。真可怕,我又想起一点,密码安全,密码规则。我的天埃所以这一项工作是长期的坚持的努力的,群策群力的。
煮酒品茶:希望有下期吧,下期下点具体实施方案出来。
最后我还是得感谢我的朋友们对我的帮助,特别是我的师傅,名字还没经过他的同意不方便透露。还有很多思想取自“白帽子讲web安全”虽然我还没看完。
---------------------------------------------------------------------
参考书名:
白帽子讲Web安全(阿里巴巴集团首席架构师、阿里云总裁王坚力荐) 作者:吴翰清
帮助文章成长的朋友:Demos