综述如何开展代码审计

2023-11-01

目录

1. 大体流程

1.1审计准备阶段

1.2审计实施阶段

1.3审计报告阶段

1.4改进跟踪阶段

2. 审计准备工作

2.1明确审计目的

2.2签署保密协议

2.3熟悉应用程序

2.4制定检查列表

3. 审计实施过程

3.1信息收集

3.2安全缺陷监测

3.2.1静态分析

3.2.2动态测试

3.2.3进行漏洞挖掘

3.3特殊情形审查

4. 审计报告

5. 实时改进跟踪

开展代码审计的流程

  1. 大体流程

审计过程包括四个阶段:审计准备、审计实施、审计报告、改进跟踪。

1.1审计准备阶段

主要开展基本情况调研,签署保密协议、准备检查清单等工作

1.2审计实施阶段

主要开展资料检查、代码审查、结果分析等工作;

1.3审计报告阶段

主要开展审计结果的总结、陈述等工作

1.4改进跟踪阶段

由代码开发团队进行,主要对审计出的问题进行修复。对于安全缺陷代码修改后,再次进行审计。

  1. 审计准备工作

2.1明确审计目的

确定进行的是哪种方面的测试;例如软件产品的测试、公司软件安全性自测等等

2.2签署保密协议

明确双方权利义务

2.3熟悉应用程序

在进行代码审计之前,需要对应用程序的功能、结构和逻辑进行充分的了解,有助于更好地理解应用程序的运行机制和可能存在的安全漏洞。

A:收集代码和相关信息

收集应用程序的源代码、文档、配置文件等相关信息,有助于了解应用程序的结构和运行机制,并找出可能存在的安全漏洞。

B:熟悉编程语言和框架

审计人员需要熟悉应用程序所使用的编程语言和框架,了解其特点和安全问题,才能更好地找出可能存在的安全漏洞和代码缺陷。

C:确定审计范围和标准

在进行代码审计之前,需要确定审计的范围和标准,包括审计的目的、审计的时间、审计的深度等。这有助于审计人员更好地进行工作,确保审计结果符合预期。

D:选择审计工具和技术

在进行代码审计时,需要选择合适的工具和技术进行辅助分析和漏洞挖掘。常用的工具包括静态分析工具、动态分析工具、源代码审计工具等。

2.4制定检查列表

通过明确审计目的、熟悉应用程序等工作,形成代码安全审计要点,制定代码安全的检查列表。检查列表包括检查项和问题列表。

  1. 审计实施过程

3.1信息收集

通过各方式获得代码以及相应需求分析文档、设计文档、测试文档等资料。

通过资料了解代码的业务逻辑等信息。在了解代码基本信息的基础上,通过深入分析设计文档、访谈关键开发人员等方式,区分核心代码和一般性代码

3.2安全缺陷监测

3.2.1静态分析

代码审计的静态分析是一种对源代码进行分析和检查,可以发现编译等过程中可能存在的安全漏洞和代码缺陷。主要分为下列五种分析方式:

(1)语法分析

语法分析是指对源代码进行语法分析,检查代码是否符合编程语言的语法规范。

(2)数据流分析

    数据流分析是指对源代码进行分析;数据流分析可以发现一些潜在的安全漏洞,例如未经检查的用户输入、未初始化的变量等。

(3)控制流分析

控制流分析是指对源代码进行分析,了解代码中的控制流程,包括条件分支、循环、函数调用等。

(4)符号执行

符号执行是一种对源代码进行静态分析的高级方法,可以模拟程序执行的过程,通过对程序的所有可能路径进行分析,找出可能存在的安全漏洞和代码缺陷。

(5)模型检查

3.2.2动态测试

代码审计的动态测试是一种通过模拟攻击者的行为,对应用程序进行测试和漏洞挖掘的方法。与静态分析相比,动态测试可以更好地模拟真实环境下的攻击场景,发现一些静态分析难以发现的漏洞和问题。可分为:输入输出测试、异常测试、边界测试、安全测试、性能测试

3.2.3进行漏洞挖掘

通过上述两种测试方式发现漏洞

通常分为下列五种漏洞:SQL注入漏洞、XSS漏洞、文件包含漏洞、逻辑漏洞、认证和授权漏洞

3.3特殊情形审查

