泷羽sec-安全见闻(9)

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章。

视频地址: https://www.bilibili.com/video/BV1PH1FYZE1H

1. 二进制的基本概念

二进制是计算技术中广泛采用的一种数值二进制的基本概念:二进制是计算技术中广泛采用的一种数制。它只有两个数码:0 和1,采用逢二进一的进位规则。计算机中的所有数据都是以二进制形式存储和处理的。

2. 二进制在网络安全中的重要性

  • 底层安全基础:网络系统的安全性很大程度上依赖于底层二进制代码的正确性和安全性。恶意软件、漏洞利用等往往针对二进制代码进行攻击。

  • 漏洞分析:通过分析二进制代码可以发现潜在的安全漏洞,如缓冲区溢出(例如硬件安全、端口服务、渗透测试等)、代码注入等。

  • 加密与解密:二进制代码在加密和解密算法中起着关键作用,对二进制的理解有助于分析和破解加密机制。

3. 二进制安全的概念与范畴

3.1 二进制安全的定义

二进制安全是指在处理二进制数据时,确保数据的完整性、保密性和可用性,防止恶意攻击和数据篡改。

3.2 范畴

  • 内存安全:防止内存泄漏、缓冲区溢出等问题,确保程序在内存中的正确运行。

  • 代码安全:分析和检测二进制代码中的漏洞,如逻辑错误、安全漏洞等。

  • 数据安全:保护二进制数据的机密性和完整性,防止数据被窃取或篡改。

  • 逆向工程:通过对二进制代码的分析,了解程序的功能和结构,以便发现潜在的安全问题。

  • 漏洞修复:通过对发现的二进制安全漏洞,进行及时的修复和加固。

4. 二进制安全的渗透测试方法

4.1 静态分析

工具介绍:常用的反汇编工具 OIlyDbg和Immunity Debugger 可以将二进制文件反汇编成汇编代码,便于分析。此外,Hopper Disassembler也是一款功能强大的反汇编工 具,尤其在分析 macOS和iOS平台的二进制文件时表现出色。

  • OllyDbg OllyDebug是一个32位汇编分析调试器,

  • Immunity Debugger是一种强大的新方法来编写漏洞利用、分析恶意软件和逆向工程

分析流程:

  • 识别关键函数和代码段:通过对程序的入口点、导出函数等进行分析,确定可能存在安全问题的关键代码区域。

  • 检查代码中的潜在漏洞:如缓冲区溢出、整数溢出、格式化字符串漏洞等。可以通过检查函数调用、内存操作等方式来发现这些漏洞。

  • 分析控制流和数据流:了解程序的执行流程和数据的流向,查找可能的攻击路径例如,通过分析条件跳转、循环等控制结构,以及变量的赋值和传递,确定是否存在可以被利用的漏洞。

  • 符号执行:使用KLEE等符号执行工具对二进制代码进行分析,可以在不实际执行程序的情况下,探索程序的所有可能执行路径,从而发现潜在的安全漏洞。

(符号执行 (Symbolic Execution) 是一种程序分析技术,其可以通过分析程序来得到让特定代码区域执行的输入。使用符号执行分析一个程序时,该程序会使用符号值作为输入,而非一般执行程序时使用的具体值。在达到目标代码时,分析器可以得到相应的路径约束,然后通过约束求解器来得到可以触发目标代码的具体值。)

4.2 动态分析

工具介绍:GDB(GNU Debugger)是一款强大的调试器,可对运行中的程序进行调试,观察程序的行为和内存状态。此外,WinDbg 在 Windows 平台上也被广泛使用。

分析流程:

就像开发的调试debug

  • 设置断点:在关键代码位置设置断点,以便在程序执行到该位置时暂停,观察程序的状态。

  • 跟踪程序的执行流程:通过单步执行、继续执行等操作,跟踪程序的执行流程了解程序的行为。

  • 观察内存中的数据变化:检查程序在运行过程中内存中的数据变化,检测是否存 在异常行为。例如,观察变量的值是否被意外修改或者是否存在内存泄漏等问题。

  • 分析程序的输入输出:监测程序的输入和输出,查找可能的漏洞利用点。例如,检查程序是否对输入数据进行了正确的验证或者是否存在输出敏感信息的情况。

5. 模糊测试(类似于暴力破解,用字典去跑)

工具介绍:

  • American Fuzzy Lop(AFL)是一款非常流行的模糊测试工具,它能够高效地生成大量的随机输入数据,对程序进行测试。
  • Peach Fuzzer也是一款功能强大的模糊测试工具,支持多种平台和协议。

