解读社会事实:报道时政 新闻热点:这里都能看到:
![](/data/2021/08/06/610cd6bbdd17f.jpg)
![](/data/2021/08/06/610cd6bc8abdf.jpg)
文丨拾光小贝
3.4.2 建立监理程序和行政管理体系。3.4.3 初,郑武公娶于申数字文化创意产业以科学技术和文化艺术为输入,以经济价值和文化影响为输出,是驾驭数字技术的创意内容业和创意制造业的总称,“十三五”时期首次被列为国家战略性新兴产业,为我国产业转型升级、数字经济繁荣发展发挥了重要作用。但同时信息与网络安全也面临着前所未有的严峻问题,网络安全领域所面临的挑战日益严峻,网络安全问题也日益被人们重视。通常意义上的网络安全的最大威胁是软件程序上的漏洞,程序漏洞检测方法主要分为静态分析方法和运行时的检测方法。静态分析方法主要用静态检测工具对程序源代码进行扫描分析,存在很高的漏报率和误报率;运行时检测方法需要运行被测程序,其检测依赖外部环境和测试用例,具有一定的不确定性。面对以上问题,人们越来越深刻地意识到软件安全的重要性,从20世纪90年代开始,研究人员就开始对计算机系统的安全漏洞进行研究,其中缓冲区溢出漏洞及如何利用缓冲区溢出漏洞进行攻击是研究得最广泛和最有深度的;另外研究人员还开发出IDS(入侵检测系统)与IPS(入侵防御系统)等来检测和防御攻击者的恶意攻击,以及针对缓冲区溢出主要发生地堆和栈技术的研究等。21世纪初,研究人员开始把重点放在研究软件安全漏洞的发现方法上,采取的主要方法是借用自动化或半自动化的工具作为辅助,其中辅助工具使用的技术大致包括指针别名分析,词法分析,语义分析,类型分析,模型匹配,代码注入及动态监测与跟踪等等;这些技术相对于早期传统的用于软件错误查找的标准程序分析技术、编译器优化以及软件安全漏洞的检测要求要更加复杂。直到今天,对软件安全漏洞的定义、分类、特点及检测方法都还没有形成统一的标准和公认的结论。针对某一种类型的软件安全漏洞,研究人员需要进行大量的重复性的分析工作,而且在分析上还要求分析人员具有大量的实验经验,这就造成软件安全漏洞的检测在效率和效果上具有一定的局限性[5]。因此,如何提高漏洞检测的效率和准确率已成为现在研究的重点,即如何设计和利用自动化、半自动化的辅助工具,以及如何更有效的利用各种分析技术来高效、快速、准确的检测出软件中的安全漏洞已经成为热点和难点,而这些技术对软件的安全都具有很强的实用价值和重大的研究意义。(一)研究现状 最近几年,计算机系统与网络安全已经成为人们研究的热点,与此同时,人们也越来越多地关注计算机系统的安全漏洞检测,对这些漏洞提前检测,以降低软件安全漏洞带来的危害。严格意义上来说,解决软件安全漏洞最根本的方法是编写安全的代码,但在短时间内这种方法是不可行的,所以目前业界对软件安全漏洞的检测重点是放在高效、准确的检测研究方向上。在国内,网络安全焦点(xfocus)、绿盟科技、启明星辰和CCERT(中国教育和科研计算机网紧急响应组)等是国内安全研究机构的代表,并且维护了自己的漏洞数据库。xfocus一年一次的xcon大会被誉为国内最顶级的探讨安全问题的大会。在2007年的xcon大会上就有关于软件安全漏洞的议题,比如夏超的二进制环境下的缓冲区溢出漏洞动态挖掘技术。2008年的xcon会议上也出现了关于软件安全的探讨,比如Flashsky的高级Windbg图形插件辅助堆溢出分析,AlexanderSotirov的绕过WindowsVista浏览器内存保护。绿盟科技是发布自主研究安全漏洞最多的国内安全公司,己经完成对RPC、SMB、IIS等多类漏洞的研究,并取得了不错的成绩。另外,看雪论坛也是国内软件安全研究人员聚集的一个讨论圈。目前软件安全漏洞的检测技术包括静态分析检测技术、动态检测技术和动静结合的检测技术。静态检测技术是利用二进制比对技术、词法分析、形式化验证技术或者手工测试技术,对被测程序的源程序或二进制代码进行扫描,然后从语法、语义上理解程序的行为,并分析程序的特征,找出可能导致程序异常的漏洞。这类技术具有简单高效自动化的优势,但只是对代码本身的特征进行检查,不能很好检测出漏洞间复杂的逻辑关联,并且存在大量的误报和漏报;动态检测技术是通过自动化生成测试数据,以仿真攻击应用程序来判断是否存在漏洞,主要手段是利用各种输入对程序进行探测,并分析程序运行环境等。这类技术效率不如静态分析检测技术,但它能准确的定位漏洞。动静结合的检测技术是先使用静态检测技术对程序进行分析得到程序内部特征,从而筛选测试数据集以指导下一轮的动态测试。目前还没出现自动化原型系统,需要结合手工进行分析,而且需要分析人员具有丰富的经验及很强的分析能力。(二)研究内容及目标 本项目研究对象是软件安全漏洞的检测,首先需要对软件安全漏洞的定义和常见类型进行分析后,从代码实例出发对常见的缓冲区溢出漏洞、格式化字符串漏洞、整数溢出漏洞和内存泄露的原理进行分析与研究。然后针对这些常见的软件安全漏洞存在的检测方法进行研究,找出这些方法的共性与特点,总结它们的优点和缺点,在此基础上提出自己的改进方法。本项目针对静态检测技术中各种源代码静态扫描工具存在的误报和漏报问题,提出了一种数字文化创意软件开发综合检测分析软件的开发方案,该方案是对软件安全缺陷漏洞进行综合处理,达到在仅有软件源代码的情况下,通过多层次的综合检测,有效地发现软件中的安全性缺陷漏洞。具体目标是实现一个可扩展的源代码静态分析平台,采用具体方法是通过集成多种不同技术类型的源代码扫描工具对软件程序源代码进行多层次的综合性扫描检测,将检测的结果以标准化的格式插入到数据库中,然后对数据库中的数据进行综合分析,最终将综合分析的结果以图形化的形式直观的显示出来。该平台具体目标能够方便分析人员根据输出结果快速的返回到源代码中进行下一步的分析,并且该平台在误报率和漏报率上,需要比单一的源代码静态扫描工具低,同时该平台还需要具有效率高,实用性强,可移植,性能好的特点。二、软件安全漏洞分析 按照各种不同的方式,我们也可以把漏洞分成很多类型,通过分类我们能够更好的找出漏洞间的共性,对漏洞的检测也会更有针对性。本项目根据漏洞产生的原理,把漏洞主要分成缓冲区溢出漏洞、格式化字符串漏洞、整数溢出漏洞和内存泄露,下面将对这些漏洞进行详细分析。(一)缓冲区溢出漏洞 近年来,由缓冲区溢出漏洞而产生的安全问题层出不穷,在业界,针对缓冲区溢出的研究也有了很大的发展。引起缓冲区溢出漏洞的主要原因是开发人员在程序中使用了不安全的库函数或API函数,由于这些不安全函数自身没有边界检查,常常在数组的赋值、拷贝或指针的访问时会产生越界问题。在操作系统中,内存被分配给一个进程作为执行的区域,这些区域可以按照功能大致划分为数据区、代码区、堆区、栈区四个部分。如下图所示:进程的全局变量存储在数据区;进程的执行是通过cpu去取进程的二进制机器代码指令,而这些二进制机器代码就存放在代码区;进程需要动态申请内存空间时,可以由堆区提供,并且这部分空间在进程结束时才会返还给堆区;进程在函数调用时,会动态的去栈区申请一段内存,函数调用结束时,进程又会将申请的这段内存返回给栈区,以保证被调用函数返回时能够恢复到母函数中继续执行。在windows平台上,程序用高级语言编写完后,通过编译器编译链接,最后生成PE可执行文件,加载PE文件,运行后即形成了进程。如下图所示:如上图所示,每一个函数都有属于自己的栈空间,WIN32系统是通过两个指针寄存器即ESP(extendedstackpointer)和EBP(extendedbasepointer)来标识内存的内存空间为当前栈帧的;而存在于栈帧最顶端即为正在运行的函数;寄存器ESP,即栈指针寄存器,它的内存里存放的是一个指针,总是指向WIN系统栈的最上面那个栈帧的栈顶;另一个寄存器EBP,称为基址指针寄存器,它的内存里存放的也是一个指针,总是指向WIN系统的最上面那个栈顶的底部;当前栈帧就是由ESP和EBP标志的,两者之间的内存空间也正好就是当前栈帧。栈是一种特殊的线性表,跟队列不同的是它只允许在表的同一端进行插入和删除操作;进行插入和删除操作的一端称为栈顶(top),另一端则称为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈;插入称为进栈(PUSH),删除则称为出栈(POP);因此栈也称为先进后出表。下图为栈的模型:通常情况下,函数栈帧含有以下几类重要信息:(1)局部变量区域,存放函数局部变量的内存空间。(2)栈帧状态值,保存着上一栈帧的顶部和底部地址(实际上只保存上一栈帧的底部地址,上一栈帧的顶部可以由堆栈平衡计算出来),为了在当前栈帧被弹出堆栈后,恢复出上一个栈帧。(3)函数返回地址,即函数调用前的指令位置,保存着当前函数被调用前的“断点”信息,目的是为了在函数返回时能够恢复到函数被调用前的代码区中继续执行指令。(4)指令寄存器EIP,它的内存里放着一个指针,该指针总是指向下一条即将要执行的指令地址。函数调用时,大致步骤为:(1)stdcall调用规范下(本项目内容都是以该调用规范为前提),参数从右向左被依次压入栈中;(2)将返回地址压入栈中,返回地址存放了当前代码区调用指令的下一条指令的地址,以便被调用函数返回时能够继续执行调用函数;(3)代码区跳转,处理器从当前代码区跳转到被调用函数的入口处;(4)栈帧调整,EBP入栈即保存当前栈帧状态值,以备之后恢复本栈帧时使用;ESP值赋给EBP,将当前栈帧切换到新的栈帧,更新栈帧底部;然后ESP减去所需空间的大小,抬高栈顶,给新栈帧分配内存空间。(二)格式化字符串漏洞 格式化字符串(FormatString)漏洞在几年前被发现出来,是一类容易定位的漏洞,在现今的很多软件中也存在此类漏洞。*printf()系列函数是按照一定的格式输出数据,即格式化字符串,其中printf()是可以输出到标准输出,同样也可以输出到字符串,文件句柄等,这些输出对应的函数为fprintf,sprintf,snprintf,vprintf,vfprintf,vsprintf,vsnprintf等,格式化字符串漏洞就发生在这一系列的*printf()函数中,此类漏洞主要有三类:(1)参数个数不固定造成访问越界数据;(2)利用%n格式符写入跳转地址;(3)利用附加的格式符来控制跳转地址的内容。(三)整数溢出漏洞 整数溢出是非常普遍且不易被立即察觉到的漏洞。一个整数有一个固定的长度(32位),如果用一个整数变量去存储一个大于这个固定最大值时,将会导致一个整数溢出,从而可能导致其他类型的bugs,缓冲区溢出等。除了直接存储整数导致溢出外,还有其他如运算溢出、符号问题导致的缓冲区溢出。整数溢出与普通的漏洞差别是它们不能直接去改写内存或者直接改变程序的控制流程。大多数情况下,程序的计算结果与正确结果之间都有一定的偏差,所以在利用整数漏洞时需要我们更精巧的去设置数据。(四)内存泄露 在计算机行业,内存泄露(memoryleak)指由于疏忽或者错误造成程序未能释放已经不再使用的内存的情况。通常情况下,我们所说的内存泄漏问题指的是堆内存泄漏。堆内存是指程序运行时所需的内存从堆中分配的,大小任意(在程序运行中确定)的,使用完后必须显式释放的内存。应用程序一般使用malloc,calloc,realloc,new等函数从堆中分配一块内存,内存块使用完后,程序必须调用相应的free或delete释放该内存块,否则,该内存块就不能被再次使用,于是就产生了内存泄露。当函数GetStringFrom()返回零的时候,指针pc指向的内存就不会被释放。这是一种常见的发生内存泄漏的情形。程序在入口处分配内存,在出口处释放内存,但是c函数可以在任何地方退出,所以一旦有某个出口处没有释放应该释放的内存,就会发生内存泄漏。内存泄漏会使内存的数量不断减少,从而降低计算机的性能。更糟糕的是,过多的可用内存被分配掉后,将导致应用程序崩溃,或者全部或部分设备停止正常工作等。三、软件安全漏洞检测技术研究 (一)软件安全漏洞静态检测技术 静态检测技术主要针对程序源代码或者其二进制代码进行扫描,通过匹配相关代码使用的具体函数和系统调用的二进制数值,来发现漏洞。其基本的静态分析技巧包括:审核问题函数,如strcpy、strcat、sprintf、vsprontf、getwd、gets、realpath、fscanf、scanf、sscanf等函数的使用、审核动态内存分配例程,如malloc、VirtualAlloc返回的缓冲区的用法、审核如何处理通过recv、read、fgets和许多其他类似的函数接收的用户提交输入。而根据软件是否提供源代码的情况下,可以对该软件安全漏洞的静态检测技术分为两类:源代码静态扫描技术和二进制文件静态扫描技术。(二)源代码静态扫描技术 源代码静态扫描技术采用的方法是对源代码进行扫描和分析,从而判断出程序的结构、可能的运行时行为等,然后对漏洞发生的模式进行识别,最后通过相应的规则匹配来查找程序中潜在的软件安全漏洞。相应的出现了大量的源代码静态扫描工具,这些工具可以分为三类:编译时检测工具、源代码浏览工具和源代码自动审核工具。编译时检测工具,是与编译器集成在一起,在源代码编译时查找漏洞,但主要是查找与安全性有关的问题而不是应用程序的功能问题。MicrosoftVisualC++的/analyze编译选项即是一个例子。Microsoft还提供了PREfastforDrivers,它能够检测针对驱动程序开发的不同类型的漏洞,而编译器可能检测不到这些漏洞。该类工具只能在程序编译的情况下进行自动化检测。源代码浏览工具,是对程序源代码执行高级搜索,枚举代码,以及在代码的交叉引用位置之间进行导航,用于辅助人工检查的源代码扫描工具。如在源代码扫描中,用此类工具来定位strcpy函数出现的位置,辅助评审人员去识别可能的缓冲区溢出漏洞。该类工具不能识别出检测到的漏洞函数危险等级。源代码自动审核工具,是扫描源代码以及自动识别可能存在漏洞的关键区域。源代码自动审计工具能够理解编程语言的语法规则。它们检测由于特定函数导致的问题以及经常被误用的函数。这些审核工具采用的漏洞检测技术从最早的基于匹配字符串、分析词法,到语义分析,再到将数据挖掘技术与程序分析相结合的方法,静态分析技术不断地进步、发展与创新。按照其分析机理及功能的不同,常见的源代码自动审计工具可以分为以下几类,如下表所示:静态检测技术 主要静态检测工具 原理、功能及优缺点 词法分析 Its4 Rats Flawfinder 1、将源文件预处理为token流,然后将token流与库中的缺陷结构进行匹配;检查C/C++源程序中的可能错误和容易遭受弱点攻击的地方;2、内存相关,效率高,但分析不精确,漏洞覆盖率有限 类型推导 CCuredESP CQual 1、基于语义的分析方法,通过分析程序的数据流、控制流及函数调用关系等,可以检查C程序中字符串使用缺陷和锁缺陷。2、大部分内存相关,少量时序相关,能处理大规模程序,效率高,可检测漏洞有限,引入安全属性需重新定义类型。规则检测 LCLintLintRacerX Splint Cppcheck 1、利用程序员提供的注释来辅助程序分析;可以查找未初始化的变量信息、数组下标越界等缺陷问题。可以检测程序中存在的不匹配的内存单元分配,缓冲区溢出等问题;2、内存相关,时序相关,能根据不同规则对不同系统进行分析,大规模程序检测高效,受规则描述机制局限,只能分析特定类型漏洞,扩展性差。以上这些工具都有一个明显的弱点,即产生大量的误报和漏报。而评价静态分析工具好坏有两个重要指标[42]恰好就是误报率和漏报率:误报率(falsepositives):工具错误报出程序中原本不存在的安全问题的比 率;漏报率(falsenegatives):程序中含有安全性问题但工具还没有找出的比率;针对以上问题,我们可以采用一种基于多种静态检测工具的检测方法,即对多种工具的检测结果进行统计分析,有效地降低漏报率和误报率。(三)二进制文件分析技术 针对非开源的软件程序,同样有相应的自动审核工具,这些工具是通过对程序的二进制文件进行自动审核分析。其中应用最广泛的工具便是IDA反汇编工具,该工具是专用的二进制文件分析工具,它可以通过目标程序反汇编得到汇编代码,然后对汇编代码进行扫描,从而去识别可能存在的安全漏洞缺陷。IDA之所以被广泛应用,其中一个很重要的因素就是该工具可以识别程序的关键结构,它可以自动识别高级语言的关键结构,如new和delete操作符、函数的返回值、局部堆栈变量、文本与字符串、IF-THEN-ELSE条件语句等,从而进一步对目标程序进行分析。但是IDA反汇编工具采用的反汇编技术需要大量的人工分析,且具有很强的复杂性,因此其自动化程度也不会高。另外使用反汇编技术发展比较成熟的工具还有bugscan。该工具方法实现成功检测软件漏洞的关键在于能够对二进制文件进行反汇编和定位可能导致缓冲区溢出的弱函数。但它的弱点在于函数覆盖率具有一定的局限性,不能覆盖所有的可能导致缓冲区溢出的函数。二进制文件分析技术通过分析软件反汇编后的汇编代码,来发现软件中存在的安全漏洞。汇编代码不利于人的理解,这是不争的事实,但是,针对不公开源代码的软件进行漏洞的分析,只能以汇编代码为源代码。对汇编代码的理解深度就决定了软件安全漏洞分析工作的深度。静态分析技术的优点是,由于是从机器的角度去理解安全漏洞的机理,理解更深刻、更到位,对细节的把握也更加透彻。缺点在于软件反汇编后的汇编代码量巨大、结构复杂,即使是一个小型的应用程序产生的汇编代码其复杂性也不可小觑,对漏洞发生现场不易进行准确的定位。同时,由于汇编代码与机器码基本一一对应,晦涩难懂,对研究人员的技术能力和技术积累要求较高。(四)软件安全漏洞动态检测技术 软件安全漏洞的动态检测技术是通过对运行的软件进行动态调试来实现的,动态检测技术不需要查看程序的源代码,而是通过加载目标程序,使其运行起来,在运行的过程中去观察和分析程序的反汇编代码,查看程序执行了哪些指令以及内存的使用情况,堆栈的布局,寄存器值的变化等来发现软件的漏洞。软件安全漏洞动态检测技术方面目前有以下几类:运行时监测:对程序进行编译分析,在初步的分析结果中植入其他代码,然后运行程序,同时监测程序在运行时是否有产生分析结果中的问题,从而找出实际的安全漏洞,如在数组操作中,通过代码注入来检查数组下标的取值范围,从而可以在运行时发现数组越界的安全问题。信息流分析:与以上运行时监测一样,是在编译分析后注入代码,然后在程序运行时,监测那些不符合安全规范的信息流。程序模型检查:该方法是基于某种漏洞模型的检测,在程序运行时将其中违反模型中的安全规范的执行流程信息报告出来,而通常是借助现有的安全工具来发现程序漏洞。代码注入:在软件与用户交界时,在软件最有可能产生漏洞的地方输入错误代码,以触发漏洞,该技术常与动态跟踪调试技术结合使用。代码注入是根据动态调试得到的信息,在关键位置插入错误的代码,并以不影响原有程序的语义为前提;然后重新运行程序,观察程序运行状态,检查程序是否出现异常等。代码注入基本流程如下图所示:如上图,代码注入首先获得软件接口的数据类型,然后输入构造的“错误数据”,运行程序,观察其运行状态是否产生异常来判断软件是否存在安全漏洞。其中“错误数据”是指不改变输入数据的类型,而是通过构造异常、畸形的数据,如超长字符串,大整数等。输入“错误数据”后,如果软件运行异常,则可说明该软件存在相应的安全漏洞,从而进一步分析,查看该漏洞是否能够被成功利用。而有的软件设计了相应的安全策略,如拥有各种异常处理机制,则该软件在输入“错误数据”后将进入软件自身的异常处理机制中。与此同时出现了大量的动态检测工具,其中运用最广泛的是动态跟踪分析工具OllyDbg、SoftICE、TRW2000等,它们通过在动态的调试过程中观察程序的实际执行过程,了解软件的结构功能[57]o在本节中主要研究OllyDbg动态跟踪工具。该工具是用户级的调试器,功能强大,可以单步执行,设置内存断点,硬件断点,内存跟踪,查看程序执行到任意位置寄存器的数据、堆栈数据等,还具有很多插件功能,是主流的调试器之一,也是一款功能强大的反汇编工具。动态分析检测技术具有以下的优点和缺点。优点:1、针对性强:动态分析能够针对性的对软件程序进行检查,能够准确的确定被分析软件的相应功能或者模块的具体表现。比如,分析程序的输入输出,运行时寄存器的状态,内存分布情况,然后通过注入错误的代码检查程序的是否出现异常或错误等。2、准确率高:动态分析是通过运行被分析的程序,然后对程序运行状态进行检查,找出其中的程序错误,即程序的漏洞,能够非常准确的定位漏洞发生的具体位置。3、无需源代码:动态分析技术只需要运行程序,查看其功能是否正常,通过输入输出验证软件程序是否存在错误来查找程序漏洞。缺点:动态分析首先是对被分析软件程序运行时的状态进行预测,由于运行时的数据都是二进制信息,因此就需要熟悉目标程序,找出漏洞可能出现的位置,从而确定分析点。但要找到分析点是非常困难和复杂的。(五)动静结合检测技术 针对静态检测技术和动态检测技术都有明显的优缺点,可以将两种检测技术结合起来,取长补短,以提高软件漏洞的检测效率。这种方法的大概思想是:先用静态检测检测软件程序代码,得出可疑的漏洞位置;然后用动态检测技术验证那些可疑的漏洞。理论上,这种方法结合了两种检测技术的优点,但在实际中有很多问题难以解决。这就导致了动静结合的检测技术研究还处于理论上的研究,现在仍没有结合两种检测技术的原型系统出现。因此该方法需要以手工分析为前提。如下图所示,是一个动静结合的检测技术方案,这个方案首先通过IDA对软件程序的二进制文件进行分析,得出程序的控制流图和函数调用关系图,找出漏洞可能出现的位置,确定分析点;然后通过OllyDbg动态调试跟踪目标程序分析点的状态,找出相关信息;最后通过错误代码注入,确定该漏洞是否为程序真实的漏洞。如上图所示,这个检测方案主要是针对非开源的软件程序漏洞进行检测,非开源软件是指其源代码对用户是不开放的,因此只能通过扫描软件的二进制代码进行检测,用户借助IDA静态反汇编工具对软件程序的二进制文件进行静态分析,能够得到软件程序中的函数调用关系、控制流信息、断点列表、和交叉引用及软件的结构、功能等信息,这些信息都需要大量人工的参与,然后再通过人工经验分析这些信息找出软件程序可能出现漏洞的位置,确定分析点,为下面的动态跟踪模块做准备。动态跟踪分析是在动态的调试过程中观察程序的实际执行过程,得出软件的结构和功能。用户可以借助OllyDbg工具对软件程序进行动态跟踪,具体步骤是首先加载启动被分析软件程序的二进制可执行文件,然后根据前一节中静态分析的断点列表信息设置断点,结合函数调用关系图(FCG)和控制流图(CFG)等对程序的执行过程进行跟踪,同时记录程序执行的路径以及数据流信息,接着通过人工经验的分析,找到可疑的漏洞及漏洞可能产生的原因,最后通过注入相应的错误代码来触发漏洞,以是否发生异常来判断该可疑的漏洞是否为真实的漏洞。四、平台总体设计 (一)平台总体功能与特点 基于以上所描述的工作原理,本项目设计了一个自动化的检测平台,即源代码静态分析平台,这个平台主要是对开源的软件程序源代码的漏洞进行检测。平台的具有预处理,数据综合分析和结果展示三个功能。其中预处理是通过各种源代码静态扫描工具对程序源代码进行多层次的扫描检测,然后对检测结果进行数据综合分析,最后将综合分析的结果通过结果展示功能显示出来。采用的具体方法是首先对被测软件程序源代码利用各种源代码静态扫描工具进行多层次的综合扫描检测,即进行预处理分析,并且这个预处理过程是通过GUI界面调用自动化完成的,然后将预处理分析的结果进行解析,解析为统一的标准化格式后插入到数据库中,接着将数据库中某个函数在某个工具中被检测到的次数和平均估分值计算出来,用于数据综合分析,最后通过调节各工具的可信度比例得到危险等级高的软件缺陷漏洞。这个结果一方面能够降低单个工具的误报率和漏报率,而且便于分析人员有针对性对软件程序漏洞进行下一步的分析,另一方面可以看出编写该代码的开发人员的编程能力,可作为企业或公司在评价该开发人员时提供依据,此外通过对大量的源代码进行检测,可以得出同一类函数中哪些函数的安全性更高等问题,以提醒开发人员在编写代码时尽量使用安全性更高的函数。同时,源代码静态分析平台具有以下几个特点:1、集成多个源代码静态分析工具的优点,检测结果之间相互验证,明显降低漏报和误报;2、在评估危险等级和数据分析中加入用户交互,在工具可信度时引入了反馈机制,可以有效的指导漏洞条目的评估和分析;3、平台的设计与实现采用C++面向对象的设计思想和方法,有较好的可扩展性和跨平台性;4、平台将检测结果全部存入数据库,便于综合分析以及可以为扩展分析提供数据基础。5、平台的GUI界面友好,输出是以不同图形的方式输出,清晰明了,便于分析人员进行下一步的分析工作。(二)平台总体设计框图 源代码静态分析平台的设计框图如下图所示:该平台包括预处理模块、输出结果解析模块、数据库模块、数据综合分析模块和反馈参数训练模块六个部分。其中预处理功能包括了预处理模块,输出结果解析模块和数据库模块。对每个模块的功能描述如下:1、预处理模块是完成各个工具对软件程序源代码的静态分析检测,包括被测源文件的选择、显示,需要使用的工具的选择以及工具检测结果等内容,并通过预处理界面将以上内容直观显示出来;2、输出结果解析模块是完成每个工具检测结果的格式标准化,即将预处理得出的结果进行解析,解析成统一标准的文件格式,即一个7元组序列:(工具名称,文件名,出现行号,危险等级,问题类型,引起安全缺陷函数,描述);3、数据库模块是将通过输出结果解析模块标准化后的结果存入数据库中,为之后的数据综合分析模块做数据准备;4、数据综合分析模块完成功能包括:某类函数在某个工具中被检测到的次数和平均估分值的分析;得出数据库中漏洞条目的综合分析结果,即得出危险等级高的漏洞条目;以及得出可扩展分析结果,即某一系列函数中哪些函数出现的次数和平均估分值更高。结果展示完成数据综合分析模块结果的图形化显示,包括“条形统计图”、“图表”和“柱状图”的显示。其中“条形统计图”显示某类函数在某个工具中被检测到的次数和平均估分值,用于在数据综合分析时对各工具的可信度调节作参考;“图表”显示经过数据综合分析后的最终结果,即危险等级高的漏洞条目;“柱状图”显示扩展分析后某一系列函数中哪些函数出现的次数和平均估分值更高。本章将在第五章对这六个模块的具体实现进行详细阐述。(三)平台类的概要设计 源代码静态分析平台包含预处理模块、输出结果解析模块、数据库模块、数据综合分析模块和参数反馈训练六个模块,每个模块的功能由1个或多个类协同完成。程序中各个类的结构图如下图所示。图4-5中各个类的功能描述如下:完成用户界面控制模块功能的类 CMainFrame:创建源代码静态分析平台的主界面,包括菜单、工具栏、状态栏,视图的切换等。CFolderListView:实现源代码静态分析平台中带有标题栏的源代码静态扫描工具的选择树形控件。CCodeWatchView:实现源代码静态分析平台中源代码文件内容和源代码分析结果的可视化。CPreviewPane:实现源代码静态分析平台综合分析后图表的显示。CStatisticsView:实现源代码静态分析平台中条形统计图的显示。完成预处理模块功能的类 预处理模块的功能由类CMainFrame实现。完成输出结果解析模块功能的类 输出结果解析模块的功能由类CMainFrame实现。完成结果展示功能的类 条形统计图显示功能由类CStatisticsView和CBarChart类协同完成;图表显示功能由类CPreviewPane完成。部分类处理流程如下图所示:(四)模块具体实现 对数据库中若干个工具的检测结果,进行数据综合分析,按照前文4.2.2.1节提出的原理进行分析。例如某个工具i找到含有函数f的漏洞次数可以通过SQL语句:“Selectcount(scores)from'i工具名称'”得出,同样找到含有函数f的漏洞总估分可由SQL语句:“Selectsum(scores)from'i工具名称'”得出,其中工具名称根据树形控件选定,容易计算出该工具检测到该函数的平均估分值。另外如果某个工具没有找出含有某个函数的漏洞,则此漏洞条目在该工具中的估分wc(i)=0。由此容易计算出含有某类函数的某条漏洞条目的估分值。数据综合分析处理流程:首先由用户指定要分析的函数名称;其次从数据库中分别读出各个工具包含该函数的漏洞条目,计算其平均估分值,为之后的工具可信度比例调节做准备;再次从数据库中读出所有工具中包含用户指定函数的所有漏洞条目,运用平均估分值和用户的交互调节各个工具可信度比例;最后根据该比例计算出指定函数的整体估分值E(x)。如下图所示:五、平台测试与分析 数字文化创意软件开发综合检测分析平台的测试,即是对源代码静态分析平台的测试,由第四章对源代码静态分析平台的设计可知,这个平台包括预处理、综合分析和结果展示三个功能,预处理功能由预处理界面显示,综合分析的结果由结果展示功能给出,具体包括条形统计图、图表和柱状图的显示。平台数据综合分析中提出的扩展分析,是对平台检测漏洞效率的一个分析。下面将对平台的功能和扩展分析效果两个部分进行详细测试,具体的测试内容如下。(一)测试环境 源代码静态分析平台具体的测试环境如下表所示: 推荐的环境 备注 操作系统 WindowsXPSP3 Windows2000/XPSP2/SP3/Win7等操作系统版本均可 数据库 MYSQL5.0.67 5.0.*及其以上版本均可 编译环境 Python2.5.2 2.5.*及其以上适合Windows操作系统版本均可 源代码静态扫描工具 Flawfinder-1.27 Its4-2.6 Cqual-0.981 Splint3.1.2 Cppcheck 五种工具的其它以上版本均可 五种工具需要通过Cygwin软件成功移植到Windows平台上 (二)平台功能测试 本项目首先选取TrojDetect.c源代码对源代码静态分析平台的功能进行测试。TrojDetect.c源代码是UNIX环境下一个网络应用程序中的文件,功能是检测网络上的恶意代码。首先测试预处理功能,包括被测源文件的选择、显示,源代码静态扫描工具的选择,工具检测结果的显示及插入数据库等,具体测试方案如下表所示:测试要求 预处理功能 测试环境 虚拟机上搭建环境 测试方法 1.点击“OSFile”,在弹岀框中找到被检测源文件路径 在“工具列表”中选择要使用的源代码静态分析工具 依次点击“Ready”,“Start”,开始对源文件进行检测并将检测结果插入数据库 点击右下方的Tab键(its4结果)分别显示各个工具检测的结果 测试结果 预处理界面显示被测源文件及检测结果,检测结果成功插入数据库 测试结论 通过 接着测试综合分析功能,通过结果展示的“条形统计图”、“图表”和“柱状图”显示出来。其中“条形统计图”显示某类函数在某个工具中被检测到的次数和平均估分值,具体的测试方案如下表所示。条形统计图测试 测试要求 条形统计图显示 测试环境 虚拟机上搭建环境 测试方法 切换到“图像统计显示”模块,选择需要査看统计情况的工具;选择“条形统计图”, 测试结果 “条形统计图”显示每个工具检测到的安全缺陷函数出现的次数和平均估分值 测试结论 通过 ,辅导教师栏内仅限于填写主要辅导教师一人情况,填写多人无效. 第一作者情况 姓? 名 性别 民族 出生年月 学籍主号 学籍副号 室内设计毕业论文参考文献总结: 关于对不知道怎么写毕业设计论文论文范文课题研究的大学硕士、相关本科毕业论文毕业设计论文论文开题报告范文和文献综述及职称论文的作为参考文献资料下载。
鸦片这种东西对中国人来说是一种痛,这种痛不仅代表身体上的羸弱,也代表着思想上的懦弱,也就是失去起码的自我思考能力。
身体上的羸弱可以通过坚持不懈的锻炼来弥补,思想上失去自我思考能力,犹如一具行尸走肉惶惶不可终日。
这样的人,不可能关心国家大事,也不可能关心民间疾苦,甚至连家族以及自身的兴衰荣辱都置之不理,他们唯一的精神依靠就是鸦片。
最可怕的是,那些拥有大量鸦片的幕后黑手想叫这些吸食鸦片的病人干嘛就干嘛,他们为了鸦片,可以出卖自己的灵魂和人格,可以在鸦片面前做牛做马生不如死。
我们痛恨鸦片,因为鸦片夺走了中国人的身体健康、金钱财富以及自强不息的精神。
现在,还有一种比鸦片更恶毒的东西在我们身边蔓延,它虽然不会让人失去健康,但是它却可以控制人类的思想,它就是奶头乐。
奶头乐是一个极其黑暗阴森的政治理论,是美国的重量级智囊布热津斯基提出的理论。
这个理论的核心在于通过一切公共活动,日渐以娱乐、游戏的方式出现,制造成批失去独立思考和判断能力的白痴,而他们心甘情愿的成为奴役的附庸。
也就是说奶头乐通过制造一张密不透风的信息茧房,向大众灌输他们精心炮制的信息和价值观取向,以此引导大众的价值判断以及奶头乐策略制定者们想要的舆论风向。
当初郑爽代孕的事件刷爆全网,因为当时河北天主教信徒违反规定导致疫情传播,背后的宗教资本需要利用郑爽的事件来掩盖天主教在中国的渗透势力。
当时外交部质问美国德特里克堡实验室病毒泄露事件,要求美国接受世卫组织的溯源调查;以及臭名昭著的辉瑞疫苗与上海疾控中心在当地的布局。
一个是外国宗教资本,一个是外国医疗资本,一个是邪恶轴心美国大本营,因此他们必须打郑爽这张牌。
一张牌还不够,又继续打出华晨宇这张顶流牌成为全网热搜,继续掩护以上事件能够悄然撤退和布局。
娱乐资本会在意艺人的生涯吗?这简直是痴人说梦。艺人对他们来说只是操线木偶,艺人的终极目的就是“死间”,意思是牺牲艺人来换取背后资本的目的。
这次打出吴亦凡这张超级顶流牌,有人说是为了滴滴事件,这简直是小题大做。这些给美国输血的卖国企业还不至于牺牲这样的顶流大牌,而是另有用途。
![](/data/2021/08/06/610cd6bd8b2c3.jpg)
![](/data/2021/08/06/610cd6be5391e.jpg)
7月29日和30日,党媒和官媒集中火力正式曝光新冠病毒的源头,美国德特里克堡实验室,一所继承了恶贯满盈的日本731部队的生化实验室。
7月30日,人民日报记者提问南京官员:“定点收治的180多例的病例里面,两针疫苗全部完成接种的情况是一个什么样子的。目前从我们的专业角度来讲,是否存在突破性感染的情况 ”?
为了给他们的邪恶轴心大本营美国掩护基本上证据确凿病毒由德特里克堡泄露的事实,吴亦凡入狱的新闻再次刷爆整个网络。
还顺带为南京官员无法正面回答人民日报记者的提问打了个掩护,主要还是美国的德特里克堡实验室病毒的泄露问题。
为什么病毒溯源的问题这么重要呢?去年刚刚爆发疫情的时候,美国不断抹黑中国疫情,甚至用“中国病毒”、“武汉病毒”试图在舆论上直接锁定中国的疫情的发源地,但是还有不少汉奸里外勾结,要么跟着美国提蝙蝠病毒论,要么就是说我们需要向全世界道歉,比如央视前主持人阿丘。
比较搞笑的是特朗普的一份报告上原本写着“新冠病毒”,却用钢笔涂抹重现写上“中国病毒”,更加说明美国的栽赃行为。
这次新冠病毒在全球肆虐,无亚于全世界与新冠病毒进行一场生化战争,通过研究发现这个病毒并非自然产生,而是人为制造或者泄露,那么这个国家将会得到正义的审判,不仅要赔偿损失,还要上断头台。
这是一场关乎国运的战争和病毒溯源的审判。
因此,上一波质疑美国德特里克堡实验室病毒泄露的时候,郑爽出来刷屏。这一次证据更加充足可以证明新冠病毒是美国德特里克堡实验室泄露的时候,吴亦凡锒铛入狱的新闻来刷屏了。
这么巧合吴亦凡这个时候非得入狱吗?更何况他也只是个加拿大人,跟中国人有什么关系?
唯一的解释就是培养吴亦凡成为顶流的作用凸显了,弃车保帅。
一个艺人而已,只要娱乐资本还在,培养谁不是培养?
很多人以为奶头乐的根本在于让群众变得白痴,变得失去自我没有思考能力,这只不过是很表面的原因。
奶头乐的根本在于改变斗争的形势,是你死我活的斗争武器。
前者的结果就是还有一些吴亦凡的粉丝居然扬言要劫狱、劫法场,甚至在公安局门口聚集支持自己的偶像吴亦凡。
一个犯了重罪的人,居然还有粉丝替他加油打气,这些粉丝还知道什么是法律吗?实际上,他们在奶头乐的影响下,已经丧失自我思考能力了。
在他们的眼里,吴亦凡比法律还重要。
后者的结果就是影响和改变舆论斗争的形势,原本应该全民讨伐美国德特里克堡实验室泄露的问题,却被一个艺人的丑闻热搜给掩盖了,这种现象非常蹊跷。
奶头乐的渗透之深,在于深刻影响两国的政治和舆论风向,不仅仅在于控制大众的独立思考能力。
基于此,我们应该正确把握舆论风向,坚持以我为主,不能随随便便为敌人的操控手段所左右。
坚持我们的舆论导向,瞄准敌人的弱点全力进攻,紧紧咬住美国实验室泄露的问题,一定要正法美国的生化战争罪行,还世人一个公道。
斩断渗透在国内的奶头乐战略,扫荡娱乐圈的妖风邪气,让文艺回归服务人民的本质,而不是让娱乐圈左右我们的舆论和思想。
那么,一个朗朗乾坤才能重现于世,德特里克堡病毒的褪去才能还大家一个干净的世界。大家继续努力,揪出美国这个新冠病毒的战争刽子手!