南京大学【软件分析】13 Static Analysis for Security

news2024/12/23 1:43:43

文章目录

  • 1. Information Flow Security
  • 2. Confidentiality and Integrity
  • 3. Explicit Flows and Covert/Hidden Channels
  • 4. Taint Analysis
  • 污点分析案例

1. Information Flow Security

引起安全问题最主要的两大原因是:injection errors(2013-2019排名第一)、information leak(2013-2019排名第四)
来自:https://nvd.nist.gov/

可以把信息流简单的分成两类:高密级(high,如密码)、低密级(low,如一般性数据)
高密级的数据不能流向低密级
在这里插入图片描述

2. Confidentiality and Integrity

Confidentiality:保密性,防止信息泄露
Integrity:完整性,防止不可信的信息破坏(可信的)关键信息
在这里插入图片描述

x=readInput(); // untrusted
cmd="..."+x;
execute(cmd); // critical(trusted)

注入攻击违反了完整性,如:command injection、SQL injection、XSS attacks

保密性和完整性实际上是从不同的视角来认识信息流安全问题的,是一种双向的对称关系。这种对偶带来的好处时,可以用一种技术问题解决这两个问题。

  • 保密性是对的保护,低密级数据可以流向高密级
  • 机密性是对的保护,高密级数据可以流向低密级
    在这里插入图片描述

3. Explicit Flows and Covert/Hidden Channels

Explicit Flows and Covert/Hidden Channels:显示流和隐藏信道
信息流包含数据流:可以把直接的赋值语句理解为数据流,如下例,publicL和secretH之间没有数据流,但有信息流(可以通过publicL推断出secretH是否大于0),这种信息流也被称为隐式信息流implicit flow

secretH=getSecret();
if(secretH<0)
	publicL=1;
else 
	publicL=0;

一些信息泄露的例子:
尤其是最后一个例子,可推测secret是否小于0,如果secret小于0,会抛出异常
在这里插入图片描述
信道channels:计算机系统中,传递信息、发送信息的机制
隐藏信道Covert/Hidden Channels:如果该机制本身不是用来传递信息流的,但它仍把信息传递出去了,就称它为隐藏信道。
在这里插入图片描述
相比于显式信息流,隐藏信道难以寻找,但同时隐藏信道携带的信息也较少,泄漏的信息有限,显式信息流携带的信息更多。如下图,左侧泄漏32位信息,右侧泄漏1bit信息。
在这里插入图片描述

4. Taint Analysis

简单解释污点分析:给敏感数据打上标记,跟踪这些被标记的数据(污点数据),是否到达了敏感操作点(sink),或调用敏感操作的指针会不会指向污点数据(类似于指针分析)。
污点分析中常把数据分为两类:

  • 感兴趣的数据tainted data:通常把他们做一个标记,这类数据称为污点数据,在污点分析中追踪这类数据
  • 其他数据untainted data:不关心的数据

sources:污点数据tainted data的来源。 在实践中,tainted data通常来自方法/API的返回值,把这些数据打上taint标记。
sinks:通常是某些敏感方法,检查tainted data是否作为参数传入了这些敏感方法。

在这里插入图片描述

污点分析与指针分析的共同之处:
污点分析的本质是跟踪程序中的污点分析,指针分析的本质是跟踪程序中的抽象对象。

  • 可以把污点数据看作对象
  • 可以把sources看作allocation sites
  • 借助指针分析传播污点数据

形式化表示:

污点分析的输入输出:
input:

  • source:source方法集合(调用这些方法返回污点数据)
  • sink:sink方法集合(流到这里的污点数据违反了安全策略)
    output
  • TaintFlows:污点数据和sink方法对。<污点数据,sink方法>。 < t i , m > ∈ T a i n t F l o w s <t_i, m> \in TaintFlows <ti,m>∈TaintFlows表示i处的污点数据流到了sink方法m中。

传播规则
在这里插入图片描述
处理source和sink的规则
在这里插入图片描述