在有软件外包/采用开源软件/合作开发情形下,应对开源软件或外包部分进行代码安全审计。对于核心代码和一般性代码在审计时,采取重点审计和一般性审计措施

  1. 审计报告

审计实施完成后,组织召开评审会,根据评审意见,调整审计结果,形成审计报告。

代码审计中的审计报告是指对被审计代码进行分析和评估后,生成的一份详细的报告。主要分为以下三点:

A:发现的漏洞:列出在审计过程中发现的漏洞,包括漏洞的描述、风险等级、影响范围、建议修复方案等。

B:安全建议:针对发现的漏洞,提出相应的安全建议,包括代码修复、安全配置、安全测试等方面的建议。

C:代码质量评估:对被审计代码的质量进行评估,包括代码结构、规范性、可读性、可维护性等方面的评估。

  1. 实时改进跟踪

对审计中发现的问题进行修改,对未修改的应提供理由;

对代码的有效变更进行记录存档。

对于修复后仍产生的问题,可进行追溯审计过程

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

综述如何开展代码审计 的相关文章

  • 白帽子如何快速挖到人生的第一个漏洞 | 购物站点挖掘商城漏洞

    本文针对人群 很多朋友们接触安全都是通过书籍 网上流传的PDF 亦或是通过论坛里的文章 但可能经过了这样一段时间的学习 了解了一些常见漏洞的原理之后 对于漏洞挖掘还不是很清楚 甚至不明白如何下手 可能你通过 sql labs 初步掌握了sq
  • 2024年金三银四网络安全考试试题

    2023年金三银四网络安全考试试题 1 关于数据使用说法错误的是 A 在知识分享 案例中如涉及客户网络数据 应取敏感化 不得直接使用 B 在公开场合 公共媒体等谈论 传播或发布客户网络中的数据 需获得客户书面授权或取敏感化 公开渠道获得的除
  • 「网络安全渗透」如果你还不懂CSRF?这一篇让你彻底掌握

    1 什么是 CSRF 面试的时候的著名问题 谈一谈你对 CSRF 与 SSRF 区别的看法 这个问题 如果我们用非常通俗的语言讲的话 CSRF 更像是钓鱼的举动 是用户攻击用户的 而对于 SSRF 来说 是由服务器发出请求 用户 日 服务器
  • 200道网络安全常见面试题合集(附答案解析+配套资料)

    有不少小伙伴面临跳槽或者找工作 本文总结了常见的安全岗位面试题 方便各位复习 祝各位事业顺利 财运亨通 在网络安全的道路上越走越远 所有的资料都整理成了PDF 面试题和答案将会持续更新 因为无论如何也不可能覆盖所有的面试题 php爆绝对路径
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理

    文章目录 1 什么是DES 2 DES的基本概念 3 DES的加密流程 4 DES算法步骤详解 4 1 初始置换 Initial Permutation IP置换 4 2 加密轮次 4 3 F轮函数 4 3 1 拓展R到48位 4 3 2
  • 如何使用Imagewheel搭建一个简单的的私人图床无公网ip也能访问

    文章目录 1 前言 2 Imagewheel网站搭建 2 1 Imagewheel下载和安装 2 2 Imagewheel网页测试 2 3 cpolar的安装和注册 3 本地网页发布 3 1 Cpolar临时数据隧道
  • socket网络编程几大模型?看看CHAT是如何回复的?

    CHAT回复 网络编程中常见的有以下几种模型 1 阻塞I O模型 Blocking I O 传统的同步I O模型 一次只处理一个请求 2 非阻塞I O模型 Non blocking I O 应用程序轮询调用socket相关函数检查请求 不需
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 基于java的物业管理系统设计与实现

    基于java的物业管理系统设计与实现 I 引言 A 研究背景和动机 物业管理系统是指对物业进行管理和服务的系统 该系统需要具备对物业信息 人员信息 财务信息等进行管理的能力 基于Java的物业管理系统设计与实现的研究背景和动机主要体现在以下
  • 网络安全(黑客)自学

    1 网络安全是什么 网络安全可以基于攻击和防御视角来分类 我们经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 2 网络安全市场 一 是市场需求量高 二 则是发展相对成熟入门比较容易 3 所需要的
  • 揭秘网络世界的幕后密码——Wireshark网络协议分析软件

    在我们日常生活中 计算机和互联网已经成为不可或缺的一部分 然而 很少有人真正了解网络背后复杂的工作原理和通信协议 幸运的是 有一款强大而实用的软件 Wireshark 可以帮助我们深入了解网络世界的幕后密码 Wireshark是一款免费的网
  • 渗透测试常用工具汇总_渗透测试实战

    1 Wireshark Wireshark 前称Ethereal 是一个网络分包分析软件 是世界上使用最多的网络协议分析器 Wireshark 兼容所有主要的操作系统 如 Windows Linux macOS 和 Solaris kali
  • 网络安全:绕过 MSF 的一次渗透测试

    这次渗透的主站是 一个 Discuz 3 4 的搭建 违法招 piao 网站 配置有宝塔 WAF 用 Discuz ML 3 X 的漏洞进行攻击 但是没有成功 发现主站外链会有一个发卡网 引导人们来这充值 是 某某发卡网 而且域名指向也是主
  • tcpdump抓包

    tcpdump抓包 基本概念 1 类型的关键字 host 指明一台主机 如 host 10 1 110 110 net 指明一个网络地址 如 net 10 1 0 0 port 指明端口号 如 port 8090 2 确定方向的关键字 sr
  • 数据加密保障数据安全

    一 目标 1 1 预研需求 数据加密是安全领域中常用的安全措施 它们的主要作用是保护数据的机密性和完整性 以防止未经授权的访问 窃取 篡改或泄漏敏感信息 数据传输加密 保护敏感数据在传输过程中的安全 当数据通过网络传输时 它们可能会经过多个
  • 短信系统搭建主要因素|网页短信平台开发源码

    短信系统搭建主要因素 网页短信平台开发源码 随着移动互联网的快速发展 短信系统已成为企业和个人进行信息传递的重要工具 建立一个高效可靠的短信系统对于企业来说非常重要 下面我们将介绍一些影响短信系统搭建的主要因素 1 平台选择 在搭建短信系统
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1
  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 【安全】原型链污染 - Hackit2018

    目录 准备工作 解题 代码审计 Payload 准备工作 将这道题所需依赖模块都安装好后 运行一下 然后可以试着访问一下 报错是因为里面没内容而已 不影响 准备工作就做好了 解题 代码审计 const express require exp
  • 【安全】使用docker安装Nessus

    目录 一 准备docker环境服务器 略 二 安装 2 1 搜索镜像 2 2 拉取镜像 2 3 启动镜像 三 离线更新插件 3 1 获取challenge 3 2 官方注册获取激活码 3 3 使用challenge码和激活码获取插件下载地址

