常用的系统层安全机制

目录

  • 1. SafeSEH
  • 2. DEP
  • 3. PIE
  • 4. NX
  • 5. ASLR
  • 6. SEHOP
  • 7. GS

为应对各种各样的网络攻击,操作系统内部有很多底层的安全机制。而每一种安全机制,都对应了一定形式的网络攻击方法。

攻击队的能力是指掌握这些系统层安全机制的技术原理,能够发现程序或系统中安全机制的设计缺陷,并加以利用实施攻击的能力。

实战攻防演练中,最实用且最常用的系统层安全机制有以下7种:



1. SafeSEH


SafeSEH是Windows操作系统的一种安全机制,专门用于防止异常处理函数被篡改。

在程序调用异常处理函数之前,SafeSEH会对要调用的异常处理函数进行一系列的有效性校验。如果发现异常处理函数不可靠或存在安全风险,应立即终止异常处理函数的调用。

攻击者就常常需要伪造或篡改系统异常处理函数,使系统无法感知到异常的发生。



2. DEP


DEP(Data Execution Protection,数据执行保护)的作用是防止数据页内的数据被当作可执行代码执行,引发安全风险。

从计算机内存的角度看,对数据和代码的处理并没有明确区分,只不过在系统的调度下,CPU会对于不同内存区域中的不同数据进行不一样的计算而已。这就使得系统在处理某些经过攻击者精心构造的数据时,会误将其中的一部分“特殊数据”当作可执行代码执行,从而触发恶意命令的执行。而DEP机制设计的重要目的就是防止这种问题的发生。



3. PIE


PIE(Position-Independent Executable,地址无关可执行文件)与PIC(Position-Independent Code,地址无关代码)含义基本相同,是Linux或Android系统中动态链接库的一种实现技术。



4. NX


NX(No-eXecute,不可执行)是DEP技术中的一种,作用是防止溢出攻击中,溢出的数据被当作可执行代码执行。

NX的基本原理是将数据所在内存页标识为不可执行,当操作系统读到这段溢出数据时,就会抛出异常,而非执行恶意指令。



5. ASLR


ASLR(Address Space Layout Randomization,地址空间随机化)是一种操作系统用来抵御缓冲区溢出攻击的内存保护机制。这种技术使得系统上运行的进程的内存地址无法预测,使与这些进程有关的漏洞变得更加难以利用。



6. SEHOP


SEHOP是Structured Exception Handler OverwriteProtection的缩写,意为结构化异常处理覆盖保护。其中,结构化异常处理是指按照一定的控制结构或逻辑结构对程序进行异常处理的一种方法。

SEH攻击:
如果结构化异常处理链表上的某一个或多个节点被攻击者精心构造的数据所覆盖,就可能导致程序的执行流程被控制,这就是SEH攻击。

SEHOP就是Windows操作系统中针对这种攻击给出的一 种安全防护方案。



7. GS


GS意为缓冲区安全性检查,是Windows缓冲区的安全监测机制,用于防止缓冲区溢出攻击。

缓冲区溢出是指当计算机向缓冲区内填充数据位数时,填充的数据超过了缓冲区本身的容量,溢出的数据就会覆盖合法数据。理想的情况是:程序会检查数据长度,并且不允许输入超过缓冲区长度的字符。但是很多程序会假设数据长度总是与所分配的储存空间相匹配,这就埋下了缓冲区溢出隐患,即缓冲区溢出漏洞。

GS的作用就是通过对缓冲区数据进行各种校验,防止缓冲区溢出攻击的发生。




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

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

相关文章

javafx、node js、socket、OpenGL多线程

机器学习、算法、人工智能、汇编(mips、arm、8086)、操作系统、数据挖掘、编译原理、计算机网络、Arena软件、linux xv6、racket、shell、Linux、PHP、Haskell、Scala、spark、UML、mathematica、GUI、javafx、node js、socket、OpenGL、多线程、qt、数据…

C++链接FTP服务器并下载数据(在qt中编写)

.pro文件 #------------------------------------------------- # # Project created by QtCreator 2024-07-16T13:19:03 # #-------------------------------------------------QT core gui networkgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsTARGET untitled TE…

Qt实现IP地址输入框-自定义控件

在 许多应用程序中,我们经常需要使用IP地址。为了方便用户输入和处理,一个好的解决方案是使用自定义控件。本示例代码使用Qt编写一个名为“IPAddress”的自定义控件来实现IP地址的输入功能。通过使用此控件,用户可以方便地输入和处理IP地址。…

吴恩达机器学习笔记 三十八 二进制标签 均值归一化

标签 0 和 1 可以有很多种意义。从回归到二分分类:之前定义 ,而对于二进制标签,通过给出y^(i,j)为 1 的概率,其中 损失函数 均值归一化 计算每个电影的平均得分,例如第一部电影的平均分为2.5,第五部电影的平均分为1.2…

如何在excel表中实现单元格满足条件时整行变色?

