• 等保2.0测评:VMware ESXI


    系统版本查看

    这里就略过安装的步骤了,配置好访问IP后,就可以直接输入IP地址访问我们的VMware ESXI系统了。

    1609211474_5fea9e526a983faa73fa0.png!small

    VMware ESXi 底层是一个定制版的Linux系统。可通过在控制台开启SSH服务进入Linux系统(默认是关闭SSH服务)。

    可在此处开启SSH管理,个人认为,这个SSH管理其实就是类似安全设备(如防火墙)一样的命令行界面,你在应用层面操作的内容都会反馈到命令行界面中。

    1609211695_5fea9f2f73fb2d107e318.png!small

    查看版本:

    应用层面:
    1609211887_5fea9fef4f80f70877040.png!small

    1609211925_5feaa015df8efbe3d4e93.png!small

    SSH登录:

    vmware -v

    1609211978_5feaa04a382eede09c332.png!small

    一、身份鉴别

    1. 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换

    应用层面:

    1)对登录的用户进行身份标识和鉴别

    通过用户名+口令的方式

    1610521353_5ffe9b09cda6ae67dd100.png!small

    2)身份标识唯一性

    默认不允许添加同名用户

    1610521442_5ffe9b62036dea9aa39ee.png!small

    3)身份标识复杂度

    首先判断用户当前口令是否为复杂口令,至于什么算复杂口令,这里就不再赘述了。

    确认强制口令策略:主机→管理→系统→高级设置→对应键值为:Security.PasswordQualityControl

    1610521561_5ffe9bd968bf1c421641c.png!small

    1610521625_5ffe9c19253075264b748.png!small

    值具体代表什么什么意思,这里放在下面底层操作系统进行说明

    4)身份鉴别信息定期更换

    确认强制口令策略:主机→管理→系统→高级设置→对应键值为:Security.PasswordMaxDays

    1610521897_5ffe9d291b9e0803ae32c.png!small

    1610521915_5ffe9d3b70404831200bc.png!small

    历史密码记录

    对应键值:Security.PasswordHistory

    1610522007_5ffe9d97e0f67a41cbf92.png!small

    当手动修改密码的时候会显示这样的提示,防止用户口令到期后使用相同口令刷新口令更改日期

    1610522064_5ffe9dd0d21267dbd324c.png!small

    操作系统层面

    这里我们登录到系统底层,对登录的用户进行身份标识和鉴别、身份标识具有唯一性与上述一致,这里主要说明口令复杂度模块。

    登录底层系统后,他的口令复杂度配置文件在:

    /etc/pam.d/passwd

    1610522351_5ffe9eefeed1ec846b824.png!small

    1)pam_passwdqc模块

    是一个简单的密码强度检查模块

    以下选项可以传递给身份验证模块:

    ① min=N0,N1,N2,N3,N4

    (min=disabled,24,12,8,7)不同类型的密码/密码短语允许的最小密码长度。关键字disabled可用于禁止给定类型的密码,无论其长度如何。每个后续数字都不得大于前一个。

    N0:仅用于由一个字符类中的字符组成的密码。字符类包括:数字、小写字母、大写字母和其他字符。还有一种特殊的非ASCII字符类,但不能分类,但假定为非数字。

    N1:用于密码,该密码由不符合密码要求的两个字符类中的字符组成。

    N2:用于密码短语,除了满足此长度要求之外,密码短语还必须包含足够数量的单词。

    N3、N4用于由三个和四个字符类的字符组成的密码。

    在计算字符类别的数量时,不计算用作第一个字符的大写字母和用做最后一个字符的数字。除了足够长之外,还要求密码包含足够多的不同字符,已用于字符类和检查时所依据的最小长度

    ② max=N [最大=40]

    允许的最大密码长度,用于防止用户设置对于某些系统服务而言可能太长的密码。

    N=8被特殊对待:max = 8时,长度超过8个字符的密码不会被拒绝,但会被截断为8个字符以进行强度检查,并会警告用户。这是为了兼容传统的DES密码散列,它截断密码为8个字符。

    如果使用传统散列,请务必将max=8设置为重要值,否则某些弱密码将通过检查。

    ③ passphrase=N

    密码短语所需的字数,或者以0禁用用户选择对密码短语的支持。如果密码中被识别出了常用的短语,那么最小长度就为必须为N2设置的值,常用单词的最小识别长度为N(由passphrase确定)。

    ④ match=N、similar=permit|deny

    如果发现本次修改的密码跟老密码有4个substring的长度类似,就认为是弱密码。(match=4 similar=deny)

    ⑤ random=N [,only]

    随机生成的密码短语的大小,或以0禁用此功能。

    ⑥ enforce=none|users|everyone

    可以使用该模块配置警告仅限密码,但实际上不强制使用强密码。users代表除root账户。

    ⑦ retry=N

    修改密码可重试的次数,返回密码修改错误

    ⑧ disable_firstupper_lastdigit_check

    默认情况下,对于输入的密码,如果第一个字母是大写字母,或者最后一个字母为数字,则不会计入密码字符的种类。比如:Fuck1234,由于第一个F是大写字母,所以会被认为,该密码只有小写字母和数字两种字符。用disable_firstupper_lastdigit_check 禁止了这种识别。

    2)针对图中配置详解

    password requisite /lib/security/$ISA/pam_passwdqc.so retry=3 min=disabled,disabled,disabled,7,7

    ①只包含一种字符的密码,拒绝

    ②只包含两种字符的密码,拒绝

    ③拒绝

    ④只包含三种字符的密码,最小长度7位

    ⑤只包含四种字符的密码,最小长度为7位

    1610522485_5ffe9f75a9019d5969179.png!small

    有效的密码应该是由大小写字母、数字和其他字符混合组成。你可以用7个字符长密码,至少包含这4个类中的3个字符。

    但以密码开头的大写字母和以结束它的数字,不计入其使用的字符类数(经测试,Zhufuy@1、zhuFuy1密码设置不成功,密码zhuFuy@成功)。

    所以VMware ESXI 默认口令复杂度配置大致是这个规则。

    另外,不知道是不是我这里环境的问题,如果配置口令最大使用期限,使用ssh首次登录时,它会提示:

    1610522630_5ffea0067a0fa09a322c8.png!small

    1610522638_5ffea00e7925487d12cba.png!small

    它居然强制给你用随机生成的密码?上述hanoi&call5Also就是新生成的口令,可以使用该口令登录系统。

    2. 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施

    1)登录失败处理功能

    在web界面查看:主机→管理→系统→高级设置→对应键值为:Security.AccountLockFailures 、Security.AccountUnlockTime

    默认:相同账户登录失败次数达到5次后,锁定该账户900秒。

    1610522853_5ffea0e583e0db81b1afd.png!small

    1610522862_5ffea0ee2ae8af0e1afe1.png!small

    登录失败次数达到设置阈值后,即使输入正确口令也显示密码不正确

    1610522923_5ffea12befb9e647d362c.png!small

    2)操作超时

    控制台超时,默认情况下,可在此处查看配置:默认为900秒

    1610522975_5ffea15f7c6bcaeb4d7b0.png!small也可在高级设置中配置:主机→管理→系统→高级设置→对应键值为:

    UserVars.HostClientSessionTimeout

    1610523036_5ffea19c5a8f5cbb42654.png!small

    当自主设置过值后,已覆盖会变为true

    1610523081_5ffea1c975eb957129e22.png!small

    同时应用程序超时的 √ 会消失

    1610523124_5ffea1f4dbc3c42aee4f7.png!small

    3. 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听

    这个只要观察远程管理web界面时,使用的是http还是https

    默认采用https

    1610523174_5ffea226b9066823f902c.png!small

    4. 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现

    默认为用户名+口令的方式进行身份鉴别

    该条现场核查是否采用双因素认证

    二、访问控制

    1. 应对登录的用户分配账户和权限

    用户在此添加:主机→管理→安全和用户

    1610523316_5ffea2b4055e05d736796.png!small

    如果用户无权相关操作的时候访问会被拒绝,这里我没有授予test账户登录管理的权限。

    1610523351_5ffea2d733c562458aa5c.png!small

    在主机→权限中添加权限

    1610523417_5ffea3199c1dd48febce0.png!small

    1610523424_5ffea320a8a56d466c897.png!small

    1610523430_5ffea326f2733f15934b4.png!small

    然后可查看对应角色对应web界面的系统功能

    1610523474_5ffea352a331c031f94a2.png!small

    1610523497_5ffea36953916b2c3f76d.png!small针对这条条款,我们就需要去看他系统中有哪些账户,然后权限是怎样分配的。

    2. 应重命名或删除默认账户,修改默认账户的默认口令

    主机→管理→安全和用户

    查看是否存在root、admin、administrator等易猜解账户。

    1610523673_5ffea4194a0941f5c3236.png!small

    3. 应及时删除或停用多余的、过期的账户,避免共享账户的存在

    该条同理, 在主机→管理→安全和用户查看

    询问管理人员,确认每个账户用途,是否存在多余、过期账户,确认是否存在多人共用同一账户情况存在,有无共享账户存在。

    4. 应授予管理用户所需的最小权限,实现管理用户的权限分离

    三权分立原则,实现管理用户的权限分离

    一般现场核查,确认是否存在管理员、操作员、审计员等类型账户,如果只有一个超管账户那肯定不符合

    5. 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

    授权主体一般为该系统管理员,然后在主机→管理→安全和用户 中查看各用户的权限分配情况,即为授权主体配置的主客体访问控制规则,默认符合

    6. 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级

    主体为用户,客体一般对应系统菜单权限功能

    这里个人给默认符合

    7. 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

    主要查看系统是否具有强制访问控制机制,该条默认不符合。

    三、安全审计

    1. 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计

    1)审计服务

    web界面:主机→管理→服务,对应服务名称为:vmsyslogd,确认状态栏是否为正在运行即可

    选中该服务,可对其进行策略配置。(默认情况下,随主机启动和停止,开机自启日志服务)

    2)审计内容

    具体审计的内容可在:主机→监控→日志中查看

    3)日志级别

    web界面:主机→管理→系统→高级设置

    涉及参数:Config.HostAgent.log.level

    默认值为info级别

    ● 信息等级

    同一个服务所产生的信息也是有差别的,有启动时仅通知系统而已的一般信息(information),有出现还不至于影响到正常运行的警告信息(warn),还有系统硬件发生严重错误时,所产生的重大问题信息(error)。基本上,Linux内核的syslog将信息分为8个主要的等级,根据syslog.h定义,信息名称与数值的对应如下:

    8 none:不记录

    7 debug:用来debug(除错)时产生的数据

    6 info:仅是一些基本的信息说明而已

    5 notice:虽然是正常信息,但比info还需要被注意到的一些内容

    4 warning(warn):警示的信息,可能有问题,但是还不至于影响到某个daemon运行的信息

    3 err(error):一些重大的错误信息,例如配置文件的某些设置值造成该服务无法启动的信息说明,通常借由err的错误告知,应该可以了解到该服务无法启动的问题

    2 crit:比error还要严重的错误信息,这个crit是临界点(critcal)的缩写,这个错误已经很严重了

    1 alert:警告,已经很有问题的等级,比crit还要严重

    0 emerg(panic):疼痛等级,意指系统已经几乎要宕机的状态,很严重的错误等级。通常大概只有硬件出问题,导致整个内核无法顺利运行,就会出现这样的等级信息。

    个人认为这里至少要设置error及以上等级的策略才算符合,不然光记录crit、alert、emerg等级的事件日志量之类的首先会少,而且不利于排错。

    2. 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

    1)查看日志

    vmware esxi日志包含事件的日期、时间、主客体标识及结果等基本信息,默认符合

    选中相应日志类型,可查看对应日志信息

    或右键在新窗口打开查看对应日志信息

    1613636252_602e229c53f6558023878.png!small?1613636318509

    2)查看系统当前时间

    web界面查看:主机→管理→系统→时间和日期

    确认当前时间是否与实际一致,因为当前时钟不对,无法保证日志的准确性

    1613636728_602e247839f3abdec9c38.png!small?1613636793903

    如果有时钟服务器,确认NTP服务是否开启,服务器IP地址是否配置正确。

    3. 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

    1)输出到日志服务器

    web界面查看:主机→管理→系统→高级设置

    涉及参数:Syslog.global.logHost

    我们可查看该参数来确认是否配置了收集该系统的日志服务器

    1613636955_602e255b6b922210cd2f1.png!small?1613637021084

    输出到日志服务器,也就满足了对审计记录进行保护这条要求。

    同时需要确定留存的日志时间,是否达到了法律法规要求(至少六个月),该条在《网络安全等级保护测评高风险判定指引》中有过说明。

    1613637275_602e269b838811ed80e9b.png!small?1613637341383

    这里插播一个小事件:记得有一个用户,他们做了等保,然后出了安全事件,某管理员通过虚拟机的管理平台将所有虚拟机删除,导致数据丢失,系统无法正常运行。不过好像是还好有离线的数据备份,数据这块还能恢复回来,但是这造成的危害也是很大的。当时网警看了下等保报告,说为啥这个虚拟机的管理平台没有作为测评对象,如果权限这块没做好,提出问题就是客户自身没落实到位。所以说该虚拟机管理平台的权限管控还是有需要的,同时也需要对日志进行保护,到时候能溯源,所以虚拟机的管理平台对于等保中的要求也是需要进行一下落实的。

    2)日志本地保存

    如果日志没有发送至日志服务器,或定期备份,仅本地存储的话,就要去看它本地的轮替策略是否做过

    ①web界面:主机→管理→系统→高级设置

    涉及参数:syslog.global.defaultrotate、syslog.global.defaultsize

    syslog.global.defaultrotate代表保留的日志轮替个数,默认为8

    1613638006_602e2976b4b800758ed3d.png!small?1613638072327

    syslog.global.defaultsize代表每个日志文件的轮替的大小值,单位为kb,默认为1024

    1613638083_602e29c379b0a9bfbf51b.png!small?1613638149178

    这里就需要确认该日志轮替规则是否能满足日常的业务需求,能否避免审计记录受到未预期的覆盖,同时应用层面任何用户无法删除、修改日志。另外根据高风险判例指引,确认日志留存时间是否达到6个月以上。

    ②如果用户开启了SSH管理,就能通过SSH登录到底层操作系统,就要考虑操作系统底层的日志文件权限了。

    1613638825_602e2ca947046276e000e.png!small?1613638890879

    日志服务配置文件:/etc/vmsyslog.conf,参数与web界面的一致

    1613639057_602e2d91c7b90dc3c4be3.png!small?1613639123383

    存储在底层系统中的日志文件权限,根据web界面的在/var/log目录下查看:

    1613639183_602e2e0fdcb0dc7adef33.png!small?1613639249980

    发现都是做了链接的,查看源文件,权限均为600

    1613639228_602e2e3c4a9636508fb5c.png!small?1613639294229

    所以默认情况下,权限基本是符合的,这里就需要确认日志有无留存到6个月以上即可。

    4. 应对审计进程进行保护,防止未经授权的中断

    这里我通过web界面root账户(最高权限),无法关闭该服务

    1613639458_602e2f22772fa553a1ff1.png!small?1613639524368

    然后我登录到操作系统底层,关闭对应的进程,发现他会自启

    1613639644_602e2fdc5e1952832517f.png!small?1613639709943

    所以默认情况下,审计进程无法被中断,默认符合

    四、入侵防范

    1. 应遵循最小安装的原则,仅安装需要的组件和应用程序

    web界面:主机→管理→软件包

    默认情况下该版本安装了72项软件包,大部分为驱动程序、管理插件、组件间的支持程序、支持库等。

    1613695828_602f0b545f25db64aea4b.png!small?1613695894782

    这里有兴趣的小伙伴可自行查询,每种类型是干嘛用的,一般感觉没人会去动,如果会去动的人,也是懂VMware ESXI了,询问下管理员装了什么即可,一般给默认符合。

    2. 应关闭不需要的系统服务、默认共享和高危端口

    1)服务

    web界面:主机→管理→服务,查看当前运行的服务

    1613696190_602f0cbeb67ccb3ab8652.png!small?1613696257054

    也可在系统底层查看chkconfig --list |grep on

    1613696269_602f0d0d0a11b391df7f3.png!small?1613696335351

    这里一般只看web界面服务的状态,确认运行的服务是否有些不为必要。

    2)端口

    这边web界面无法直接查看端口情况,这块我们可以通过工具进行端口探测,或者登录到底层操作系统查看

    使用命令:

    esxcli network ip connection list

    1613696552_602f0e2853c4f731490f0.png!small?1613696618664

    这里是有开启防火墙的,很多端口是无法从外部进行访问的,一般默认开放的就22、80、443等。

    部分端口说明:

    80 web通讯端口

    443 vSphere Client、vCenter Server、vSphere Web Access Client等相关组件通信端口

    22 SSH服务

    3. 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

    ① web界面:网络→防火墙规则,可查看相应规则

    针对于web管理方式,涉及名称:vSphere Web Client

    1613713147_602f4efb905322a0a610c.png!small?1613713214122

    我们可以点击编辑设置,勾选仅允许从以下网络连接,并输入对应的ip地址

    1613713292_602f4f8ca11683cfe95f7.png!small?1613713359134

    1613713336_602f4fb8cf461c0df930b.png!small?1613713403401

    经测试,除31段的地址,其余地址将无法访问该web界面。

    ② SSH管理

    同样也在网络→防火墙规则,可查看相应规则

    涉及名称SSH服务器

    1613713514_602f506a25eb6eb424217.png!small?1613713580688

    配置方法与上述相同,经测试仅针对SSH方式管理,web方式访问不受限制。

    4. 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求

    这条实际操作的话一般就要进行渗透测试了,但一般等保公司不会这么去做,所以最简单的方法就是去网上找一下对应vmware的版本是否有数据校验性的漏洞存在,也有不适用的说法,该条款在应用层面进行核查。

    5. 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

    同理,该条也是去寻找已爆出的漏洞,再确认该漏洞是否有进行修补。这个我感觉有点难验证,毕竟大家基本都是安装好了就不会去动它了。一般询问管理员,没有发现存在已知漏洞的手段等,默认不符合。

    6. 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警

    该条款在操作系统层面核查,个人认为不适用,大多情况下都不会开SSH管理,而且这个为成熟的商业软件,你说去底层的操作系统上安装,感觉有点不切实际,主要操作我们都是通过web界面形式来操作的。

    五、恶意代码防范

    1. 应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断

    同理该条款在操作系统层面核查,该项不适用。

    六、可信验证

    1. 可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心

    默认不符合。

    七、数据完整性

    1. 应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

    涉及的数据:鉴别数据、重要审计数据、重要配置数据

    鉴别数据、重要配置数据,传输过程中的完整性一般靠传输协议保证,针对vmware esxi就看他是否使用https协议进行数据传输。

    对于重要审计数据,如果采用的是syslog协议是无完整性保护。

    2. 应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等

    涉及的数据:鉴别数据、重要审计数据、重要配置数据

    询问管理人员是有对这些数据进行了存储完整性保护,默认不符合。

    八、数据保密性

    1. 应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

    涉及的数据:鉴别数据

    传输过程中还是查看是否使用https协议进行数据传输。

    2. 应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等

    鉴别数据默认存储在/etc/shadow文件中,该版本采用SHA-512算法存储

    1613716634_602f5c9a9bbaa4b157eed.png!small?1613716701133

    九、数据备份恢复

    1. 应提供重要数据的本地数据备份与恢复功能

    个人认为该设备为计算资源提供层,无需备份。

    要备份的虚拟机资源已在操作系统相关测评对象中进行了说明,我们这里是以一个对象作为整个测评内容的,有些是将数据与系统分开测评,所以写法上可能会有些出入。

    2. 应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地

    该设备为计算资源提供层,无需备份

    3. 应提供重要数据处理系统的热冗余,保证系统的高可用性

    这边就要询问管理人员vmware底层是否采用集群、热备方式部署,保证计算资源的高可用。

     
     
  • 相关阅读:
    php中奖概率算法
    phpize: command not found
    使用Mobile_Detect来判断访问网站的设备:安卓,平板,电脑
    jsonp应用
    数组转换一
    PhpStorm2016.3激活
    svn冲突问题详解 SVN版本冲突解决详解
    Pythono 实现 Permutation
    ubuntu 挂载优盘
    Customize R initiallization in Mac
  • 原文地址:https://www.cnblogs.com/quqibinggan/p/14963482.html
Copyright © 2020-2023  润新知