• BiaoDoo首页
  • 自主产品
       自主产品
       测试工具
       源码安全/质量测试云平台
       测试用例开发工具
       软件测试态势分析平台
       开源软件安全审计系统
       软件造价
       软件造价概算平台
       运维产品
       应用源码监测系统
       教学实训平台
       软件测试实验室平台
  • Micro Focus产品代理
       Micro Focus产品代理
       Fortify SCA
       Webinspect
       LoadRunner
       ALM/QualityCenter
       MF UFT
       MF Mobile Center
       Diagnostics
  • 其它产品
       其它产品
       AppScan(IBM)
       Klockwork Insight
       Coverity静态分析
       Black Duck--黑鸭软件成分分析
  • 安全产品
       安全产品
       U盾
  • 工程咨询
       工程咨询
       IT规划咨询
       软件造价概算
       软件架构评估
       信息工程监理
       测试体系咨询
  • 软件测试
       软件测试
       工程验收测试
       压力测试与优化
       产品认证测试
       专题测试
       医疗设备软件测试
       摇号软件测试
       科研项目验收
       软件故障诊断
       委托客制测试
       软件登记测试
       科技成果鉴定
       国产软件适配测试
  • 安全测试
       安全测试
       软件安全测试
       源码安全测试
       等级保护测评
       渗透测试
       风险评估
  • 企业服务
       企业服务
       系统保障与救援
       大数据服务
       ICP证书办理
       软件著作权
       首版次申报
  • 教育培训
       教育培训
       ISTQB认证
       软件产品检验员
       软件就业培训
       校企合作
       信息安全培训
  • 认证中心
       认证中心
       软件企业认证
       质量安全体系认证
       高新技术企业认证
       企业能力认证
       节能与绿色评价服务
       其它系统认证
  • 资讯中心
       资讯中心
       最新资讯
       政策法规
       技术方案
  • 开源测试 · 青云渡
       开源测试 · 青云渡
       技术文摘
       BiaoDoo开源
       常用工具
  • 全国网络
       全国网络
  • BiaoDoo
       BiaoDoo
       软件管控领导者
       合作伙伴
       FAQ
       加入我们
       招聘信息
       合作加盟
       联系我们
  • 测试外包
       测试外包
       离岸测试外包
       测试人才外协
  • 开源测试 · 青云渡

    Java RASP技术详细介绍及应用

    0x01 什么是 RASP ?

    .

    RASP,即Runtime Application SelfProtection,实时 应用自我保护。

    RASP实现原理示意图

    .

    0x02 RASP的实现方案 (JAVA web)

    Filter

    · 开发难度相对低

    · 漏洞覆盖面小

    · 对性能影响大

    · 推广难度大

    .

    AOP

    · 编译期(静态代理)

    · 字节码加载前(Instrumentation)

    · 字节码后(动态代理)

    · 开发难度高

    · 漏洞覆盖面广

    · 对性能影响小

    · 推广难度低

    .

    0x03 案例分析

    Java Open Rasp

    .

    RASP使用示例

    .

    RASP背景知识

    Instrumentation· 使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent), 用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。· 有了这样的功能,开发者就可以实现更为灵活的运行时虚拟机监控和 Java 类操作 了,这样的特性实际上提供了一种虚拟机级别支持的 AOP 实现方式,使得开发者 无需对 JDK 做任何升级和改动,就可以实现某些 AOP 的功能了。· 编译后,将"-javaagent:/path/agent.jar"添加至JVM的启动参数ASM· ASM是一个通用的Java字节码操作和分析框架。· 它可以用于直接以二进制形式修改现有类或动态生成类。· 提供通用的转换和分析算法可以轻松组合定制复杂的转换和代码分析工具。· ASM提供与其他字节码框架类似的功能,但它的重点是简单的使用和性能。 · 因为它的设计和实现尽可能小且尽可能快,所以它使它在动态系统中非常有吸引力。

    RASP适用场景

    漏洞监测

    灰盒测试

    .

    RASP优点和缺点

    RASP优点

    · 对应用开发来说无感知· 漏洞发现准确率高· 实时发现与阻断· 应用场景多· 推广容易

    RASP缺点

    · 对性能有5%-10%的影响· 开发难度高

    1、熟练使用ASM框架

    2、熟悉JVM字节码指令

    3、深入分析漏洞原理,找准切点

    4、了解容器原理,找准切点· 要不断运营规则· 更新规则需重启容器

    RASP参考资料

    《 Java中的RASP实现》http://mp.weixin.qq.com/s/Qk_0ZxlWqAn2fAn8m2kObQ

    《什么是实时应用程序自我保护(RASP)?》 https://segmentfault.com/a/1190000004160109

    《Rasp技术介绍与实现》http://www.jianshu.com/p/53b50edb4a04 《聊聊最近挺热的RASP技术》https://mp.weixin.qq.com/s/lhBdm3_jHZCWK5xVuvg2RQ

    https://github.com/xbeark/javaopenrasp http://asm.ow2.org/

    《AOP 的利器:ASM 3.0 介绍》https://www.ibm.com/developerworks/cn/java/j-lo-asm30/

    《Instrumentation 新功能》

    https://www.ibm.com/developerworks/cn/java/j-lojse61/index.html

    【转载请注明 CE安全网 www.cesafe.com】