可以试试使用条件格式: 一、条件格式 所谓“自动变色”就要使用条件格式。 先简单模拟数据如下, 按 B列数字为偶数 为条件,整行标记为蓝色背景色。 可以这样设置: 先选中1:10行数据,在这里要确定一下名称栏里显示…

pico+unity3d手部动画

在 Unity 开发中,输入系统的选择和运用对于实现丰富的交互体验至关重要。本文将深入探讨 Unity 中的 Input System 和 XR Input Subsystem 这两种不同的输入系统,并详细介绍它们在控制手部动画方面的应用。 一、Input System 和 XR Input Subsystem 的区…

高并发解决方案总结

高并发是指在短时间内有大量的用户同时访问系统或服务,导致系统压力剧增,可能出现响应延迟、服务不可用等问题。针对高并发问题,有多种解决方案,以下是一些主要的解决方案: 一、架构层面 负载均衡: 将多…

Java性能优化-书写高质量SQL的建议(如何做Mysql优化)

场景 Mysql中varchar类型数字排序不对踩坑记录: Mysql中varchar类型数字排序不对踩坑记录_mysql vachar排序有问题-CSDN博客 为避免开发过程中针对mysql语句的写法再次踩坑,总结开发过程中常用书写高质量sql的一些建议。 注: 博客&#…

什么是智能家居?

智能家居,也称为家庭自动化,是一种将科技力量融入日常生活的革命性生活方式。它通过将家中的各种设备(如照明、音响、空调、通风机、报警器、电动窗帘、传感器以及各类家电)通过专用的网络连接在一起,实现自动控制、远…

Java面试题--JVM大厂篇之深入解析JVM中的Serial GC:工作原理与代际区别

目录 引言: 正文: 一、Serial GC工作原理 年轻代垃圾回收(Minor GC): 老年代垃圾回收(Major GC或Full GC): 二、年轻代和老年代的区别 年轻代(Young Generation&a…

docker快速安装(环境CentOS7)

1. 查看自己的Linux系统 cat /etc/redhat-release 2. 安装依赖插件 yum -y install gcc yum -y install gcc-c yum install -y yum-utils yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum makecache fast yum -y insta…

MongoDB常用命令大全,概述、备份恢复

文章目录 一、MongoDB简介二、服务启动停止、连接三、数据库相关四、集合操作五、文档操作六、数据备份与恢复/导入导出数据6.1 mongodump备份数据库6.2 mongorestore还原数据库6.3 mongoexport导出表 或 表中部分字段6.4 mongoimport导入表 或 表中部分字段 七、其他常用命令八…

养猪管理如何实现远程监控

在现代化农业快速发展的背景下,养猪管理的智能化与远程监控技术的应用日益成为提升养殖效率、保障动物健康及优化资源配置的关键手段。实现养猪管理的远程监控,不仅能够实时掌握猪场环境参数与生猪生长状况,还能有效预防疾病、提高生产性能&a…

Spring Cloud环境搭建

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 开发环境安装 1.1 安装JDK ​1.2 安装MySQL 2. 案列介绍 2.1 …

C语言指针超详解——进阶篇

C语言指针系列文章目录 入门篇 强化篇 进阶篇 文章目录 C语言指针系列文章目录1. 字符指针变量2. 数组指针变量2. 1 概念2. 2 数组指针变量的初始化 3. 二维数组传参的本质4. 函数指针变量4. 1 函数指针变量的创建4. 2 指针变量的使用4. 3 两个有趣的代码4. 3. 1 代码一4. 3. …

终结文件观察之痛:深度解析PyCharm中的文件观察程序错误

终结文件观察之痛:深度解析PyCharm中的文件观察程序错误 引言 PyCharm,作为Python开发者的首选IDE之一,提供了强大的文件观察功能,以实现诸如自动编译、即时运行等高级功能。然而,在使用过程中,用户可能会…

Ubuntu压缩解压各类型文件

在Ubuntu系统中,解压不同格式的压缩文件可能需要安装不同的工具。以下是一些常见的压缩格式和相应的安装命令: ZIP文件: 工具:unzip 安装命令: sudo apt install unzip 解压命令 unzip filename.zip 如果需要保留目录…

汽车底盘控制系统Autosar初步接触

最近接触到汽车底盘控制部分,作为小白,原以为汽车底盘也是要自己手敲代码,结果发现完全不是。记录一下最近的学习心得,初步接触东西不全,但可以当作参考。 对于底盘控制部分的简单理解:simulink做汽车底盘的…

大数据技术基础

一、大数据平台 1.大数据平台方案步骤: ①市场上有哪些大数据平台 ②硬件、系统、业务增长等方面 ③方案是否通过 通过后:按照一期目标投入 先虚拟环境部署联系,再实际部署 《大数据架构介绍》《Hadoop架构解析》《Hadoop集群规划》 《H…

PX4 运行 make px4_sitl_default gazebo 报错

报错原因:最开始我把依赖一直都是在base环境下安装的,没有conda deactivate,而pip install的东西应该装在系统环境,不能装在base环境下,sudo apt 是装在系统环境的 1.检查ros 用鱼香ros安装 wget http://fishros.…