随机推荐

  • Spring Security 学习(一)认证与授权源码分析——一次痛苦的爬坑经历

    一点感悟 一个疏忽 花了 5h 解决了 哎 用一首歌来表达一下现在的心情 点击 不过也算摸清了Spring Security 一点基本原理 没有白费的时间 学习新知识的时候 遇到解决不了的问题一定不能心急 越是这个时候越要静下心来一步一步的
  • PLSQL连接Oracle 数据库配置详解

    1 下载instantclient basic win32 11 2 0 1 0 Oracle Instant Client Free tools and libraries for connecting to Oracle Databas
  • Unity中实时获取网格上点的位置,还有对应的面和法线

    在Unity中 可以使用Mesh类来获取一个网格上点的位置以及对应的面和法线 以下是具体步骤 步骤一 获取网格对象 在脚本中 需要先获取要操作的网格对象 可以使用以下代码 Mesh mesh GetComponent
  • java 静态块的作用域_Java语言的作用域及分类

    在java编程中 将变量声明在不同的位置就具有不同的作用域 而作用域的大小则使用 来确定 使用 可以确定定义的变量的可见性及生命周期 目前在java编程中 变量类型主要有三种 分别如下 一 成员变量 类的成员变量的作用范围同类的实例化对象的
  • Jmeter和Postman那个工具更适合做接口测试?

    软件测试行业做功能测试和接口测试的人相对比较多 在测试工作中 有高手 自然也会有小白 但有一点我们无法否认 就是每一个高手都是从小白开始的 所以今天我们就来谈谈一大部分人在做的接口测试 小白变高手也许你只差这一次深入了解 一 接口测试的目的
  • linux中比较大小的符号,linux shell中的比较符号与特殊符号介绍

    shell字符串比较 判断是否为数字 二元比较操作符 比较变量或者比较数字 注意数字与字符串的区别 整数比较 eq 等于 如 if a eq b ne 不等于 如 if a ne b gt 大于 如 if a gt b ge 大于等于 如
  • Cisco交换配置快速生成树

    文章目录 1 拓扑图 2 Sw1配置 3 Sw2配置 1 拓扑图 2 Sw1配置 进入特权模式 Switch gt en 进入全局模式 Switch conf t 修改设备名称 Switch config hostname Sw1 进入接口
  • java线程安全之死锁

    死锁图解 死锁代码演示 package DeadLock 死锁代码要会写 一般面试官要求你会写 只有会写的 才会在以后开发中注意这个事儿 因为死锁很难调试 public class DeadLockDemo public static vo
  • CSS(重点选择器)

    文章目录 CSS入门 CSS的三种导入方式 选择器 重点 基本选择器 层次选择器 结构伪类选择器 属性选择器 美化网页元素 字体样式 文本样式 阴影 超链接伪类 列表 背景 渐变 盒子模型 边框border 内外边距 圆角边框 阴影 浮动
  • DeepSpeed的hostfile文件

    文章目录 一 hostfile文件 二 linux别名创建 2 1 使用 SSH 配置文件 三 参考文档 一 hostfile文件 DeepSpeed多机多卡训练时 需要配置hostfile文件 hostfile文件是一个主机名 或 SSH
  • STM32驱动0.96寸oled液晶屏

    一 硬件准备 单片机 STM32F103ZET6 液晶屏 0 96寸oled液晶屏 注意 1 本模块支持IIC 3线制SPI以及4线制SPI接口总线模式切换 如图2红框内所示 具体说明如下 A 使用4 7K电阻只焊接R3 R4 则选择4线制
  • Nginx 配置 HTTPS(腾讯云)

    本文简单总结如何在 Nginx 中配置 HTTPS 并将 HTTP 重定向到 HTTPS 一 环境说明 系统 CentOS7 6 应用服务器 Nginx 1 16 1 Tomcat 9 0 安全组已开放端口 22 80 443 3389 二
  • 富文本插件 vue-quill-editor

    安装 npm i vue quill editor 导入富文本样式 import quill dist quill core css import quill dist quill snow css import quill dist qu
  • C++学习笔记之二(C++语法基础之变量和数据类型)

    一 常量和变量 C 程序中的数据分为常量和变量两大类 其中 常量是在程序运行过程中不变的量 而变量是在程序运行过程中可以发生变化的值 常量分类 直接常量 符合常量和枚举常量 在本节文章中主要讲解直接常量和符合常量 而枚举常量将在后需章节中进
  • 数组与链表的优缺点

    数组 在内存上给出了连续的空间 链表 内存地址上可以是不连续的 每个链表的节点包括原来的内存和下一个节点的信息 单向的一个 双向链表的话 会有两个 数组优于链表的 1 内存空间占用的少 因为链表节点会附加上一块或两块下一个节点的信息 但是数
  • 新CSS样式

  • Wordpress升级版本后插件和主题常见出错及处理方法整理【持续更新】

    Wordpress报错怎么解决 一般常用的排查方法 暂时禁用所有插件 将主题更改为默认主题 修改wp config php文件 更新固定链接设置 确保设置正确 检查 htaccess文件是否存在且是否可写 检查主题的页面模板文件是否存在 7
  • CUDA error: unspecified launch failure问题的解决

    最近编程的时候 程序之中一直报错CUDA error unspecified launch failure 首先我查找了一下网上大佬的方法 CUDA问题的解决 然而我手动调整了相应的设置并重启计算机之后 发现问题并没有得到相应的解决 接着我
  • ChatGPT在语音识别技术领域的应用

    第一章 引言 近年来 随着深度学习技术的飞速发展 语音识别技术已经成为了人工智能领域中备受关注的重要领域之一 在语音识别技术的应用中 ChatGPT作为一款先进的语言模型 可以发挥其强大的文本生成和自然语言处理能力 为语音识别技术的发展注入
  • 综述如何开展代码审计

    目录 1 大体流程 1 1审计准备阶段 1 2审计实施阶段 1 3审计报告阶段 1 4改进跟踪阶段 2 审计准备工作 2 1明确审计目的 2 2签署保密协议 2 3熟悉应用程序 2 4制定检查列表 3 审计实施过程 3 1信息收集 3 2安