用IAST工具强化“越权检测”能力,提升系统安全性
什么是越权漏洞
越权漏洞是一种常见的逻辑安全漏洞。越权漏洞指的是攻击者利用系统中的漏洞,获得超过其正常权限的访问权限,执行未授权操作。
越权漏洞主要分为两种类型:水平越权(横向越权)和垂直越权(纵向越权)。水平越权是指用户进行同级别的越权访问、删除、修改数据。例如,在查看用户信息页面时,通过修改URL中的参数,攻击者可能能够查看其他用户的信息。垂直越权则是由于后台应用没有做足够的权限控制,导致攻击者可以进行更高级别的越权访问,或控制其他用户拥有的数据。
越权漏洞危害
(1)隐私泄露
越权漏洞的存在导致敏感数据泄露,如用户个人信息、交易记录、企业机密等,用户容易受到身份盗窃、欺诈等。
(2)系统稳定性受损
攻击者可能利用越权漏洞对系统进行不当操作,如删除重要文件、篡改数据库内容或执行恶意代码,导致系统崩溃、服务中断、数据丢失或系统资源耗尽。
(3)企业经济损失
越权漏洞引起的数据泄露和系统稳定性受损可能导致客户信任丧失,影响企业业务运营。同时企业修复越权漏洞和恢复受损系统的成本也将非常高昂。
(4)国际利益危害
对于涉及国家安全、基础设施或关键信息系统的漏洞,可能被攻击者利用进行网络间谍活动、破坏关键设施或窃取敏感信息。
常用的越权检测方式有哪些?
为了防止越权漏洞的发生,企业通常会采用以下几种方式进行越权漏洞检测:
检测方式 | 描述 |
代码 审计 | 通过对软件源代码进行静态分析来发现潜在漏洞的方法。检查代码中是否存在未经鉴权的函数调用或权限错误的代码逻辑。 |
渗透 测试 | 模拟攻击行为对系统的授权验证机制进行测试。可以采用黑盒测试和白盒测试相结合的方式。黑盒测试可以模拟攻击者的行为,对系统进行渗透测试,以发现系统对越权访问的容忍度。白盒测试则通过监控软件的执行流程,分析是否存在越权访问的迹象。 |
审计 日志 分析 | 分析审计日志发现用户和程序的异常访问行为及越权访问的痕迹。 |
通过以上几种方式虽然可以检测越权漏洞,但是需要较高的专业技能,也需要消耗大量的时间成本。那有没有一种越权检测方式可以同时降低越权检测的专业性和时间成本,提升安全检测的效率呢?
IAST工具—自动化检测越权风险
开源网安凭借成熟的IAST产品—VulHunter灰盒安全测试工具,结合自研的DAST引擎,可以为企业提供强大的自动化越权检测能力,提升越权检测效率。
VulHunter越权检测利用IAST技术自动收集应用API接口和各个请求执行信息上送至越权检测系统,实现自动化越权检测。具体检测原理如下:
1、功能测试人员触发业务请求报文,Java agent通过插桩技术获取对应报文请求信息、执行上下文和应用的响应内容发送给IAST越权检测系统。
2、IAST越权检测系统对Java agent上送的信息根据API接口进行报文编排。
3、IAST越权检测系统将待检测的业务请求报文进行编排后,自动将请求中的凭证分别替换成同等权限或低权限用户的凭证,然后进行重放该请求。
4、IAST越权检测系统获取Java agent上报检测请求执行上下文和应用系统的响应报文。
5、越权验证引擎根据执行的上下文和响应内容进行越权漏洞判断。
图:越权检测原理
越权检测的优势
VulHunter越权检测相对于传统的越权检测方法具有以下优势:
(1)检测全面,资产可视化颗粒度高
全面感知和管理应用程序API资产,可以实现资产可视化管理;可以对资产进行分类、标签、评分等操作,方便安全人员对资产进行优先级排序和风险评估;支持对加密请求和分布式微服务请求进行识别和收集,通过对加解密函数和微服务节点的插桩,获取明文的API和数据信息,提高API检测覆盖率。
结合功能测试的业务请求收集报文,可避免安全人员认知片面缺陷,而忽略一些边缘场景或者隐藏功能的API。此外VulHunter还实现了请求跨服务全链路跟踪,可以清晰看到每个请求来源、目的、参数、响应等信息,最大程度保障了安全测试的全面性。
(2)自动化程度高
通过收集和梳理应用的HTTP请求流,重新编排应用请求,按照时间先后顺序构建用户业务请求线,模拟用户正常操作流程,实现自动化越权漏洞检测。
利用插桩技术对一些web框架的会话函数进行插桩获取上下文信息,进行登录请求识别、会话凭证信息提取,确认登录登出请求接口和会话参数,实现自动化登录配置信息确认和提取,减少人力成本。
通过采集权限框架的配置信息,获取应用现有权限清单,自动化获取不同角色用户账号,实现自动化权限测试。
(3)准确率高
通过对应用程序运行时的函数调用序列进行收集,实现请求行为动作捕获,准确判断每个请求的功能和影响,避免请求误判或者漏判。
通过对应用程序执行过程中经过的关键函数进行触发感知,实现请求行为审计,准确判断每个请求权限和风险,最大程度降低请求误报或者漏报。
在基于传统响应信息重放比对模型基础上,提供多维度比对信息的可视化,不仅对比了响应信息是否存在相似性,还对比了响应信息的内容、格式、长度、状态码等信息,提高检测准确性和效率。
越权检测的价值
(1)提高越权风险检测效率
VulHunter越权检测可以无缝融入现有流程,加之被动插桩和越权服务自动重放请求的优势,可实现自动化检测越权风险,提高越权检测效率,减少人工干预,让安全团队能够更快速地识别和响应潜在越权威胁。此外,自动化检测还降低了人为错误的可能性,提高了检测准确性和可靠性。
(2)提升系统安全性
及时发现并识别系统中的越权风险,防止未经授权的访问和数据泄露,有效阻止潜在安全威胁,保护企业核心资产和信息安全,保障业务安全,维护企业声誉和客户信任度。
(3)优化企业资源分配
通过全面的API资产感知和管理,实现资产可视化,企业能更高效地分类、标签和评分其资产,优化资源配置和使用,将有限的资源集中在最需要加强的安全领域,提高安全投资效益。
推荐阅读
IAST面面观 | 将IAST工具引入DevSecOps,让开发安全提速
IAST灰盒检测技术挖掘Web应用安全漏洞
相关文章:

