写个代码也能进局子

简介: 朋友们,你没有看错,作为一名程序员,我尽职尽责的写代码,但是一不小心,与金融诈骗的不法分子杠上了,最后确实进局子了。

朋友们,你没有看错,作为一名程序员,我尽职尽责的写代码,但是一不小心,与金融诈骗的不法分子杠上了,最后确实进局子了。

1、目标发现

我所在的公司A有一款2B的某行业SAAS软件,每次有企业过来注册时,会发送企微提醒。如果注册的公司名称、公司营业执照编号、公司法人姓名、公司法人身份证编号,这四要素都匹配的话会自动审核通过,然后就可以登录使用系统了。

一天夜里11点半多,莫名其妙的出现多家企业在注册。我从业程序员13年多的经验直觉告诉我这里肯定有问题,顿时没了睡意,起身拿起电脑一探究竟。

通过nginx日志,排查注册信息和注册IP,我发现3点信息:

  1. 这些注册企业的IP地址,和公司所在城市对不上,并且IP地址大部分是国外的或者是恶意IP。
  2. 观测了他们的注册时间是无规律的间隔,因为我们系统也有短信校验,并且有短信频率控制,所以判断这不是通过机器人注册,而是人工注册。
  3. 这些企业注册的信息居然全是对的。

仅凭得到这些信息,我暂时无法判断这些人的恶意到底是什么,但是又不能放任什么都不做,于是我赶紧关掉了系统的自动审核通功能。然后对同一IP注册系统做了频率限制。

此时已经到夜里1点了,本来还想继续通过nginx日志深度排查,但是想想我们一个2B的行业SAAS软件,他们注册进来能干啥呢,又能咋样了。再加上自己已经很困了,所以就放弃了,带着一点点的不安睡觉去了。

2、无法猜测到的恶意

第二天一早,我们短信供应商突然发给我几条微信,说我们系统发送了诈骗短信。

当时我的反应是:不可能,绝对不可能。

但是一看短信里的公司名称似乎有点面熟,我CAO,我终于猜到了昨晚哪些恶意注册的意图了。他们是想通过注册系统之后购买短信包,然后利用系统发送诈骗短信(我们为了方便客户发送营销短信,对不分短信没做备案),这样就算被查,也不会查到他们头上。没想到这么隐蔽的短信营销的功能居然被他们摸索到了,太厉害了,我对不法分子也是大写的“服”字。

不法分子的意图至此已经清晰明了,接下来就看我怎么办了。

3、对抗过程

我通过系统注册记录,发现这种恶意注册的情况大概已经出现几天了,大部分都是夜里进行的注册,短信也是在夜里小批量发送的,于是继昨晚之后的“限制同一个IP注册频率”和“关闭自动审核”之后,我又赶紧采取如下紧急措施。

3.1、紧急封号 。首先赶紧排查发送过金融诈骗短信的公司,然后对其进行封号。然后再人工排查最近注册的公司里经营范围没有我们所在行业的,也进行封号。

3.2、保存现场。对于当时的日志进行保存,方便日后继续排查,或者作为相关证据。

3.3、排查短信订单。这些不发分子注册公司后,登录到系统,花钱够了大量的短信包套餐,我们对订单和支付单进行了统一整理。

3.4、排查被发送对象。整理了接收到诈骗短信的手机号,批量发送提醒短信,提醒相关号主要注意金融诈骗。

事情至此还未结束。

在排查短信发送记录的过程中,我发现这些不法分子发送了几万条诈骗短信。我们系统接受短信的对象必须是录入到系统里的客户,难道他们真的录入了客户?他们是手动注册系统的,难道真的会手动录入客户信息?抱着好奇心态的我赶紧继续排查数据库里的客户录入记录,我CAO,他们居然是通过手机抓包抓到了录入客户的接口,然后再通过他们登录后的token,去批量调用我们接口。

至此谜底全解解开。这群金融诈骗的不法分子看来也是同道中人啊。他们懂得深夜里小批量操作数据,他们懂得切换国外IP地址,他们懂得抓包去调接口。

