业务安全治理
业务安全治理
- 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的安全性
- Key认证:通过API密钥(API Key)对请求方进行身份验证,确保只有授权用户或应用程序能够访问API。每个API密钥通常与特定的权限绑定,确保不同的用户只能访问与其权限匹配的API资源。
- ACL控制(访问控制列表):ACL用于定义哪些IP地址、用户或系统有权访问API。通过配置ACL,可以限制未授权的访问,从而增加API的安全性。
- Bot检测:用于识别并阻止自动化的恶意机器人程序。恶意Bot可能会发起大量的API请求,从而耗尽资源或进行数据盗取。Bot检测技术通过分析请求行为、使用CAPTCHA等方式区分合法用户和自动化程序。
- CC限速(访问速率控制):防止API被恶意滥用的一种技术手段,通过限制单个IP或用户的请求速率,避免资源被快速耗尽或服务被拒绝。CC限速通常应用于防止DDoS(分布式拒绝服务)攻击。
商业解决方案:
- Imperva 和 F5 等公司提供专业的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、业务层
涉及具体的业务场景,比如快捷支付、直付通、转账交易等
相关文章:

业务安全治理
业务安全治理 1.账号安全撞库账户盗用 2.爬虫与反爬虫3.API网关防护4.钓鱼与反制钓鱼发现钓鱼处置 5.大数据风控风控介绍 1.账号安全 撞库 撞库分为垂直撞库和水平撞库两种,垂直撞库是对一个账号使用多个不同的密码进行尝试,可以理解为暴力破解&#x…...

