oo-yaoyao

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  15 随笔 :: 0 文章 :: 0 评论 :: 197 阅读

免责声明:
学习视频来自 B 站up主泷羽sec,笔记中的链接均来源网络,如涉及侵权马上删除文章。
笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。

二进制与网络安全的关系

二进制

基本概念

只有两个数码:0和1,逢二进一,计算机中的所有数据都是以二进制形式存储和处理的。
在网络安全中的重要性
底层安全基础:网络系统的安全性很大程度上依赖于底层二进制代码的正确性和安全性。恶意软件、漏洞利用等往往针对二进制代码进行攻击。

​ 漏洞分析:通过分析二进制代码可以发现潜在的安全漏洞,如缓冲区溢出、代码注入等

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

二进制安全介绍

二进制安全的定义

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

  • 内存安全:防止内存泄漏、缓冲区溢出等问题,确保程序在内存中的正确运行。
  • 代码安全:分析和检测二进制代码中的漏洞,如逻辑错误、安全漏洞等。
  • 数据安全:保护二进制数据的机密性和完整性,防止数据被窃取或篡改。
  • 逆向工程:通过对二进制代码的分析,了解程序的功能和结构,以便发现潜在的安全问题。
  • 漏洞修复:针对发现的二进制安全漏洞,进行及时的修复和加固。

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

静态分析

  • 反汇编工具

    OllyDbg,Immunity Debugger,Hopper Disassembler(macOS和iOS平台)

  • 分析流程

    1. 识别关键函数和代码段:通过对程序的入口点、导出函数等进行分析,确定可能存在安全问题的关键代码区域。
    2. 检查代码中的潜在漏洞:如缓冲区溢出、整数溢出、格式化字符串漏洞等。可以通过检查函数调用、内存操作等方式来发现这些漏洞。
    3. 分析控制流和数据流:了解程序的执行流程和数据的流向,查找可能的攻击路径例如,通过分析条件跳转、循环等控制结构,以及变量的赋值和传递,确定是否存在可以被利用的漏洞。
    4. 符号执行:使用 KLEE 等符号执行工具对二进制代码进行分析,可以在不实际执行程序的情况下,探索程序的所有可能执行路径,从而发现潜在的安全漏洞。

动态分析

这个在学操作系统的时候学习过了,所以就做简要的笔记

  • 工具

    gdb,windbg(windows)

  • 分析流程

    1. 设置断点
    2. 跟踪程序的执行流程
    3. 观察内存中的数据变化
    4. 分析程序的输入输出

模糊测试

  • 工具

    American Fuzzy Lop(AFL)能够高效生成大量的随机输入数据进行测试

    Peach和Fuzzer 支持多平台协议

  • 分析流程

    1. 确定输入接口和目标程序:确定程序的输入接口,例如命令行参数、文件输入、网络输入等。然后选择要进行模糊测试的目标程序。
    2. 生成随机输入数据:使用模糊测试工具生成大量的随机输入数据,这些数据可以是各种类型的,如字符串、整数、文件内容等。
    3. 将输入数据输入到程序中:将生成的随机输入数据输入到目标程序中,观察程序的行为。
    4. 监测程序的行为:查找可能的崩溃或异常情况。如果程序出现崩溃或异常行为,分析原因,确定是否存在安全漏洞。
    5. 优化模糊测试策略:根据测试结果,不断优化模糊测试策略,提高测试的效率和覆盖率。

漏洞利用

  • 工具

    Metasploit

    Exploit-DB(漏洞利用代码库)

  • 分析流程

    1. 确定目标系统中的漏洞(漏洞发现):通过漏洞扫描、渗透测试等方式,确定目标系统中存在的安全漏洞
    2. 开发漏洞利用代码(漏洞利用):根据漏洞的类型和特点,开发相应的漏洞利用代码。漏洞利用代码可以使用各种编程语言编写,如Python、C、Assembly等。
    3. 利用漏洞获取系统权限(获取权限,提权):将漏洞利用代码发送到目标系统,触发漏洞,获取系统权限。
    4. 验证漏洞利用的有效性:验证漏洞利用是否成功,以及获取的系统权限是否符合预期。
    5. 进行后续的渗透测试:在获取系统权限后,可以进行进一步的渗透测试,如提取敏感信息、安装后门等。

代码审计

  • 工具

    Checkmarx,Fortify(这两款常用)

    SonarQube

  • 分析流程

    1. 选择要审计的代码:确定要进行代码审计的源代码文件或项目。
    2. 配置审计工具:根据项目的特点和需求,配置代码审计工具的规则和参数
    3. 运行代码审计工具:启动代码审计工具,对源代码进行分析。
    4. 分析审计结果:查看代码审计工具生成的报告,分析其中的安全漏洞和问题。
    5. 修复安全漏洞:根据审计结
posted on   OO_0  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示