微前端架构如何改变企业的开发模式与效率提升
1073
2022-09-08
【web源码-代码审计方法】审计技巧及审计工具
目录
一、审计情况:
1.1、有源码:
1.2、有二进制程序:
1.3、有源码、二进制程序:
1.4、完全黑盒:
二、影响:
2.1、代码语言:
2.2、代码风格:
三、审计思路
3.1、敏感关键字回溯参数传递
3.2、接口分析
3.3、敏感功能点建模
3.4、全文关键代码
3.5、还原安全边界
四、小型源码
4.1、审计步骤:
五、大型源码
5.1、审计步骤:
六、审计工具
6.1、Seay源代码审计系统
6.2、RIPS
一、审计情况:
1.1、有源码: 通常不包含完整的编译和测试环境,且缺乏必须的关键依赖组件,往往无法构建出可运行的程序一般只能使用静态分析的方式去进行审计1.2、有二进制程序: 如 APK、EXE、jar 包、IoT 的系统固件等通常通过动态分析以及逆向工程的方式进行审计1.3、有源码、二进制程序: 审计提供了最为有利的访问权限,通常目标是开源软件,包含了完整的构建环境和依赖1.4、完全黑盒: 只能通过外部接口去进行盲测(较为常见)
二、影响:
2.1、代码语言: C/C++ 这种内存不安全的语言需要更多关注底层细节Java、Python 等内存安全的语言则更多关注上层逻辑实现;2.2、代码风格: 整洁、注释清晰的项目通常比其他项目花费更少时间去审计
三、审计思路
3.1、敏感关键字回溯参数传递大多数漏洞是由于函数的使用不当造成的搜索相应敏感关键字,即可快速挖掘想要的漏洞,可定向挖掘,高效、高质量但是由于没有通读代码,对程序整体架构了解不够深入,在挖掘漏洞时定位利用会花点时间,且对逻辑漏洞挖掘覆盖不到3.2、接口分析查找可控变量及其函数,正向追踪变量传递过程数据入口点,如函数的参数、环境变量等,寻找可被恶意输入触发的安全漏洞3.3、敏感功能点建模按功能点分块寻找文件上传功能、支付功能……通过行为建模还原模块的抽象行为,并寻找潜在的逻辑和功能漏洞3.4、全文关键代码函数集文件:即公共函数文件,通过打开index.php或者一些功能性文件进行寻找配置文件:一般包含config关键字,会有配置选项、数据库等配置信息安全过滤文件:一般包含filter、safe、check等关键字index文件:程序的入口,了解整个程序的架构、运行的流程、包含到的文件3.5、还原安全边界通过分析所有安全相关的校验和检查代码还原开发者或者安全架构师预设的安全边界,从而对还原后安全边界进行进一步审计,构建实际攻击的威胁模型
四、小型源码
代码量一般都不大,相对比较容易找到漏洞4.1、审计步骤:(1)输入点:找到各个输入点。(2)防护措施:找到针对输入的过滤并尝试绕过。(3)函数漏洞:找到处理输入的函数并查看有无漏洞。(4)利用:找到漏洞后进行最充分的利用。
五、大型源码
一般都是对CMS型的框架进行审计,主要问题是需要从大量代码中快速定位到漏洞5.1、审计步骤:(1)寻找危险函数(2)向上回溯,寻找可用输入点(3)绕过针对输入点的过滤(4)构造触发漏洞
六、审计工具
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~