软件分析13 指针分析的应用-Security
信息流安全
Security
在敌人/威胁存在的情况下达成一些目的
Information flow
变量\(x\)的信息传递到变量\(y\), 就说存在一个\(x\to y\)的信息流
Information flow Security
如何联系信息流与安全这两个概念呢?回顾安全的定义,即要将程序变量划分安全等级,控制不同等级之间的信息流来防止威胁对程序产生影响。
这种等级实际上形成格
Policy
为了保证信息流安全,在不同应用场景下有不同的Policy.
比如:
这种Policy下,只允许以下几种信息流
又比如安全方面的两大目的:保密性和完整性.分别只允许以下信息流
保密性和完整性定义如下:
显式流和隐藏信道
直接赋值产生的信息流称为显式流。通常特点是:易于发现且泄露信息量大
与之相对的称为隐藏信道
特点是很难发现(几乎无法避免),但泄露信息量小
污点分析
鉴于显式流和隐藏信道的特点,找出显式流中的安全问题操作性较强也效率较高。污点分析就是为了达成这一目的
规范定义:
简单来讲, 就是将一些产生敏感数据的方法标记为source,其产生的数据称为tainted data.通过指针分析观察其流向,如果流入敏感方法sinks.就报告出来
保密性和完整性本质上都是对敏感信息流的监测,因此都可以用污点分析的方法进行。
相比指针分析只多了上面两个内容(call有更新,等21年slides)
存在的问题
事实上,污点分析只能分析通过指针流动的信息流.而对于一些特定的语法,虽然其也会流通信息但无法被指针分析捕获。
比如
这就要求污点分析需要再附加对具有特定语义的语句的监测

浙公网安备 33010602011771号