业务安全治理

业务安全治理

  • 1.账号安全
    • 撞库
    • 账户盗用
  • 2.爬虫与反爬虫
  • 3.API网关防护
  • 4.钓鱼与反制
    • 钓鱼发现
    • 钓鱼处置
  • 5.大数据风控
    • 风控介绍

1.账号安全

撞库

撞库分为垂直撞库和水平撞库两种,垂直撞库是对一个账号使用多个不同的密码进行尝试,可以理解为暴力破解,在做了“多次错误导致锁定”控制的应用上,垂直撞库很容易被发现。水平撞库则是利用同一个密码(比如123456)对多个账号进行尝试,由于对同一个账号的错误次数没有触发锁定条件,水平撞库往往更难从业务系统上直接发现

防撞库有几种主要的思路:

1、验证码

验证码一般包括图形验证码、短信验证码两种

图形验证码因低成本优势被广泛使用,但是,图形验证码存在一定的弊端,图形验证码通过去噪、二值化、切片等处理后,可以实现机器自动识别,网上有专门的验证码识别工具,搜索“验证码识别”还能找到一些打码平台。

同样,针对短信验证码,也有专门的平台,比如各大接码平台

有攻也有防,验证码的技术也在不断地发展,包括常见的问答模式、点选模式、拖动验证

2、页面混淆

一个登录的表单,混淆前后变化非常大,包括元素的ID、Name全都变了样,传统的暴力破解工具在这里就失效了,因为没法定位到这些元素。

此类方案实施过程中需要注意两点:

  • 网站系统内存在的一些接口,由于需要被调用,不适合用此方案进行保护,实施时需要注意做例外处理。
  • 由于混淆会对HTML甚至js进行处理,需要考虑一些特殊业务场景下的兼容性问题,如浏览器版本、第三方控件、页面嵌套在C/S客户端中等。

3、后端分析与拦截

这里的后端处理,可能是专门的WAF设备,也可能是Nginx上的过滤模块,也可能是传统的防火墙。

一般的WAF都有对基于请求频率进行限制的功能,将需要保护的页面、时间、请求次数相关参数进行设置即可。

账户盗用

并不是单独设置了支付密码就安全了,因为坏人总会想办法拿到你的密码,比如上面的撞库,或者通过伪基站发送钓鱼短信诱使用户访问并在页面中输入用户密码等信息,一旦这些信息被坏人拿到,马上就会给受害者造成财产上的损失,所以危害极大

金融企业需要采用加强性验证、用户提醒等方式来保障用户账号安全

其工作原理是:当用户在一部新手机或新设备上登录网站或APP时,由于后台没有对应的设备指纹记录,所以用户输入成功用户和密码后,还会要求输入一个短信验证码(我们叫它二次认证),当达到一定的条件(比如成功在这个设备上登录5次)后才不会有这个二次认证

除了以上方法外,不少应用还会按场景使用验证码、异地登录提醒等功能,比如当发现账号在非常用的地点登录时,可以通过验证码进行二次认证,或者登录成功后给用户发一个异地登录提醒的信息等


2.爬虫与反爬虫

主流的反爬虫技术,一般分为后台限制及前端变化两种:

1、后台限制

设置robots.txt文件针对单个IP访问超过阈值后封锁IP,针对单个Session访问超过阈值后封锁Session,针对单个User-Agent访问超过阈值进行封锁,组合前几个值进行访问统计超阈值进行阻断或者发验证码要求验证。比较暴力一点的是直接阻断一些类似PycURL、libwww-perl等User-Agent的访问,某些国产WAF中关于爬虫防护的内容中就列举了常见的爬虫UA以供用户选择。

当然这些都容易绕过,不遵守robots协议、换IP、换Session、换UA都相对简单,此时可以通过蜜罐技术设置假的robots,放置一些hidden的表单项,或者一些注释掉的页面链接等,不会影响用户体验,但爬虫一旦访问即说明有问题,可以进一步干预,比如阻断。

2、前端变化

后端限制效果可以马上呈现,但随着爬虫技术的不断提升,在后端能做的工作越来越有限,而且还会存在误伤的问题,所以更多企业把精力放在前端上,对重要的页面内容进行保护,防止被批量爬取。

前端技术多种多样,我们简单看几个实际案例来体会一下:

1️⃣ 某代理IP网站页面,为了保护上面公布的IP地址不被人爬取,对IP地址数字和字符做了拼凑处理

但是聪明的爬虫如果拼接上面的div和span标签,也能获取到正确的IP地址

2️⃣ 三位数的价格就会生成3个b标签,其中第一个b标签里包含3个i标签,利用元素定位覆盖错误的i标签,从而最终给用户显示正确的价格,但爬虫就难搞了,拼凑不行还得要解析CSS并进行计算偏移覆盖情况

