GDA-隐私泄露检测
GDA的隐私泄露检测引擎是基于GDA反编译器的低级中间表示做寄存器追踪来实现的,其检测内核以轻量级高速污点传播引擎FlashFlow为基础,
通过扫描APP中的所有可能的敏感数据生成点(DataPin)做污点传播分析来确定泄露点。同时记录有效泄露点与敏感数据生成点之间的路径,
以方便做路劲回溯,并且输出隐私泄露报告。
.....
GDA的隐私泄露检测引擎是基于GDA反编译器的低级中间表示做寄存器追踪来实现的,其检测内核以轻量级高速污点传播引擎FlashFlow为基础,
通过扫描APP中的所有可能的敏感数据生成点(DataPin)做污点传播分析来确定泄露点。同时记录有效泄露点与敏感数据生成点之间的路径,
以方便做路劲回溯,并且输出隐私泄露报告。
.....
GDA漏洞扫描引擎由漏洞检测引擎和规则解释引擎构成:漏洞检测引擎采用两级HASH TABLE来存储method,以实现method的快速定位,
同时结合GDA独有高速反编译内核、HIRA(高级中间表示分析器)、API链检测器等底层分析模块构建而成的一个高效漏洞检测引擎。
规则解释引擎采用基于堆栈状态机的规则判定法,同时采用了一种以动态执行的方式进行规则解释(动态规则解释器)。
其中规则表达式通过词法分析器和语法分析器将规则表达式存入堆栈,规则解释器是基于堆栈做规则表达式的解释执行。
这里之所以是动态的,体现在两个方面:1、词法分析器和语法分析器从左到右扫描规则,一旦检查出一条完整表达式后或者检测到算符优先级下降时,
就会调用解释器做堆栈执行,这里不会将整条规则解析到堆栈后再调用解释器执行;2、动态解释执行后的结果是一种布尔状态的值(结果中常常还会携带有更复杂的参数),
同样GDA的规则解释引擎也不会等到所有表达式执行完后再做规则判定,而是采用效率更高的动态判定方法。
.....
程序路径求解问题的应用方向。
漏洞挖掘:当我们确定程序的攻击面后,需要知道攻击面上的点是否与脆弱函数存在一条可以联通的路径。
隐私泄露:对于程序中的任意敏感数据获取函数,需要知道这些数据是否被泄露出去。
恶意代码分析:对于恶意代码中的敏感函数,需要确定这些敏感函数是否被触发。
其他:闭源代码审计,程序半自动化分析等。
.....
当我们在做android APK取证分析或者恶意代码分析时,会想知道一个APK中各个文件的原始时间以确定该代码项目的最早产生时间,
最后一次签名的时间等等信息,以及对apk内的所有文件进行全局检索,收集相关线索和证据:如IP地址,域名,URL,DB文件名,apikey等等信息。
于是便在GDA反编译器中加入该工具,以应对一些特殊的使用场景
.....