分享一下之前写的欺骗/调戏黑客的一个拦截服务器,求 star。

2020-12-29 21:53:51 +08:00
 syttcasd

项目地址: https://github.com/C4o/Juggler

应用场景

现在很多 WAF 拦截了恶意请求之后,直接返回一些特殊告警页面(之前有看到 t00ls 上有看图识 WAF )或一些状态码( 403 或者 500 啥的)。

但是实际上返不返回特殊响应都不会有啥实际作用,反而会给攻击者显而易见的提示。

但是如果返回的内容跟业务返回一致的话,就能让攻击者很难察觉到已经被策略拦截了。

场景一:攻击者正在暴力破解某登陆口

发现登陆成功是
{"successcode":0,"result":{"ReturnCode":0}}
登陆失败是
{"errorcode":1,"error":"用户名密码不匹配","result":{"ReturnCode":0}}

那现在我们可以这么做

1. 触发规则后持续返回错误状态码,让黑客觉得自己的字典不大行。
2. 返回一个特定的 cookie,当 waf 匹配到该 cookie 后,将请求导流到某 web 蜜罐跟黑客深入交流。

场景二:攻击者正在尝试找 xss

我们可以这么做

例如:
1. 不管攻击者怎么来,检测后都返回去去除了攻击者 payload 的请求的响应。
2. 攻击者 payload 是 alert(xxxx),那不管系统有无漏,我们返回一个弹框 xxx 。
  (当然前提是我们能识别 payload 的语法是否正确,也不能把攻击者当傻子骗。)

肯定有人会觉得,我们 WAF 强的不行,直接拦截就行,不整这些花里胡哨的,那这可以的。

但是相对于直接的拦截给攻击者告警,混淆视听,消费攻击者的精力,让攻击者怀疑自己,这样是不是更加狡猾?这也正是项目取名的由来,juggler,耍把戏的人。

当然,上面需求实现的前提,是前方有一个强有力的 WAF,只有在攻击请求被检出后,攻击请求才能到达我们的拦截欺骗中心,否则一切都是扯犊子。

项目思路来自我的领导们,并且简单的应用已经在线上有了很长一段时间的应用,我只是思路的实现者。
项目已在线上运行一年多,每日处理攻击请求过亿。

juggler 本质上是一个 lua 插件化的 web 服务器,类似 openresty (大言不惭哈哈);
基于 gin 进行的开发,其实就是将*gin.Context 以 lua 的 userdata 放入 lua 虚拟机,所以可以通过 lua 脚本进行请求处理。

联动 WAF 使用

本项目在现实中的应用

WAF 体系

本项目为拦截图中的拦截欺骗中心,接收并处理所有恶意请求。

4755 次点击
所在节点    分享创造
20 条回复
DoctorCat
2020-12-30 16:31:00 +08:00
然后暴怒,被 ddos 了
zoikhemlab
2020-12-30 17:34:42 +08:00
做安全审计的可不管你是不是诱导包
syttcasd
2020-12-31 11:37:36 +08:00
@DoctorCat 被发现了那就算比较失败的防御了
syttcasd
2020-12-31 11:38:18 +08:00
@zoikhemlab 安全审计是指什么。。没太理解
zoikhemlab
2020-12-31 21:34:01 +08:00
比如说等保
dorothyREN
2021-01-03 11:41:06 +08:00
对等保来说,你这就是漏洞
syttcasd
2021-01-03 16:09:22 +08:00
@zoikhemlab 。。。虽然不知道你说的哪个点 但是前司不仅过了等保 WAF 过了某所的测评且拿了销售许可证
syttcasd
2021-01-03 16:10:23 +08:00
@dorothyREN 做安全不是为了实际防御吗 等保有用还有真实的防御迷惑有用。。心里都有点数的吧
zhengfan2016
2021-01-03 20:35:47 +08:00
爬虫工程师的头发掉的更快了(doge
EulerChen
2021-01-03 22:42:44 +08:00
在蜜罐上做比较好
WishMeLz
2021-01-04 15:25:27 +08:00
多谢楼主,下次攻击的时候会注意的。(手动滑稽)
zoikhemlab
2021-01-05 11:24:11 +08:00
@syttcasd 哦,是我没说清楚,每个单位要求的安全策略不同,等保也有等级之分呀,有些地方就是不允许你访问的,但是这里你又有欺骗的数据内容返回,就会被认定为漏洞。
sadfQED2
2021-01-05 12:19:06 +08:00
@zoikhemlab 安全审计不过+1

我们公司还好起各种嗅探脚本检查,或许安全审计扫描的量比黑客还多
fengche361
2021-01-08 17:45:00 +08:00
@syttcasd 对于大部分客户来说,等保是硬性要求,只有先过了等宝,再来谈真实作用
syttcasd
2021-01-15 16:57:17 +08:00
@zoikhemlab 嗯,我也没有杠的意思。。前司是金融证券类公司,过了等保,用了一年没遇到问题。。而且按照老哥说的意思,那我是不是可以理解为蜜罐完全用不了。或者老哥有没有具体的等保要求说法明确规定返回虚假数据不允许出现(我这里的虚假数据是采样自真实数据,我理解上其实跟业务代码没有实质区别)。
syttcasd
2021-01-15 17:00:27 +08:00
@sadfQED2 老哥看下 15 楼吧。。主要我觉得跟等保没有冲突,嗅探脚本无非也是关键词匹配。。不是瞧不起这种应付检查的东西,老实讲,嗅探脚本的任何特征我都可以当做白名单,返回正常的业务返回。。希望得到回复。
syttcasd
2021-01-15 17:01:43 +08:00
@fengche361 自己看 15 楼 16 楼吧。听你这口气,挺杠的。
syttcasd
2021-01-15 17:03:35 +08:00
@EulerChen (手动滑稽
@WishMeLz 确实有个类似的内网蜜罐,也是不过不是 web 服务了。都挺有效果的。
@zhengfan2016 对于防无脑爬虫确实很有效果,不过有些竞对爬虫还是挺猛的,不手动分析,旧的 waf 规则覆盖不了。
zoikhemlab
2021-01-18 08:14:06 +08:00
@syttcasd 蜜罐当然可以用,没有问题,但是有很简单一点,就是网站后台其实是不允许暴露给外网访问的,那扫描的时候匹配到能访问的 url 里后台的关键词,就会认为你后台接口暴露出去了
syttcasd
2021-01-20 15:35:43 +08:00
@zoikhemlab 好吧。。我认为老哥想法有点怪怪的。在针对场景下使用产品的对应功能,如果说有一些功能违背了等保,那就在对应的场景下不用就好,毕竟我也没写是等保专用产品啥的。。而且其实我也不觉得那些对等保很较真的公司对技术有啥讲究,也不会用我这种小众产品。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/740135

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX