什么是安全上下文(Security Context)?

微信小程序当用户拒绝了地理位置的请求时提醒用户去设置地理位置授权 wxml //不允许地理授权不一样时的页面 <view class="showFlag" wx:if="{{showFlag}}" > <view class="showFg"> <view class="showg">您拒绝了地理位置授权</view> <view cla 阅读详情

安全上下文指的是一类定义某个进程允许做什么的许可和权限的集合。Windows中的安全上下文是通过登录会话(Logon Session)定义的,并通过访问令牌维护。顾名思义,登录会话表示某个用户在某台计算机上的某次会话过程。开发者可以通过访问令牌与登录会话进行交互。访问令牌所有用的许可和权限可以与登录会话的不同,但始终是它的一个子集。
安全上下文的概念范围是很广的,权限、特权、访问令牌、完整性等级等等都包含在其中。
这就是软件限制策略和UAC工作原理中的最核心部分。
所以在这里讨论的内容,都是属于安全上下文的范畴。

有不少人问过这样的问题:仅仅一条软件限制策略规则——IE基本用户,安全么?
那么我可以有点遗憾地告诉你,不安全,至少不能做到很安全,但仍然很强大

现在再介绍一下基本用户:

基本用户实质上是一个安全等级(SAFER LEVEL),当然除了基本用户外还有其它的安全等级,以下一一列出
SAFER_LEVELID_DISALLOWED   不允许的 ,对应值 0x00000 (0x代表16进制)
SAFER_LEVELID_UNTRUSTED    不信任的 ,对应值 0x01000
SAFER_LEVELID_CONSTRAINED  受限的   ,对应值 0x10000
SAFER_LEVELID_NORMALUSER   基本用户 ,对应值 0x20000
SAFER_LEVELID_FULLYTRUSTED 不受限的 ,对应值 0x40000

其中不受限的和不允许的默认就是开启的,也就是DefaultLevel的值为 0x40000 + 0x00000 = 0x40000
到这里大家应该明白为什么我们把Levels的值设为0x31000能打开其它安全等级了吧
——0x01000 + 0x10000 + 0x20000 正好等于 0x31000,而 Levels + DefaultLevel = 0x71000 ,正好可以打开所有的安全等级

现在我们只关心基本用户的情况,基本用户到底是一种怎样的限制?

微软的简单说明是:Allows programs to execute as a user that does not have Administrator or Power User access rights. Software can access resources accessible by normal users.

也就是说基本用户相当于一个普通用户(Users组的帐户)的权限
运行在该等级下的程序,被排除了本地管理员组的成员关系,同时还排除了仅分配给管理员的特权。运行在该安全上下文中的进程,拥有标准用户的特权和访问权限,防止该进程修改系统文件和注册表键值,同时防止该进程使用只有管理员才能拥有的特权,例如“加载和卸载设备驱动程序”特权。
顺带补充一下,绝大部分的程序在基本用户都是能正常运行的,即使是杀软的GUI。

事实上,我们可以看到,基本用户令牌中把Administrators的SID标记为“拒绝”,同时它只有一个特权——“跳过遍历检查”,这其实只是一个很卑微的特权

基本用户与受限帐户的不同
主要有三点
1.基本用户没有“关闭系统”和“从插接工作站中取出计算机”特权。这意味着基本用户下的程序无法关闭或重启计算机了。如果使用策略规则Explorer基本用户的话,你就会发现“关闭系统”的按钮直接消失了。不过要实现关机还是有方法的,例如同时按Ctrl+Alt+Del呼出任务管理器来关机,或者曲线救国,先注销,然后再关机 =_= 不过也并不麻烦

2.基本用户把Administrators组标记为“拒绝”,而不是从Administrators组中除去
图:



标记为拒绝(deny only)的意思是,在形式上,基本用户下的程序仍然属于Admin组,但实际上却没有管理员被允许的权限,只有被拒绝的权限。而受限用户是不属于Administrators组的,但却可以通过一些途径使之隶属于该组,这个就是帐户提权了。




