虚拟机操作命令

等保测评Linux测评命令

  1. cat /etc/shadow查看口令,查看账户

  2. cat /etc/ssh/ssh_config permitemptypasswords 注释或者后面加no 不允许空口令远程登录

  3. cat /etc/pam.d/system-auth 查看密码复杂度

    grep pam_cracklib.so模块查看,centos7之后是pam_pwquality.so模块。限制root用户,添加 enforce_for_root

  4. cat /etc/login.defs 查看口令更换周期。修改vi /etc/login.defs设置仅影响创建用户,而不影响现有用户。

在这里插入图片描述

或chage -l 用户名 查看口令修改周期。
配置:chage -M 天数 用户名 —修改某用户的最大修改期限
chage -m 最小期限 -w 到期前提醒。
配置与passwd和shadow有冲突时,以passwd和shadow文件为准。

  1. cat /etc/pam.d/system-auth和/etc/pam.d/sshd 查看登录失败策略
    在#%PAM-1.0下的前两行是否有auth required pam_tally2.so onerr=fail deny=6 unlock_time=300 even_deny_root root_unlock_time=300
    注意:必须是头两行。
  2. cat /etc/profile 查看登录超时是否自动退出

查看是否有TMOUT=300

注意:必须是TMOUT,不能是timeout,TIMEOUT等

  1. service --status-all | grep sshd 查看是否采用ssh加密方式管理
    centos7可用systemctl --type=service | grep sshd命令
  2. netstat -an | grep 22 查看ssh服务对应端口是否打开
  3. ps -e | grep sshd 查看是否开启ssh服务
  4. systemctl is-enabled telnet.socket查看telnet服务是否可用
  5. ls -l /etc/passwd,查看文件的权限值
  6. id 0查看uid=0的用户有哪些
  7. ps -ef | grep java 查看中间件运行用户,非root用户运行
  8. cat /etc/ssh/sshd_config 是否允许root远程登录
    文件中的permitrootloginno 表示不允许root账户远程登录
  9. systemctl status rsyslog.service查看服务是否开启
  10. cat /etc/audit/audit.rules对passwd等文件地读写执行产生审计日志。
  11. cat /etc/rsyslog.conf,是否成功指向日志服务器。
  12. cat /etc/redhat-release 查看Linux版本
  13. uname -a 查看内核版本
  14. systemctl list-unit-files命令列出所有可用单元。查看是否有多余组件和应用程序。
  15. yum list installed 查看已安装的rpm包
  16. netstat -antpl | grep LISTEN 查看有无多余端口
  17. cat /etc/hosts.at llow /etc/hosts.deny 是否合理限制访问地址

等保测评-sqlserver测评命令

一、身份鉴别

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

  1. SQL server数据库本身没有密码复杂度策略设置,它是使用Windows操作系统的校验函数来校验账户密码的,所以查看SQL server数据库密码复杂度需要结合操作系统本地安全策略的密码策略来看。SQL server密码策略要同时满足开启Windows密码策略并且勾选SQL server账户的强制实施密码策略才算是符合,但即使这样的话一样可以设置6位长度的口令,所以还要设置服务器的密码最小长度值。

  2. 在Microsoft SQL Server Management Studio中登录服务器,右键点击服务器,选择“属性”,选择“安全性”项,查看服务器身份验证。在Microsoft SQL Server Management Studio中选择服务器组并展开,选择“安全性->登录名”项,右键点击管理员用户的“属性”,在“常规”中 查看“强制实施密码策略”和“强制密码过期”

​ SQL server数据库的身份验证方式有多种,经常使用的有:windows身份验证和SQL server 身份验证。如果SQLServer数据库中的登录名添加了该操作系统账 户,且没有被禁用,则无需口令即可登录。

​ 检查是否开启强制密码策略。

  1. 用户唯一标识SQLServer自动实现,这点默认符合。

  2. 尝试建立弱口令账户,检查是否建立成功。

  3. 查看口令复杂度配置信息:

    SHOW VARIABLES LIKE 'validate%';
    +--------------------------------------+-------+
    | Variable_name                        | Value |
    +--------------------------------------+-------+
    | validate_password_check_user_name    | OFF   |
    | validate_password_dictionary_file    |       |密码策略文件,策略为STRONG才需要
    | validate_password_length             | 3     |密码最少长度
    | validate_password_mixed_case_count   | 0     |大小写字符长度
    | validate_password_number_count       | 0     |数字最少个数
    | validate_password_policy             | LOW   |修改口令策略
    | validate_password_special_char_count | 1     |特殊字符最少个数
    +--------------------------------------+-------+
    7 rows in set (0.00 sec)
    

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

  1. SQL server的账户锁定策略原理也是一样的,都是参照Windows操作系统的校验函数来校验的,所以需要勾选账户的强制密码过期,并且开启操作系统的账户锁定策略。勾选数据库强制密码过期,设置操作系统密码锁定策略。(win+r打开secpol.msc)

  2. SQL Server 数据库连接超时包含三类:远程登录超时、客户端连接数据库超时、sql语句执行超时(主要关注远程登录超时),其中:

​ 远程登录超时:

​ 在Microsoft SQL Server Management Studio中登录服务器并展开,右键点击服务器,选择“属性”,选择“高级”项,查看登录超时设定。也可在Microsoft SQL Server Management Studio的查询中输入命令:“sp_configure”查看数据库启动的配置参数;其中remote login timeout为远程登录超时设定。

​ 客户端连接数据库超时:

​ sql语句执行超时:

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

  1. 核查是否采用加密等安全方式对系统进行远程管理,防止鉴别信息在网络传输过程中被窃听。检查远程管理时管理员所使用的管理协议,查看传输过程中的鉴别信息是否是经过加密处理的、抗重放的,并可使用抓包工具,判断管理员远程管理时传输过程中的鉴别信息被窃听的可能性。

  2. 根据了解,SQL Server的加密分成两个部分,一个是对数据的加密,一个是对连接的加密。对于数据的加密,主要是通过一系列的函数如EncryptbyKey,或者TDE来完成的。另外一部分是连接加密,自己分的话还能分成两个阶段。一个是建立连接时候的加密。另外一个阶段是连接建立起来之后,客户端和SQL Server在其上传输数据时候的加密。可以通过抓包判定SQL Server已经使用了SSL来加密

  3. SQL Server自动生成的证书是一种自签名的证书,而通过自签名证书实现的SSL并不能提供很强的安全性。他对中间人攻击(man-in-the-middle attack)不具有抵抗能力。因此建议在生产环境中,应该手动给SQL Server配置证书,而不是让它使用自动生成的证书。

  4. 默认情况下SQL Server是不加密收发的数据包信息,需要通过SQL Server的configuration Manager配置SQL Server使得它加密和客户端之间收发的数据包信息。

  5. 其中包含客户端的加密配置和服务器端的加密配置:

​ 客户端的加密配置:

​ 服务器端的加密配置:

​ 默认状态下客户端和服务器端这个选项是设置为No的,SQL Server对数据包的收发不进行加密,反之,当选项设置为yes时,SQL Server对数据包的收发进行 加密。

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

访谈管理员并进行验证,是否采用双因子身份鉴别技术,鉴别技术是什么 。实际实现双因素认证比较困难,一般情况判定为不符合。

二、访问控制

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

查看用户,并结合结合访谈管理员是否存在网络管理员,安全管理员,系统管理员、审计管理员等多个账户,为各个管理用户分配对应的权限;输入命令:“select * from syslogins”,根据所列出的账户,查看是否存在默认账户,默认账户是否已禁用。

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

执行命令:“select * from syslogins”,检查如sa账户是否重命名(实际检查发现很多sa账户是不能重命名或禁用的,可能会影响系统正常运行,检查过程中也需要权衡业务需求),数据库一般情况不存在默认口令,输入命令:查看是否存在默认账户。(SQLServer中默认账户其实很多,主要检查权限过大的账户)

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

  1. 询问管理员数据库中的账户使用情况,是否存在无人使用的账户,如果存在建议删除。
  2. 检查网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录数据库。输入命令:“select * from syslogins”,根据所列出的账户,询问数据库管理员各个账户的作用,是否存在多余的、过期的和共享账户。

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

询问数据库管理员管理账户是否按照最小权限进行划分。在Microsoft SQL Server Management Studio中的查询中输入命令:“sp_helplogins”查看所有数据库登录用户的信息及其权限。在Microsoft SQL Server Management Studio的查询中输入命令:“select * from sys.sql_logins”,查看SQL Server身份认证模式的能够登录账户,其中is_disabled值为1,则登录账户被锁定;输入命令:“select * from sys.syslogins”,查看所有登录账户,其中 “denylogin”的值为1时,拒绝账户连接到数据库引擎,“sysadmin”的值为1时,具有系统管理员权限。Sa之类的系统管理员账户不负责操作业务数据库;业务数据库管理员不应具备系统管理权限(如删除数据库、表和存储过程等)。

5.应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则
  1. 访谈和查看管理员是否制定了访问控制策略

  2. 查看管理员权限;(此测评点如果数据库已经启用身份鉴别,且具备权限分离可判定为符合)

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

    结合a)、b)、c)、d)、e)项,并访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级。询问数据库管理员是否具有安全策略,数据库是否具有重要的表。在企业管理器中右键点击重要的表,查看其权限。

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

通过访谈管理员是否对重要主体和客体设置安全标记。SQL Server数据库自身应该很难实现这个功能,可能需要依赖操作系统或者第三方来实现。该项一般默认都不符合

