[设计] audit机制的风险

news2024/10/4 12:27:47

继前一篇:[程序员] 技术支持里的大宝藏。在这个问题的处理过程中,发现软件路由audit机制的处理,存在一个小问题,引发的一个小的个人思考!

在程序的设计里,也有一种防御机制是需要通过audit机制来提供一种自愈的方式。比如在C语言里,有很多函数要做入参的判断,看输入是否在合理的范围;还有对指针的判断,是否初始化等等;如果指针未作有效性校验,可能导致代码非法内存地址访问从而导致程序异常退出。如果加了校验,也就意味着,所有用到指针的函数,都需要这种校验,代码量就上来了,导致性能下降,出错概率增加,维护成本增高等等后续的问题。

还有一种是复杂的数据一致性的audit恢复机制;例如有一个软件需要自己维护三层路由表,以及恢复机制;具体是,一开始启动,软件会将需要的路由表配置到系统里;这样就有两套路由的信息,一个在软件内存,一个在内核系统。如果操作系统里的路由表里的记录和软件内存中记录不一致,需要做增删的操作,以确保应用于操作系统在路由数据和内存一致。这里产生不一致的情况,大体有两种:一个是人为误操作;一个是内核有问题。

但是就这两种情况,发生频率非常低。因为,现场操作的时候也是战战兢兢如履薄冰。而内核我们选用的都是比较稳定,已经在整个软件业,soak了很长时间,而且路由模块在内核里非常的稳定。如果要做这个audit,就需要软件自己实现一套netlink操作增删改查校验的机制(如果使用ip命令,效率是个问题;如果使用相应的库,需要熟悉这个库的使用方式)。增加了原有代码的代码量,随之而来的就是bug风险增加,增加效率的消耗。

上面这个例子就严重依赖内核netlink的行为,如果内核发生变化,也要做相应的调整,其实这一块的代码量不小。不巧,本人就遇到几例,这种审计代码带来的bug,导致现场的网络出现问题。这就相当于路由的原始删减没有问题,内核没有问题,人为操作上也没碰到过误操作,但是审计代码出了好几次问题。这就比较尴尬!

这种审计的代码做的一定要仔细,要有更为高的测试/回归测试/边界值测试的覆盖率!以免尴尬的出现!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字乡村智慧乡镇整体规划设计解决方案

1. 数字乡村的重要性 数字乡镇作为乡村振兴战略的一部分,通过信息化手段提高农业农村现代化水平,是建设数字中国的重要内容,对保障扶贫成果、促进乡村治理体系和治理能力现代化具有基础支撑作用。 2. 乡镇政府和农户面临的问题 乡镇政府和…

Python内存管理与泄漏排查实战

Python内存管理与泄漏排查实战 Python作为一种高级编程语言,因其易读性和丰富的标准库而备受开发者青睐。然而,随着项目的复杂度增加,内存管理问题可能会影响程序的性能,甚至导致内存泄漏。为了构建健壮且高效的应用程序&#xf…

python爬虫 - 初识爬虫

🌈个人主页:https://blog.csdn.net/2401_86688088?typeblog 🔥 系列专栏:https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、爬虫的关键概念 (一)HTTP请求与响应 &#xff0…

软件工程-数据流图