污点分析案例

和指针分析结合的好处:很好的处理了别名问题,并且可以追踪信息流的流向。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1050459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Disucz插件-免费最全Disucz插件大全

在网络世界里&#xff0c;拥有一个活跃并充满吸引力的社区论坛是许多网站管理员和品牌经营者的梦想。然而&#xff0c;要让一个论坛充满活力、吸引大量用户&#xff0c;需要大量的内容。这就是为什么许多人转向Disucz插件的原因。Disucz插件不仅可以帮助您创建一个互动性强大的…

数据响应式原理

面试题&#xff1a;请阐述vue2响应式原理 vue官方阐述&#xff1a;https://cn.vuejs.org/v2/guide/reactivity.html 响应式数据的最终目标&#xff0c;是当对象本身或对象属性发生变化时&#xff0c;将会运行一些函数&#xff0c;最常见的就是render函数。 在具体实现上&#x…

基于SpringBoot的飘香水果购物网站

目录 前言 一、技术栈 二、系统功能介绍 水果信息管理 减积分管理 会员购买订单管理 首页 水果 购买水果订单管理 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的电商平台以及购物…

crypto:大帝的密码武器

题目 下载zip之后可得到提示文本 结合题目名和文本提示可知&#xff0c;为凯撒密码 利用脚本&#xff0c;爆破位移的位数 str1 FRPHEVGL str2 str1.lower() num 1 for i in range(26):print("{:<2d}".format(num),end )for j in str2:if(ord(j)num > or…

【QT开发(6)】0926-QT 中加入 fastDDS 通信库的程序使用说明

在智能驾驶中&#xff0c;DDS有可能被广泛使用&#xff0c;因此推出这篇说明教程。 1、基于【QT开发&#xff08;5&#xff09;】教程的项目文档进行开发 2、安装DDS 查看《【eProsima Fast DDS&#xff08;1&#xff09;】安装eProsima Fast DDS》 至少安装: foonathan_m…

idea Springboot 高校科研资源共享系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 springboot 高校科研资源共享系统是一套完善的信息系统&#xff0c;结合springboot框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用springboot框架&#xff08;MVC模式开发&#xff09;&#xff0c; 系统具有完整的源代码和数据…

spring源码解析——IOC-开启 bean 的加载

概述 前面我们已经分析了spring对于xml配置文件的解析&#xff0c;将分析的信息组装成 BeanDefinition&#xff0c;并将其保存注册到相应的 BeanDefinitionRegistry 中。至此&#xff0c;Spring IOC 的初始化工作完成。接下来我们将对bean的加载进行探索。 BeanFactory 当我…

WinPcap4.1.3安装失败解决方法,A newer version of winpcap...

WinPcap4.1.3安装失败解决方法&#xff0c;A newer version of winpcap… 如图所示&#xff0c;提示本地安装有更高版本的WinPcap时&#xff0c;按如下操作即可解决。 找到相应文件&#xff0c;扩展名修改成如下&#xff1a; C:\Windows\SysWOW64 的wpcap.dll改成 wpcap.dll.…

微服务治理:构建强大、健壮的分布式系统

文章目录 什么是微服务治理&#xff1f;微服务治理的挑战1. 服务注册和发现2. 负载均衡3. 故障处理4. 安全性5. 监控和日志记录 构建强大的微服务治理1. 服务网格2. 服务注册和发现3. 负载均衡4. 故障处理5. 安全性6. 监控和日志记录 微服务治理的未来 &#x1f389;欢迎来到架…

ACGAN

CGAN通过在生成器和判别器中均使用标签信息进行训练&#xff0c;不仅能产生特定标签的数据&#xff0c;还能够提高生成数据的质量&#xff1b;SGAN&#xff08;Semi-Supervised GAN)通过使判别器/分类器重建标签信息来提高生成数据的质量。既然这两种思路都可以提高生成数据的质…

Oracle - 多区间按权重取值逻辑

