菜鸟的源代码审计之路

本文介绍了源代码审计的重要性和基本概念,详细讲解了MVC设计模式,并以Java的SpringMVC为例说明。文章阐述了人工审计与工具辅助审计的方法,包括Fortify、Checkmax、CodeQL、Semgrep和SonarQube等工具的特点和应用场景。着重讨论了开源工具Semgrep的优缺点及其使用示例,展示其在数据流跟踪能力上的局限性,并预告了后续将探讨的codeql和SonarQube工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

源代码审计,顾名思义就是检查源代码中是否存在安全隐患,使用自动化工具以及人工的方式对源代码进行分析检查,发现源代码的这些缺陷引起的漏洞,并提供修复措施和建议。

在开始之前,我们先了解一下MVC设计模式的基本概念:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写。其中:

Model(模型)一般用于放置对数据库进行存取等操作的代码

View(视图)一般用于放置静态资源如前端代码、css等

Controller(控制器)用于存放接受用户输入和业务逻辑处理的代码。

我们以Java的SpringMVC来举例,SpringBoot项目的三层架构如下:

Model层:包含service层和dao层

Service层用来实现业务逻辑

Dao层的作用是封装对数据库的访问:增删改查,不涉及业务逻辑

Controller层:负责业务模块的流程控制

View层:html、css、js等等

过程如下:

 

有了这些知识之后,我们就可以大致定位到文件位置了。

二、代码审计的方法

下面我们来介绍三种常用的代码审计的方式:

全文通读

敏感函数溯源

功能点定向审计

说明

从系统入口开始审计,分析所有数据流走向。

搜索敏感函数,逆向追踪参数的传递过程,分析参数是否可控。

定位敏感功能点,分析其是否存在安全缺陷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值