文章

基线检查表

IDS检查表

分类测评项预期结果评估操作示例检查情况结果整改建议
安全审计应对网络系统中的网络设备运行状况、网络流量、用户行为等进行日志记录日志文件包含设备运行状况、网络流量、用户行为登录到 IDS 中,找到日志管理,任意查询日志,查看日志详情  日志需记录设备运行状况、网络流量、用户行为等,管理员可自行配置调整
安全审计审计记录应包括:事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息操作日志中应包括上述几种类型登录到 IDS 中,找到操作日志,查看操作日志详情  根据不同的 IDS 类型,对操作日志的记录详情进行调整
安全审计应能够根据记录数据进行分析,并生成审计报表IDS 应该能够根据记录数据进行分析,生成审计报表    
网络设备防护应对登录网络设备的用户进行身份鉴别每个账户都有对应的口令,不存在空口令和弱口令用不同的账户和口令登录到系统中  每个用户都要设置口令,不能存在空口令
网络设备防护应对网络设备的管理员登录地址进行限制只有固定的 IP 地址才能以管理员的权限登录到系统中登录到系统中>系统管理>管理员>管理员设置中有允许登录 IP  登录到系统中>系统管理>管理员>管理员设置中将允许登录 IP 设置为固定的 IP 地址
网络设备防护主要网络设备应对同一用户选择两种或两种以上组合的鉴别技术来进行身份鉴别采用了两种及两种以上组合鉴别技术进行身份鉴别在登录过程中可以知道  根据实际需求,建议尽量都选用两种或两种以上的组合鉴别技术进行身份鉴别
网络设备防护身份鉴别信息应具有不易被冒用的特点,口令应有复杂度要求并定期更换口令长度至少为 10 位,包含数字,字母(大小写),特殊字符三种形式,更换周期为 90 天登录到系统中>系统管理>管理员>登录参数设置  建议整改为口令长度至少为 10 位,包含数字,字母(大小写),特殊字符三种形式,更换周期为 90 天
网络设备防护应具有登录失败处理功能,可采取结束会话、限制非法登录次数和当网络登录连接超时自动退出等措施限制非法登录次数为 5 次,登录超时退出时间为 300 秒登录到系统中>系统管理>管理员>登录参数设置  建议设置为限制非法登录次数为 5 次,登录超时退出时间为 300 秒,避免非法登录的风险
网络设备防护当对网络设备进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听应采用 SSL 加密方式对传输数据进行加密使用 https + IP 登录到管理后台,能成功登录就是采用了 SSL  登录到系统中>系统管理>管理员>web 访问协议设置中选择启用 https

Linux基线检查表

