"短信轰炸”克星 ,“无感”AI立体防御完美解决方案
一 “短信轰炸机”何以如此嚣张
本是用于身份验证、防止垃圾注册的手机短信验证码,摇身一变反倒成了骚扰手机用户的帮凶。
近期,不少用户投诉,反映自己手机突然“抽风”:在非本人操作情况下,每分钟都收到几条用自己手机号登录注册的验证码短信,一天能接收数百条这样的短信,不胜其扰。
1 月收3万余条骚扰验证码
9月19日,有陈先生向记者透露,当日17时至18时30分,手机突然接到40余条手机短信验证码,短信号码以“106”开头,发送短信的平台全是正规机构,包括支付宝、腾讯科技、高德地图、大众点评、新浪新闻、饿了么、阿里巴巴、美团网、途牛旅游网、58同城、百果园等。
根据陈先生反映的问题,咨询移动公司得知,这属于黑客程序“短信轰炸机”的恶意攻击。这种软件利用网站或APP的“发送手机验证码”接口,可实现海量网站给同一个手机号码发送多条验证码信息。最厉害的“短信轰炸机”能1分钟内给同一个手机号发送超过100条短信。
不法分子用垃圾短信恶意骚扰并不鲜见。几年前,就有浙江和广东的手机用户,因网购中给商家“差评”遭对方用垃圾短信报复。公安机关接到报案后,曾挖出“短信轰炸机”背后的黑色产业利益链条,并逮捕了相关涉案人员。
如今,网上虽然赤裸裸的“短信轰炸”软件不见踪影,但不少刷好评、点赞、粉丝数量等刷单软件具备短信轰炸功能。记者在软件论坛,下载了多款用于淘宝、新浪、陌陌等网站用户账号注册、验证的小程序,这些软件在“参数设置”选项上,都具备自动复制手机号、自动复制短信、每5秒自动获取验证码等功能。
一位网站维护工程师告诉记者,对专业人士而言,制作“短信轰炸机”程序非常简单,集成海量网站短信验证码接口链接,再循环利用指定手机号发送用户注册、密码修改等正常验证码请求,便可达到骚扰的目的。
2 束手无策,运营商只能暂停用户验证短信接收功能
对于广告推销类垃圾短信,通信运营商已有应对之策。
通信管理局数据显示:2007年,垃圾短信问题开始在我省“冒泡”。随后,在主管部门要求下,运营商将原来3分钱至5分钱一条的广告营销类短信,价格升至0.1元一条,并设置了每小时短信发送条数限制(不得超过500条)等技术门槛。
2015年以来,运营商与腾讯、360等企业合作,建立了垃圾短信拦截系统,通过关键字、多音字、谐音字、特殊符号等关联分析,将短信来源列入黑名单,实现垃圾短信自动拦截。
移动公司一位技术专家表示,通过价格杠杆和技术手段,可逐步解决广告推销类垃圾短信,但验证码短信基本来自运营商监控“白名单”里的平台(微博、支付宝等),运营商很难甄别用户手机是正常登录验证行为,还是不法分子用“短信轰炸机”的恶意骚扰行为。
不堪其扰的陈先生通过咨询,编辑短信502发送给10086,开通“短信炸弹防护功能”后,验证码骚扰短信才得以终止。但是,该防护功能是把“双刃剑”,相当于运营商关闭用户验证短信接收功能,这会影响用户的银行交易、电商购物等正常验证码使用。
“目前,业界还没有有效的拦截手段。” 电信公司技术专家表示,运营商服务器不可能被“短信轰炸机”攻击,类似陈先生这样被骚扰的用户,一般是因手机号码泄漏,遭到不法分子非法利用导致。在未经过用户许可的前提下,运营商不敢擅自关闭用户的短信接收功能。
3 加强端口管控,验证码防护体系亟待建立
通信管理局专家认为,阻止“短信轰炸机”攻击,可借鉴拦截骚扰电话经验,通过大数据主动识别特征,主动标记问题手机号的异常登录注册行为,系统再根据拦截标准,进行机器干预或人工干预。
目前“骚扰电话预警系统”可监控用户的通话行为,当发现一个号码1小时内通话次数超过100次,且多数通话时长不超过10秒钟,系统就能智能分析,自主生成骚扰电话号码库,实现系统主动拦截。“现在的难点在于确定标准,如同一手机号在单位时间内接收多少验证码属于骚扰等,这需要行业主管部门与运营商协同完成,目前公司已启动专题技术调研。”湖北移动公司技术人员透露。
目前,全国每年各类APP、网站发送的短信验证码条数在1000亿至2000亿条,接收短信的用户虽然不用掏钱,但这些APP、网站的运营企业需要向通信运营商缴纳每条3分钱至5分钱的费用,若有“短信轰炸机”恶意发送验证码,不但骚扰了用户,也增加了企业不必要的资费开支。
目前APP、网站的运营企业在收到攻击后,在用户输入手机号发送验证码前,增加数字、图片、行为等“二次验证”,以及限制单IP请求次数、发送验证条数等,但这些无疑会降低用户的体验,北京新昕科技有限公司联合各大短信服务商推出的“企业短信防火墙”在不影响用户体验的前提下,可以有效拦截短信轰炸。
4 “变态”验证能防“短信轰炸”?考验人类智商和毅力?
注重用户体验的互联网,出现“变态”验证码是为安全让步 ,AI技术的提高,使各种验证码如同“皇帝的新装”,更无法防“短信轰炸” 。
谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
有没有更好的防护手段呢?
新新科技研发的下一代隐藏式验证安全产品
二、企业短信防火墙实现AI立体防御
1.1 简介
新昕科技在交易反欺诈核心上, 通过AI快速学习机制,结合国际领先的设备指纹技术,首次推出无需图形验证码机制的企业短信防火墙,三步完成下载对接。
1.2 第一步:获取防火墙帐号密钥
进入 防火墙控制台,在左侧导航栏选择【网站管理】,进入网站管理页面,单击【发到邮箱】接收密钥。
1.3 第二步:下载防火墙服务器
前往新昕科技官网,在顶部导航栏选择【解决方案】>【下载中心】,进入下载中心页面,找到短信防火墙服务器安装包,点击【下载链接】即可下载。
1.4 第三步:业务系统前后端接入
web 前端接入:
前端接入:
Web前端接入文档
Java 在页面合适的位置(标签内)加入以下代码引入JS文件:
<script type="text/javascript" src="/NxtJsServlet"></script>
PHP 在页面合适的位置(标签内)加入以下代码引入JS文件:
<script id="finger" type="text/javascript" src="/nxt_inc/nxt_front.php"></script>
后端接入:
Java
修改配置(和业务系统同系统不需要修改):
newxtc.ini (存放位置:"/WEB-INF/classes/newxtc.ini")
修改参数(fireWareUrl)–> fireWareUrl=http://localhost:7502
短信下发
public RetMsg smsSend(HttpServletRequest request, HttpServletResponse response, String clientMobile) {
RetMsg retMsg = new RetMsg(-1, "系统异常");
FwClient fwClient = new FwClientImpl();
try {
// 1 调用【短信防火墙】短信发送请求
HashMap < String, Object > paramMap = fwClient.getSendReq(request, clientMobile);
String jsonReq = fwClient.execReq(paramMap);
String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
if("REJECT".equals(smsSendRet)) {
retMsg.setRet(3);
retMsg.setMsg("请求过于频繁");
}
else {
// 业务 TODO
// 业务调用短信接口 TODO
// 调用短信接口 结束
if(smsRetMsg != null && smsRetMsg.getRet() == 0) {
// 2 调用【短信防火墙】成功结果
fwClient.execSucc(paramMap);
logger.debug("send succ");
retMsg.setRet(0);
retMsg.setMsg("发送验证码成功");
}
else {
// 2 调用【短信防火墙】失败结果
SmsVerifyCache.getInstance().remove(clientMobile);
fwClient.execFail(paramMap);
retMsg.setRet(-1);
retMsg.setMsg("发送验证码失败");
}
}
}
catch(Exception e) {
for(StackTraceElement elment: e.getStackTrace()) {
logger.error(elment.toString());
}
}
return retMsg;
}
短信验证
public RetMsg smsVerify(HttpServletRequest request, HttpServletResponse response, String clientMobile, String smsVerifyCode) {
FwClient fwClient = new FwClientImpl();
RetMsg retMsg = new RetMsg(-1, "系统异常");
if(smsVerifyCode == null || smsVerifyCode.isEmpty()) {
retMsg.setRet(1);
retMsg.setMsg("输入验证码为空");
}
else {
// 1 调用【短信防火墙】验证请求
HashMap < String, Object > paramMap = fwClient.getVerifyReq(request, clientMobile); // 请求防火墙
String jsonReq = fwClient.execReq(paramMap);
// 报文处理
String smsSendRet = fwClient.getRetVaule(jsonReq, "riskResult");
if("REJECT".equals(smsSendRet)) {
retMsg.setRet(3);
retMsg.setMsg("请求过于频繁");
}
// 业务 TODO
if(cacheSmsVerify != null && cacheSmsVerify.getVerifyCode() != null && !cacheSmsVerify.getVerifyCode().isEmpty()) {
if(cacheSmsVerify.getVerifyCode().equals(smsVerifyCode)) {
retMsg.setRet(0);
retMsg.setMsg("验证成功");
}
else {
retMsg.setRet(1);
retMsg.setMsg("验证码错误");
}
}
else {
retMsg.setRet(-9);
retMsg.setMsg("验证码超时");
}
if(retMsg.getRet() == 0) {
// 2 调用【短信防火墙】成功结果
fwClient.execSucc(paramMap);
}
else {
// 2 调用【短信防火墙】失败结果
fwClient.execFail(paramMap);
}
}
return retMsg;
}
PHP
修改配置文件(和业务系统同系统不需要修改):
nxt_ini.php (存放位置:"\nxt_inc")
修改参数($GLOBALS [“fireWareUrl”])–>$GLOBALS [“fireWareUrl”]=“http://localhost:7502”
短信下发
require_once $_SERVER['DOCUMENT_ROOT'].
"/nxt_inc/nxt_client.php";
/**
* 发送短信
* @param $mobile
*/
public
function send(string $mobile) {
$fwClient = new ClientApi();
// 获取下发短信报文
$paramMap = $fwClient - > getSendReq($phone);
// 执行下发短信请求
$jsonReq = $fwClient - > execReq($paramMap);
$fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
if("REJECT" != $fwRet) {
// 发送短信业务 TODO
if(发送成功标记) {
// 下发短信成功
$fwClient - > execSucc($paramMap);
}
else {
// 下发短信失败
$fwClient - > execFail($paramMap);
}
}
}
短信验证
/**
* 短信验证
* @param $mobile
*/
public
function smsVerify(string $mobile) {
$fwClient = new ClientApi();
// 获取短信验证报文
$paramMap = $fwClient - > getVerifyReq($phone);
// 执行短信验证请求
$jsonReq = $fwClient - > execReq($paramMap);
$fwRet = $fwClient - > getRetVaule($jsonReq, "riskResult");
if("REJECT" != $fwRet) {
// 验证短信业务 TODO
if(验证成功标记) {
// 验证短信成功
$fwClient - > execSucc($paramMap);
}
else {
// 验证短信失败
$fwClient - > execFail($paramMap);
}
}
}
1.5丰富可视化实时风险大盘,
防御拦截数据尽收眼底,实时查看当日数据详情与近期风险趋势。
通过风控数据看板,可查看1-30天的验证情况、风控拦截情况以及验证事件触发的AI模型情况。
进入防火墙控制台,在左侧导航栏选择【风险大盘】,进入风险大盘页面。
转载:https://blog.csdn.net/weixin_44549063/article/details/113488834