3️⃣ 打开某电影网站,随便找个电影查看其累计票房数据。票房数里展示的根本不是数字,而是使用了font-face定义了字符集,并且每次刷新,字符集的URL还是动态变化的,如果要爬这个数字,可能还不如OCR识别来的更好一些

4️⃣ 除了上面这些前端技巧外,还有以下经验值得参考:

  • 关键数据可以考虑文本转成图片,甚至添加水印
  • 网站请求的URL复杂化,尽量不暴露数据的唯一键(如ID等),避免爬虫通过修改ID即可轻松爬取其他信息
  • 前端HTML页面根据用户点击情况动态加载,即查询页面源码时,只能看到列表的第一条数据
  • 结合账号登录情况,对页面进行保护,比如Token等
  • 结合蜜罐思路,确认异常时可以返回虚假数据

3.API网关防护

API作为应用程序之间通信的桥梁,容易成为攻击者的目标,因此需要多层次的防护措施来确保API的安全性

  1. Key认证:通过API密钥(API Key)对请求方进行身份验证,确保只有授权用户或应用程序能够访问API。每个API密钥通常与特定的权限绑定,确保不同的用户只能访问与其权限匹配的API资源。
  2. ACL控制(访问控制列表):ACL用于定义哪些IP地址、用户或系统有权访问API。通过配置ACL,可以限制未授权的访问,从而增加API的安全性。
  3. Bot检测:用于识别并阻止自动化的恶意机器人程序。恶意Bot可能会发起大量的API请求,从而耗尽资源或进行数据盗取。Bot检测技术通过分析请求行为、使用CAPTCHA等方式区分合法用户和自动化程序。
  4. CC限速(访问速率控制):防止API被恶意滥用的一种技术手段,通过限制单个IP或用户的请求速率,避免资源被快速耗尽或服务被拒绝。CC限速通常应用于防止DDoS(分布式拒绝服务)攻击。

商业解决方案:

  • ImpervaF5 等公司提供专业的API安全产品。这些解决方案通常集成了WAF(Web应用防火墙)和DDoS防护功能,能够提供更高级别的API保护,如实时流量分析、自动化攻击防护和合规管理。

开源解决方案:

  • Kong 是一个流行的API网关,它允许用户在流量到达API之前对其进行控制。Kong提供了多种插件,用于身份验证、速率限制、日志记录和安全功能,能够灵活地实现API防护。

4.钓鱼与反制

钓鱼发现

1、钓鱼域名主动发现

钓鱼网站一般为了增加可信度,会注册一些跟企业相关的域名,如果我们能主动去爬与企业相关的域名,便有可能提前发现。

首先,整理一些关键字,以便生成需要爬取的域名。下面以钓鱼网站中的wap.95588ccz.com为例进行分析,wap有时候可以改为www或者m,95588ccz则可以变化为xx95588或者95588xx,这个xx可以取1~4位的字符,后面.com则可能变化为.net、.org、.cn、.com.cn、.info、.tk等等,每新多一个变化对应着生成的域名成指数增长。

其次,将生成的域名去请求类似8.8.8.8这样的DNS服务器查询,由于涉及大量的域名请求,所以建议在境外部署多台VPS进行分布式请求,一来提升效率,二来防止请求过多被限制。

最后,将解析出来的域名,进行适当的黑白名单的过滤处理后,再报送到后台,便于后续跟进处置。如果某天通过其他渠道发现有新的钓鱼网站域名,又可以针对性地改进上面这个过程。

2、外部合作发现

在实际工作中,可能需要与多家外部机构合作,有的提供的是接口,有的可能仅能提供邮件,相互提供的数据可能还存在重复,所以我们需要有一套系统将这些信息进行汇总,利用一些技术手段进行截图,进而做图片相似性判断,便于接下来的应对处置。

钓鱼处置

1、关闭或封禁钓鱼网站

一般企业是不具备能力去关闭钓鱼网站的,所以这个时候都需要找外部合作机构,比如Cncert、RSA等;腾讯、360等在移动终端上提供了安全防护类功能,所以也可以合作,将钓鱼网站信息反馈给对方,这样当用户访问恶意的链接的时候,会被手机上的安全防护功能拦截。

2、对钓鱼网站进行反制

对钓鱼网站进行反制的目的是尽可能地减少用户损失,一般有几种操作:

  • 入侵或逆向拿数据

钓鱼网站提供恶意APP下载,通过逆向就可以找到一些类似于手机号(一般用来转发特定验证码短信)、邮箱账号密码(一般用来记录用户的通讯录、手机短信等)的信息,登录这些邮箱往往也会看到一些吓人的数据。拿到这些数据后,可以提供给业务部门,让他们通知受害用户,避免遭受损失

  • 大量写虚假数据

