前言
由于网站注册入口容易被机器执行自动化程序攻击,存在如下风险:
- 暴力破解密码,造成用户信息泄露,不符合国家等级保护的要求。
- 短信盗刷带来的拒绝服务风险 ,造成用户无法登陆、注册,大量收到垃圾短信的用户投诉导致短信通道被关停。
- 带来经济损失,尤其是后付费客户,需要承担被盗刷造成的大额短信费 ,造成亏损无底洞。
所以大部分网站及App 都采取图形验证码或滑动验证码等交互解决方案, 但在机器学习能力提高的当下,连百度这样的大厂都遭受攻击导致点名批评, 图形验证及交互验证方式的安全性到底如何? 请看具体分析
一、 AI智能的发展给行为验证带来威胁
验证码本质上自带一层答案的语义,这原本是天然的区分人和自动程序的地方,但在今日却未必,由于AI智能及CHATGPT等大模型的发展,机器要识别也变得更加容易。
1、 目标识别框架
黑产破解者为了降低攻击成本、提高破解效率,通常会利用收集的大量验证码图片样本,打码标注、构建模型网络、训练模型、测试模型,从而得到一个可持续识别图片答案的识别。目前,黑产针对验证码图片的破解最常用的主要是分类模型和相似模型。
2、 批量下载存储验证图片,共需要大数万张图片。
3、 黑产训练出一个高准确度的识别模型后,后续破解验证码时,通过识别模型就能直接获取答案坐标。
4、 借力大模型进行升级
俗话说:道高一尺,魔高一丈,在chatgpt大模型发展的今天,行为验证的方式无论怎么变花样,被破解只是时间而已,被伤害的反而是真实用户。
二、 天壤智能- PC注册入口
简介:天壤成立于2016年,是专注于通用智能研究的创新企业,致力解决人工智能的可用性和易用性问题,实现以最快速度和最大效益化赋能客户。
目前已广泛服务于企业服务、数字金融、生物科技和城市运行等数字化场景。天壤希望智能成为像水电煤一样的基础设施,为人类社会的可持续发展带来突破性进展,让社会更聪明、更智慧。
三、 安全性分析报告:
前端界面分析,天壤智能未采取任何验证措施,存在验证的安全隐患,同行一般会在注册下发短信验证码时采用图形验证、行为验证方式。
四、 测试方法:
1 模拟器交互部分
private final String INDEX_URL = "https://open.tianrang.com/signin";
@Override
public RetEntity send(WebDriver driver, String areaCode, String phone) {
try {
RetEntity retEntity = new RetEntity();
driver.get(INDEX_URL);
WebElement iframeElement = driver.findElement(By.id("auth-iframe"));
driver.switchTo().frame(iframeElement);
// tab
Thread.sleep(500);
WebElement tabElement = driver.findElement(By.xpath("//a[contains(text(),'立即注册')]"));
tabElement.click();
// 输入手机号
Thread.sleep(500);
WebElement phoneElement = driver.findElement(By.id("signup_phone"));
phoneElement.sendKeys(phone);
// 点击发送验证码按钮
Thread.sleep(1000);
WebElement sendElemet = ChromeDriverManager.waitElement(driver, By.xpath("//button/span[contains(text(),'发送验证码')]"), 10);
if (sendElemet == null) {
return null;
}
sendElemet.click();
Thread.sleep(100);
WebElement errElemet = ChromeDriverManager.waitElement(driver, By.xpath("//span[contains(text(),'you can only send one code in')]"), 10);
String error = (errElemet != null) ? errElemet.getText() : null;
if (error != null) {
retEntity.setMsg(error);
return retEntity;
}
WebElement gtElemet = ChromeDriverManager.waitElement(driver, By.xpath("//span[@class='ant-input-group-addon']/button"), 15);
String gtInfo = (gtElemet != null) ? gtElemet.getText() : null;
retEntity.setMsg(gtInfo);
if (gtInfo != null && gtInfo.contains("s")) {
retEntity.setRet(0);
}
return retEntity;
} catch (Exception e) {
System.out.println("phone=" + phone + ",e=" + e.toString());
for (StackTraceElement ele : e.getStackTrace()) {
System.out.println(ele.toString());
}
return null;
} finally {
GetImage.cookieClear(driver);
}
}
2 测试结果输出:
由于该网站无验证措施,本次测评非常简单
五丶结语
等数字化场景。天壤希望智能成为像水电煤一样的基础设施,为人类社会的可持续发展带来突破性进展,让社会更聪明、更智慧。
作为AI智能的创新企业,拥有雄厚的技术实力,但对短信被盗刷的方面不够重视或没有安全方面的经验 , 测试结果发现未采取任何的验证措施,单纯靠IP限制。
IP限制问题:ip限制的优点是实现简单有效,可以拦截同一个ip的攻击,但负作用也很明显
1) 比如移动网关同一个ip后面会有很多手机用户,存在误拦截的隐患
2) 防护效果有限,采用代理IP就可以绕过这个规则限制,在无任何验证的情况下, 随便你怎么攻击都可以
很多人在短信服务刚开始建设的阶段,可能不会在安全方面考虑太多,理由有很多。
比如:“ 需求这么赶,当然是先实现功能啊 ”,“ 业务量很小啦,系统就这么点人用,不怕的 ” , “ 我们怎么会被盯上呢,不可能的 ”等等。有一些理由虽然有道理,但是该来的总是会来的。前期欠下来的债,总是要还的。越早还,问题就越小,损失就越低。
所以大家在安全方面还是要重视。(血淋淋的栗子!)#安全短信#
戳这里→康康你手机号在过多少网站注册过!!!
谷歌图形验证码在AI 面前已经形同虚设,所以谷歌宣布退出验证码服务, 那么当所有的图形验证码都被破解时,大家又该如何做好防御呢?
>>相关阅读
《腾讯防水墙滑动拼图验证码》
《百度旋转图片验证码》
《网易易盾滑动拼图验证码》
《顶象区域面积点选验证码》
《顶象滑动拼图验证码》
《极验滑动拼图验证码》
《使用深度学习来破解 captcha 验证码》
《验证码终结者-基于CNN+BLSTM+CTC的训练部署套件》