• Proj THUDBFuzz Paper Reading: 南京大学软件分析课程2020, 13 Static Analysis for Security


    Information Flow Security

    跟踪程序中的信息流,确保全部信息都妥帖处理了
    更关注信息传递。

    与指针分析的关系

    它与指针分析有相似之处,所以有taint analysis方法

    Security Level

    明显,程序中的变量(信息)有不同的安全等级,比如two-level policy将单个变量划分为high security或者low security。
    变量的安全等级(security level)也能建模为格。

    Information Flow Policy

    限制不同Security levels间信息的传递

    Noninterference Policy

    高安全变量不能干扰到低安全变量的值,实践上,观察低安全变量应该无法推测高安全变量的任何信息。也即X_low_security_level=y_high_security_level * 10这种都不行。

    Confidentiality and Integrity

    Confidentiality: 秘密不应该被泄露
    Integrity: 关键信息不应该被篡改,如Command injection, SQL注入,XSS攻击


    Explicit Flow and Covert Channels

    explicit flow: 通过拷贝关系传递的信息
    implicit flow: 被high security variable影响的信息,注意有时通过运行时间或者抛出异常(比如数组越界)也能泄漏一部分信息

    课件将能够泄漏信息的渠道称之为channels
    Channels that exploit a mechanism whose primary purpose is not information transfer are called covert channels
    示例:

    由于Explicit flow泄漏的信息更多,所以课件主要关注Explicit Flow

    Taint Analysis

    Taint Analysis将数据分为两种,一种是带标签的成为Tainted data,剩下的是untainted data。发送或者确定tainted data的方法或者程序通常被称为sources。而一些令人感兴趣的程序点被称为sinks。
    tainted data通过追踪从sources到sinks路径上的标签/被explicit flow影响到tainted data对应的变量来确定信息是否泄漏。



  • 相关阅读:
    读本地json的方法
    告诉你如何应对HR索要薪资证明!
    函数声明与函数表达式
    原型的动态性
    工作实际需求andjs进阶图书
    表单元素操作,button,点击下载按钮实现-长知识
    grunt注意要点
    重新认识块级元素--DIV
    GO语言学习:变量间赋值
    GO语言学习:单通道
  • 原文地址:https://www.cnblogs.com/xuesu/p/14340888.html
Copyright © 2020-2023  润新知