3.基本用户是内置安全等级,而受限帐户却不是。受限帐户的特权可以任意指派,但基本用户却无法这样做。因此基本用户的特权提升也是不允许的。
不过大体来说,受限帐户登陆“相当于”Shell基本用户。另外值得一提的就是,无论受限帐户还是基本用户,都可以利用Runas(或者右键里的“运行方式”)来以其它帐户身份临时运行一个程序,关于这点在下文会再提及。


那为什么说基本用户其实并非十分安全?
那是因为基本用户并没有定义足够安全的安全边界

什么是安全边界?安全边界就是一道隔离墙,如果没有通过安全策略的验证,代码和数据就不能打破这道隔离墙。举个例子,在不同的会话中运行的用户帐户,会通过Windows安全边界进行分隔。如果没有其他用户的允许,一个用户不能读取或者修改其他用户的数据,也不能让其他用户执行代码。如果由于某些原因而可以绕过安全策略,这就意味着Windows系统存在bug(或者是第三方代码的原因)。



在基本用户等级所形成的隔离沙盒中,唯一的缺陷是:在隔离沙盒中的进程是以当前用户的受限形式运行的,所以只要受限用户(Users组)有权读写的文件、注册表键值、甚至别的进程的权限,该进程都能访问。这样就能打穿隔离沙盒的墙壁,如果恶意代码是专门为这种受限环境而编写的,那么它就可以利用这种手段,绕过隔离沙盒的限制。

    例如基本用户下的程序可以通过注入或发送消息的方法控制高等级的进程,如Shell。不过具有System权限的进程仍然无法访问(需要DEBUG特权)。
当然基本用户不会因此而变得没有实用价值。因为基本用户可以配合NTFS权限和注册表权限的调整而增加安全性。
前面说过,基本用户没有管理员的权限,但属于Users组,那么我们可以通过设置NTFS权限来限制基本用户

至于NTFS权限如何设置,这里提供一个基本的思路:
1.下载区(数据区,例如Documents and Settings下的大部分位置,IE缓存等)允许读写、创建、删除,即开放NTFS的FD权限,但不允许运行程序(这点可以用软件限制策略的“不允许”来实现)
2.程序区,包括系统目录,Program Files和其它程序目录,允许Users读取和运行,但不允许写。必要时可以设为允许创建和写新文件,但对已存在的文件保持只读,但工作量会稍大一点
3.想BT点的,可以对Windows等关键目录实行白名单策略

如此设置后,使用基本用户的安全性就会大大提高。
理论上,凡是会外联的程序都应以低权限运行,而且这些程序往往不需要任何管理员权限就能正常运行。典型的例子就是浏览器和下载工具。而对于外来的不信任数据源,如可移动设备,可以直接不允许运行,这样,简单的安全策略就能应付大部分的安全危险了。
还有就是有人问到的ARP问题。基本用户是不能阻止ARP攻击的,但却可以在ARP攻击下保你安然无恙。例如ARP挂马,受攻击的还是浏览器,浏览器基本用户依然能防,只是掉线问题无法解决罢了。

事实上在降权后,还能感染破坏系统的病毒已经是极少数了,如果权限设置得当的话,病毒甚至无法进入本地或者根本无法运行,例如针对病毒的入口封锁战术。
至于这种降权能达到怎样的安全效果之前已经讨论过了,当然是可以很强大,这里就不再赘述

降权与提权:
目前实现软件降权运行的有这么几种方法:
1.软件限制策略
2.Runas
3.Vista的UAC
4.使用DropMyRights、PsExec和Proccess Explorer的“以受限用户运行”
5.使用受限用户登陆

软件限制策略的规则适合作为静态防御,Runas、DropMyRights等可以作为动态的补充
至于1和5,我更推荐1,因为受限用户的环境完全可以用基本用户来模仿,只要Shell基本用户就可以了,而且比受限用户更安全。

值得一说的是Vista的UAC,UAC工作时,默认让Shell运行在类似基本用户的环境中,这点与基本用户还是很相似的,而它与静态规则相比的优势是:它能够即时更改进程的安全上下文,提供了降权与提权的快捷通道,因此是使管理员帐户脱离高权限的最好方法。
所以在这里提出一个建议,千万不要轻易关闭你的UAC,除非它真的让你无法忍受或者你有更好防御方案。



       与降权相对应的是提权,简单的例子就是右键里的“运行方式”,它可以让你在使用受限用户(Users)登陆系统时,使用其它帐户的权限运行程序,例如Administrator。不过它需要额外的用户名和对应的密码,而且它依赖于服务“Secondary Logon”。
