SELinux零知识学习十、SELinux策略语言之客体类别和许可(4)
接前一篇文章:SELinux零知识学习九、SELinux策略语言之客体类别和许可(3)
一、SELinux策略语言之客体类别和许可
3. 有效的客体类别
本节对Fedora Core 4(FC4)可用的内核客体类别做一个概述,目标是描述客体类别以及系统资源是如何映射到这些客体类别的。
编写一个良好的策略最困难的部分是理解客体类别和许可的语义、以及特定系统上应用程序上下文中那些语义的含义。
FC 4系统有超过40个内核客体类别,它们代表了内核提供的所有资源。客体类别的数量说明了一个基本原理,在SELinux中代表尽可能完整准确的内核资源。Linux涉及的范围广泛且非常复杂,这就决定了客体类别肯定也是极其多且复杂的,复杂得让人畏缩,但要取得SELinux的灵活性,完全解决Linux面临的安全挑战,这是必需的。
为了易于理解,我们将内核客体类别分解成了四种:文件相关的、网络相关的、System V IPC和杂项。
(1)与文件相关的客体类别
第一种客体类别是那些与文件及其它存储在文件系统中的资源有关的,这是大多数用户最熟悉的客体类别了,它包括了所有的与持续不变的、在磁盘上的文件系统和在内存中的文件系统,如proc和sysfs结合在一起的客体类别。
在UNIX系统中,一个底层的概念是“一切皆文件”,大多数情况下,这么说是对的,但是它隐藏了一个事实,就是并非所有的文件都是相同的。实际上,现代类UNIX系统,如Linux专门为设备、IPC以及标准的存储数据的文件设计了专用的文件。SELinux详细准确地表现了内核的视图。下表总结了与文件有关的客体类别:
| 客体类别 | 描述 |
| blk_file | 块文件 |
| chr_file | 字符文件 |
| dir | 目录 |
| fd | 文件描述符 |
| fifo_file | 命名管道 |
| file | 普通文件 |
| filesystem | 文件系统(如一个真实的分区) |
| lnk_file | 符号链接 |
| sock_file | UNIX域套接字 |
- file和dir
客体类别file和dir分别代表普通文件和目录。普通文件就是那些存储数据的文件,它们是大多数系统上最常见的客体了;目录在Linux中也是一个特定的文件,它是独一无二的,因为它们可能还包含其它客体。
- lnk_file
客体类别lnk_file代表符号链接。大多数情况下,它非常重要,能够区别普通文件和符号链接,这样可以预防常见的攻击。恶意进程和用户可以创建符号链接,这样可能引起某个进程访问或修改本不是它们打算要访问或修改的文件。独立的lnk_file客体类别允许编写预防这些攻击类型的策略。
- fifo_file和sock_file
客体类别fifo_file和sock_file表示用于IPC的特定文件。fifo_file客体类别代表fifo文件,也叫做命名管道;sock_file客体类别联合UNIX域套接字控制创建、访问等与文件有关的客体的能力。
- chr_file和blk_file
客体类别chr_file和blk_file分别表示字符设备和块设备。在Linux中,设备通常是通过在/dev/目录下的特定文件来进行访问的,这些文件通过主/次设备号表示字符和块设备。字符设备是程序以字节流形式读取或写入数据的设备,块设备是将数据以更大块进行传递的设备。
- fd和filesystem
最后两个客体类别是文件描述符和文件系统。它们不是典型的Linux客体,filesystem客体类别表示挂载的文件系统,这个客体类别控制全局操作如挂载或查询限额。例如:使用filesystem客体类别,我们可以只运行挂载支持存储安全上下文的文件系统。所有特定类型的文件系统(如ext3)在策略中都使用相同的fs_use语句获取默认的标记定义。文件描述符表示打开的与文件有关的客体,存在于进程中,即使与文件有关的客体明显不同,它们表示内核数据结构,通常认为文件描述符是文件有关的客体的基础。的确,标准Linux访问控制不能单独在文件描述符上提供访问控制,这种策略忽略了文件描述符是可以在进程之间传递的资源的事实。通常,子进程会从父进程哪里集继承文件描述符,这个继承并不总是有利的,许多Linux编程指南中都警告最好减少文件描述符继承,特别是后台进程。为了标识此问题及其它问题,我们以fd客体类别为例。在SELinux中,fd代表文件描述符,使用这个客体类别阻止文件描述符在进程间传递或继承就成为可能。值得注意的是,有权使用文件描述符并不意味着就可以访问与文件有关的客体,进程必须对这些文件也要有访问许可才行。
相关文章:
SELinux零知识学习十、SELinux策略语言之客体类别和许可(4)
接前一篇文章:SELinux零知识学习九、SELinux策略语言之客体类别和许可(3) 一、SELinux策略语言之客体类别和许可 3. 有效的客体类别 本节对Fedora Core 4(FC4)可用的内核客体类别做一个概述,目标是描述客…...
String字符串性能优化的几种方案
原创/朱季谦 String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升。 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优…...
微服务基础,分布式核心,常见微服务框架,SpringCloud概述,搭建SpringCloud微服务项目详细步骤,含源代码
微服务基础 系统架构的演变 随着会联网的发展,网站应用的规模不断扩大,常规的应用架构已经无法应对,分布式服务架构以及微服务架构势在必行,必须一个治理系统确保架构有条不紊的演进 单体应用框架 Web应用程序发展的早期&…...
【第2章 Node.js基础】2.7 Node.js 的流(一) 可读流
🌈 Node.js 的流 🚀什么是流 流不是 Node.js 特有的概念。它们是几十年前在 Unix 操作系统中引入的。 我们可以把流看作这些数据的集合,就像液体一样,我们先把这些液体保存在一个容器里(流的内部缓冲区 BufferList&…...
Ubuntu/Debian Hat 系 Linux 使用
目录 1. Ubuntu/Debian Hat 系 Linux 使用1.1. 包1.1.1. Install Package1.1.2. Convert .rpm package to .deb1.1.3. Install RPM Package Directly Onto the System on Ubuntu 1. Ubuntu/Debian Hat 系 Linux 使用 1.1. 包 1.1.1. Install Package dpkg -i <name of pa…...
php接口api数据签名及验签
api数据签名作用:通过使用签名可以验证数据在传输过程中是否被篡改或修改。接收方可以使用相同的签名算法和密钥对接收到的数据进行验证,如果验证失败则表明数据被篡改过 1、数据发送方进行接口签名并传输签名字段 <?php // 请求URL $url "h…...
实战:给docusaurus文档网站配置Algolia 实现全站内容搜索功能-2023.11.16(已解决)
更新于:2023年11月16日 次文档已全部脱敏! 实战:给docusaurus文档网站配置Algolia 实现全站内容搜索功能-2023.11.16(已解决) 目录 前提条件 🍀 前提条件 具备docker环境 具有自己的网站 🍀 实验软件(…...
Ubuntu18.04安装ROS系统+turtle测试
安装 1.设置安装源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubun…...
UE基础篇五:动画
导语: 视频文档在文末 一、动画 1.1 物理资产可以用来做布娃娃系统 1.2 混合空间 调整这个值会在动画切换时有一个插值时间,表现为等一下再切 1.3 启用根运动 1.4 一些导入设置只有在导入时才有效, 1.5 动画图标可以预览调节数值<...
SELinux零知识学习十二、SELinux策略语言之客体类别和许可(6)
接前一篇文章:SELinux零知识学习十一、SELinux策略语言之客体类别和许可(5) 一、SELinux策略语言之客体类别和许可 3. 有效的客体类别 (3)System V IPC客体队列 与IPC有关的客体类别代表System V IPC资源。下表总结…...
vscode的git 工具使用
vscode的git 工具使用 目录概述需求: 设计思路实现思路分析1.git 工具的使用2.提交代码3.查看历史提交代码 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a be…...
利用回溯绕过正则表达式
目录 利用strpos的特性拿到flag 利用回溯绕过正则表达式 利用回溯次数绕过正则表达式并且实现文件上传 使用回溯绕过正则表达式waf拿到flag 本篇会讲解三个实验来分别绕过正则表达式,python的正则表达式和Javascript的正则表达式大致相同如果有正则表达式不太懂…...
Flutter执行flutter doctor报错HTTP Host Availability
问题描述 [!] HTTP Host Availability✗ HTTP host https://maven.google.com/ is not reachable. Reason: An erroroccurred while checking the HTTP host: Operation timed out解决方案 将文件flutter/packages/flutter_tools/lib/src/http_host_validator.dart中的https:…...
全栈工程师必须要掌握的前端Html技能
作为一名全栈工程师,在日常的工作中,可能更侧重于后端开发,如:C#,Java,SQL ,Python等,对前端的知识则不太精通。在一些比较完善的公司或者项目中,一般会搭配前端工程师&a…...
腾讯云服务器租用价格,腾讯云服务器租用价格多少钱一年?
腾讯云服务器租用价格,腾讯云服务器租用价格多少钱一年?腾讯云服务器有优惠活动,现在租用只需要88元/年!腾讯云服务器优惠购买入口:https://1111.mian100.cn 随着互联网的发展,越来越多的人开始选择将自己…...
QTableWidget 设置列宽行高大小的几种方式及其他常用属性设置
目录 效果: 1.列宽、行高自动分配 2.固定值 3.随内容分配列宽 随内容分配行高 4.水平方向标签拓展剩下的窗口部分,填满表格 5.列宽是自动分配的,但是第一列可手动调整宽度,而表格整体的列宽仍是自动分配的。第二、三列办法调…...
【AI视野·今日CV 计算机视觉论文速览 第277期】Fri, 27 Oct 2023
AI视野今日CS.CV 计算机视觉论文速览 Fri, 27 Oct 2023 Totally 93 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection Authors Anas Al lahham…...
【教3妹学编程-算法题】购买物品的最大开销
3妹:2哥,听说你今天发工资啦? 请我吃饭怎么样,嘿嘿 2哥 : 切,你上周还发工资了呢,也没见你请我吃饭。 3妹:哎呀, 我的工资都用来双11 shopping了, 双11过后我都吃了1周土…...
关于pandas dataframe数据转换为JSON格式存储在Redis后,读取数据时发生数据篡改的问题以及解决办法
问题:当时处理股票数据,获取到以dataframe数据结构的股票,由于Redis 是一个内存中的数据结构存储系统,但是不接受dataframe数据结构的数据,选择将其先转化为JSON格式,但发现再将JSON格式转化为原数据时&…...
Go 语言编译环境
1. 请简要介绍一下Go语言的特点。 Go语言是一种静态类型、编译型语言,由Google开发。它的主要特点包括: 简洁高效:Go语言的语法非常简洁,易于学习和使用。同时,Go语言的执行效率高,适合开发高性能的后端服…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
