• 欢迎访问安全专题网站,安全专题信息,安全专题教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入安全专题 QQ群
  • 安全专题现已支持滚动公告栏功能,兼容其他浏览器,看到的就是咯,在后台最新消息那里用li标签添加即可。
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏安全专题吧

左右互博:站在攻击者的角度来做防护(1)

安全经验 网络收集 2年前 (2016-12-24) 240次浏览 0个评论

0×01、前言

习惯性的讲点废话,笔者是一名菜鸟安全工程师。有幸参与过两次安全方面的比赛,有些个人的体会,所以就有了这篇文章了。(自知技术还很菜,望各位大牛不喜勿喷,也欢迎对这方面感兴趣的同学来和我一起交流探讨。)

‍‍‍‍0×02、攻击者会怎么做?‍‍‍‍

在做这几次防护的过程中,我一直在思考。我如果是攻击者,我会怎么来攻击?我会怎么去做?

A、第一步,针对目标做信息收集(扩大目标)

子域信息、Whois 信息、Ip 信息、端口信息、公司人员的信息、公司邮箱信息等等,一切与目标相关的信息。

B、针对拿到的信息,进行漏洞扫描及挖掘

针对子域,我们可以去尝试获取其 ip,及对其域名进行漏洞扫描。

针对 whois 信息,我们可以去尝试,获取其注册邮箱,进一步进行社工拿到密码进行域名劫持。

针对 ip 信息,我们可以去获取 ip 对应的端口及服务,对相应的服务进行漏洞扫描及挖掘。(对于踢场子的来说,直接进行 ddos,直接让你玩不下去。)

针对公司人员信息及公司邮箱信息,可以进行社工弱口令之类。看能否拿到某位员工的公司邮箱,通过敏感信息进一步深入。(如果碰到某位关键人物)

看我写起来貌似很简单似的,但实际上确是一个苦逼而漫长的过程。

除了攻击者的技术水平、人的毅力及对事物的专注程度外,还与运气有点关系。(看你碰到的是 sb 管理还是 nb 管理)

做为防护者,这个时候你该怎么做了??对方已经出招,得接住呀!不然这个看场子的任务就将失败了。

0×03、我是这样来做防护的

A、Find and fix(这个其实是很关键的)

从字面上理解就是”发现并修复“,简单的来说就是通过一些手段,去发现系统中的安全问题,然后解决问题。(医生的最高境界不是去治疗疾病,而是在疾病没有来,就拔除了,根源在代码)

带领团队成员对站点进行安全测试,发现安全问题,尽量减少外部安全隐患。(这里只能说是减少隐患,一个人的力量是有限的,一个团队的力量也是有限的,并且侧重点都不一样。)

上面也说了,只能是减少安全隐患,当漏了安全问题的时候,该怎么办了??这就有了下面的了。

B、Defend and Defer

从字面上来说是“捍卫和推迟”(这是谷歌翻译的啊!和我没关系),这里的防护难道仅仅是弄一些安全设备(防火墙、入侵检测系统、web 应用防火墙)么???当然这些也是不可少的,但不是全部。合理的事物,放在合理的位置,才能产生好的效果。

左右互博:站在攻击者的角度来做防护(1)

纵深防护

这里主要涉及到,防火墙的 HA,入侵检测系统、白名单的使用,CDN 及云防护。

流量从外面到里面需要经过如下几层:

第一层必须经过 CDN 云防护的过滤及隐藏真实 ip;‍‍

‍‍第二层必须经过防火墙白名单过滤,只允许 cdn 过来的流量;‍‍

‍‍第三层必须经过 IDS 或者 IPS 的过滤或者记录风险行为。

也就是说就算我服务器存在一些安全风险,如果你没能绕过这重重过滤也是没用的。

左右互博:站在攻击者的角度来做防护(1)

MASTER 防火墙

左右互博:站在攻击者的角度来做防护(1)

BACKUP 防火墙