用IAST工具强化“越权检测”能力,提升系统安全性
什么是越权漏洞 越权漏洞是一种常见的逻辑安全漏洞。越权漏洞指的是攻击者利用系统中的漏洞,获得超过其正常权限的访问权限,执行未授权操作。 越权漏洞主要分为两种类型:水平越权(横向越权)和垂直越权(纵…...

VirtualStudio配置QT开发环境
环境 VirtualStudio2022Qt5.12.10 安装msvc工具链(这一步不是必须的) 打开virtual studio,打开Virtual Studio Installer界面选择要安装的msvc版本,点击安装 安装VirtualStudio扩展 在线安装 打开virtual Studio,…...

Nature发文介绍使用ChatGPT帮助学术写作的三种方式
文章链接:https://www.nature.com/articles/d41586-024-01042-3 一、介绍 这篇文章是由Dritjon Gruda撰写的,讨论了生成性人工智能(AI)在学术写作、编辑和同行评审中的三种应用方式。Gruda认为,尽管学术界对聊天机器…...

【网络安全的神秘世界】Kali 自带 Burp Suite 使用指南:字体与CA证书设置详解等
🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 Kali 自带 Burp Suite 使用指南目录 Burp Suite的打开方式设置Burp Suite软件的字体大小查看Burp Suite 默认代理在火狐浏览器…...
【Go】爬虫数据解密_使用Go语言实现TripleDES加密和解密
是你多么温馨的目光 教我坚毅望着前路 叮嘱我跌倒不应放弃 没法解释怎可报尽亲恩 爱意宽大是无限 请准我说声真的爱你 🎵 Beyond《真的爱你》 引言 Triple Data Encryption Standard (TripleDES 或 3DES) 是一种对称加密算法,它通…...

【HarmonyOS NEXT】鸿蒙 如何在包含web组件的页面 让默认焦点有效
页面包含web组件Button组件等,把页面的默认焦点放到Button组件上,不起效果。 因为web组件默认会在组件加载完成后获取焦点; 可以在web的网页加载完成时onPageEnd回调中,将设置默认获焦的组件通过focusControl.requestFocus方法主…...
mysql常用参数配置详解my.cnf my.ini
1.关注生产中高频常用参数 # 数据库时区 log_timestamps = system # 刷盘策略 0,1,2 innodb_flush_log_at_trx_commit # 定义了 InnoDB 用于写日志数据的缓冲区大小。当事务发生时,日志首先被写入这个缓冲区,然后再被刷新(flush)到磁盘上的重做日志文件(redo log file…...

GlusterFS企业分布式存储
GlusterFS 分布式文件系统代表-nfs常见分布式存储Gluster存储基础梳理GlusterFS 适合大文件还是小文件存储? 应用场景术语Trusted Storage PoolBrickVolumes Glusterfs整体工作流程-数据访问流程GlusterFS客户端访问流程 GlusterFS常用命令部署 GlusterFS 群集准备环…...
SSH生成SSH密钥(公钥和私钥)
在设置SSH服务时,生成SSH密钥(公钥和私钥)是一个常见的任务。这些密钥用于安全地进行身份验证,无需输入密码。以下是如何生成SSH密钥的步骤: 1. 生成SSH密钥对 首先,您需要在客户端机器上生成一个SSH密钥…...
阶段性总结:如何快速上手一个新的平台或者技术
作为研发一枚,为了实现客户的各种需求,为了避免重复造轮子,通常需要快速调查到哪个轮子(比如各种平台,或者开发包等)好用,然后快速熟悉和上手。在接触到一个新的平台或者技术的时候,…...

kettle从入门到精通 第七十一课 ETL之kettle 再谈http post,轻松掌握body中传递json参数
场景: kettle中http post步骤如何发送http请求且传递body参数? 解决方案: http post步骤中直接设置Request entity field字段即可。 1、手边没有现成的post接口,索性用python搭建一个简单的接口,关键代码如下&#…...

第十二章:会话控制
会话控制 文章目录 会话控制一、介绍二、cookie2.1 cookie 是什么2.2 cookie 的特点2.3 cookie 的运行流程2.4 浏览器操作 cookie2.5 cookie 的代码操作(1)设置 cookie(2)读取 cookie(3)删除 cookie 三、se…...

【LeetCode滑动窗口算法】长度最小的子数组 难度:中等
我们先看一下题目描述: 解法一:暴力枚举 时间复杂度:o(n^3) class Solution { public:int minSubArrayLen(int target, vector<int>& nums){int i 0, j 0;vector<int> v;for (;i < nums.size();i){int sum nums[i];fo…...

MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
目录 前言1. 授予权限2. 撤销权限3. 查询权限4. Demo 前言 公司内部的数据库权限一般针对不同人员有不同的权限分配,而不都统一给一个root权限 1. 授予权限 授予用户权限的基本命令是GRANT 可以授予的权限种类很多,涵盖从数据库和表级别到列和存储过…...
Day39
Day39 JSP JSP底层 全称为Java Server Pages,JSP实际上就是一个servelet JSP:HTML页面Java代码,本质:servlet。 public class login_jsp{//JSP的9大内置对象private JSPWriter out;//当前JSP输出流对象private HttpServletRequest request;…...
Nginx之HTTP模块详解
Nginx是模块化的代码架构,其代码由核心代码与功能模块代码构成。Nginx的主要功能模块是HTTP功能模块,HTTP功能模块在HTTP核心功能的基础上为Nginx对HTTP请求的处理流程提供了扩展功能,这些扩展功能可以让用户很方便地应对访问控制、数据处理、…...

JCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断
JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断 目录 JJCR一区 | Matlab实现GAF-PCNN、GASF-CNN、GADF-CNN的多特征输入数据分类预测/故障诊断分类效果格拉姆矩阵图GAF-PCNNGASF-CNNGADF-CNN 基本介绍程序设计参考资料 分类效果 格拉姆…...

最新Prompt预设词分享,DALL-E3文生图+文档分析
使用指南 直接复制使用 可以前往已经添加好Prompt预设的AI系统测试使用(可自定义添加使用) 支持GPTs SparkAi SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。支持GPT-4o…...

基于SpringBoot+Vue会所产后护理系统设计和实现
基于SpringBootVue会所产后护理系统设计和实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种定制系统 &#…...
Linux中的EINTR和EAGAIN错误码
Linux中的EINTR和EAGAIN错误码 在Linux系统中,进行系统调用时经常会遇到各种错误码。其中,EINTR(Interrupted system call)和EAGAIN(Resource temporarily unavailable)是两个较为常见的错误码,…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

相机从app启动流程
一、流程框架图 二、具体流程分析 1、得到cameralist和对应的静态信息 目录如下: 重点代码分析: 启动相机前,先要通过getCameraIdList获取camera的个数以及id,然后可以通过getCameraCharacteristics获取对应id camera的capabilities(静态信息)进行一些openCamera前的…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...