linux缓存文件用户权限错误,CVE-2019-11244漏洞到底该如何修复?--关于缓存文件权限设置...

2019年5月,Kubernetes社区(后面简称”社区“)修复了标号为CVE-2019-11244的安全漏洞,这个修复方案似乎并不彻底,于是有人发布Issue对此提出异议,希望提供进一步修复方案。

虽然Kubernetes已经非常安全,但对于一些安全标准更高的用户来讲,还是需要针对Kubernetes做进一步的安全加固。

本文先深度分析一下这个漏洞,看在什么情况下会产生安全风险,接着再探讨一下这个漏洞应该如何修复,以但给广大Kubernetes用户提供一些提示。

背景知识

为了能更好的理解这个漏洞,需要一些关于Linux 文件权限的基础知识。

也许你经常使用chmod命令来为某个文件设置权限,比如给某个文件设置权限:chmod 755 xxx。这里755为十进制数字分别代表文件Owner权限、文件Owner同组用户权限和其他用户权限,如下图所示:

f0553faf7097e87bff9602f1430837b2.png

在Linux下,使用ls命令可以看到文件的权限,如下图所示:

b8976158964b43f549f73bb59bbd74df.png

针对一个文件设置权限无非就是限制文件的读、写和可执行权限,那么如何理解一个目录的读、写和可执行权限呢? 跟据我小范围调查,大多数人不能很好的回答这个问题:一个用户对某个目录拥有读或写权限分别意味着什么?

漏洞描述

CVE-2019-11244漏洞原文描述如下:

In Kubernetes v1.8.x-v1.14.x, schema info is cached by kubectl in the location specified by --cache-dir (defaulting to $HOME/.kube/http-cache), written with world-writeable permissions (rw-rw-rw-). If --cache-dir is specified and pointed at a different location accessible to other users/groups, the written files may be modified by other users/groups and disrupt the kubectl invocation.

简单的理解就是kubectl创建的缓存文件权限为rw-rw-rw-,也即666,这些缓存文件有被其他用户修改的风险。

这里其他用户是包含两类:

同group下的其他用户(后面称group用户);

不同group的其他用户(后面称other用户);

那么修复这个漏洞,就要收缩这些文件权限,只要做到这些文件不能被这两类用户修改即可(可以拥有读权限)。

社区修复方案

kubectl会创建一个专门的目录来存放缓存文件,所以这里既要控制目录权限还要控制文件的权限。

在社区的修复方案中,缓存目录权限由755变成了750,即other用户将不能进入这个目录,Group用户仍拥有r-x权限,即可以读取目录下的文件列表、可以进入该目录。

针对缓存文件的修改,权限由755变成了660,这里有三个变化:

Owner用户不再拥有可执行权限(缓存文件拥有可执行文件权限本身也没有意义);

Group用户拥有rw-权限,即Group用户仍然可以修改缓存文件;

Other用户不授予任何权限(即便有权限也无效,因为上层目录已不能访问);

看到这里,问题就清楚了,缓存文件仍然可以被Group用户修改,实际上漏洞并没有完全修复。 我们可以实际操作演示一下,这里如无特别说明表示使用root用户操作:

创建一个目录,并设置权限为755: # mkdir -m 0750 myPath0750

在目录中创建一个文件,并设置权限为660:# touch myPath0750/myFile0660; chmod 0660 myPath0750/myFile0660

创建一个root组用户,并设置密码:# useradd -G root -d /home/horen -m horen; passwd horen

切换到新用户,尝试修改文件内容:# echo "Hello" > myPath0750/myFile0660;

可以发现文件是可以被修改的。

加固方案

也许社区的修复方案并不能满足你的安全要求,你仍然需要基于社区方案做一些安全加固,就是把缓存文件的权限进一步收缩,由660变为640,即Group用户最多只能查看缓存文件内容。

另外,由于目录权限为750,Group用户对该目录没有写权限,所以不能修改目录名,不能在该目录下创建文件,达到目录专用的目的。

这里也顺便总结一下目录的可读、可写和可执行三个权限的含义。其实目录本身也是文件,其内容是其子层目录结构,比如目录中的文件列表,文件属性等。

可读:表示你可以列出目录中有什么文件;

可写:表示你可以在目录中创建、删除文件;

可执行:表示你可以进入该目录;

后续

社区的修复方案虽不彻底也可以降低风险,有需要的可以考虑升级。 社区方案已于2019年5月合入v1.12.9、v1.13.7、v1.14.3版本(当时1.15.0尚未发布)。

进一步修复该漏洞的建议不知能否被采纳,本文仅做参考。

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

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

相关文章

用python计算ln函数_python-含参函数

#!/usr/local/bin/python3# -*- coding:utf-8 -*-#----------函数位置参数和关键字参数----------def test(x,y): #此处的 x,y为形参print(x)print(y)test(1,2) #位置参数调用-此处的 1,2为实参,且与形参一一对应test(y2,x1) #关键字调用&…

ASP.NET MEMBERSHIP的XML配置

做了一个MEMBERSHIP的测试&#xff0c;先记下来&#xff0c;以备后用&#xff01;JAVAEYE网站是不是被人攻击了啊。。怎么打不开。。晕。。我有好多文章都在里面啊。。都没有备份的。。。 <connectionStrings><add name"conn"connectionString"server.…

高中数学40分怎么办_2019年第35届全国高中数学联赛试题及参考答案

2019年第35届全国高中数学联赛考试已结束&#xff0c;本文收集整理本次数学联赛的试题和参考答案&#xff0c;以供大家了解参考。本次数学联赛由全国高中数学联赛组委会统一命题&#xff0c;共分为一试和二试。一试时间为80分钟&#xff0c;包括8道填空题(每题8分)和3道解答题(…

linux 关机 日志,centos7 异常关机了,怎么查看系统的异常日志?

centos7 异常关机了&#xff0c;怎么查看系统的异常日志?crash中也没有dump的文件.这是messages日志:Feb 26 11:14:03 moon systemd-logind: Removed session 11.Feb 26 11:14:56 moon systemd: Created slice user-0.slice.Feb 26 11:14:56 moon systemd: Starting Session 1…

一个把图片保存到SQL数据库的工具

因公司的业务需要,会把很多图片保存到数据库中.因此做了一个很简单的工具,把图片保存到SQL数据库中.1.可以连接到不同服务器上的SQL数据库,可以选择操作各个表;2.可以指定保存到数据库的图片格式(JPG or BMP);3.可以用windows图片和传真查看器预览图片.下载地址:一个把图片保存…

redis 哨兵_Redis哨兵机制的原理介绍

php中文网最新课程每日17点准时技术干货分享本篇文章给大家带来的内容是介绍Redis的哨兵机制&#xff0c;让大家了解哨兵机制的原理和如何实现。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。概述Redis的复制有一个缺点&#xff0c;当主…

linux 编写完程序吗,linux下编写C++程序

注&#xff1a;本文写的内容全部在ubuntu12.04下完成。要在linux下写C程序&#xff0c;要懂的一点编译的知识。下面介绍一下。源代码->预处理器(负责将代码补充)->汇编程序(生成汇编语言)-> 目标程序(生成二进制文件)->链接器(链接文件)->可执行程序(生成执行程…

BoooLee pyretoolkit -- 一个基于python re模块的在线正则表达式测试工具

为了学习python re模块正则表达式&#xff0c;寻找了一些正则表达式工具&#xff0c;除了komodo捆绑的rx toolkit外&#xff0c;其他的测试工具都是基于.net或其他引擎的&#xff0c;语法上多少有点出入。 干错自己写一个&#xff0c;用了2天时间&#xff0c;python re googl…

随机生成从大到小排序python_随机快速排序(使用Python描述)

title代码复制自随机快速排序的实现-夜雨最萌.和快速排序一样呀&#x1f602;随机快速排序与快速排序的思路一样,差异就是取主元之前,随机快速排序多了一个步骤:而随机快速排序是随机取得一个元素,但是又会与最后一个元素交换位置.取得主元的下标位置实际上还是最后一个下标.快…

linux守护进程fifo,linux守护进程配置文件