数据流图(Data Flow Diagram,DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 数据流图的设计原则 数据守恒原则,对于任何一个加工来说,其所有输出数据流中的数据必须能从该加工的输入数据流中…

移动应用的界面配置-手机银行APP

设置登录界面为线性布局,组件垂直居中排列设置主页为滚动模式,包括布局、添加背景图片设置按钮样式,包括形状、边框线的宽度和颜色 设置登录界面 设置界面为线性布局,组件垂直居中排列 --android:gravity"center_vertical…

前缀调整——优化连续提示以生成文本

人工智能咨询培训老师叶梓 转载标明出处 大模型微调需要更新并存储模型的所有参数,这不仅增加了存储成本,也使得模型的部署变得复杂。为了解决这一问题,斯坦福大学的Xiang Lisa Li和Percy Liang提出了一种名为“前缀调整”(Prefi…

YOLO11改进|注意力机制篇|引入HAT超分辨率重建模块

目录 一、HAttention注意力机制1.1HAttention注意力介绍1.2HAT核心代码 二、添加HAT注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、HAttention注意力机制 1.1HAttention注意力介绍 HAT模型 通过结合卷积特征提取与多尺度注意…

第 22 章 工作面试老大难——锁

22.1 解决并发事务带来问题的两种基本方式 当一个事务想对一条记录做改动时,首先会看看内存中有没有与这条记录关联的锁结构,当没有的时候就会在内存中生成一个锁结构与之关联。 trx 信息:代表这个锁结构是哪个事务生成的。is_waiting&…

【SpringBoot详细教程】-10-SpringBoot整合swagger【持续更新】

🌿 Swagger2构建Restful API 文档 🍁 Swagger简介 由于SpringBoot能够快速开发、便捷部署等特性,相信有很⼤⼀部分SpringBoot的⽤户会⽤来构建 RESTful API。⽽我们构建RESTfulAPI的⽬的通常都是由于多终端的原因,这些终端会共⽤…

[Python学习日记-37] Python 中的内置函数(下)

简介 在 Python 中有很多内置函数,例如len(),这些函数是Python解释器自带的,可以直接使用。本篇将介绍 O-Z 的内置函数,下图是官方给出的所有 Python 解释器自带的函数 内置函数官方详解:Built-in Functions — Python…

新160个crackme - 073-abexcrackme3

运行分析 需要破解keyfile PE分析 疑似C程序,32位,EP Section是CODE,猜测无壳 静态分析&动态调试 ida搜索字符串,进入函数 call analysis failed,无法查看伪代码 找到上面提示的地址401088,发现是个Exi…

鼓组编写:SsdSample鼓映射 GM Map 自动保存 互换midi位置 风格模板 逻辑编辑器

SsdSample音源的键位映射 方便编写鼓的技巧 可以这样去设置键位关系的面板和钢琴卷帘窗的面板,方便去写鼓。 可以先按GM的midi标准去写鼓,然后比对下鼓的键位映射的关系,去调整鼓。 可以边看自己发b站等处的图文笔记,然后边用电…

订阅ROS2中相机的相关话题并保存RGB、深度和点云图

系统:Ubuntu22.04 ROS2版本:ROS2 humble 1.订阅ROS2中相机的相关话题并保存RGB图、深度图和点云图 ros2 topic list/stellar_1/rgb/image_raw /camera/depth/image_raw /stellar_1/points2CMakeLists.txt cmake_minimum_required(VERSION 3.15) projec…

Deathnote解题过程

主机扫描,发现192.168.1.194 arp-scan -l 端口扫描,发现80和22端口 nmap -sS 192.168.1.194 访问80端口发现自动跳转到http://deathnote.vuln/wordpress添加绑定地址就可以访问了 vim /etc/hosts 192.168.1.194 deathnote.vuln 访问发现并没有什么东西…

IPsec自动方式

文章目录 实验要求实验配置 实验要求 配置 IPsec VPN 采用自动方式同时要满足上网和VPN两种需求使用NAT进行地址映射认证方法和加密算法自行配置采用安全的方法 实验配置 R1: #基本配置 sy sy R1 dhcp enable acl 3001 rule 1 deny ip des 192.168.3.0 0.0.0.255 …

【Python】解密用户代理:使用 Python User Agents 库探索浏览器和设备信息

Python User Agents 是一个专为解析 User Agent 字符串而设计的 Python 库。它能够轻松识别访问设备的类型(如移动设备、桌面设备或平板),并获取设备、浏览器、操作系统等详细信息。借助它,开发者可以更好地了解访问用户的设备属性…

SSM人才信息招聘系统-计算机毕业设计源码28084

摘要 本研究旨在基于Java和SSM框架设计并实现一个人才信息招聘系统,旨在提升招聘流程的效率和精准度。通过深入研究Java和SSM框架在Web应用开发中的应用,结合人才招聘领域的需求,构建了一个功能完善、稳定高效的招聘系统。利用SSM框架的优势&…

如何使用ssm实现政务大厅管理系统+vue

TOC ssm761政务大厅管理系统vue 第一章 课题背景及研究内容 1.1 课题背景 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是…

Qt QWidget控件

目录 一、概述 二、Qwidget常用属性及函数介绍 2.1 enable 2.2 geometry 2.3 windowTitle 2.4 windowIcon 2.5 cursor 2.6 font 设置字体样式 2.7 toolTip 2.8 focusPolicy焦点策略 2.9 styleSheet 一、概述 widget翻译而来就是小控件,小部件。…

Linux shell编程学习笔记85:fold命令——让文件瘦身塑形显示

0 引言 我们使用的电脑屏幕有宽有窄,我们有时候希望文件能按照我们的屏幕宽度来调整和匹配,这时我们可以使用fold命令。 1 fold命令 的帮助信息、功能、命令格式、选项和参数说明 1.1 fold 命令 的帮助信息 我们可以输入命令 fold--help 来查看fold …