精华内容
下载资源
问答
  • FIT:基于深度学习和图匹配的二进制软件漏洞检测,谢卓思,梁洪亮,近年来,二进制软件在日常生活中起到越来越重要的作用,而其安全现状却不容乐观。为此,该文提出了一种基于特征学习和图匹配的混
  • 因此,二进制代码分析被用于许多原因,包括软件取证,恶意软件分析,性能分析和调试。文献中有很多二进制代码分析方法,其中最常用的有符号执行、concolic执行、静态污染分析和动态污染分析为了验证我根据之前一篇...

    源代码在大多数软件安全分析的情况下是不可用的。因此,二进制代码分析被用于许多原因,包括软件取证,恶意软件分析,性能分析和调试。文献中有很多二进制代码分析方法,其中最常用的有符号执行、concolic执行、静态污染分析和动态污染分析为了验证我根据之前一篇文章所提出的一种想法,准备一步步进行实现。首先需要建立自己的污点分析工具,污点分析分为静态和动态。对于动态污点分析已经有一系列工具被提出,本文将进行详细介绍。
    为了改善符号执行中发现的一系列问题,研究者们开始污点分析,最早的污点分析是由Funnywei提出的(Bufer Overfow Vulnerability Mining Model [Z/OL])。污点分析以三元组的形式表现:污点源(source)、污染汇聚点(sink)、无害处理(sanitizer)。接下来用一个例子来详细描述一下污点分析三元组在具体程序中的表现。
    污点分析三元组示例
    污点分析通过对系统中敏感数据进行标记,继而跟踪标记数据在程序中的传播以检测系统安全问题。上图是一段Android应用程序代码,运行该段程序会导致用户的密码数据通过发送信息的方式泄露;污点分析可以有效地检测该问题。污点分析首先要识别引入敏感数据的接口(污染源)并进行污点标记,如上图第4行引入密码数据的passwordText接口为污点源,并对pwd变量进行污点标记。如果被标记的变量又通过程序依赖关系传播给其他变量,那么根据相关传播规则继续标记对应的变量,例如上图中pwd变量的污点标记按照箭头进行传播,所以第5行的leakedPwd变量和第6行的leakedMessage变量都将会被标记,当被标记的变量达到信息泄露的位置(污点汇聚点)时,则根据对应的安全策略进行检测上图中第8行带污点标记的leakedMessage变量可以传播到发送信息的sendTextMessage接口,这就意味着这里是敏感数据会被泄露的地方。在第9行,密码数据通过加密转化后赋值给sanitized变量,继续传播sanitizedPwd变量并不会产生泄露问题,也就是说,如果污点变量经过一个使数据不再携带隐私信息的接口处理(无害处理),那么就可以移除污点数据的污点标记。
    总结一下,污染源是将一些不可信或机密的输入数据引入应用程序的地方,这些输入数据可能来自应用程序API或网络接口。污点汇聚点是应用程序中执行安全操作(例如敏感的银行事务)的敏感点,需要对其进行保护,以免应用程序的完整性、机密性和可用性受到侵犯。无害处理指的是通过删除有害操作(如可能导致应用程序运行出其预期操作[7]的恶意程序),被污染的输入数据不再被认为对应用程序的信息安全有害的过程。
    污染分析方法有两种,静态污染分析(STA)和动态污染分析(DTA)。在STA中,分析程序通过检查中间代码而不执行应用程序来测试应用程序。静态污染分析主要是通过两个步骤进行的,包括对中间代码进行反汇编和对得到的汇编代码进行分析。它有时可能使用二进制代码进行应用程序安全分析。然而,由于源代码很少附带COTS软件,这使得STA方法更难对抗恶意程序,从而减少了它的应用。类似地,用STA方法分析二进制代码也经历了复杂和挑战。例如,具有强大规避技术的恶意软件可以很容易地避开STA方法。这些限制促使我们确定替代方法,这些方法可以克服这些缺陷,从而准确可靠地分析应用程序。
    另一方面,在DTA中,应用程序将在运行时测试可能的漏洞[12]。STA和DTA方法各有优缺点。例如,在应用程序中进行信息流分析时,DTA可能会受到运行时开销的影响,这可能会导致无法分析所有代码,从而导致无法发现一些潜在的威胁。另一方面,由于STA只分析应用程序代码而不执行它,它可能会受到准确性问题的影响。因此,一些研究人员提出了将这两种技术结合起来分析应用程序缺陷或漏洞的工具:

    1. Constructing a hybrid taint analysis framework for diagnosing attacks on binary programs
    2. TeICC: targeted execution of inter-component communications in Android
    3. A hybrid analysis framework for detecting web application vulnerabilities

    一些研究人员在DTA前后使用STA方法:

    1. A hybrid analysis framework for detecting web application vulnerabilities
    2. Combined approach to solving problems in binary code analysis

    例如,在这样做时,在DTA之后使用STA,以查看使用DTA后的分析是否遗漏了任何可疑的东西。可以在DTA之前使用STA来分析应用程序在实际环境中执行代码之前的行为。
    通常,DTA方法是在硬件级或代码级实现的。例如,一些DTA方法是在硬件内部实现的。尽管这种实现提供的开销相对最低,但由于它需要对处理器进行重大的架构和微架构更改,因此灵活性较差,实用性较差。通过使用源代码工具来跟踪受污染数据的传播,DTA也可以在软件的代码级执行。这种方法也不太实用,因为在大多数应用程序中,源代码很难用于安全性分析。然而,为了在不修改硬件或源代码的情况下执行数据流跟踪,DTA方法如:

    1. Dytan: a generic dynamic taint analysis framework
    2. libdft: Practical dynamic data flow tracking for commodity systems
    3. Argos: an emulator for fingerprinting zero-day attacks for advertised honeypots with automatic signature generation
    4. BitBlaze: A new approach to computer security via binary analysis
    5. Dta++: dynamic taint analysis with targeted control-flow propagation

    使用二进制代码执行安全分析。这种方法被更广泛地使用,因为它支持各种各样的分析。对于我来说,使用二进制代码的DTA方法是我们感兴趣的焦点。

    展开全文
  • 所以它们通常被用于软件检测的“引擎”。但是通常系统以一种比布尔要高级的语言形式来设计,并且将这种逻辑转化到布尔逻辑的做法是很昂贵的。所以SMT(Satisfiability Modulo Theories)就是一种有效的推理“引擎”...

    关于SMT(Satisfiability Modulo Theories)学习

    SAT解决器是自动的、有效的。所以它们通常被用于软件检测的“引擎”。但是通常系统以一种比布尔要高级的语言形式来设计,并且将这种逻辑转化到布尔逻辑的做法是很昂贵的。所以SMT(Satisfiability Modulo Theories)就是一种有效的推理“引擎”能在更高的抽象级别上进行本地推理,同时能保证SAT高效率和全自动的能力。
    将从以下的几个方面来阐述:

    • 一阶逻辑
    • 具体理论问题
    • 如何理论解决
    • 结合理论的具体解决方式
    • 联合SAT
    • SMT模型
      先附上关于离散数学的中英文对照表来方便之后的学习。
      离散数学中英文对照表

    一阶逻辑

    SAT求解器的语言是布尔逻辑,而SMT求解器的语言是一阶逻辑。该语言包含布尔逻辑的布尔运算,但使用了更复杂的表达式,包括常量、函数和谓词符号,而不是命题变量。和命题逻辑一样,一阶逻辑表达式是由符号序列组成的。而符号分为逻辑符号非逻辑符号参数
    逻辑符号:

    • 括号:( )
    • 命题连接词:¬,∨, ∧, →, ↔
    • 变量:v1,v2…
    • 量词:∀,∃

    参数:

    • 等于符号:=
    • 谓词符号:p(x),x>y
    • 常量符号:0,John
    • 函数符号:f(x),x+y

    每一个谓词和函数符号都有一个关联参数(arity,就是关系中的参数):一个自然数,指示它需要多少个参数。等于符号是一个需要两个的关联参数的特殊谓词。常量符号也可以被认为是函数,其关联参数是0。
    一阶逻辑语言首先需要明确它的参数
    对于有n个关联参数的函数符号f,我们定义了一个术语构建的操作符F:F(a1,…,an)=fa1,…,an;所以说术语集是通过F的操作从常量符号和变量生成的表达式集,该表达式也是用于命名对象的表达式。原子公式是一个P t1,…,tn的表达式形式,其中P有n个关联参数的谓语并且t1,…,tn是术语。如果语言中包括等于符号,我们认为等号是一个有两个关联参数的特数谓词。
    我们定义以下构建的表达式来解释上面的定义:

    1. E¬(α) = (¬α)
    2. E→(α, β) = (α → β)
    3. Qi(α) = ∀ vi α
      一系列定义好的公式是由一些原子公式表达式产生的,而这些原子表达式是由操作数E和Qi(α) i=1,2…;接下来有一些例子来联系关于上面提到得概念。几个例子
      自由变量和约束变量在一个含有量词的命题形式中,区分个体词受量词的约束还是不受量词的约束时重要的。无论在定义合式公式以及对个体变量作为代入时都需要区分这两种情况。所以,若P(x)表示x是有理数,这是变量x不受任何量词约束,就称为自由变量。而(∀x)P(x)中的两处出现的变量x都受量词∀的约束,便称作约束变量,受约束的变量也称被量词量化的变量。
      接下来讲解语义,首先从语义学角度来解析。简单地说,所谓语义,不管是自然语言的语义还是形式语言的语义,基本上就是两个系统之间的映射关系。自然语言的语义,是语言符号和我们大脑中概念之间对应;而形式语言的语义,则是符号系统和某个学科的知识体系之间建立的对应关系,现在研究最多的是符号系统与数学结构之间的映射关系,以及符号系统与哲学体系之间的对应关系。如果要用一个统一的概念表达符号系统所对应的其它学科知识体系,那么这个概念就是【模型】。
      所以简明扼要的表示为:语义:符号系统->模型
      模型,在我们日常生活语言中,通常称作“语境”、“上下文”、“世界”、“背景”、“客观环境”等,但是这些表达通常意义模糊,无法准确、精确地把握模型的基本概念。模型的概念,在数学中,又称作结构,这是对任何数学分支、数学对象的一种统称。不过在逻辑学,模型是更广泛使用的概念,故我们这里通常使用“模型”作为基本的术语。
      一个一阶谓词逻辑系统,就是这样的形式语言符号系统,它的的句法成分就是我们前面内容所介绍的常项、变项、谓词、量词和句子。它的句法规则就是我们用统一的归纳法所定义的规则程式:1. 设定基本概念为该语言的良形表达式(wff);2. 如果表达式A是wff,则操作φ(A)生成的表达式也是wff;3. 如果表达式A是wff且表达式B是wff,则操作ψ(A, Β)生成的表达式也是wff 4. 本语言的任何表达式是wff当且当该表达式是由上述1-3规则生成。
      由这样的句法规则生成的句子的集合,称作一阶语言(first order language)。通常一阶语言的句法层面称作该语言的形式层面。一阶语言的形式层面就是一个由有限多、或无限多没有任何意义的符号按照上面的规则建立的字符串集合。如果要让我们的一阶语言产生意义,就必须要创建/设定一个模型,按照一定的映射规则建立该语言元素与模型对象之间的对应,或者称作绑定。这里要注意的是,这个被映射模型,并不属于一阶语言,模型只是某个特定学科、知识体系的数学化表示,或者称作‘建模’
      形式语言的基本元素则没有固定的(predefined)语义,或者说根本就没有语义,只有在和一个特定的模型人为‘绑定’之后才产生语义,这时我们可以说,这个语言得到了‘解释’ (interpretation)。而‘解释’,并不属于这个形式语言的一部分。因为我可以拿这个语言和其它结构建立绑定关系,这个时候语言中的元素得到新的‘解释’。换句话说,形式语言的语义论并不属于相关形式系统的一部分,因为其语义解释端看和哪个模型绑定。形式语言的这种特性,使得它可以作为多种学科的基础语言,这也是为什么逻辑学是多门学科精密化基础的原因。
      语义,在命题逻辑中,公式的真值是由命题符号上的真值分配决定的。而在一阶逻辑中,我们用模型(也被称作是结构)来决定这个公式的真假。一个签名是一系列非逻辑符号(谓词,常量和函数),给定一个签名Σ,这个Σ的一个模型M包含以下内容:
    4. 一个称作域M的非空集,写作dom(M);dom(M)的元素也成为M的元素。
    5. 一个在Σ中每个常量c到M中的一个元素cM的映射。
    6. 一个在Σ中的每个函数符号f映射到[dom(M)]中的函数[dom(M)]n。
    7. 一个在Σ中的每个谓词符号p映射到pM ⊆ [dom(M)]n,一个n-ary关联到dom(M)。
      通常我们在讨论签名模型时经常用一种简写模式。签名的简写列出了所有在签名中的符号;而模型的简写列出了签名的域和每个符号的解释。因此集合论的签名可以描述为(∈,∅)。

    为了形成模型映射可以写成以下模式,给定一个模型M,一个变量分配任务是一个函数s完成的,它给每个变量赋值一个M中的一个元素。给定一个合取公式φ,我们说M用s求解了φ,并且如果在M中用s来做变量赋值让φ为真,则记作**|=M φ[s]**。为了定义这个概念并公式化,我们首先定义这个扩展式:s : T → dom(M ),一个从集合T的所有项映射到M的定义域的函数:

    1. 对于每个变量x,s1(x) = s2(x)
    2. 对于每个常量符号c,s1©=cM
    3. 如果t1,…,t2是术语,f是有n个关联参数的函数符号,那么s1(ft₁, . . . , tn) = f M (s1(t₁), . . . , s1(tn))

    模型映射
    (s(x|d)表示这个函数除了x处的值是d之外,其他地方都和s相同)

    逻辑的定义,假设Σ是一个签名,一个Σ公式是一个标准格式,并且带有无逻辑符号公式。命名Γ为一组Σ公式, 写|=M Γ[s]表明 |=M φ[s] 对Γ中每一个都进行了映射φ ∈ Γ。通过上面的定义(Γ是一组Σ公式,φ是这组公式中的任意一个)可以说 Γ逻辑蕴含φ,记作Γ |= φ,即如果 |=M Γ[s] 那么 |=M φ[s]。ψ |= φ 是 {ψ} |= φ 的缩写;ψ和φ是逻辑等价记作ψ |==| φ ;如果Ø |= φ ,φ是Σ公式中的部分,记作 |= φ (比如|=M φ[s] 是对每个M和s)。
    证明SMT理论

    展开全文
  • IDAPythonScriptsIDAPythonScripts: 二进制漏洞静态分析检测脚本(IDA Pro)准备首先下载IDA Pro软件,版本 <= 6.8,7.0以上部分脚本不支持。漏洞内容(待更新)危险函数调用此脚本对IDA反汇编文件进行静态分析,检测...

    IDAPythonScripts

    IDAPythonScripts: 二进制漏洞静态分析检测脚本(IDA Pro)

    准备

    首先下载IDA Pro软件,版本 <= 6.8,7.0以上部分脚本不支持。

    漏洞内容(待更新)

    危险函数调用

    此脚本对IDA反汇编文件进行静态分析,检测其是否调用了可能产生漏洞的危险函数,没有找到汇编中的统一的危险函数集合,只好自己一点点积累,在functions.sql中可以看到一些常见的危险函数,保存在MySQL数据库中以后也方便Python调用。

    栈堆缓冲区溢出漏洞

    脚本从函数调用的地址向后跟踪推送到堆栈中的参数,并返回与指定参数对应的操作数。然后确定eax在被推入堆栈时是否指向堆栈缓冲区,存在可能造成堆栈缓冲区溢出的利用点。

    参考链接

    只能在IDA版本小于6.8上使用,IDA7.0报错。

    格式化字符串漏洞

    该脚本结合Github上开源IDA插件LazyIDA,吸收了其中对格式化字符串漏洞检测方法,使其功能在Python脚本中得以实现。

    整型溢出漏洞

    脚本首先计算当前分配给函数的内存大小,而后从IDA反汇编文件中找到各个函数的参数大小,并进行比较,检测是否存在“整型”溢出的可能。

    参考链接1 参考链接2 参考链接3

    缓冲区是变化的,因此检测出整型溢出的可能性很大,但是想要利用起来相对更难。

    脚本执行完毕后会造成IDA闪退,原因未知...

    ...

    关于更新

    漏洞都已经过测试,第一次首先发布4个已经成功检测的漏洞脚本,有一些地方仍然鸡肋,还需大佬支持改善。IDA是一个强大的反汇编分析软件,其中IDAPython插件可以简化手工分析过程,提高测试效率,然而国内对IDA的教学并不多,IDAPython插件的脚本编写更是如此,希望通过这个小仓库丰富IDAPython针对各类漏洞的分析脚本,前人栽树,后人乘凉。真心希望能够与大佬们多多交流学习,带带小白,微信:wwy18795980897。

    感谢

    部分脚本是在国内外众多大佬编写的模块上进行的代码加工,功能整合,是他们的默默奉献让这里的脚本壮大起来,以及发布在Github,Twitter,CSDN,安全客,FreeBuf等平台上的精彩文章,总是能让我眼前一亮,给我更多的灵感,感谢你们!!!

    展开全文
  • IDAPythonScriptsIDAPythonScripts: 二进制漏洞静态分析检测脚本(IDA Pro)准备首先下载IDA Pro软件,版本 <= 6.8,7.0以上部分脚本不支持。漏洞内容(待更新)危险函数调用此脚本对IDA反汇编文件进行静态分析,检测...

    IDAPythonScripts

    IDAPythonScripts: 二进制漏洞静态分析检测脚本(IDA Pro)

    准备

    首先下载IDA Pro软件,版本 <= 6.8,7.0以上部分脚本不支持。

    漏洞内容(待更新)

    危险函数调用

    此脚本对IDA反汇编文件进行静态分析,检测其是否调用了可能产生漏洞的危险函数,没有找到汇编中的统一的危险函数集合,只好自己一点点积累,在functions.sql中可以看到一些常见的危险函数,保存在MySQL数据库中以后也方便Python调用。

    栈堆缓冲区溢出漏洞

    脚本从函数调用的地址向后跟踪推送到堆栈中的参数,并返回与指定参数对应的操作数。然后确定eax在被推入堆栈时是否指向堆栈缓冲区,存在可能造成堆栈缓冲区溢出的利用点。

    参考链接

    只能在IDA版本小于6.8上使用,IDA7.0报错。

    格式化字符串漏洞

    该脚本结合Github上开源IDA插件LazyIDA,吸收了其中对格式化字符串漏洞检测方法,使其功能在Python脚本中得以实现。

    整型溢出漏洞

    脚本首先计算当前分配给函数的内存大小,而后从IDA反汇编文件中找到各个函数的参数大小,并进行比较,检测是否存在“整型”溢出的可能。

    参考链接1 参考链接2 参考链接3

    缓冲区是变化的,因此检测出整型溢出的可能性很大,但是想要利用起来相对更难。

    脚本执行完毕后会造成IDA闪退,原因未知...

    ...

    关于更新

    漏洞都已经过测试,第一次首先发布4个已经成功检测的漏洞脚本,有一些地方仍然鸡肋,还需大佬支持改善。IDA是一个强大的反汇编分析软件,其中IDAPython插件可以简化手工分析过程,提高测试效率,然而国内对IDA的教学并不多,IDAPython插件的脚本编写更是如此,希望通过这个小仓库丰富IDAPython针对各类漏洞的分析脚本,前人栽树,后人乘凉。真心希望能够与大佬们多多交流学习,带带小白,微信:wwy18795980897。

    感谢

    部分脚本是在国内外众多大佬编写的模块上进行的代码加工,功能整合,是他们的默默奉献让这里的脚本壮大起来,以及发布在Github,Twitter,CSDN,安全客,FreeBuf等平台上的精彩文章,总是能让我眼前一亮,给我更多的灵感,感谢你们!!!

    展开全文
  • 针对加密软件中的密钥安全性问题,提出一种基于动态二进制插桩的密钥安全性检测方法。该方法面向CryptoAPI加密应用程序,首先通过对CryptoAPI密钥应用模式的分析,指出潜在的密钥安全性漏洞;然后以动态二进制分析...
  • 本文从检测程序的漏洞方面着手,比较了以前常用的静态代码分析和实时错误注入的检测方法,提出了一种对可执行文件反汇编后的代码进行缓冲区溢出漏洞检测的技术, 提高了检测软件系统漏洞的效率。
  • 软件静态漏洞检测依据分析对象主要分为二进制漏洞检测和源代码漏洞检测。由于源代码含有更为丰富的语义信息而备受代码审查人员的青睐。针对现有的源代码漏洞检测研究工作,从基于代码相似性的漏洞检测、基于符号执行...
  • 二进制文件相似度计算-(综述)涉及文件关联、函数关联、漏洞关联、漏洞发现等多方面的应用,在软件剽窃检测、代码抄袭、版本识别、补丁查找等有重要作用。
  • 动态污点分析技术是旨在通过对运行时间内重写二进制代码的表现进行分析,从而检测和过滤攻击行为并以此提高系统安全性。通过试验表明,动态污点分析技术能够检测出绝大多数的软件漏洞,如果使用混合检测器的话,使用...
  • 代码漏洞检测工具整理

    千次阅读 2012-06-15 10:55:29
    PC-Lint 能够在Windows、MS-DOS 和OS/2 平台上使用,以二进制可执行文档的形式发布,而FlexeLint 运行于其他平台,以源代码的形式发布。PC-lint在全球拥有广泛的客户群,许多大型的软件研发组织都把P
  • 本文讲的是英特尔发布安全检测工具CHIPSEC,可检测被CIA泄露的漏洞,在维基解密CIA数据泄露事件后,英特尔安全(IntelSecurity)公司发布了CHIPSEC——一款用于检测计算机固件内的流氓二进制文件的EFI rootkit检测...
  • 依赖项检查是一种软件组成分析(SCA)工具,它试图检测项目依赖项中包含的公开披露的漏洞。 它通过确定给定依赖项是否存在通用平台枚举(CPE)标识符来完成此操作。 如果找到,它将生成一个报告,链接到相关的CVE...
  • Rootkit Hunter中文名叫”Rootkit猎手”, 可以发现... 比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限, 检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.安装Rootkit ...
  • Rootkit Hunter  中文名叫”Rootkit猎手”, 可以发现大约58个... 比如检查rootkits使用的基本文件, 可执行二进制文件的错误文件权限, 检测内核模块等等. Rootkit Hunter由Michael Boelen开发, 是开源(GPL)软件.
  • 软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描...
  • 软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描了。...
  • 软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描...
  • 目前检测软件缓冲区溢出漏洞仅局限于手工分析、二进制补丁比较及fuzzing技术等,这些技术要么对人工分析依赖程度高,要么盲目性太大,致使漏洞发掘效率极为低下。结合fuzzing技术、数据流动态分析技术以及异常自动...
  • 软件漏洞是指软件或操作系统中存在的故障、缺陷或弱点。Trivy检测操作系统包(Alpine、RHEL、CentOS等)和应用程序依赖(Bundler、Composer、npm、yarn等)的漏洞。Trivy很容易使用,只要安装二进制文件,就可以扫描...
  • 软件漏洞是软件或操作系统中存在的故障,缺陷或弱点。 Trivy检测OS软件包(Alpine,RHEL,CentOS等)的漏洞和应用程序依赖项(捆绑程序,Composer,npm,yarn等)。 Trivy易于使用。 只需安装二进制文件即可开始...
  • 恶意代码自我保护 ... 需要实际执行恶意代码,它通过对其二进制文件的分析,获得恶意代码的基本结构和特征,了解其工作方式和机制动态分析 在虚拟运行环境中,使用测试及监控软件检测恶意代码行...
  • 1.3.2 自动化的二进制审核 1.3.3 优点和缺点 1.4 小结 1.5 脚注 第2章 什么是模糊测试 2.1 模糊测试的定义 2.2 模糊测试的历史 2.3 模糊测试阶段 2.4 模糊测试的局限性和期望 2.4.1 访问控制缺陷 2.4.2 设计逻辑不良...
  • 软件缺陷静态分析CodeSonar

    千次阅读 2019-07-29 17:38:23
    CodeSonar是软件静态缺陷检查和安全性分析工具,帮助团队快速分析和验证代码,包括源代码和二进制代码,识别导致系统故障、可靠性差、系统漏洞或不安全条件的严重漏洞或错误。 通过在并发性分析、污染数据流分析和...
  • Grammatech近期发布了CodeSentry,它执行二进制软件组成分析(SCA)来盘点定制开发的应用程序中所使用的第三方代码,并检测它们可能存在的漏洞。CodeSentry可以识别盲点,它允许安全专业人员在整个软件生命周期中...
  • 文章目录初阶安全产品基础知识Web安全二进制安全密码学渗透测试代码审计软件的安全生命周期相关学习资源中阶网络安全二进制安全(中级)逆向...漏洞挖掘与利用二进制安全(高级)软件安全安全架构AI与安全相关学习资源...
  • 针对目前二进制程序异常可利用性判定方法存在检测模式少、分析深度和精度不足、准确率低的问题,通过分析多重指针的时空局部有效性,利用独立可控数据的内存布局构造从异常指令到跳转指令的指针引用路径,能够快速...
  • 我们使用多个二进制分析任务来测试框架:(i)漏洞检测。 (ii)代码相似性度量。 (iii)反编译。 (iv)恶意软件分析(稍后发布)。 要求 的Python 3.7.6 Python包 dgl 0.6.0 numpy的1.18.1 熊猫1.2.0 scipy ...
  • 导读: 5.5 寻找堆栈溢出的挑战当然,编写安全应用程序的最好...每一个程序都是可利用的,或者用它的源代码,或者仅仅作为一个二进制。显然,对于寻找产生溢出的缺陷,这种数据需要完全不同的方法。源代码审核工具根据

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

二进制软件漏洞检测