syslogd 是一种守护进程&#xff0c;它负责记录(写到磁盘)从其它程序发送到系统的消息。这个服务尤其常被某些守护进程所使用&#xff0c;这些守护进程不会有另外的方法来发出可能有问题存在的信号或向用户发送消息。1.文件格式/etc/syslog.conf是syslog守护程序的配置文件.sys…

【大数据】NiFi 的基本使用

NiFi 的基本使用 1.NiFi 的安装与使用1.1 NiFi 的安装1.2 各目录及主要文件 2.NiFi 的页面使用2.1 主页面介绍2.2 面板介绍 3.NiFi 的工作方式3.1 基本方式3.2 选择处理器3.3 组件状态3.4 组件的配置3.4.1 SETTINGS&#xff08;通用配置&#xff09;3.4.2 SCHEDULING&#xff0…

Asp.net页面事件引发后台程序处理原理【转】

以前在ASP中&#xff0c;不存在事件处理&#xff0c;传统的处理方法是通过隐藏文本框来提交不同的参数进行区别用户的不同动作&#xff0c;或则用不同的URL查询字符串来区别。ASP.NET中出现了事件处理&#xff0c;让开发人员区分用户动作方便并简单了许多。 实际上&#xff0c;…

常用linux双机软件,双机热备软件_Windows与Linux双机热备软件有哪些

Windows与Linux双机热备软件有哪些众所周知&#xff0c;双机热备可以提供服务器高可用性&#xff0c;但linux操作系统部署双机热备开源软件即可&#xff0c;而Windows操作系统的需要付费的Rose。1、Rose HA通过Rose HA系统把两台服务器与磁盘阵列系统相连&#xff0c;操作系统、…

python datatime 平均值_python求数据的时间平均

#!/usr/bin/python# encoding: utf-8import refrom itertools import imap, ifilter# 定义正则表达式patt re.compile(r"""(?P\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}) # 日期时间\s*&#xff0c;\s* # 分隔符号(?P\d) # 数值""", re.I|re.…

加密和解密类

&#xfeff;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Security.Cryptography;usingSystem.IO;usingSystem.Web;namespaceThewolfs.Framework.Text{ ///<summary>///加密类 ///</summary>publicclassTwE…

linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

作业一&#xff1a;1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)cat /etc/passwd /etc/group > /1.txt2)将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)cat /etc/passwd /etc/shadow >> /2.txt3)将/1.txt、/2.…

python处理中文字符串_处理python字符串中的中文字符

# -*- coding:utf-8 -*-import sys,ostxta open(a.txt,r)str for line in txta:str line.strip().decode(utf-8)txta.close()for word in str:print word.encode(utf-8)直接输出&#xff0c;是会乱码的&#xff0c;得先解码&#xff0c;再编码。参考网址&#xff1a;http://…

继承之接口知识点和思考练习

知识点 接口是一种数据结构&#xff0c;它包含了一组函数型方法&#xff0c;通过这组数据结构&#xff0c;用户代码可以调用组件的功能。 访问修饰符 interface 接口名 { 接口体 } 接口声明时&#xff0c;注意一下几个方面&#xff1a; 1&#xff09;访问修饰符只能是new…

sqlserver大数据表操作慢_架构师必看!操作日志系统搭建秘技

​在Java开发中&#xff0c;我们经常会遇到一个棘手的问题&#xff1a;记录用户的操作行为。某些操作是相对简单的&#xff0c;我们可以逐条记录。但是某些操作行为却很难记录&#xff0c;例如编辑操作。在某一次操作中&#xff0c;用户可能编辑了对象A的几个属性&#xff0c;而…

linux 卸载sphinx,sphinx管理脚本,实现sphinx启动、关闭、重启、生成索引功能 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...

最新sphin问题比较多&#xff0c;生成主索引后无法连接上sphinx的&#xff0c;需要重启searchd进程&#xff0c;为了方便管理sphinx&#xff0c;参考网上资料&#xff1a;http://blog.csdn.net/yagas/article/details/6718532 修改一个适合自己的sphinx管理脚本。[codesyntax…