受限用户登陆时,系统服务仍然是处于不受限状态,而且是以System权限运行,真正受限的只是Shell。所以这里就存在利用服务来进行提权的可能。
事实上,“运行方式”的提权原理是利用svchost.exe(服务宿主)创建属于某帐户的令牌,并以该令牌启动程序。因此,运行程序的父进程是svchost。所以严格来说,这还不算是提权,它只是以另一个帐户的身份来执行程序罢了
另外,如果对一个已经在软件限制策略中设定为基本用户的程序使用Runas的话,最终还是会提权失败

另一种提权是为帐户提权。其实,只要通过更改帐户的特权和组的隶属关系,完全可以把一个名为Guest的帐户(来宾用户)提升至具有完全的管理员权限。简单的做法就是通过“用户权利指派”和计算机管理中的“本地用户和组”。

需要指出的是,在正常情况下,无论是降权或者是提权,权限的继承总是存在的,子进程不能超越父进程。
而例外的情况是什么?
有两种:
一是父进程拥有“创建记号对象”特权,这时允许父进程以任何令牌启动子进程
二是程序本地即时提权,而通常的方式是利用系统漏洞或者Hook API、注入系统进程、注册服务等等,这里就不介绍了

SELinux 安全上下文(Security Context)详解 SELinux 安全上下文详解:SELinux 通过安全上下文(user:role:type:level)实施强制访问控制,其中 type 类型是核心,决定进程能否访问资源。查看上下文可使用 ls -Z、ps -eZ 等命令,修改则通过 chcon(临时)或 semanage fcontext(永久)。常见问题如服务访问被拒,需检查文件权限和 SELinux 类型。Ansible 中可通过 setype 参数设置上下文。理解安全上下文机制对系统安全管理至关重要。 阅读详情

相关推荐

Security Context

Kubernetes中Security Context安全上下文简单简绍~