很多钓鱼网站根本不会校验用户输入的卡号到底是不是真实的卡号,所以可以通过脚本生成大量卡号密码提交到钓鱼网站,可以给对方增加一些工作量,也为我们争取更多的时间。有些钓鱼网站开发得不好,甚至在写入垃圾数据过多时,自己就崩溃了

  • DDoS攻击

在境外申请VPS对钓鱼网站进行流量压制,让用户访问变得非常慢或者无法访问。建议不要轻易使用,或者使用时讲究技巧,打打停停,一是怕VPS提供商发现后导致VPS不可用,二是如果招惹黑产反过来DDoS就有点麻烦了

  • 通过调整业务逻辑解决

例如账户盗用场景里的二次认证,钓鱼网站搞到了用户密码也没法交易


5.大数据风控

风控介绍

Nebula是国内安全公司威胁猎人团队开源的一款风控系统,重点解决恶意注册、账号被盗、内容欺诈三方面的业务安全问题,其系统架构如图所示:

风控系统的工作方式:

1、数据源层

大数据风控的基础在于数据,全面、高质量的数据可以帮助我们准确地进行风险控制。除了来自业务系统的日志外,还可以有更多的外部输入数据,比如以下几个方面:

  • 用户基本信息,除了我们所熟知的姓名、身份证、银行卡、手机号外,还有学历信息、收入情况,甚至包含当前设备、当前位置等
  • 用户的征信数据,除了人行征信系统外,还有一些其他网贷平台上的逾期或黑名单信息,比如某网贷平台的黑名单数据
  • 历史交易信息,包括历史交易额、历史交易笔数、历史行为等
  • 运营商数据,比如入网时长、入网状态、每月消费情况、通话记录、短信情况等,通过运营商数据可以判断用户的设备是否有异常
  • 用户行为数据,包括用户的搜索记录、购买记录、社交数据等,通过这些数据可以判断识别该用户是一个什么样的人、有多强的消费能力、社会关系如何,等等

2、数据计算与数据输出层

通过风险规则引擎对数据源进行计算,得到相应的风险等级或分数。以贷款为例,这里的规则一般包括准入规则、反欺诈规则等

准入规则可以理解为一些政策上的要求,比如18岁以下的人不能放贷,大学生不能放贷等;或者一些业务上的要求,例如偏远地区放了贷款,万一不还则催收成本高,因此建议不放贷款等。还有一些场景,比如系统在前期测试时只允许特定的人群参与等。

反欺诈规则的主要目的是,识别用户是否有骗贷风险,以及有多大的骗贷风险。规则制定的时候可以基于用户画像,目的在于通过打标签的方法识别不同的用户群体的风险程度。其标签可以按照用户还款行为、用户申请轨迹、用户基本信息等方面进行考虑。

3、运营管控层

这一层的功能主要服务于风控规则的快速迭代和系统的个性化配置,比如对规则内容的调整、规则的启停等进行管理

通过这一层对风险情报进行展示,对风险决策进行配置,对决策效果进行回溯分析,以便业务层进行相关的动作

4、业务层

涉及具体的业务场景,比如快捷支付、直付通、转账交易等

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVCC机制解析:提升数据库并发性能的关键

MVCC机制解析:提升数据库并发性能的关键 MVCC(Multi-Version Concurrency Control) 多版本并发控制 。 MVCC只在事务隔离级别为读已提交(Read Committed)和可重复读(Repeated Read)下生效。 MVCC是做什么用的 MVCC是为了处理 可重复读 和…

C# 实时流转换为m3u8

主要通过FFmpeg 执行命令进行转换 FFmpeg 下载地址 命令行 ffmpeg -i "rtsp://your_rtsp_stream_address" -codec: copy -start_number 0 -hls_time 10 -hls_list_size 12 -f hls "output.m3u8"start_number 设置播放列表中最先播放的索引号,…

形式向好、成本较低、可拓展性较高的名厨亮灶开源了

简介 AI视频监控平台, 是一款功能强大且简单易用的实时算法视频监控系统。愿景在最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,减少企业级应用约 95%的开发成本,在强大视频算法加…

C++_21_模板

模板 简介&#xff1a; 一种用于实现通用编程的机制。 通过使用模板我们可以编写可复用的代码&#xff0c;可以适用于多种数据类型。 C模板的语法使用角括号 < > 来表示泛型类型&#xff0c;并使用关键字 template 来定义和声明模板 概念&#xff1a; c范式编程 特点&…

海外大带宽服务器连接失败怎么办?

在全球化日益加深的今天&#xff0c;海外大带宽服务器已成为企业拓展国际市场、提升业务效率的重要工具。然而&#xff0c;面对复杂多变的网络环境和技术挑战&#xff0c;服务器连接失败的问题时有发生&#xff0c;这不仅影响了企业的正常运营&#xff0c;还可能带来经济损失和…

如何写一个自动化Linux脚本去进行等保测试--引言