啰嗦: 其实很早就遇到过类似问题&#xff0c;也设想过&#xff0c;不过一致没实际业务需求&#xff0c;也就耽搁了&#xff1b;最近有业务提到了&#xff0c;和同事讨论&#xff0c;各有想法&#xff0c;所以先把逻辑整理出来&#xff0c;希望有更好更优的解决方案&#xff1b;…

传统遗产与技术相遇,古彝文的数字化与保护

古彝文是中国彝族的传统文字&#xff0c;具有悠久的历史和文化价值。然而&#xff0c;由于古彝文的形状复杂且没有标准化的字符集&#xff0c;对其进行文字识别一直是一项具有挑战性的任务。本文介绍了古彝文合合信息的文字识别技术&#xff0c;旨在提高古彝文的自动识别准确性…

linux 和 windows的換行符不兼容問題

linux 和 windows的換行符&#xff1a; 1.vim 模式下&#xff0c;執行命令&#xff1a; :set ffunix idea中設置code style

从零手搓一个【消息队列】项目设计、需求分析、模块划分、目录结构

文章目录 一、需求分析1, 项目简介2, BrokerServer 核心概念3, BrokerServer 提供的核心 API4, 交换机类型5, 持久化存储6, 网络通信7, TCP 连接的复用8, 需求分析小结 二、模块划分三、目录结构 提示&#xff1a;是正在努力进步的小菜鸟一只&#xff0c;如有大佬发现文章欠佳之…

Linux账户组管理及权限练习

1.使用id命令查看root账户信息 [rootserver ~]# id root 用户id0(root) 组id0(root) 组0(root) 2.使用id命令查看自己的普通账户信息 [rootserver ~]# id kxy 用户id1000(kxy) 组id1000(kxy) 组1000(kxy),10(wheel) 3.新建账户test1&#xff0c;并查看账户信息&#xff1a; [ro…

安装python扩展库

博主&#xff1a;命运之光 专栏&#xff1a;Python程序设计 Python扩展库安装 Python提供了丰富的标准库&#xff08;不需要安装&#xff09; &#xff0c;还支持大量的第三方扩展库&#xff0c;它们数量众多、功能强大、涉及面广、使用方便&#xff0c;得到各行业领域工程师的…

千问的大模型KnowHow

卷友们好&#xff0c;我是rumor。 通义千问昨天放出了14b参数的模型&#xff0c;还有一份比较详尽的技术报告&#xff0c;包含作者们训练8个模型的宝贵经验。 同时他们开源的13B比起开源的SOTA也有不少提升&#xff1a; 今天我们就来一起白嫖&#xff0c;更多细节请移步原文&am…

Mybatis 日志(Apache Commons Logging)

之前我们介绍了使用JDK Log打印Mybatis运行时的日志&#xff1b;本篇我们介绍使用Apache Commons Logging打印Mybatis运行时的日志。 如何您对Mybatis中使用JDK Log不太了解&#xff0c;可以参考&#xff1a; Mybatis 日志(JDK Log)https://blog.csdn.net/m1729339749/articl…

上海市小机灵数学比赛回顾和五年级1-15届真题和答案学习资料

从2017年到现在&#xff0c;之前卷得非常厉害的上海市一系列与升学挂钩的竞赛如“小机灵杯、走美杯、希望杯、中环杯”等比赛都成为了竞赛历史的一部分。 尽管教育部门明确规定&#xff0c;学校不得将相关比赛的成绩作为学生评价和选拔的要素&#xff0c;但是许多家长仍按对于…

【STM32基础 CubeMX】从0带你点灯

文章目录 前言一、GPIO的概念二、CubeMX配置GPIO2.1 基础配置2.2 GPIO配置 三、点灯代码讲解3.1 cubemx生成的代码3.2 1个库函数 四、LED闪烁总结 前言 一、GPIO的概念 STM32是一系列微控制器芯片的品牌&#xff0c;它们用于控制各种电子设备。其中的GPIO是通用输入/输出端口的…