平均年薪25万,这个测试技能真香!

最近总是听到身边朋友在吐槽:"最近太累了,加班多,事情杂……可是到手的工资却少的可怜!

我们身边总不缺乏这样的例子,每天很努力的工作,却得不到领导的重视,升职加薪总轮不到他;遇到公司进行结构优化时,却没想到:“这么拼命的工作,第一个拆掉的,竟然是自己!”

其实那些自认为自己很努力的,只是在“用战术的勤奋,掩盖战略上的懒惰”,这个时代拼命的人很多,但是会拼的却很少,选对方法很重要!

 

 

有一位跳槽做软件测试的朋友,正是因为掌握一项技能,在众多竞争者脱颖而出,斩获25万年薪offer,到底是什么技能,让他如此优秀?接下来我们来了解下这个神奇的技术—“插桩技术”

插桩技术指在保证现有程序逻辑完整性的基础上,在程序中插入探针,从而采集代码中的信息。

 

1、 “插桩”式技术实现原理

 

“插桩”式实现有两个阶段,动态HooK和污点传播。

 

动态HooK阶段技术原理

动态Hook阶段,越靠近底层,应用数据越详尽,数据量也越大,技术难度也越高;以Java举例,常见的Hook层是JVM层,通过JVMTI接口对字节码,在类被加载之前对类进行拦截,通过插入监听字节码,进行修改以实现Hook。

 

污点传播阶段技术原理

污点传播分析技术是信息流分析技术的一种实践方法,该技术通过对系统中敏感数据进行标记继而跟踪标记数据在程序中的传播检测系统安全。污点分析可以有效地检测该问题污点分析,首先要识别引入敏感数据的接口(source,污点源)并进行污点标记,如果被标记的变量又通过程序依赖关系传播了给其它变量,那么根据相关传播规则继续标记对应的变量,变量都将会被标记,当被标记的变量到达信息泄露的位置(sink,污点汇聚点)时,则根据对应的安全策略进行检测。

 

 

 

2、“插桩”式优劣分析

 

“插桩”式优势总结

(1).基于业务调用上下文进行分析无需重放,检测效率较高;

(2).可获取更多的应用程序信息,因此发现的安全漏洞既可定位到代码行,还可以得到完整的请求和响应信息,完整的数据流和堆栈信息,便于定位、修复和验证安全漏洞;

(3).检测逻辑无需重放请求,可对防重放逻辑做测试(支持测试AJAX页面、CSRF Token页面、验证码页面、API孤链、POST表单请求等环境)。

(4).支持第三方组件管理、硬编码信息、弱加密算法等检测;

 

“插桩”式劣势总结

(1).无法解决逻辑漏洞、越权漏洞等业务风险问题,对客户端的漏洞覆盖(XSS)支持不完善;

(2).Agent方式对于应用侵入性较强,可能会改变业务原本逻辑,且需要在关键方法、函数进行挂钩Hook操作,会直接影响应用性能;

(3).开发语言不同、框架不一致、系统版本不统一、JDK版本不同,集成适配成本较高,可能会导致应用系统崩溃或HooK点不足导致的漏洞未检出;

(4).Agent与业务是紧耦合的,需要在每台应用服务器上部署对应版本及语言框架的Agent 且每次更新都需要重启WebServer,使用成本较高;

(5).污点传播技术仅靠调用关系做验证,无法保证漏洞的准确性;

猜你喜欢

转载自www.cnblogs.com/huile11/p/12795481.html
今日推荐