分类测评项预期结果评估操作示例检查情况结果整改建议  
身份鉴别应对登录操作系统和数据库系统的用户进行身份标识和鉴别1) 操作系统使用口令鉴别机制对用户进行身份标识和鉴别;
2) 登录时提示输入用户名和口令;以错误口令或空口令登录时提示登录失败,验证了登录控制功能的有效性;
3) 操作系统不存在密码为空的用户。
cat /etc/passwd,cat /etc/shadow 查看文件中各用户名状态  操作系统和数据库每个用户都必须设置登录用户名和登录密码,不能存在空密码  
身份鉴别操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换密码策略如下:
PASS_MAX_DAYS 90(生命期最大为 90 天)
PASS_MIN_DAYS 0(密码最短周期 0 天)
PASS_MIN_LEN 10(密码最小长度 10 位)
PASS_WARN_AGE 7(密码到期前 7 天提醒)
口令复杂度:
口令长度 8 位以上,并包含数字、字母、特殊字符三种形式
more /etc/login.defs  密码最大生存周期为 90 天  
身份鉴别  密码最短修改周期为 0 天,可以随时修改密码     
身份鉴别  密码最小长度为 10 位,包含数字,特殊字符,字母(大小写)三种形式     
身份鉴别  密码到期前 7 天必须提醒     
身份鉴别应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施1) 操作系统已启用登陆失败处理、结束会话、限制非法登录次数等措施;
2) 当超过系统规定的非法登陆次数或时间登录操作系统时,系统锁定或自动断开连接
cat /etc/pam.d/system-auth,查看相应的登录设置  建议限制,密码过期后重设的密码不能和前三次的密码相同  
身份鉴别当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听1) 操作系统使用 SSH 协议进行远程连接;
2) 若未使用 SSH 方式进行远程管理,则查看是否使用 telnet 方式进行远程管理;
查看是否运行 SSH:
cat service -status-all
grep sshd;
查看是否使用 telnet 方式:cat service -status -all
grep running;  系统远程登录时要采取 SSH 方式登录或采用密文传输信息,保障信息的安全性
身份鉴别为操作系统和数据库的不同用户分配不同的用户名,确保用户名具有唯一性用户的标识唯一,若系统允许用户名相同,UID 不同,则 UID 是唯一性标识;若系统允许 UID 相同,则用户名是唯一性标识。cat /etc/passwd 文件中的用户名信息,每个信息用“:”分隔开来,每个字段对应的信息为:
注册名:口令(密文用 x 来代替):UID:GID:用户名:用户主目录:命令解释程序 Shell
  UID 是唯一性标识,每个用户必须采用不同的 UID 来区分  
身份鉴别应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别对管理员访谈,对于三级系统,必须使用两种或两种以上组合的鉴别技术实现用户身份鉴别,如密码和口令的组合使用。访谈管理员  三级系统建议采用用户名密码 + 证书口令登录的方式;
三级以下系统可以采用一种鉴别技术。
  
访问控制应启用访问控制功能,依据安全策略控制用户对资源的访问root 用户:
passwd 文件夹只有 rw - r - r 权限
shadow 文件夹只有 r - - - 权限
r = 4 w = 2 x = 1
在 root 权限下:ls - l /etc/passwd
ls - l /etc/shadow
查看用户权限。
- rw - r–r–:第一个 rw 表示文件所有者有读写权限;
第二个 r 表示与文件所有者同一组的用户只有读的权限;
第三个 r 表示不与文件所有者同一组的用户只有读的权限
  根据实际需求,对每个用户的访问权限进行限制,对敏感的文件夹限制访问用户的权限  
访问控制应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限;访谈管理员,了解每个用户的作用、权限  给予账户所需最小权限,避免出现特权用户   
访问控制应实现操作系统和数据库系统特权用户的权限分离操作系统和数据库的特权用户的权限必须分离,避免一些特权用户拥有过大的权限,减少人为误操作访谈管理员  分离数据库和操作系统的特权用户,不能使一个用户权限过大  
访问控制应严格限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令默认账户已更名,或已被禁用cat /etc/passwd  严格限制默认账户的访问权限,对存在的默认账户的用户名和口令进行修改。
使用 usermod - L 用户名,来锁定默认用户。
  
访问控制应及时删除多余的、过期的帐户,避免共享帐户的存在不存在多余、过期和共享账户cat /etc/passwd  删除、禁用例如 uucp,ftp 等多余账户  
安全审计审计范围应覆盖到服务器和重要客户端上的每个操作系统用户和数据库用户系统开启了安全审计功能或部署了第三方安全审计设备service auditd status  开启系统本身的安全审计功能,完整记录用户对操作系统和文件访问情况,或采用第三方的安全审计设备  
安全审计审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件审计功能已开启,包括:用户的添加和删除、审计功能的启动和关闭、审计策略的调整、权限变更、系统资源的异常使用、重要的系统操作(如用户登录、退出)等设置ps - efgrep auditd  开启审计功能,记录用户的添加和删除、审计功能的启动和关闭、审计策略的调整、权限变更、系统资源的异常使用、重要的系统操作(如用户登录、退出)等操作 
安全审计审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等审计记录包括事件的日期、时间、类型、主体标识、客体标识和结果等内容cat /etc/audit/auditd.conf
cat /etc/audit/audit.rules
  记录事件产生的时间,日期,类型,主客体标识等  
