插桩技术指在保证原有程序逻辑完整性的基础上,在程序中插入探针,通过探针采集代码中的信息(方法本身、方法参数值、返回值等)在特定的位置插入代码段,从而收集程序运行时的动态上下文信息。

一、“插桩”式技术实现原理

“插桩”式实现通过两个阶段,动态HooK和污点传播。

(一)动态HooK阶段技术原理

动态Hook阶段,越靠近底层,拿到的应用数据越详尽,数据量也越大,技术难度也越高;以Java为例,最常见的Hook层是JVM层,通过JVMTI接口对字节码,在类被加载之前对类进行拦截,通过插入监听字节码,进行修改以实现Hook(具体HooK的参数可以通过分析不通框架提前定义好,也可以通过API调用链做全量HooK)。

(二)污点传播阶段技术原理

污点传播分析技术是信息流分析技术的一种实践方法,该技术通过对系统中敏感数据进行标记继而跟踪标记数据在程序中的传播检测系统安全。污点分析可以有效地检测该问题污点分析,首先要识别引入敏感数据的接口(source,污点源)并进行污点标记,如果被标记的变量又通过程序依赖关系传播了给其它变量,那么根据相关传播规则继续标记对应的变量,变量都将会被标记,当被标记的变量到达信息泄露的位置(sink,污点汇聚点)时,则根据对应的安全策略进行检测。

二、“插桩”式优劣分析

(一)“插桩”式优势总结

1.基于业务调用上下文进行分析无需重放,检测效率较高;

2.可获取更多的应用程序信息,因此发现的安全漏洞既可定位到代码行,还可以得到完整的请求和响应信息,完整的数据流和堆栈信息,便于定位、修复和验证安全漏洞;

3.检测逻辑无需重放请求,可对防重放逻辑做测试(支持测试AJAX页面、CSRF Token页面、验证码页面、API孤链、POST表单请求等环境)。

4.支持第三方组件管理、硬编码信息、弱加密算法等检测;

5.基于请求、代码、数据流、控制流综合分析判断漏洞,漏洞测试准确性高,误报率极低。

(二)“插桩”式略势总结

1.无法解决逻辑漏洞、越权漏洞等业务风险问题,对客户端的漏洞覆盖(XSS)支持不完善;

2.Agent方式对于应用侵入性较强,可能会改变业务原本逻辑,且需要在关键方法、函数进行挂钩Hook操作,会直接影响应用性能;

3.开发语言不同、框架不一致、系统版本不统一、JDK版本不同,集成适配成本较高,可能会导致应用系统崩溃或HooK点不足导致的漏洞未检出;

4.Agent与业务是紧耦合的,需要在每台应用服务器上部署对应版本及语言框架的Agent 且每次更新都需要重启WebServer,使用成本较高;

5.污点传播技术仅靠调用关系做验证,无法保证漏洞的准确性;

6.只能在具有虚拟运行时环境的语言上执行,例如Java,C#,Python和NodeJS。它不支持C,C ++和Golang等语言。

三、“插桩”式技术阶段对应用影响

(一)性能影响

1.动态Hook带来的性能问题

Agent在hook的方法执行前后进行数据获取,存在若干次函数调用,类似于在免费停车场的入口安装了收费点,停车前后需要等待开门才能通过,导致响应时间变长、内存占用率增加、cpu使用率增加,其中响应时间更为明显。

2.污点传播技术带来的性能问题

由于需要在内存中维护污点数据,因此会占用一定的内存资源;在构建传播路径时,需要根据通过污点匹配算法进行判断,因此需要占用CPU计算资源。

(二)安全影响

1.动态Hook技术可能带来的安全问题(这些安全问题并不是技术本身的问题,而是技术没有被正确、合理的使用所导致的)

(1)数据安全

Agent以AOP方式插入应用方法前后,获取方法、方法的参数、返回值等,可以直接操作数据库(盗取数据、删除数据等)。

(2)系统安全

Agent直接在应用上运行,可直接执行本地命令等。

(3)Dos问题

Agent如果未正确处理hook的方法,会导致内存溢出、服务崩溃等问题,导致DOS,如:String类的replace方法在logging包里大量使用,如果agent本身通过logging打印日志且hook了replace方法,可能导致死循环的出现,该问题可通过正确的处理replace方法进行规避。

(4)应用异常响应

如果Agent获取了IO流/文件流等内容 ,且未在读取流后插入新的流,会导致应用本身获取流时读取不到数据,产生异常。

2.污点传播阶段带来的安全问题

污点传播阶段对应用本身的安全没有影响。

总结:数据安全和系统安全两类问题属于“信任”类问题,虽然不能直接获取源代码,但也获取了数据库及本地命令权限,测试环境中数据不能外发,且数据多为脱敏数据或自造数据,安全相对可控;Dos问题和应用异常响应两类问题属于故障点积累的过程,只有经过大量不同环境的测试,才能最大程度的保障应用自身的稳定,并检测出漏洞。

