zoukankan      html  css  js  c++  java
  • 时序安全属性检测(一)

          程序的“时序安全属性(temporal safety properties)”是描述“某些坏的事情不会发生”的一类属性.通常,时序安全属性规定了一系列有序的事件,要求在程序中不能发生这些事件.在程序中,它表现为一系列先后有序的操作(通常是和安全相关的操作,至少有一个是这样的,不然不会发生安全问题)。

          例子:

          下图展示了一个时序安全属性的例子。在某进程调用系统调用chroot限制其访问在一子文件系统后,必须、立即紧跟一个对chdir的调用,更改进程的工作目录到这个子文件系统中。如果没有这个调用,如b所示,则事实上当前目录仍然是/var/ftp,某恶意的用户有可能请求程序打开文件"。。/。。/etc/passwd"(这里,输入../..总是显示网站的名称,用中文的代替了)并获得成功,这样就对系统的安全造成了威胁。

          自然地,可以想到,对时序安全属性的刻画,可以采用有限状态自动机FSA(Finite State Automaton)表示,如图中a所示,每个圆圈代表一个状态,双圆圈表示进入了危险状态,这应该是被避免的,也是我们检测的内容,边上的标志表示执行的操作,系统通过执行相应的操作状态发生改变。

    实际的系统中,通常会有很多和时序有关的安全属性,而且涉及很多系统调用和变量的变化,因而得到的FSA也是很庞大的(即所谓的状态爆炸)。这些调用之间又是过程间调用,调用的关系可能是非常复杂的,以至于超出了我们人工控制的范围。因此,如果靠人工检测一个系统的时序安全属性,将是十分低效、辛苦的,正确性也得不到保证。

    由自动机理论,知FSA可以用正则文法来表达,这样为我们检测时序安全属性提供了编程基础。

  • 相关阅读:
    Codeforces Round #513解题报告(A~E)By cellur925
    Luogu P1463 [POI2002][HAOI2007]反素数【数论/dfs】By cellur925
    NOIp2016 蚯蚓 【二叉堆/答案单调性】By cellur925
    Luogu P4139 上帝与集合的正确用法【扩展欧拉定理】By cellur925
    hdu 4704 Sum【组合数学/费马小定理/大数取模】By cellur925
    poj 1723 Soldiers【中位数】By cellur925
    MyBatis 简介
    对象导航查询和OID查询(补)
    Hibernate查询方式(补)
    Hibernate一级缓存(补)
  • 原文地址:https://www.cnblogs.com/njucslzh/p/1721636.html
Copyright © 2011-2022 走看看