安全审计操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新1) 系统安装的组件和应用程序遵循了最小安装的原则;
2) 不必要的服务没有启动;
3) 不必要的端口没有打开;
service –status-allgrep running  在不影响系统的正常使用的前提下,对系统的一些端口和服务可以进行关闭,避免这些端口或服务的问题导致系统问题 
资源控制应通过设定终端接入方式、网络地址范围等条件限制终端登录已设定终端登录安全策略及措施,非授权终端无法登录管理/etc/hosts.deny、/etc/hosts.allow 中对终端登录限制的相关配置参数  建议配置固定的终端、特定的网络范围内才能进行终端登录  
资源控制应根据安全策略设置登录终端的操作超时锁定已在/etc/profile 中为 TMOUT 设置了合理的操作超时时间cat /etc/profile  超时时间建议设置为 300 秒  

MySQL 完整检查表

一、身份鉴别

(一)默认账号要求

  • 预期结果:不存在默认数据库和默认帐号;不存在匿名账户;应用系统应使用新建用户,不得使用系统默认账户。
  • 评估操作示例:
    • mysql> show databases;
    • mysql> select * from user;
    • 只保留单个管理员 root 和应用系统专用账户。
  • 检查情况:
  • 结果:
  • 整改建议:在不影响系统正常运行的情况下删除默认账号,若默认账号下有系统运行,则修改默认账号名。

(二)数据库系统管理用户账号名和密码要求项

  • 预期结果:修改 root 用户默认口令,删除空口令;改变默认 mysql 管理员帐号,host 为空。
  • 评估操作示例:mysql> select * from user;查看列表中 root 用户口令不为空,host 为空。
  • 检查情况:
  • 结果:
  • 整改建议:修改 root 用户的默认密码,不能有空口令,MySQL 默认的账户为 root,需要新建一个账户。MySQL 账户的 Host=%应该为空,这样来禁止远程连接。

(三)管理员口令策略

  • 预期结果:至少 8 位,数字、字母(大小写)、特殊字符组成的不规律密码。
  • 评估操作示例:mysql>select password from user;查看密码。
  • 检查情况:
  • 结果:
  • 整改建议:密码修改为 8 位以上,包含数字,字母(大小写),特殊字符三种形式。

(四)账号权限策略

  • 预期结果:除管理员账户之外的其他账户不得拥有系统数据库的任何权限,不得拥有 File,Grant,Reload,Shutdown,Process 等权限的任意一种。
  • 评估操作示例:mysql>show grants for root@localhost;查看 root 用户的权限。Show grants for+用户名@地址,可以查看指定账户的权限。
  • 检查情况:
  • 结果:
  • 整改建议:修改除管理员外其他用户的权限,其他用户不能有 File,Grant,Reload,Shutdown,Process 等权限,不能出现其他高权限用户。

二、访问控制

(一)MySQL 运行在单独的组上

  • 预期结果:不能在 root 账户运行 MySQL 服务器,使用普通非特权用户运行。
  • 评估操作示例:mysql>id mysql。
  • 检查情况:
  • 结果:
  • 整改建议:MySQL 不能运行在 root 用户上,需新建一个专用账户给 MySQL 数据库。

(二)文件权限控制

  • 预期结果:MySQL 的数据目录、日志目录,以及目录下的文件属主和属组只能是 mysql 账号,不能给予其他账号任何权限。
  • 评估操作示例:ls –la /usr/local/mysql;查看数据目录所属的账号。ls –la /usr/local/mysql/var;查看日志目录所属的账号。
  • 检查情况:
  • 结果:
  • 整改建议:

(三)命令历史记录保护

  • 预期结果:mysql.history 文件中为空,没有命令历史记录。
  • 评估操作示例:若没有修改存储历史命令的文件名,则是 mysql.history,我们执行 find / -name mysql.history 站到文件夹所在的位置;cat 打开查看该文件内容。若修改了存储的文件名,则需要询问管理员确认存储位置。
  • 检查情况:
  • 结果:
  • 整改建议:将.bash_history,.mysql_history 文件置空。ln -s /dev/null.bash_history;ln -s /dev/null.mysql_history;将历史命令缓存直接引向垃圾箱。

三、安全审计

(一)启用日志记录

  • 预期结果:启用了日志记录,记录日志信息。log-error, log, log-slow-queries 这三种日志的状态是 ON 状态。
  • 评估操作示例:MySQL>show variables like ‘log_%’;
  • 检查情况:
  • 结果:
  • 整改建议:进入 my.cnf 中,在[mysqld]下面加 log-error=/usr/local/mysql/log/error.log。log=/usr/local/mysql/log/mysql.log。long_query_time=2。log-slow-queries= /usr/local/mysql/log/slowquery.log。log-queries-not-using-indexes。

(二)审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等

  • 预期结果:审计记录包括事件的日期、时间、类型、主体标识、客体标识和结果等内容。
  • 评估操作示例:cat /etc/audit/auditd.conf。cat /etc/audit/audit.rules。
  • 检查情况:
  • 结果:
  • 整改建议:首先需要开启 logbin 日志(记录数据库修改语句和生效时间),再与 init-connect 相结合,两者结合记录完整的信息。

(三)操作系统应遵循最小安装的原则,仅安装需要的组件和应用程序,并通过设置升级服务器等方式保持系统补丁及时得到更新

  • 预期结果:1)系统安装的组件和应用程序遵循了最小安装的原则;2)不必要的服务没有启动。
  • 评估操作示例:service –status-allgrep running。
  • 检查情况:
  • 结果:
  • 整改建议:对不必要的服务进行关闭,仅保留系统所需要的最小服务。

四、其他内容

(一)限制单个用户允许的连接数量

  • 预期结果:对单个用户的连接数的最大值做出限制,my.cnf 中的 max_user_connections 系统变量为非零值。
  • 评估操作示例:MySQL>show global variables like ‘%connect%’。
  • 检查情况:
  • 结果:
  • 整改建议:根据系统的实际承受能力,限制单个用户连接数,在/etc/my.cnf 中进行限制。

(二)服务监听端口

  • 预期结果:修改 mysql 默认监听端口 3306 为其他端口。
  • 评估操作示例:show global variables like ‘port’;看一下监听端口是不是 3306。
  • 检查情况:
  • 结果:
  • 整改建议:vim my.cnf 文件,修改其中的 port 参数为非 3306 且未被占用的端口。

(三)登录终端超时锁定

  • 预期结果:设置了超时时间,在时间内没有操作,再次操作时就会提示超时。
  • 评估操作示例:MYSQL>show VARIABLES like ‘%timeout%’;或访谈了解防火墙等其他安全设备是否做了相关策略。
  • 检查情况:
  • 结果:
  • 整改建议:设置 interactive_timeout 为 300 秒。Mysql> set global interactive_timeout=300;

防火墙策略调研表

防火墙策略调研表

表名设备名称所属位置设备用途部署模式(是否有设备心跳信息)本设备IP管理端IP备注 
表1.防火墙策略调研表        
表2.允许放通的业务信息调研表开放的业务源IP业务端口对那些IP开放    
表3.与其他业务系统互通的调研表需要访问的业务源IP目的IP目的端口    

防火墙策略配置表

编号源IP目的IP源端口目的端口协议类型网卡接口包流向动作
1***80TCP*允许

Windows标准检查表a