HelpLook VS GitBook,在线文档管理工具对比
在线文档管理工具在当今时代非常重要。随着数字化时代的到来,人们越来越依赖于电子文档来存储、共享和管理信息。无论是与团队合作还是与客户分享,人们都可以轻松地共享文档链接或通过设置权限来控制访问。在线文档管理工具的出现大大提高了工作效率和协…...
docker面经
docker面经在线链接 docker面经在线链接🔗: (https://h03yz7idw7.feishu.cn/wiki/N3CVwO3kMifLypkJqnic9wNynKh)...

Python 中的 Kombu 类库
Kombu 是一个用于 Python 的消息队列库,提供了高效、灵活的消息传递机制。它是 Celery 的核心组件之一,但也可以单独使用。Kombu 支持多种消息代理(如 RabbitMQ、Redis、Amazon SQS 等),并提供了消息生产者和消费者的功…...
safepoint是什么?有什么用?
在JVM中,safepoint(安全点)是一个非常重要的概念,特别是在垃圾回收(GC)和其他需要暂停所有应用线程的操作中。 什么是safepoint Safepoint是JVM执行过程中一个特定的位置,在这个位置上&#x…...
axios相关知识点
一、基本概念 1、基于Promise:Axios通过Promise实现异步请求,避免了传统回调函数导致的“回调地狱”问题,使得代码更加清晰和易于维护。 2、跨平台:Axios既可以在浏览器中运行,也可以在Node.js环境中使用,为前后端开…...
LeetCode 面试经典150题 67.二进制求和
415.字符串相加 思路一模一样 题目:给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 eg: 输入a“1010” b“1011” 输出“10101” 思路:从右开始遍历两个字符串,因为右边是低位先运算。如果…...

Dell PowerEdge 网络恢复笔记
我有一台Dell的PowerEdge服务器,之前安装了Ubuntu 20 桌面版。突然有一天不能开机了。 故障排查 Disk Error 首先是看一下机器的正面,有一个非常小的液晶显示器,只能显示一排字。 上面显示Disk Error,然后看挂载的硬盘仓&#…...

Java面试——集合篇
1.Java中常用的容器有哪些? 容器主要包括 Collection 和 Map 两种,Collection 存储着对象的集合,而 Map 存储着键值对(两个对象)的映射表。 如图: 面试官追问:说说集合有哪些类及他们各自的区别和特点? S…...
算法【双向广搜】
双向广搜常见用途 1:小优化。bfs的剪枝策略,分两侧展开分支,哪侧数量少就从哪侧展开。 2:用于解决特征很明显的一类问题。特征:全量样本不允许递归完全展开,但是半量样本可以完全展开。过程:把…...
javascript检测数据类型的方法
1. typeof 运算符 typeof是一个用来检测变量的基本数据类型的运算符。它可以返回以下几种类型的字符串:“undefined”、“boolean”、“number”、“string”、“object”、“function” 和 “symbol”(ES6)。需要注意的是,对于 n…...

生信初学者教程(五):R语言基础
文章目录 数据类型整型逻辑型字符型日期型数值型复杂数数据结构向量矩阵数组列表因子数据框ts特殊值缺失值 (NA)无穷大 (Inf)非数字 (NaN)安装R包学习材料R语言是一种用于统计计算和图形展示的编程语言和软件环境,广泛应用于数据分析、统计建模和数据可视化。1991年:R语言的最…...
深度学习计算
一、层和块 块可以描述单个层、多个层组成的组件或整个模型。 通过定义块,组装块,可以实现复杂的神经网络。 一个块可以由多个class组成。 其实就是 自己定义神经网络net,自己定义层的顺序和具体的init、 forward函数。 层和块的顺序由sequen…...

Hexo博客私有部署Twikoo评论系统并迁移评论记录(自定义邮件回复模板)
部署 之前一直使用的artalk,现在想改用Twikoo,采用私有部署的方式。 私有部署 (Docker) 端口可以根据实际情况进行修改 docker run --name twikoo -e TWIKOO_THROTTLE1000 -p 8100:8100 -v ${PWD}/data:/app/data -e TWIKOO_PORT8100 -d imaegoo/twi…...
Vue.js 与 Flask/Django 后端配合:构建现代 Web 应用的最佳实践
Vue.js 与 Flask/Django 后端配合:构建现代 Web 应用的最佳实践 在现代 Web 开发中,前后端分离的架构已经成为主流。Vue.js 作为一个渐进式 JavaScript 框架,因其灵活性和易用性而广受欢迎。而 Flask 和 Django 则是 Python 生态中两个非常流…...

【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
文章目录 0. 前言1. 基于搜索的路径规划1.1 A* 算法1.2 Hybrid A* 算法 2. 基于采样的路径规划2.1 Frent Frame方法2.2 Cartesian →Frent 1D ( x , y ) (x, y) (x,y) —> ( s , l ) (s, l) (s,l)2.3 Cartesian →Frent 3D2.4 贝尔曼Bellman最优性原理2.5 高速轨迹采样——…...

Shiro-721—漏洞分析(CVE-2019-12422)
文章目录 Padding Oracle Attack 原理PKCS5填充怎么爆破攻击 漏洞原理源码分析漏洞复现 本文基于shiro550漏洞基础上分析,建议先看上期内容: https://blog.csdn.net/weixin_60521036/article/details/142373353 Padding Oracle Attack 原理 网上看了很多…...

【Python语言初识(一)】
一、python简史 1.1、python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调…...

Python 中的方法解析顺序(MRO)
在 Python 中,MRO(Method Resolution Order,方法解析顺序)是指类继承体系中,Python 如何确定在调用方法时的解析顺序。MRO 决定了在多继承环境下,Python 如何寻找方法或属性,即它会根据一定规则…...

MySQL表的内外连接
内连接 其实就是from 两个表 把笛卡尔积的表 再用where 进行条件筛选 ——之前我们写的多表查询就是内连接 基本格式: 外链接 没有向内连接那样真的把两个表连接形式一个表显示,而只是建立关系 外连接分为左链接和右链接 左链接 联合查询时候&#…...
挑战杯推荐项目
“人工智能”创意赛 - 智能艺术创作助手:借助大模型技术,开发能根据用户输入的主题、风格等要求,生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用,帮助艺术家和创意爱好者激发创意、提高创作效率。 - 个性化梦境…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...