原标题:等保测评2.0:Windows访问控制
本篇文章主要说一说windows系统中访问控制的控制点的相关内容和理解
先对windows的权限分配进行基本介绍,然后再说一说对测评项的基本理解
2.1. 用户、用户组、内置安全主体
windows的文件权限或者其他的权限可直接分配给用户,也可分配给用户组和内置安全体然后由用户组和内置安全体中嘚用户来继承权限。
用户大家都知道可以在计算机管理-本地用户和组中查看:
在这里还可以查看用户的说明和它所隶属的组:
以及查看鼡户组和用户组的说明:
而内置安全体没有列在本地用户和组的组中,但是在分配权限比如某个文件的权限中我们可以看到:
大概包括这些内置安全体:
其中的Everyone是我们比较常见的任何一个用户都属于Everyone(所以不要给Everyone赋予什么特殊的权限)。
又比如Authenticated Users任何一个利用有效的用户帳户连接的用户都属于这个它。
其他的内置安全体就不说了大家百度下就清除了。
这里特别说明下有时候会被测评方的服务器中由于裝了某些软件或者为了实现一些功能,可能会存在一些不是用来本地登录而是用来执行某个任务的用户,比如虚拟机的用户:
从说明就能看出这个用户的用途而且在切换用户时,是找不到这个用户的但这个用户是实际存在的,而且也可以设置口令的
这里是通过用户權限中的拒绝本地登录实现的
在拒绝本地登录中添加了某用户,切换用户时的用户列表就不包含这个用户也就无法切换过去。
但是该鼡户可以作为批处理作业或者服务登录
比如我创建了一个用户test,在拒绝本地登录添加了test则无法切换到test账户;
然后在作为批处理作业登录Φ添加test
接下来,就可以在计划任务中使用该账户定时执行某程序或脚本了:
这里的操作很简单,就是在某个时间打开kugou
嗯,如果对linux比较叻解的同学应该对这种用户机制比较熟悉。
2.3. 组策略中的用户权限分配
在组策略的用户权限分配中可以将某项权限分配给用户或用户组:
上面的拒绝本地登录等权限,也就在这里进行分配选择属性即可添加:
这里说一句,组策略中有些策略更改后需要重启才能实现,具体是哪些大家百度吧
2.4. 组策略用更细致的权限分配
组策略中的用户配置中的管理模板中可以设置很多的权限,比如控制面板的打开权限:
更多的大家可以自己去看看不过用户配置中的设置仅针对当前登录用户。
2.5. 文件的权限分配
a)应对登录的用户分配账户和权限;
b)应重命名戓删除默认账户修改默认账户的默认口令;
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
d)应授予管理用户所需的最小權限实现管理用户的权限分离;
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
f)访问控制的粒度应达到主體为用户级或进程级客体为文件、数据库表级;
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
a)应对登錄的用户分配账户和权限;
这个测评项虽然只有一句话,但其实也算一个有多方面要求的测评项
这个如果从字面意思来看,就是一个废話用户都登录账户了,自然就存在着账户(除非是默认共享里$ipc的空用户名、空口令登录)
所以这里的意思是应该是你本来就存在”多個账户“,然后当用户使用时要适当的”分配账户“给用户
所以,如果windows系统中仅存在Administrator账户可用的话就无所谓分配不分配了,无论谁来都只能登录这一个账户,自然就不符合要求
应对登录的用户分配……权限
用户是一个自然人,操作系统上的权限无法直接赋予给一个洎然人所以这里是对用户登录的账户分配权限,从而间接的赋予了用户的权限
那么分配啥权限呢?这里没说不过从其他方面来说,洳果就只存在一个Administrator账户或者数个权限完全一致的需要提供管理员权限才能删除账户,那么分配权限就不存在意义了
所以为了满足这个偠求,应该至少存在两个账户且权限不一样(至于权限是否最小化,不是这个测评项要测的)
这个要求的隐藏前提是操作系统得具备權限划分的功能,当然windwos默认是具备的。
至于哪个用户具体拥有哪些权限一般看看用户的说明以及它隶属的用户组就能知道了,顶多再看看组策略中的用户权限分配
另外就是看一看users、Everyone组的权限,因为所有用户都隶属于Everyone组很多用户也都隶属于users组。
当然访谈能问清楚是朂好的。
4.3. 测评要求里的要求
测评要求中测评实施中的第二项内容光看测评项是看不出来的属于一种规定吧,既然规定要这么查那就这么查
对于默认账户、匿名账户的访问权限的限制,实际上是guest、users、Everyone组的权限的限制(administrator是默认账户,但是没有需要的话没必要限制它的权限吧)
对于guest来说,可以看看它是否被禁用不过在测评项b中,要求删除默认账户guest无法删除,但是可以被禁用
所以实际操作上两个测评項都要去判断guest是否被禁用。
我个人倾向于测评项a不去检查guest留在测评项b中检查。
至于users、Everyone组的权限的限制在4.2中已经说过了。
b)应重命名或删除默认账户修改默认账户的默认口令;
对于administrator,看是否将administrator进行了重命名或者禁用(因为无法删除)至于默认口令,windows不存在默认口令默認就符合(当然空口令是不符合的)。
测评项里之所以写默认口令因为有些数据库的默认账户确实存在默认口令,一个测评项要用来查操作系统、数据库、应用只能是大而化之的写了,什么都包括进去
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在;
首先说一说多余账户一般是先访谈,问对方某账户是干啥用的
如果对方答不上来,你自己通过核查也无法判断那么这就是多余账户(戓者叫不明用途的账户)。
而共享账户测评要求里是这么写的:
共享账户,顾名思义就是多人共用一个账户这样带来的问题审计时无法追溯到某自然人。
测评项里说避免共享账户的存在就是这个意思。
如果做到需要提供管理员权限才能删除用户与账户一一对应那当嘫符合要求,但如果是一个需要提供管理员权限才能删除对应两个账户呢仍然不存在共享账户
虽然是一个人用两个账户,但无论其中任哬一个账户做的操作仍然可以追溯到这个人身上。
不过结合该测评项的要求来看一个需要提供管理员权限才能删除操作两个账户,本身也存在问题因为一个人用两个账户的意义何在(在同一个服务器上)?如果没有特殊原因那么其中一个账户有很大可能就是多余账戶,所以测评实施中说了一一对应
当然,如果存在某一个需要提供管理员权限才能删除必须要用使用两个账户处理业务(即不存在多余賬户)而其他账户也没有并没有多人共用的情况,那么虽然并非一一对应我个人觉得这也是满足该测评项要求的。
d)应授予管理用户所需的最小权限实现管理用户的权限分离;
其实就是查看是否对windows中的账户进行了角色的划分,且仅拥有为完成任务所需的最小权限
新版嘚初级教程里是在这一块说的是“三权分立”,也就是系统需要提供管理员权限才能删除、安全员、审计员
个人对系统需要提供管理员權限才能删除、安全员、审计员的理解如下:
系统需要提供管理员权限才能删除:管理系统中的账户、文档、文件等;
安全需要提供管理員权限才能删除:授权策略以及其它基本策略的设置,还有安全参数的设置安全参数的设置是安全管理中心安全类中的安全管理中的测評项里说的,如果安全管理中的安全和安全需要提供管理员权限才能删除的安全是一个意思那么安全需要提供管理员权限才能删除的职能就应该包括安全参数的设置。我对于安全参数的理解就是恶意代码防范和入侵防范也就是杀毒软件、防火墙、ip策略、防入侵软件的参數的设置。
审计需要提供管理员权限才能删除:对系统中审计策略的管理比如日志的存储策略,以及组策略中审核策略等
但是,初级敎程只是一个模板也不一定说非得按照系统需要提供管理员权限才能删除、安全员、审计员的模式来设置角色,比如设置了某个账户来專门管理中间件的等等按照实际情况进行判断。
至于判断账户的权限看本文的windows的权限分配部分就知道了。
这里举一两个例子比如审計员账户,不能让它隶属于Administrators组应隶属于Event Log Readers组:
用户权限分配中,将管理和审核安全日志权限分配给审计员账户:
还有相关的日志文件的权限也应该分配给审计员。
另外是不是应该将组策略、注册表的编辑权限、服务器的关机权限仅赋予安全需要提供管理员权限才能删除或鍺系统需要提供管理员权限才能删除等等。
另外此处按照理论上应该和安全管理制度对应起来的,比如被测评单位说设置了系统需要提供管理员权限才能删除、安全员、审计员那么安全管理制度中是否真有这三个人(人和账户一一对应,一人用三个账户的话权限分配就没有意义了)等等。
e)应由授权主体配置访问控制策略访问控制策略规定主体对客体的访问规则;
这里先看看新版初级教程的说明:
這里不知道似乎涉不涉及到强制控制控制,也即由某一个专门的账户来分配用户的权限而windows的权限分配方式其实没有达到强制控制控制的偠求。
在强制控制控制的要求下某账户所创建的资源,也拒绝用户的完全控制系统的安全策略完全取决于由系统制定的某账户或角色來设置。
而windows下账户对它创建的文件是具备几乎所有权限的,从这一点来看就不符合强制控制控制,因为任何一个账户都可以分配权限(比如可以分配由它创建的文件的权限)
如果不涉及强制控制控制的话,那么指定由windows的某个账户分配权限即可即该账户应拥有windows重要文件的权限(且仅该用户拥有),以及修改用户权限的权限(设置用户隶属于哪个用户组的权限和组策略的打开权限)
这里我不太清楚windows的機制,对于一个普通用户(隶属于users组)虽然可以打开compmgmt.msc文件,能看到用户和用户组的情况但是好像没有什么执行权限,比如尝试将自己添加到administrators组中时是不会保存成功的:
另外,对于windows的system等系统文件和文件夹使用需要提供管理员权限才能删除账户也不能编辑它的权限,因為这类文件的所有者是TrustedInstaller是windows内置的一个内置安全主体,比如对于compmgmt文件:
不过可以更改它的所有者比如更改为administrators组,然后就可以将users组的权限矗接去掉:
这样隶属于users组的普通用户,就直接无法打开计算机管理了:
当然这里我只是举一个例子,没说一定得这么做
哦,对了windows嘚比较重要的系统文件是system32文件夹中的文件(比如这个文件夹中的cmd.exe就很重要,需要对这个文件的权限进行设置):
f)访问控制的粒度应达到主體为用户级或进程级客体为文件、数据库表级;
测评项的要求应该是层层递进的,测评项e要求你设置访问控制策略f项则是要求你设置嘚访问控制的粒度达到“主体为用户级或进程级,客体为文件、数据库表级”
所以在实际测评中,如果测评项e的结果是不满足f项肯定吔不满足。
对于windows而言提供的策略设置机制,是可以达到主体为用户级、客体为文件级的
所以测评项f是否能被满足,就看是否做了访问控制策略以及策略是否明确到某个用户(而不仅仅是用户组),某个文件(不仅仅是文件夹)
当然,实际嘛……各位看情况吧
g)应对偅要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问
这里肯定涉及到了强制访问控制,给敏感信息设置安全标记控制主体(也就是用户)对敏感信息的访问。
windows自带的访问控制机制肯定是不符合要求的需要使用第三方软件或者定制的windows系统(对windows系统进荇二次开发?感觉不大可能)
至于这里的安全标记,初级教程里写得很清楚无所谓是什么形式,可以是数字、字母什么的我觉得甚臸也可以颜色的形式表现出来,但关键的是需要有一套机制使得你可以通过这些标记实现强制访问控制这肯定得用第三方软件了:
比如某个windows第三方的本地资源浏览器,就可以自己给文件夹、文件什么的设置颜色、属性、标签:
但是这软件没有禁用windows自带的本地资源浏览器等也没有实现强制访问控制,只能加标记而已……
这里说一句安全标记不一定要展现出来(图形化),能实现强制访问控制就可以
至於能实现这个的第三方软件嘛,好像是有的:
访问控制的难点在于后面几个测评项特别理论上权限应该如何分配,和实际中要如何实现權限的分配
比如权限应该如何分配,虽然有三权分立这个模板即系统需要提供管理员权限才能删除、安全需要提供管理员权限才能删除、审计需要提供管理员权限才能删除。
但是这三个需要提供管理员权限才能删除理论上负责的权限是不存在一个明确的定义的(反正初级教程、测评要求里没写,当然其他书上以及网络上会有一个模糊的范围)可能需要在实际测评中进行确认。
另外假如使用三权分竝的模板,那么如何落地
windows自带安全审计的审计策略的设置,需要进入组策略中进行设置但是用户权限分配也在组策略中。
问题就来了编辑组策略的这个权限是应该分配给审计需要提供管理员权限才能删除还是安全需要提供管理员权限才能删除呢?
不过组策略本身的权限设置都达到某一个具体的策略的设置权限的话就不存在这个问题了,不过我自己没找到
至于涉及到强制控制访问的项,反而没啥好疑惑的因为windows上基本就没实现,哈哈
*本文原创作者:起于凡而非于凡,本文属于FreeBuf原创奖励计划未经许可禁止转载