一、身份鉴别

  1. 应对登录操作系统和数据库系统的用户进行身份标识和鉴别
    • 预期结果:操作系统使用口令鉴别机制对用户进行身份标识和鉴别,且不存在密码为空的用户。
    • 评估操作示例:访谈管理员,并查看登录过程中系统账户是否使用了密码进行登录验证。
    • 检查情况:
    • 结果:操作系统和数据库每个用户都必须设置登录用户名和登录密码,不能存在空密码。
    • 整改建议:
  2. 操作系统和数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换
    • 预期结果:密码启用复杂度要求;密码最小长度为8位;密码最短使用期限为1天;密码最长使用期限90天;强制密码历史为0个;用可还原的加密来储存密码已禁用。
    • 评估操作示例:cmd>secpol.msc>账户策略>密码策略。
    • 检查情况:
    • 结果:密码启用复杂度要求;密码最小长度为8位;密码最短使用期限为1天;密码最长使用期限90天;强制密码历史为0个;用可还原的加密来储存密码已禁用。
    • 整改建议:
  3. 应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施
    • 预期结果:账户锁定时间10分钟;账户锁定阈值5次;重置账户锁定计数器10分钟后。
    • 评估操作示例:cmd>secpol.msc>账户策略>账户锁定策略。
    • 检查情况:
    • 结果:账户锁定时间10分钟;账户锁定阈值5次;重置账户锁定计数器10分钟后。
    • 整改建议:
  4. 当对服务器进行远程管理时,应采取必要措施,防止鉴别信息在网络传输过程中被窃听
    • 预期结果:客户端和服务器之间发送数据受加密保护,加密级别根据实际情况来判断,尽量符合FIPS标准。
    • 评估操作示例:cmd>control>管理工具>终端服务配置>连接>RDP - Tcp>右键属性>加密级别。
    • 检查情况:
    • 结果:cmd>control>管理工具>终端服务配置>连接>RDP - Tcp>右键属性>加密级别,选择尽量高级别的加密。
    • 整改建议:
  5. 为操作系统和数据库的不同用户分配不同的用户名,确保用户名具有唯一性
    • 预期结果:不存在重复的用户名。
    • 评估操作示例:cmd>lusrmgr.msc查看“用户”中是否存在重复的用户名。
    • 检查情况:
    • 结果:对重复的用户名进行修改。
    • 整改建议:
  6. 应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别
    • 预期结果:对管理员访谈,对于三级系统,必须使用两种或两种以上组合的鉴别技术实现用户身份鉴别,如密码和口令的组合使用。
    • 评估操作示例:访谈管理员。
    • 检查情况:
    • 结果:三级系统建议采用用户名密码 + 证书口令登录的方式;三级以下系统可以采用一种鉴别技术。
    • 整改建议:

二、访问控制

  1. 是否开启默认共享
    • 预期结果:没有共享文件夹。
    • 评估操作示例:cmd>fsmgmt.msc,查看共享目录下面的文件夹的内容。
    • 检查情况:
    • 结果:关闭默认共享,cmd>fsmgmt.msc,点击共享,右键选择停止共享。
    • 整改建议:
  2. 是否禁止ipc$空连接进行枚举
    • 预期结果:restrictanonymous = 1。
    • 评估操作示例:cmd>regedit>HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>LSA,找到LSA中的restrictanonymous值是否等于1。
    • 检查情况:
    • 结果:按照上述步骤,在注册表中修改restrictanonymous的值。
    • 整改建议:
  3. 应实现操作系统和数据库系统特权用户的权限分离
    • 预期结果:操作系统和数据库的特权用户的权限必须分离,避免一些特权用户拥有过大的权限,减少人为误操作。
    • 评估操作示例:访谈管理员。
    • 检查情况:
    • 结果:分离数据库和操作系统的特权用户,不能使一个用户权限过大。
    • 整改建议:
  4. 应严格限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令
    • 预期结果:管理员账户已更改名称,禁用了guest(来宾)账号。
    • 评估操作示例:cmd>lusrmgr.msc>用户,管理员账号是否改名(默认为administrator),guest账户是否被禁用。
    • 检查情况:
    • 结果:cmd>lusrmgr.msc>用户,可以修改管理员账号名称和禁用guest账户。
    • 整改建议:
  5. 应及时删除多余的、过期的帐户
    • 预期结果:不存在多余、过期账户。
    • 评估操作示例:cmd>lusrmgr.msc>用户。
    • 检查情况:
    • 结果:cmd>lusrmgr.msc>用户,删除一些与设备运行、维护等工作无关的账号。
    • 整改建议:

三、安全审计

  1. 审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件
    • 预期结果:审计功能已开启,包括:审核策略更改、审核登录事件、审核对象访问、审核过程跟踪、审核目录服务访问、审核特权使用、审核系统事件、审核帐户登录事件、审核帐户管理等设置。
    • 评估操作示例:cmd>secpol.msc>本地策略>审核策略。
    • 检查情况:
    • 结果:cmd>secpol.msc>本地策略>审核策略,设置为成功或失败。
    • 整改建议:
  2. 日志记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等
    • 预期结果:日志记录包括事件的日期、时间、类型、主体标识、客体标识和结果等内容。
    • 评估操作示例:cmd>eventvwr>系统,查看其中的系统日志详细信息。
    • 检查情况:
    • 结果:
    • 整改建议:
  3. 日志记录缓存的大小和达到上限后的覆盖规则
    • 预期结果:日志存储上限为20480kb,达到存储上限后按需要覆盖事件。
    • 评估操作示例:cmd>eventvwr>系统>右键属性。
    • 检查情况:
    • 结果:cmd>eventvwr>Windows日志>系统>右键属性,可自己调整日志记录规则和日志缓存大小。
    • 整改建议:

四、入侵防范

  1. 设置升级服务器等方式保持系统补丁及时得到更新
    • 预期结果:已经更新到最近的补丁版本。
    • 评估操作示例:cmd>control>添加删除程序>记录系统补丁号。
    • 检查情况:
    • 结果:及时更新最新的系统补丁。
    • 整改建议:
  2. 系统是否已经开启服务中一些不必要的服务
    • 预期结果:未开启一些不必要的服务(如Alerter,Remote Registry Service,Messenger,Task Scheduler等)。
    • 评估操作示例:cmd>services.msc,查看正在运行的服务。
    • 检查情况:
    • 结果:cmd>services.msc,对一些不必要的服务进行关闭。
    • 整改建议:

五、资源控制

  1. 应根据安全策略设置登录终端的操作超时锁定
    • 预期结果:应设置空闲的终端服务会话设置时间限制300秒。
    • 评估操作示例:cmd>gpedit.msc>计算机配置>管理模板>Windows组件>终端服务>。
    • 检查情况:
    • 结果:超时时间建议设置为300秒。
    • 整改建议:
  2. 应根据安全策略限制终端连接的数量
    • 预期结果:根据系统实际情况,建议限制终端连接数量为5个。
    • 评估操作示例:cmd>gpedit.msc>计算机配置>管理模板>Windows组件>终端服务>。
    • 检查情况:
    • 结果:限制终端连接数量为5个,避免造成系统资源占用过多。
    • 整改建议:

六、剩余信息保护

  1. 应保证操作系统和数据库管理系统用户的鉴别信息所在的存储空间,被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中
    • 预期结果:在登录系统时不显示上次的用户登录名。
    • 评估操作示例:cmd>secpol.msc>本地策略>安全选项>交互式登录不显示上次的用户名是否禁用。
    • 检查情况:
    • 结果:cmd>secpol.msc>本地策略>安全选项>交互式登录不显示上次的用户名,右键属性选择启用。
    • 整改建议:
  2. 应确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除
    • 预期结果:系统启用关机前清除虚拟内存页面。
    • 评估操作示例:cmd>secpol.msc>本地策略>安全选项>关机:清除虚拟内存页面文件。
    • 检查情况:
    • 结果:cmd>secpol.msc>本地策略>安全选项>关机:清除虚拟内存页面文件,右键属性选择开启。
    • 整改建议:
本文由作者按照 CC BY 4.0 进行授权