#我的师兄喜欢给我的休闲实习生活加活&#xff0c;说是让我在实习期间写一个自动化脚本去进行等保测试。呵呵哒。 怎么办呢&#xff0c;师兄的指令得完成&#xff0c;师兄说让我使用Python完成任务。 设想如下&#xff1a; 1、将Linux指令嵌入到python脚本中 2、调试跑通 …

【简历】25届河南某一本JAVA简历:从头到尾都表现的不懂技术

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历总体说明 今天看一份河南某重点一本大学的Java简历。 校招备战第一法则&#xff1a;必须确定自己的求职层次&#xff0c;是大厂、中厂还是小…

php语言基本语法

HP&#xff08;Hypertext Preprocessor&#xff09;是一种广泛使用的开源服务器端脚本语言&#xff0c;特别适合于Web开发。 它能够嵌入到HTML中&#xff0c;执行动态网页内容。 PHP的一些基本语法元素&#xff1a; 1. 基本结构 PHP代码通常嵌入到HTML中&#xff0c;以<…

OpenHarmony(鸿蒙南向开发)——小型系统芯片移植指南(二)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统芯片移植指南(一) Op…

基于深度学习的图像分类或识别系统(含全套项目+PyQt5界面)

目录 一、项目界面 二、代码实现 1、数据集结构 2、设置需要模型的训练参数和指定数据集路径 3、网络代码 4、训练代码 5、评估代码 6、结果显示 三、项目代码 一、项目界面 二、代码实现 1、数据集结构 每一个文件夹对应一个类别的数据 2、设置需要模型的训练参数和…

09.20 C++对C的扩充以及C++中的封装、SeqList

SeqList.h #ifndef SEQLIST_H #define SEQLIST_H#include <iostream> #include<memory.h> #include<stdlib.h> #include<string.h>using namespace std;//typedef int datatype; //类型重命名 using datatype int;//封装一个顺序表 class Seq…

app抓包 chrome://inspect/#devices

一、前言&#xff1a; 1.首先不支持flutter框架&#xff0c;可支持ionic、taro 2.初次需要翻墙 3.app为debug包&#xff0c;非release 二、具体步骤 1.谷歌浏览器地址&#xff1a;chrome://inspect/#devices qq浏览器地址&#xff1a;qqbrowser://inspect/#devi…

新媒体运营

一、新媒体运营的概念 1.新媒体 2.新媒体运营的五大方向 用户运营 产品运营 。。。 二、新媒体的岗位职责及要求 三、新媒体平台

快速开发与维护:探索 AndroidAnnotations

在移动应用开发的世界中&#xff0c;效率和可维护性是两个至关重要的要素。随着应用功能的不断增长和用户需求的不断变化&#xff0c;开发者们一直在寻找能够提高生产力的工具和框架。今天&#xff0c;我们将深入探讨一个能够帮助开发者实现快速开发和易于维护的框架——Androi…

dgl库安装

此篇文章继续上一篇pytorch已经安装成功的情况 &#xff08;python3.9&#xff0c;pytorch2.2.2&#xff0c;cuda11.8&#xff09; 上一篇pytorch安装教学链接 选择与之匹配的版本 输入下方代码进行测试 import dgl.data dataset dgl.data.CoraGraphDataset() print(‘Numb…

使用宝塔部署项目在win上

项目部署 注意&#xff1a; 前后端部署项目&#xff0c;需要两个域名&#xff08;二级域名&#xff0c;就是主域名结尾的域名&#xff0c;需要在主域名下添加就可以了&#xff09;&#xff0c;前端一个&#xff0c;后端一个 思路&#xff1a;访问域名就会浏览器会加载前端的代…

【Redis入门到精通二】Redis核心数据类型(String,Hash)详解

目录 Redis数据类型 1.String类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 2.Hash类型 &#xff08;1&#xff09;常见命令 &#xff08;2&#xff09;内部编码 Redis数据类型 查阅Redis官方文档可知&#xff0c;Redis提供给用户的核心数据…

【HTML5】html5开篇基础(1)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…

代码随想录冲冲冲 Day51 图论Part3

101. 孤岛的总面积 dfs 首先dfs的作用就是在遇到陆地的时候找到所有的周围陆地 对于这道题的dfs 会把所有的链接边缘的陆地变成海洋 这样在全部调整之后 剩下的就是孤岛了 这道题中的dfs的结束条件就是遇到海洋时 遇到每一个陆地就会把面积1&#xff0c;在每一次重新找到…

(Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)

接着上一篇文章来搞,批量查询点赞状态。这个接口提供给其他的微服务调用所以这里会用到FeignClient 直接上接口 1. 接口信息 这里是查询多个业务的点赞状态,因此请求参数自然是业务id的集合。由于是查询当前用戶的点赞状态,因此无需传递用戶信息。当前用户指的是登录用户 …