三、安全审计

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

  1. 查看SQL server日志是否有日志审计记录,检查安全性中是否创建了审核目标。在Microsoft SQL Server Management Studio中登录服务器并展开,右键点击服务器,选择“属性”,选择“安全性”项,查看登录审核和是否启用C2 审计跟踪。也可在Microsoft SQL Server Management Studio的查询中输入命令:“sp_configure”查看“c2 audit mode”项的值,“0”是未开启C2审计,“1”是开启C2审计。SQL Server数据库的审计内容包括SQL Server日志和应用程序日志。SQL Server的SQL Server日志可通过Microsoft SQL Server Management Studio进行查看,展开服务器点击“管理-〉SQL Server 日志";SQL Server的应用程序日志可通过操作系统的日志进行查看。

  2. 访谈管理员是否通过第三方工具(数据库审计系统)收集审计数据进行分析。

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

  1. 检查SQL server日志记录的各类信息(告警日志、运行日志、错误日志、登录日志等)

  2. 核查是否部署第三方工具(数据库审计系统)增强SQL server日志功能。记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。

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

应保证各个管理员尽可以访问与自身相关的日志文件,如关键日志仅允许特权账户访问

  1. 访谈管理员对审计记录如何保护,对审计记录是否定期备份,备份策略。

​ 是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审 计记录保存时间超过6个月。

  1. 是否严格限制用户访问审计记录的权限,可以通过普通用户登录然后是否能够访问修改删除日志。

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

MariDB可以根据权限建立各类型的账户,可以防止审计进程未经授权的中断,如果数据库已建立审计账户且各个数据库管理员权限已分离,可判定为符合。

四、入侵防范

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

SQL server数据库没有登录地址限制的相关配置,多数情况下是限制数据库服务器的登录地址,从而实现对数据库的登录地址限制。

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

  1. 访谈管理员是否定期或不定期进行漏洞扫描或渗透测试,周期按照天/月/季度/半年/年等方式(建议漏洞扫描周期最长半年一次)。
  2. 通过本次漏洞扫描是否发现与数据库相关的高危漏洞,若存在,是否及时进行漏洞修补,执行命令:“select @@version”检查数据库版本。

五、可信验证

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

通过访谈管理员,是否采取了可信技术,可信技术主要是基于可信芯片、可信根,目前实现此技术的可能性不大,一般判定为不符合

六、数据完整性

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

传输过程中的完整性一般是通过通信协议来实现的,常见的包括TLS、SSL、SSH等协议,对数据库而言,查看是否启用了安全协议进行数据通信,同时询问管理员,确认是否还有其他保证数据传输过程中的完整性措施。根据上文描述,可知SQL Server已经使用SSL来加密。(本地管理可判定为不适用,远程管理根据实际情况判定)

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

对数据库配置文件进行一个完整性检测,需要配置文件初始可信状态时的哈希值,然后再根据目前的文件生成一个哈希值,对比前后的一致性,确认数据是否被篡改过,根据了解一般数据库自身不带这种机制,询问管理人员是否使用了第三方软件对数据库重要数据进行了完整性校验。

实际操作中可核查数据库表中的业务数据、审计数据有无存在哈希字段,据了解数据在前端一般通过json或xml格式进行传输,相关数据库表字段中具有完整性校验字段。目前一般做不到,判定为不符合。

七、数据保密性

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

​ 若password是以明文密码传送给数据库,建议不在生产环境中使用。若数据库未开启SSL时,我通过Wireshare对数据库认证过程的数据包进行抓取,可能发现传输的密码字段信息。根据上文描述,可知SQL Server已经使用SSL来加密。

总结,最直接验证的办法就是抓包验证重要的加密数据(鉴别数据、需要加密的业务数据、个人信息等)是否明文传输。

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

检查数据库表中的重要数据是否明文存储,根据经验除鉴别数据外,业务数据、审计数据实际很少加密存储,所以一般不符合或者部分符合。如果使用数据库加密功能,就可以符合符合,数据库加密主要分库内加密和库外加密,库内加密主要是调用的数据库本身的加密功能,库外加密主要通过第三方厂家的数据库加密功能。

据了解,SQL Server几乎支持所有的主流对称加密算法。一般推荐使用AES-128或AES-256作为对称加密的数据加密算法。

八、数据备份恢复

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

  1. 访问管理员配置数据、审计数据、业务数据的备份策略,检查备份策略的备份情况与管理员所说是否一致,是否具有恢复测试记录。
  2. 可以通过数据库管理工具进行备份。

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

部署异地备份机房,并符合备份策略通过网络定期进行异地备份。

九、剩余信息保护

1.应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;

一般情况下数据库系统内核层默认无法实现剩余信息保护功能,需要第三方工具才能实现。

2.应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。

一般情况下数据库系统内核层默认无法实现剩余信息保护功能,需要第三方工具才能实现。

十、个人信息保护

1.应仅采集和保存业务必需的用户个人信息;

检查数据库中是否存储个人信息,若有,检查个人信息保护机制和个人信息保护管理制度

2.应禁止未授权访问和非法使用用户个人信息。

检查个人信息保护机制和个人信息保护管理制度,验证非授权人员是否可以访问个人信息存储的相关组件内容。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值