分析流程:

  • 确定输入接口和目标程序:确定程序的输入接口,例如命令行参数、文件输入、网络输入等。然后选择要进行模糊测试的目标程序。

  • 生成随机输入数据:使用模糊测试工具生成大量的随机输入数据,这些数据可以是各种类型的,如字符串、整数、文件内容等。

  • 将输入数据输入到程序中:将生成的随机输入数据输入到目标程序中,观察程序的行为。

  • 监测程序的行为:查找可能的崩溃或异常情况,如果程序出现崩溃或异常行为,分析原因确定是否存在安全漏洞。

  • 优化模糊测试策略:根据测试结果不断优化模糊测试策略,提高测试的效率和覆盖率。

漏洞利用

工具介绍:

Metasploit 是一款广泛使用的漏洞利用框架,它提供了大量的漏洞利用模块和辅助工具,方便开发和执行漏洞利用代码。此外Exploit-DB 是一个漏洞利用代码库,可以从中查找和参考已有的漏洞利用代码。

分析流程:
  • 确定目标系统中的漏洞,通过漏洞扫描、渗透测试等方式,确定目标系统中存在的安全漏洞。

  • 开发漏洞利用代码:根据漏洞的类型和特点,开发相应的漏洞利用代码。漏洞利用代码可以使用各种编程语言编写,如Python、C、Assembly等。

  • 利用漏洞获取系统权限:将漏洞利用代码发送到目标系统,触发漏洞,获取系统权限。

  • 验证漏洞利用的有效性:验证漏洞利用是否成功,以及获取的系统权限是否符合预期。

  • 进行后续的渗透测试:在获取系统权限后,可以进行进一步的渗透测试,如提取敏感信息、安装后门等。

6. 代码审计

工具介绍:

Checkmarx和Fortify是两款常用的代码审计工具,它们能够对源代码进 行分析,查找潜在的安全漏洞。此外,SonarQube 也可以用于代码质量和安全审计。

  • Checkmarx

  • Fortify

  • SonarQube(不如前面两个)

  • 分析流程:选择要审计的代码:确定要进行代码审计的源代码文件或项目。

  • 配置审计工具:根据项目的特点和需求,配置代码审计工具的规则和参数。

  • 运行代码审计工具:启动代码审计工具,对源代码进行分析。

  • 分析审计结果:查看代码审计工具生成的报告,分析其中的安全漏洞和问题

  • 修复安全漏洞:根据审计结果,对发现的安全漏洞进行修复和加固。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461317.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

入门 | Kafka数据使用vector消费到Loki中使用grafana展示

一、Loki的基本介绍 1、基本介绍 Loki 是由 Grafana Labs 开发的一款水平可扩展、高性价比的日志聚合系统。它的设计初衷是为了有效地处理和存储大量的日志数据,与 Grafana 生态系统紧密集成,方便用户在 Grafana 中对日志进行查询和可视化操作。 从架构…

Golang | Leetcode Golang题解之第515题在每个树行中找最大值