插桩 java_“插桩”式技术相关推荐

  1. 基桩静荷载测试数据分析软件,静荷载基桩检测原理及应用技术

    原标题:静荷载基桩检测原理及应用技术 一.前言 桩基检测方法主要有静载试验.钻芯.低应变.高应变.声波透射法等.静载试验在确定单桩极限承载力方面,是目前最为准确.可靠的检验方法.静荷载试验堆载及安装示 ...

  2. cfg桩设备型号_试桩、试验桩、工程桩是一回事吗?

    本文以问答为线索,讲述CFG桩技术与造价的融合,以及商务合同签订的相关事项.内容适用于山东地区,其他可做参考. 第一篇 问 答 问:试桩.试验桩.工程桩是一回事吗? 答:不是一回事. 1.试桩:是为设 ...

  3. 多重插补 均值插补_Feature Engineering Part-1均值/中位数插补。

    多重插补 均值插补 Understanding the Mean /Median Imputation and Implementation using feature-engine-.! 了解使用特 ...

  4. 沉浸式技术immersive technology

    1. 沉浸式技术immersive technology,也就是我们通常所说的VR(virtual reality) immersive的释义(of a computer display or sys ...

  5. 大流行后的数据中心非接触式技术

    冠状病毒大流行和COVID-19后的"新常态"促进了非接触式技术的大规模发展,并使其比以往任何时候都更加无处不在,无论是在数据中心内或外.由于这项技术对数据中心产生了新的和不断增长 ...

  6. 1.13 南京站 | 2022 开年 Serverless 沉浸式技术实践营开始报名

    云原生浪潮下,Serverless 正在全面落地.继​​​「云原生 Serverless 技术实践营」广州站​火热收官,2022 年,阿里云 Serverless 团队开年巨献,把 "沉浸式 ...

  7. 从困在系统的外卖骑手,看初露端倪的赛博朋克式“技术控制”

    从困在系统的外卖骑手,看初露端倪的赛博朋克式"技术控制" 以平台算法左右外卖骑手,赛博朋克式的控制终究会到来吗? 文/王吉伟 (全文约5500字,阅读时间10分钟,建议先收藏再阅读 ...

  8. 警察规范执法案例_警察改革沉浸式技术可以改变执法方式

    警察规范执法案例 Whenever a cop car pulls up beside or behind me while driving, I get nervous. My mouth beco ...

  9. 当飞跃式技术遇上无界er,12.28 第12期 MIXLAB上海线下聚会

    不知何时, 凌晨十二点已成习惯: 不知何地, 键盘敲击已是夜的掌控: 不知何人, 路走向了上海的夜: 昏暗的霓虹灯, 能指引前方吗? 我黑色的眼,在黑色的夜里, 能找到我的那束光明吗? 也许无界的黑色 ...

  10. 双向链表的前插法和后插法创建

    根据结点插入位置的不同,链表的创建方法可分为前插法和后插法 前插法 前插法是通过将新节点逐个插入链表的头部(头节点之后)来创建链表,每次申请一个新节点,读入相应的数据元素值,然后将新节点插入到头节点之 ...

最新文章

  1. iOS评论App----常用时间的处理
  2. 【Android FFMPEG 开发】FFMPEG ANativeWindow 原生绘制 ( Java 层获取 Surface | 传递画布到本地 | 创建 ANativeWindow )
  3. Lucene学习总结之四:Lucene索引过程分析
  4. esp8266电池供电方案_硬核干货!十大5G基站电源改造方案
  5. diff命令两个服务器文件,linux 比较两个文件夹不同 (diff命令, md5列表)
  6. pymol怎么做底物口袋表面_汽车表面有划痕怎么办?建议大家这样做,自己动手就解决...
  7. 查看cics 运行状态
  8. oracle 树形结构表,树结构表递归查询在ORACLE和MSSQL中的实现方法
  9. VM Depot 镜像新增系列III – 社交媒体,内容管理 与 项目协同系统
  10. Flutter 移动端屏幕适配方案和制作
  11. java计算机毕业设计幼儿园管理系统源码+数据库+系统+lw文档+部署
  12. 大龄单身,这些人真作。
  13. line划线计算机图像学,《计算机图形学基础》OpenGL中点画线法画直线(同时支持k1和k1的情况)...
  14. 外贸常用术语_常用外贸术语大全
  15. OpenCV实践之路——方形图片对角线切割
  16. 联考事业单位计算机类面试,2018年5.26事业单位联考E类常见面试题(下)
  17. Docker-- 什么是Docker和Docker的基本知识
  18. stm32的DAC输出
  19. 【Java】打包工具
  20. android 横向滚动 导航,仿今日头条横向滚动导航栏--原生js

热门文章

  1. ssd1306.py
  2. (hightopo)学习笔记(1)
  3. TM1640操作源码--LED驱动IC
  4. windows系统ping端口及利用telnet命令Ping 端口
  5. 3_kicad 5.0_PCB计算器(稳压器,布线宽度,电气间距,传输线路,RF衰减器,颜色代码,电路板类别)...
  6. 苹果手机连接服务器传输文件,iOS 设备实现wifi局域网传输文件到iphone
  7. 程序员PDF书籍下载
  8. axure操作回复_Axure8.0基础教程(21-30)新手必须掌握的基础操作
  9. 使用BUSHOUND抓包USB数据视频分析
  10. java docx4j 目录,docx4j项目(包括jar包、javadoc文档、源码及示例)