Skip to main content
QUICK REVIEW

[论文解读] Sound and Complete Runtime Security Monitor for Application Software

Muhammad Taimoor Khan, Dimitrios Serpanos|arXiv (Cornell University)|Jan 17, 2016
Parallel Computing and Optimization Techniques参考文献 17被引用 3
一句话总结

本文提出了一种高效且完备的运行时安全监控器,通过在单峰二阶逻辑和事件演算中正式验证应用程序执行过程与规格说明的一致性,实现对已知和未知网络攻击的检测。该监控器通过利用模块化、抽象化的规格说明和运行时验证,确保零误报并具备高效率,适用于实时系统和遗留系统。

ABSTRACT

Conventional approaches for ensuring the security of application software at run-time, through monitoring, either produce (high rates of) false alarms (e.g. intrusion detection systems) or limit application performance (e.g. run-time verification). We present a runtime security monitor that detects both known and unknown cyber attacks by checking that the run-time behavior of the application is consistent with the expected behavior modeled in application specification. This is crucial because, even if the implementation is consistent with its specification, the application may still be vulnerable due to flaws in the supporting infrastructure (e.g. the language runtime system, libraries and operating system). This runtime security monitor is sound and complete, eliminating false alarms, as well as efficient, so that it does not limit runtime application performance and so that it supports real-time systems. The security monitor takes as input the application specification and the application implementation, which may be expressed in different languages. The specification language of the application software is formalized based on monadic second order logic and event calculus interpreted over algebraic data structures. This language allows us to express behavior of an application at any desired (and practical) level of abstraction as well as with high degree of modularity. The security monitor detects every attack by systematically comparing the application execution and specification behaviors at runtime, even though they operate at two different levels of abstraction. We define the denotational semantics of the specification language and prove that the monitor is sound and complete. Furthermore, the monitor is efficient because of the modular application specification at appropriate level(s) of abstraction.

研究动机与目标

  • 解决传统运行时监控器因误报率高或性能开销大而存在的局限性。
  • 通过将运行时行为与形式化应用程序规格说明进行比对,实现对已知和未知网络攻击的检测。
  • 提供一种既可靠(无误报)又完备(检测所有与规格说明的偏差)且不降低系统性能的解决方案。
  • 通过独立于实现语言和抽象层次的方式,支持遗留系统和现代系统。
  • 通过基于规格说明的攻击计划建模,实现对攻击的特征刻画,从而支持有效防御。

提出的方法

  • 使用单峰二阶逻辑和事件演算对应用程序规格说明进行形式化,处理代数数据结构。
  • 为规格说明语言定义指称语义,以支持对系统行为的形式化推理。
  • 实现一个运行时监控器,实时将应用程序的执行轨迹与规格说明进行比对。
  • 使用抽象关系(状态、值、环境)将具体执行状态与抽象规格说明状态进行比较。
  • 应用假设/保证推理,通过形式化验证证明监控器在理论上的可靠性和完备性。
  • 在适当的抽象层次上利用模块化规格说明,以确保效率和可扩展性。

实验结果

研究问题

  • RQ1能否设计一种运行时安全监控器,在不产生误报的前提下,既可靠又完备地检测应用程序规格说明的偏离?
  • RQ2如何利用单峰二阶逻辑和事件演算表达的形式化规格说明,在多个抽象层次上建模应用程序行为?
  • RQ3哪些机制能够实现在不同实现与规格说明抽象层次之间的高效运行时验证?
  • RQ4监控器如何通过将执行行为与形式化规格说明进行比对,检测未知攻击?
  • RQ5该监控器是否可在不降低性能的前提下应用于遗留系统和现代系统?

主要发现

  • 所提出的监控器实现了可靠性和完备性,确保无误报并能检测所有与指定行为的偏差。
  • 通过在适当抽象层次上使用模块化规格说明,监控器运行高效,避免了性能瓶颈。
  • 形式化规格说明语言支持对已知和潜在攻击计划的建模,有助于攻击特征刻画和有效防御。
  • 该监控器适用于遗留系统和新系统,且不依赖于实现语言。
  • 基于假设/保证契约的证明策略为自动监控器生成和半自动验证奠定了基础。
  • 作者计划在 Coq 中机械化证明,以构建一个可复用、形式化验证的通用运行时监控器库。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。