题目: 题解: func largestValues(root *TreeNode) (ans []int) {if root nil {return}q : []*TreeNode{root}for len(q) > 0 {maxVal : math.MinInt32tmp : qq nilfor _, node : range tmp {maxVal max(maxVal, node.Val)if node.Left ! nil {q …

Vue3的router和Vuex的学习笔记整理

一、路由的基本搭建 1、安装 npm install vue-router --registryhttps://registry.npmmirror.com 2、配置路由模块 第一步:src/router/index.js创建文件 第二步:在src/view下面创建两个vue文件,一个叫Home.vue和About.vue 第三步&#x…

vue插件清除 所有console.log()

一、作用 1、提升性能console.log() 语句会消耗一定的性能,尤其是在频繁调用的情况下。在生产环境中移除这些语句可以提高应用的运行效率。 2、减少信息泄露console.log() 可以输出敏感信息(如用户数据、API 响应等)。在生产环境中&#xf…

vue项目中如何在路由变化时增加一个进度条

在 Vue.js 项目中,使用路由(如 Vue Router)时,为了提升用户体验,你可能会想要在路由变化时显示一个进度条。这可以通过多种方式实现,其中一种流行的做法是使用第三方库,如 vue-loading-bar 或 n…

python 模块和包、类和对象

模块 模块是包含 Python 代码的文件,通常用于组织相关的函数、类和其他语句。模块可以被导入并在其他 Python 文件中使用。 创建模块 假设你创建了一个名为 mymodule.py 的文件,内容如下: # mymodule.pydef greet(name): return f"…

图书管理系统汇报

【1A536】图书管理系统汇报 项目介绍1.用户登录注册功能1. 1用户角色管理2.图书管理功能2.1 添加图书2.2 编辑图书2.3 删除图书 3.图书搜索和筛选3.1 图书搜索3.2 图书筛选 4.图书借阅、图书归还4.1 图书借阅4.2 图书归还 5.用户信息管理5.1上传头像5.2修改头像5.3 修改密码 项…

执行Django项目的数据库迁移命令时报错:(1050, “Table ‘django_session‘ already exists“);如何破?

一、问题描述: 当我们写Django时,由于自己的操作不当,导致执行数据库迁移命令时报错,报错的种类有很多,例如: 迁移文件冲突:可能你有多个迁移文件试图创建同一个表。数据库状态与迁移文件不同…

蓝牙BLE开发——红米手机无法搜索蓝牙设备?

解决 红米手机,无法搜索附近蓝牙设备 具体型号当时忘记查看了,如果你遇到有以下选项,记得打开~ 设置权限

java设计模式之创建者模式(5种)

设计模式 软件设计模式,又称为设计模式,是一套被反复利用,代码设计经验的总结,他是在软件设计过程中的一些不断发生的问题,以及该问题的解决方案。 **创建者模式又分为以下五个模式:**用来描述怎么“将对象…

SpringSecurity框架(入门)

简介: Spring Security 是一个用于构建安全的 Java 应用程序的框架,尤其适用于基于Spring的应用程序。它提供了全面的安全控制,从认证(Authentication)到授权(Authorization),以及…

广东网站设计提升你网站在搜索引擎中的排名

在当今网络盛行的时代,拥有一个设计优良的网站,对企业的在线发展至关重要。特别是对于广东地区的企业来说,网站设计不仅仅是美观的问题,更直接影响着搜索引擎中的排名。因此,精心策划和设计的网站,能够显著…

Cuebric:用AI重新定义3D创作的未来

一、简介 Cuebric 是一家成立于2022年夏天的好莱坞创新公司,致力于为电影、电视、游戏和时尚等行业提供先进的AI多模态SaaS平台。自2024年1月正式推出以来,Cuebric 已经在市场上获得了广泛的认可和积极的反馈。目前,该平台正处于1.0版本的beta测试阶段,已募集约50万美元的…

计算机的错误计算(一百四十)

摘要 探讨 MATLAB 中函数 的计算精度。 从计算机的错误计算(一百三十九)知,对于对数运算,当真数在 1 附近时,计算机的输出会出现较大误差。为此,IEEE 754-2019 中专门定义有函数 其目的就是当自变量在 …

《Python游戏编程入门》注-第4章2

《Python游戏编程入门》的“4.2.2 键盘事件”中介绍了通过键盘事件来监听键盘按键的方法。 1 键盘事件 玩家点击键盘中某个按键实际上包含了两个动作:点击按键和释放按键,也就是按键按下和松开。按键按下的对应的事件是KEYDOWN,按键松开对应…

《高频电子线路》 —— 高频谐振功放(2)

动态特性与负载特性 动态特性 静态特性是指,不考虑负载阻抗的时候获得的,即转移特性曲线和输出特性曲线。 考虑负载时,电流变化的时候,负载上的电压就会变化,管子上面的Vce也会变化。 考虑负载的反作用后&#xff0c…

SpringBoot 下的Excel文件损坏与内容乱码问题

序言 随着打包部署的方式的改变,原本正常运行的代码可能带来一些新的问题,比如我们现在使用SpringBoot 的方式生成Jar包直接运行,就会对我们再在Resource下的Excel文件产生影响,导入与预期不符的情况发生cuiyaonan2000163.com 比…

「Mac畅玩鸿蒙与硬件12」鸿蒙UI组件篇2 - Image组件的使用

在鸿蒙应用开发中,Image 组件用于加载和显示图片资源,并提供多种属性来控制图片的显示效果和适配方式。本篇将带你学习如何在鸿蒙应用中加载本地和远程图片、设置图片样式以及实现简单的图片轮播功能。 关键词 Image 组件图片加载本地资源远程图片图片轮播一、Image 组件基础…

上海亚商投顾:沪指缩量调整 华为概念股午后爆发

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 市场全天震荡调整,沪指、深成指午后跌超1%,创业板指一度跌逾2%,尾盘跌幅有…

vim命令及shell命令

目录 vim命令 vim三种工作模式 光标的跳转 复制粘贴 剪切删除 撤销回滚替换 翻页 其他 shell编程命令 判断用户的参数 可用的整数比较运算符 常见的字符串比较运算符 if条件测试语句 for条件循环语句 vim命令 vim三种工作模式 Vim编辑器中设置了三种模式: 命令…