共计 1546 个字符,预计需要花费 4 分钟才能阅读完成。
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 畛域里十分实用的技术,能够帮忙咱们研发人员检测和修复程序中的潜在破绽,进步程序的安全性。
参考链接
1、[https://en.wikipedia.org/wiki/Taint_checking]()
2、[https://www.synopsys.com/blogs/software-security/taint-analysis/]()