AOP技术及其在软件安全中的应用

AOP技术及其在软件安全中的应用

论文摘要

随着软件产业的迅速发展和网络的日益普及,软件产品的安全问题受到越来越多的关注。分析并设计好的研究方法对于提高软件的安全性具有重要意义。代码攻击与代码保护是软件安全领域中两个对立的方面。一方面,一些源代码(如Java字节码)由于自身的特点,很难抵御逆向工程攻击;另一方面,对于代码攻击的研究也从反面促进软件安全技术的发展。由于现代软件的复杂性和开放性,安全需求的实现变得越来越困难。事实表明大多数软件安全问题都是因为采用传统的软件开发过程而产生的,而不是缺乏安全领域的知识和经验。因此,找到一种好的针对安全需求的开发方法也是非常有意义的。本文采用面向方面编程(AOP)的原理和技术,针对代码攻击、代码保护和安全软件工程这三类重要的涉及软件安全的主题进行了深入研究和分析,并取得了如下的研究成果:1.提出了一种混淆代码攻击的方法。在这种攻击方法中,所有的操作都是在字节码级别上完成的,而不必获取目标程序的源代码,从而使得代码混淆失去意义。事实表明这种攻击方法非常直接且成本低廉,但却行之有效。同时,我们还提出了若干建议以抵抗这种新的攻击。2.发现了加密技术在保护J2EE应用时存在的两个问题,即编译失效问题和服务器检测问题。一个调用加密字节码的类在进行编译时会引起编译失效问题,具体表现为编译期异常;服务器在加载加密类之前会对其字节码文件格式进行检查,这将引起服务器运行期异常,称为服务器检测问题。3.编译失效问题和服务器检测问题的本质都是由于被调用的字节码文件因为加密而遭到破坏引起的。为了解决这两个问题,我们提出了密文封装技术,它可以构造出一个合法的字节码密文文件。4.提出了一个面向方面的安全框架。我们以访问控制为例,提出了一个解决代码纠缠和扩散的方法。通过对这种方法的提炼和泛化,包括安全领域模型泛化、部署泛化和安全机制的泛化,最后导出了一个更为通用的旨在解决所有安全领域需求的框架。5.提出了一个软件工程的最佳实践方案,它明确了软件开发过程中安全专家和一般开发人员的职责分工,即:涉及安全逻辑领域的部分由安全专家来实现,而业务逻辑部分可仍由开发人员来实现,最后利用AOP技术对这两部分领域实现进行绑定。这种方法增强了软件开发过程的可控性,降低了开发风险和成本。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究意义
  • 1.2 研究背景
  • 1.2.1 代码攻击
  • 1.2.2 混淆
  • 1.2.2.1 词法变换
  • 1.2.2.2 控制流变换
  • 1.2.2.3 数据变换
  • 1.2.3 安全软件工程
  • 1.3 本论文的组织结构和主要研究成果
  • 第二章 AOP技术概述
  • 2.1 关注点(CONCERN)
  • 2.2 代码纠缠和扩散
  • 2.3 引入AOP
  • 2.3.1 开发过程
  • 2.3.2 语言规范
  • 2.4 AspectJ简介
  • 2.4.1 AspectJ中的横切
  • 2.4.1.1 动态横切
  • 2.4.1.2 静态横切
  • 2.4.2 横切元素
  • 2.4.2.1 连接点(Join point)
  • 2.4.2.2 切入点(Pointcut)
  • 2.4.2.3 通知(Advice)
  • 2.4.2.4 引用(Introduction)
  • 2.4.2.5 编译器声明(Compile-time declaration)
  • 2.4.2.6 方面(Aspect)
  • 2.5 编译
  • 2.5.1 编译一个或多个方面
  • 2.5.2 编入方面到jar中
  • 2.5.3 在加载时织入方面
  • 2.6 总结
  • 第三章 混淆代码攻击
  • 3.1 逆向工程的代码攻击
  • 3.2 混淆代码攻击现状
  • 3.3 基于AOP的混淆代码攻击
  • 3.3.1 方法概览
  • 3.3.2 定位方法和数据
  • 3.3.2.1 控制流跟踪
  • 3.3.2.2 数据流跟踪
  • 3.3.2.3 处理加密字符串
  • 3.3.3 修改方法行为
  • 3.4 实验
  • 3.5 抵抗这种攻击的建议
  • 3.5.1 排除连接点
  • 3.5.2 封装连接点
  • 3.6 总结
  • 第四章 Java源代码保护
  • 4.1 Java源代码保护现状
  • 4.1.1 本地编译
  • 4.1.2 代码隔离
  • 4.1.3 代码混淆
  • 4.1.4 数字水印
  • 4.1.5 加密技术
  • 4.1.5.1 ClassLoader加密技术
  • 4.1.5.2 JVMTI加密技术
  • 4.2 问题定义
  • 4.2.1 编译失效问题
  • 4.2.1.1 JSP页面的编译
  • 4.2.2 服务器检测问题
  • 4.3 解决方案
  • 4.3.1 预编译
  • 4.3.2 密文封装
  • 4.3.2.1 骨架类抽取
  • 4.3.2.2 密文隐藏
  • 4.4 总结
  • 第五章 安全软件工程
  • 5.1 应用程序安全的现状
  • 5.2 访问控制概述
  • 5.3 安全软件工程
  • 5.3.1 分解关注点
  • 5.3.2 安全机制的实现
  • 5.3.3 支持多种安全机制的框架
  • 5.4 使用AspectJ实现访问控制
  • 5.4.1 信息访问
  • 5.4.2 复用
  • 5.4.2.1 领域模型的泛化
  • 5.4.2.2 部署的泛化
  • 5.4.2.3 安全机制的泛化
  • 5.4.3 框架的实现
  • 5.5 讨论
  • 5.6 总结
  • 第六章 结束语
  • 6.1 本文的工作总结
  • 6.2 下一步工作
  • 附录 1 AspectJ Hello World
  • 附录 2 JAAS概述
  • 参考文献
  • 致谢
  • 攻读学位期间发表的学术论文目录
  • 攻读学位期间参与的科研项目
  • 相关论文文献

    • [1].基于AOP策略模式的实现机制[J]. 微型机与应用 2016(01)
    • [2].基于AOP的软件缺陷监测框架的设计与实现[J]. 电子设计工程 2017(16)
    • [3].基于AOP的工作流在信息管理系统中的应用[J]. 计算机与数字工程 2012(02)
    • [4].基于AOP的事务管理[J]. 计算机与信息技术 2010(Z1)
    • [5].基于AOP技术的软件性质监控框架[J]. 计算机科学 2010(03)
    • [6].基于AOP技术的统一身份验证模式的探讨与实现[J]. 仪器仪表用户 2010(04)
    • [7].基于AOP的软件体系结构适应性研究[J]. 微计算机信息 2008(03)
    • [8].AOP在地理信息服务平台日志系统中的应用[J]. 地理空间信息 2014(04)
    • [9].基于AOP的日志管理在高校学生管理系统中的设计与实现[J]. 昆明学院学报 2011(06)
    • [10].一种策略模式的AOP实现及应用[J]. 计算机应用与软件 2010(01)
    • [11].基于AOP的细粒度RBAC模型研究[J]. 电子设计工程 2011(18)
    • [12].基于AOP的面向对象程序的单元测试的应用[J]. 电子技术与软件工程 2017(09)
    • [13].基于AOP的异常处理研究与应用[J]. 计算机光盘软件与应用 2014(24)
    • [14].关于计算机编程思想与AOP编程思想的研究[J]. 电子技术与软件工程 2013(16)
    • [15].面向方面编程(AOP)在日志管理中的应用[J]. 硅谷 2011(20)
    • [16].一种支持动态演化的AOP框架[J]. 计算机工程 2012(19)
    • [17].基于AOP的细粒度RBAC模型的设计与实现[J]. 北京交通大学学报 2013(05)
    • [18].浅析一种新的软件设计方法AOP[J]. 信息与电脑(理论版) 2010(20)
    • [19].枸橼酸咖啡因治疗早产儿呼吸暂停(AOP)对患儿早期肺功能的影响探讨[J]. 齐齐哈尔医学院学报 2016(25)
    • [20].基于AOP理念的Struts2拦截器的研究与应用[J]. 电子设计工程 2010(01)
    • [21].AOP及其在数字档案馆系统中的应用[J]. 微计算机信息 2010(03)
    • [22].基于AOP和反射计算的动态自适应中间件[J]. 计算机系统应用 2010(01)
    • [23].自动售货机金钱管理系统中AOP框架设计与应用[J]. 计算机系统应用 2012(05)
    • [24].基于AOP的实时系统关注点分离方法[J]. 计算机工程与设计 2011(09)
    • [25].基于AOP的实时系统框架的设计与实现[J]. 浙江理工大学学报 2010(01)
    • [26].基于AOP的业务规则应用框架的研究与实现[J]. 计算机系统应用 2009(07)
    • [27].在AOP中使用标注改进日志功能的实现[J]. 计算机工程 2008(17)
    • [28].浅谈钢铁企业AOP技术水净化处理措施[J]. 中国新技术新产品 2012(02)
    • [29].基于AOP的信息管理系统的研究与实现[J]. 计算机应用与软件 2010(02)
    • [30].基于AOP的运行时验证中的冲突检测[J]. 软件学报 2011(06)

    标签:;  ;  ;  ;  

    AOP技术及其在软件安全中的应用
    下载Doc文档

    猜你喜欢