每天都要开心呀(#^.^#) 1292

获取地理位置:错误消息是:“地理位置请求只能在安全的上下文中满足。“

浏览器获取定位

qq_49173190的博客 1198

SELinux系列(六)——SELinux安全上下文查看方法 详细介绍

SELinux 管理过程中,进程是否可以正确地访问文件资源,取决于它们的安全上下文。进程和文件都有自己的安全上下文,SELinux 会为进程和文件添加安全信息标签,比如 SELinux 用户、角色、类型、类别等,当运行 SELinux 后,所有这些信息都将作为访问控制的依据。 首先,通过一个实例看看如何查看文件和目录的安全上下文,执行命令如下: [root@localhost ~]# ls -Z #使用选项-Z查看文件和目录的安全上下文 -rw-------.root root system_.

请大家直接把问题写在评论区或留言,不要只说一句"你好 或 在吗",我会尽快回复的。 2782

SpringSecurity(八)--SecurityContext安全上下文

本节我们将讨论安全上下文,我们将分析它是如何工作的、如何从其中访问数据,以及应用程序如何在具有不同的与线程有关的场景中管理它。一般来说,我们为了让后续程序能够使用验证通过人员的信息,都会使用到它,比如编写一个SecurityUtils用来获取用户信息是经常用到的,那么学习它后,你就可以使用安全上下文存储关于已验证用户的详细信息了。

学习不止境的博客 5028

Android SELinux——上下文Context介绍(九)

前面文章中介绍 allow 语句中所说的 "映射",即将一个进程关联到一个 type,或者将一个文件关联到一个 type,是通过 context 来完成的。1、进程Context在 SELinux 中,进程的上下文(context)包含了多个字段,用于描述该进程的安全属性。user=_app:user 标识了拥有该进程的 SELinux 用户,_app 通常是 Android 系统中应用程序的默认用户,表示这是一个常规的 app。

小旭的专栏 1353

定位功能实现_获得当前位置.

定位功能实现_获得当前位置.绝对好用,简单易操作。

Selinux安全上下文详解

SELinux介绍DAC:自由访问控制MAC: 强制访问控制 DAC环境下进程是无束缚的 MAC环境下策略的规则决定控制的严格程度 MAC环境下进程可以被限制策略被用来定义被限制的进程能够使用哪些资源(文件和端口)默认情况下,没有被明确允许的行为将...

weixin_34257076的博客 2087

Kubernetes - Pod 的安全上下文(Security Context)配置

Security Context 是 Kubernetes 中用于定义 Pod 或容器运行时安全属性的一组配置参数。它决定了容器在宿主机上的“身份”与“行为边界”。一个容器的“身份证”和“行为守则”。Pod 级别:影响 Pod 中所有容器的默认行为。Container 级别:覆盖 Pod 级别的配置,仅作用于当前容器。✅最佳实践建议:优先在 Pod 级别设置通用安全策略,在容器级别仅做必要覆盖。避免“每个容器都开特权”,这是安全失控的开端。

千淘万漉虽辛苦,吹尽狂沙始到金 4676

企业AI Agent审计与合规:从日志留存到网络联动的完整落地指南

审计日志是企业安全与合规体系的基石,尤其在AI Agent大规模接入业务后,如何完整记录其行为链成为新的挑战。从日志留存180天到PCI DSS合规要求,审计体系需要覆盖会话、推理、工具调用、数据访问等关键环节,并结合不可篡改的存储设计,确保证据链可信。同时,借鉴上网行为管理设备对应用行为控制审计的思路,以及Kismet被动监测网络流量的方法论,将网络侧审计与应用侧日志交叉验证,能有效发现越权和异常行为。本文从日志采集、全链路追踪、基线预警到多租户隔离,系统梳理了AI Agent审计与合规落地的关键路径,帮

weixin_32234493的博客 259

STM32F103移植NuttX实战:从零搭建最小系统到串口Shell(附完整配置文件)

本文详细介绍了在STM32F103C8T6开发板上移植NuttX实时操作系统的完整过程,包括环境搭建、BSP配置、系统时钟初始化、驱动裁剪、编译烧录及串口Shell交互。通过实战指南帮助开发者快速掌握NuttX移植技巧,解决典型问题,适用于嵌入式系统开发。

tree8的博客 289

spring security reactive获取security context

序 本文主要研究下reactive模式下的spring security context的获取。 ReactiveSecurityContextHolder springboot2支持了webflux的异步模式,那么传统的基于threadlocal的SecurityContextHolder就不管用了。spring security5.x也支持了reactive方式,这里就需要使用reactiv...

weixin_33827965的博客 2807

Anomalib实战之一:自定义数据集

Anomalib支持多种图像扩展名,如".jpg"、“.jpeg”、“.png”、“.ppm”、“.bmp”、“.pgm”、“.tif”、“.tiff"和”.webp"。可以从具有任何这些扩展名的图像中收集数据集。

mingo_敏 6224

Linux chcon:修改文件安全上下文(security context)

[root@hadoop1 hadoop-2.7.2]# chcon --help Usage: chcon [OPTION]... CONTEXT FILE... or: chcon [OPTION]... [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE... or: chcon [OPTION]... --reference=RFILE

Neetgo的专栏 5866

数据分析案例-2024年裁员数据集可视化分析

本实验数据集来源于Kaggle,原始数据集为2020-2024年裁员数据,共有3577条,12个变量,该数据集提供了不同公司的裁员信息。它包括以下几栏:Company:裁员发生的公司名称。Location_HQ:公司总部位置。Industry:公司所属的行业或部门。Laid_Off_Count:公司解雇的员工数量。Percentage:公司员工被解雇的百分比。Date:裁员发生的日期。Source:信息来源网址。Funds_Raised:公司募集资金的信息。

m0_64336780的博客 1万+

[Dify实战] 解决 Dify 导入 DSL 文件时报 “DSL 版本差异” 的兼容性问题

摘要:本文针对Dify开发者在导入.dsl文件时遇到的版本警告提示问题,分析其根源在于DSL文件与当前系统版本不一致。解决方案是通过导出当前Dify应用的DSL文件查看版本号,手动修改待导入文件的version字段以匹配。文章详细说明了操作步骤,并给出使用专业编辑器、避免修改其他字段等实用建议,帮助开发者规避版本不兼容问题,提升多模态AI应用开发效率。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 950

【K8s】专题十四(2):Kubernetes 安全机制之 Security Context

Kubernetes 专题 - 安全机制之 securityContext

运维、实施交付领域知识交流 2703

如何使用Python爬取并保存网页上的所有附件

爬虫(Crawler)是一种自动化程序,它通过模拟人工访问网页并下载网页上的数据或文件,常用于数据采集和分析。爬虫通常以“爬取”的形式自动浏览和提取网页中的各种信息。本文详细介绍了如何使用Python爬取并保存网页中的附件文件,涵盖了网页解析、文件下载、多线程与异步优化等内容。希望通过本文的讲解,能够帮助你理解并掌握附件爬取的技巧。在实际应用中,爬虫开发不仅需要解决技术问题,还要遵守网络道德和法律法规,避免不当使用爬虫造成负面影响。

2201_76125261的博客 957

kubernetes--安全上下文(Security Context)

背景:容器中的应用程序默认以root账号运行的,这个root与宿主机root账号是相同的, 拥有大部分对Linux内核的系统调用权限,这样是不安全的,所以我们应该将容器以普 通用户运行,减少应用程序对权限的使用。启用特权模式就意味着,你要为容器提供了访问linux内核的所有能力,这是很危险的,为了减少系统调用的供给,可以使用Capabilities为容器赋予仅所需的能力。Linux Capabilities:是一个内核级别的权限,它允许对内核调用权限进行更细粒度的控制,而不是简单的以root身份能力授权。

m0_57911290的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【微软漏洞分析】Windows-Research-Kernel-WRK 代码分析 安全例程(1) 综述、SECURITY_INFORMATION和SECURITY_SUBJECT_CONTEXT

这篇是内核代码分析,以微软开源给大学的操作系统代码来分析。主要讲安全例程,其他牵涉到的会在讲解中穿插。

重新启程 596

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Kubernetes-主要概念-Security Context和PSP

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net Security Context的目的是限制不可信容器的行为,保护系统和其他容器不受其影响。 Kubernetes提供了三种配置Security Context的方法: Container-level Security Context:仅应用到指定的容器 Pod-level Security Context:应用到Pod内所有容器以及Volume

了解➔熟悉➔掌握➔精通 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

k8s学习-CKS真题-Context安全上下文_cks security context(1)

最近遍览了各种网络安全类的文章,内容参差不齐,其中不伐有大佬倾力教学,也有各种不良机构浑水摸鱼,在收到几条私信,发现大家对一套完整的系统的网络安全从学习路线到学习资料,甚至是工具有着不小的需求。对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。相比起繁琐的文字,还是生动的视频教程更加适合零基础的同学们学习,这里也是整理了一份与上述学习路线一一对应的网络安全视频教程。当然,当你入门之后,仅仅是视频教程已经不能满足你的需求了,你肯定需要学习各种工具的使用以及大量的实战项目,这里也分享一份。

2401_84264630的博客 1160

ORACLE上下文 context

  今天做一个安全审计上下文对象,使用了 sys_context。         sys_context是一个保持了和session有关的session级别的上下文。 这个上下文是一个session里的都可以访问到的地方,所以如果我们通过dbms_session.set_context放入一些session级别的自己的信息,就可以使用这个sys_context的上下文了。...

ZXCVBNM645的博客 330

k8s容器安全security context

k8s security context

weixin_47961772的博客 4813

FastAPI请求会话context上下文中间件

本文探讨了在FastAPI框架中如何优雅地获取请求上下文信息。文章首先介绍了通过request对象获取JWT token等请求数据的常规方法,指出了在深层代码中传递request对象的缺点。随后提出使用starlette-context中间件管理请求会话上下文,通过contextvars实现协程级别的安全数据存储。详细展示了中间件实现、JWT解析、SQLModel自动填充等技术方案,强调这种方式的线程安全性和代码简洁性。最后提醒开发者注意上下文隔离,避免不同请求间的数据污染。

分享不一样的技术,与你一起共同成长! 1234
上一篇: F5针对 SIP应用的负载均衡
lixinms
博客等级 码龄17年 6粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值