写点什么

污点分析是什么神奇的代码检查技术?

  • 2023-07-05
    广东
  • 本文字数:1502 字

    阅读完需:约 5 分钟

污点分析是什么神奇的代码检查技术?

HDC 期间可参与华为开发者大会 Check 新人抽奖活动,活动链接在文末。福利多多,快来参与!


作者:gentle_zhou

原文链接:污点分析是什么神奇的代码检查技术?-云社区-华为云


在代码检查领域,经常会被提及一个专业术语“污点分析”,对于一个刚接触的小伙伴来说会很困惑这是什么“高大上”的技术?为什么它会在整个软件开发生命周期里起到一个重要的作用呢?

本文尝试为大家做个简单的讲解:概述、优势、支持识别的漏洞(举例)、污点分析的步骤。

概述

污点分析 Taint Analysis,作为一种 SAST 静态代码分析里基于数据流分析的技术,用于识别和跟踪应用程序中的输入和输出数据,以及与其相关联的敏感信息,检测这些数据在整个处理过程中是否被篡改胡污染。通过对程序中输入和输出数据的跟踪,污点分析技术可以帮助研发人员识别软件内潜在的安全漏洞和错误。

优势

污点分析技术的应用,让代码检查更加全面和深入。对于整个软件开发过程里有如下这些优势:

1、识别潜在的漏洞:污点分析技术通过检测程序中哪些变量可以受到不可信输入的影响,来识别出潜在的漏洞,帮助研发人员更好地了解软件中可能存在的安全隐患。

2、自动化分析:污点分析技术通过对程序进行自动化分析,可以减少漏洞检测的人工工作量。

3、精细化的跟踪:污点分析技术支持精细化的跟踪可疑数据,找出软件中哪些变量和语句会影响这些数据;同时支持追踪代码执行路径,帮助研发人员更好地了解程序运行的方式。

4、监测攻击:污点分析技术可以监测拦截攻击并提供有关攻击来源的信息,从而更好地保护软件程序的安全性。

支持识别的漏洞

污点分析技术可以识别和注入相关的多种类型的漏洞和错误,包括但不限于以下几种:

1、跨站脚本攻击(XSS):污点分析技术可以检测哪些输入数据会影响 web 页面,并同时识别潜在的 XSS 漏洞。

2、SQL 注入攻击:污点分析技术可以检测哪些输入数据会影响 SQL 的查询,并同时识别潜在的 SQL 注入漏洞。

3、路径遍历攻击(directory traversal):污点分析技术可以检测哪些输入数据会影响文件路径,并同时识别潜在的路径遍历漏洞。

4、代码注入攻击:污点分析技术可以检测哪些输入数据会被当作代码执行,并同时识别潜在的代码注入漏洞。

污点分析的步骤

污点分析技术的运用一般会包括如下几个步骤:

1、污点标记:首先需要先标记可能受到不可信输入影响的变量和输入数据,将其标记为“污点”;而污点通常是由用户或其他程序传递输入的数据。

2、污点传播:这些被标记为“污点”的数据之后会通过程序传播,而我们要做的就是跟踪污点的传播路径。举个例子,如果被标记为污点的数据被赋值给了一个新的变量,那么这个新变量也将被标记为污点。

3、污点检查:在程序执行过程中,污点可能被用于不信任操作,因而导致潜在的漏洞。所以我们需要对污点进行检查,以确保不会被执行于任何不安全的操作,比如输出到非信任的设备或用于执行危险的操作。

4、污点输出:最后,我们应记录所有与污点相关的数据和操作,用于后续的分析和调试。污点输出将提供相关程序中潜在漏洞的详细信息,这将有利于研发人员对软件进行修复与改进。

总的来说,污点分析是一项在 SAST 领域里非常实用的技术,可以帮助我们研发人员检测和修复程序中的潜在漏洞,提高程序的安全性。

华为云代码检查服务 CodeArts Check 体验通道:

https://auth.huaweicloud.com/authui/login.html?locale=zh-cn&service=https%3A%2F%2Fwww.huaweicloud.com%2Fproduct%2Fcodecheck.html%3Futm_medium%3Dhdc#/login


参考链接

1、 https://en.wikipedia.org/wiki/Taint_checking

2、 https://www.synopsys.com/blogs/software-security/taint-analysis/


抽奖活动链接:https://bbs.huaweicloud.com/forum/thread-0228123477957050003-1-1.html


用户头像

公众号:华为云PaaS服务,有见面礼等你哦! 2022-09-26 加入

还未添加个人简介

评论

发布
暂无评论
污点分析是什么神奇的代码检查技术?_云计算_华为云PaaS服务小智_InfoQ写作社区