我默默的想到了我40岁以后除了开滴滴,送外卖,又多了一条谋生手段,哈哈......

4、警局报案登记

报案之后,我们协同警方去了派出所,把相关事情的经过,和相关数据全部整理好发给警方,并且做了登记。警方也提醒我们要加强系统安全建设。

这已经不是我第一次进警局了,上一次进去是因为别人被骗,我了解点情况而被喊过去的。这次是公司系统被攻击了进去报案的。

进警局的时候,我瞪眼一看,咋还是上次的警官呢。可爱的警官瞥了我一眼,估计心里在想,大兄弟啊,怎么又是你呢?

5、故事总结

以上故事基本属实,少部分自己虚构。

针对这个事件,我做了几点总结,希望同行的朋友们引以为戒,避免犯这样的错误。

1、做事要严谨,不能因为前期缺少客户,或者为了客服运营同事们的方便,而降低系统的严谨性。比如审核企业这一步,一点都不能放松。

2、对可疑行为要保持敬畏之心,不能抱有侥幸心里。比如那天夜里我没有继续排查,我们要明白一个道理,没有利益的事情是没人愿意做的。

3、系统安全的警钟长鸣。诈骗分子无孔不入,我们写每一个接口,写每一个逻辑的时候,都要考虑是否有漏洞,是否会被人利用漏洞。

4、系统即使是开发客户便利的功能,但是坚决不能留有漏洞,否则这个功能宁可不开发。

5、系统要尽早建立用户操作行为脉络,这样可以最快的排查到用户可疑行为。

6、关于个人的身份证号码和姓名尽量不要留,防止被不法分子利用。

感谢你的阅读,欢迎关注、点赞、收藏!!!

相关文章
|
4月前
|
存储
存地址实现组包逻辑的一个测试代码。
存地址实现组包逻辑的一个测试代码。
17 0
|
10月前
|
Java Spring
一不小心,你就掉进了Spring延迟初始化的坑!
由于 spring bean 的默认作用域是:singleton。所以在启动的时候 bean 会被初始化,如果被标记了@Lazy,会延迟初始化,但是如果被非懒加载的 Bean 注入了,@Lazy会失效。
|
设计模式 消息中间件 JavaScript
干掉 “重复代码”,这三种方式绝了!
干掉 “重复代码”,这三种方式绝了!
36911 2
干掉 “重复代码”,这三种方式绝了!
jira学习案例62-userState的懒初始化和保存函数状态2
jira学习案例62-userState的懒初始化和保存函数状态2
40 0
jira学习案例62-userState的懒初始化和保存函数状态2
jira学习案例63-userState的懒初始化和保存函数状态3
jira学习案例63-userState的懒初始化和保存函数状态3
64 0
jira学习案例63-userState的懒初始化和保存函数状态3
jira学习案例61-userState的懒初始化和保存函数状态1
jira学习案例61-userState的懒初始化和保存函数状态1
56 0
jira学习案例61-userState的懒初始化和保存函数状态1
|
小程序 开发工具 开发者
【小程序】第一个小程序——创建小程序项目
【小程序】第一个小程序——创建小程序项目
99 0
【小程序】第一个小程序——创建小程序项目
SAP Spartacus默认的baseSite是从源代码什么地方读取的
SAP Spartacus默认的baseSite是从源代码什么地方读取的
SAP Spartacus默认的baseSite是从源代码什么地方读取的
|
存储 移动开发 NoSQL
开源代码分析技巧之一——打印调用逻辑
在研究开源代码时,大家或许都有这样的感慨: (1)代码太庞大,少则几万行代码,多则几百万行代码,不知道如何入手; (2)相关的帮助文档有限,很难短时间内理清头绪; (3)有了代码在手,但代码之间的调用相当复杂,一层一层追踪总是理不清调用逻辑顺序。
217 0
开源代码分析技巧之一——打印调用逻辑