这里防火墙的 HA,主要是为了防止单点故障或者说是流量攻击时而设。关于这个防火墙的 HA,这里有文章介绍:

http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/4010

难道安全防护做到这里就完成了?如果有人绕过了你的种种过滤(或者说你的某一层过滤失效了),你还能高枕无忧么?不能想当然,你做不到,并不代表别人也做不到。一切皆有可能,做好最坏的打算。

当黑客绕过了重重过滤后,对服务器进行攻击的时候,你是否能在第一时间发现?

当黑客找到服务器漏洞,绕过了各种防护,拿到了 shell,你是否能在第一时间了解到,并能分析出漏洞所在地?

这个时候就有了第四层的监控(应该算是比较失败的),基于主机的 ids(可以理解成一个文件监控系统,自然也可以成为一个日志分析系统),从理论上讲,我们可以使用这个东西,对网站目录进行监控及日志文件进行监控。一但网站文件发生变化,就立刻报警。但通过实战,通过经验告诉我,不要理想化,任何东西,都不可能横空出世,都是有他的机制的。

这里第四层,使用的是 ossec 这个软件,它对文件的监控,上面也说了比较失败的。比较失败的原因是,之前只是知道怎么去使用它,并不明白它是采用的什么机制,导致差点出大大问题。

第五层,做最坏的打算,当攻击者上传拿到 shell 后,绕过了前面三层的防护,而在第四层失效的情况下,攻击者不就可以在你的网络里面漫游了么?这种情况是不能容忍的,这个时候第五层防护就出现了。用专业词汇来说叫“风险控制”,风险控制的目的是,减少风险事件发生时造成的损失。打好各个补丁(防止提权),降低服务运行权限,取消上传目录的执行权限。就算攻击者通过某 0day 拿到服务器的 shell,他也不能干啥,因为权限很低嘛!

你现在能拿到子域信息、Whois 信息、公司人员的信息、公司邮箱信息。对于公司人员的信息、公司邮箱信息这里暂时不考虑,这个只能通过提高员工的安全意识来进行。这里还存在子域信息,和 whois 信息。关于这个域名信息上面 B 主要就是针对这个的,这里就不提了。

往往被大家忽略的是 whois 信息,通过 whois 信息我们可以看到有可能看到注册者的邮箱(这里是可以隐藏的)就可以对邮箱(一般是个人邮箱,才好弄)进行社工(现在满大街的库),如果侥幸能拿下,就 happy 了。还能看到域名使用的 ns 服务器,即而得知使用的那家的 cdn,如果说在注册域名的地方不行,那就去 cdn 呗,效果差不多。

左右互博:站在攻击者的角度来做防护(1)

Cdn 就一定靠得住么?就算它靠的住,难保他自己会不存在问题。一不小心,发现了一个隐患,只能说是个可能性吧!你想想如果,cdn 上面的邮箱和密码被泄漏出去了,别人给你改改,你的站点就死活打不开了,前面的一切就白费了。

左右互博:站在攻击者的角度来做防护(1)

看到没,qq 邮箱,是不是可以对这个邮箱进行社工啊?手气好说不定就搞定了这个密码。

左右互博:站在攻击者的角度来做防护(1)

这个是咱们的,已经改了个昵称了,默认是显示邮箱的。

C、Secure at the Source

个人理解这句话的意思应该是“源代码里面的安全”,这个就要从代码的书写者身上去找答案了。也就是上面所提高到高明的医生,不会让疾病产生,在源头就给干掉了。很多大公司都有他们的一套“安全开发流程”,应该就是在这个层面的。

在这里做好了,可以减少很多问题,及 bug,但往往得不到很好的解决。从代码的的书写者,角度来说,肯定是怎么方便怎么来。压根不会去考虑安全问题,或许也不了解。再者,书写者的水平也参差不齐,就造就了不安全的代码。
转载请注明:安全专题


Selinux 中国 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:左右互博:站在攻击者的角度来做防护(1)
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址