一、身份鉴别
a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
指引:1.观察管理员登录方式。2.查看系统配置,记录配置参数。(more /etc/pam.d/system-auth、more /etc/login.defs)
1、应核查用户在登陆时是否采用了身份鉴别措施
用户登录服务器需要使用账户+账户口令。
2、应核查用户列表确认用户身份标识是否具有唯一性
命令:more /etc/passwd
//查看命令结果,第三字段不存在相同数字、用户名不存在相同名称。
3、应核查用户配置信息或测试验证是否不存在空口令用户
more /etc/shadow
//查看命令结果,红框内的乱码表示加密以后的账户口令
//红色框内的(!*)号代表该账户已锁定、或者禁用。
4、服务器密码复杂的策略
命令:more /etc/pam.d/system-auth
//password requisite 里面设置密码相关的策略(pam _cracklib.so策略里),因为真正要对密码复杂性进行限制,还需要cracklib来完成.
retry=5(用户有5次出错的机会)
difok=3(新密码与旧密码有多少位能一样)
minlen=8(最少密码长度)
ucreddir=-1 (最少包含一个大写字母,如果去掉减号就是最多只能包含一个大写字母)
lcredit=-3 (最少有三个小写字母)
dcredit=-3 (最少有三个数字)
dictpath=/usr/share/cracklib/pw_dict(密码字典)
修改前
修改后
linux密码策略详解参考:linux密码策略详解_lose的技术博客_51CTO博客
5、应核查用户鉴别信息是否具有复杂度要求并定期更换
命令:more /etc/login.defs
// 查看命令结果是否有设置密码长度,复杂度。
cat /etc/login.defs
初始配置
1)PASS_MAX_DAYS 99999
2)PASS_MIN_DAYS 0
3)PASS_MIN_LEN 5
4)PASS_WARN_AGE 7
更改后的配置
1)PASS_MAX_DAYS 90 (密码登录有效期时间)
2)PASS_MIN_DAYS 30 (密码最小过期天数)
3)PASS_MIN_LEN 8 (密码最小长度)
4)PASS_WARN_AGE=7(密码过期前提前多少天提醒)
修改前
修改后
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动 退出等相关措施
指引:1.以root身份登录进入Linux,查看文件内容:cat /ete/pam.d/system-auth 2.查看/etc/profile中的TIMEOUT环境变量,是否配置超时锁定参数
1、应核查是否配置并启用了登录失败处理功能
2、应核查是否配置并启用了限制非法登录功能,非法登录达到一定次数后采取特定动作,如账号锁定等
本地登录的失败处理:
more /etc/pam.d/system-auth
more /etc/pam.d/login
使用SSH远程登录的失败处理:
more /etc/pam.d/sshd
2.1、本地登录(system-auth文件)
命令:more /etc/pam.d/system-auth
注意添加的位置,要写在第一行
简要说明:帐户登录连续 10 次失败,就统一锁定 150秒,150 秒后可以解锁,root账户的锁定时间为10秒。
如果不想限制 root 帐户,可以把 even_deny_root 和root_unlock_time这两个参数去掉。
root_unlock_time 表示 root 帐户的锁定时间,onerr=fail 表示连续失败,deny=10,表示 超过10次登录失败即锁定。
修改前
修改后
2.2、本地登录(login文件)
命令:more /etc/pam.d/login
修改前
修改后
2.3、远程SSH文件(sshd文件)
命令 :more /etc/pam.d/sshd
修改前
修改后
3、应核查是否配置并启用了登录连续超时及自动退出功能
命令:more /etc/profile
将以下命令写到/etc/profilez的末尾
export TMOUT=300 #300秒无操作自动退出登录
readonly TMOUT #将值设置为readonly 防止用户更改,在shell中无法修改TMOUT
c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听
指引:1.访谈系统管理员,进行远程管理的方式。2.以root身份登录进入Linux查看是否运行了sshd服务,service sshd status若未使用SSH方式进行远程管理,则查看是否使用了Telnet 方式进行远程管理service telnet status, 查看是否存在Telnet服务
1.1、访谈系统管理员,进行远程管理的方式
2.以root身份登录进入Linux查看是否运行了sshd服务
systemctl status sshd.service 或者 service --status-all |grep sshd 或者 service sshd status
//检查命令结果显示为:
sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled)
Active: active (running) since Thu 2022-05-1213:16:05 CST; 4 months 2 days ago
//running 绿色表示正在运行
1.2、是否打开SSHD服务对应端口22端口
netstat -an |grep 22 //查看22端口是否正在被SSHD监听
2.1、若未使用SSH方式进行远程管理,则查看是否使用了Telnet 方式进行远程管理
命令:service sshd status
2.2、是否打开了Telnet服务的对应端口23端口
netstat -an |grep 23 //查看23端口是否正在被Telnet监听(应为不存在)
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
指引:访谈和核查系统管理员在登录操作系统的过程中使用了哪些身份鉴别方法,是否采用了两种或两种以上组合的鉴别技术,如口令教字证书Ukey、令牌、指纹等,是否有一种鉴别方法在鉴别过程中使用了密码技术。
1、应核查是否采用动态口令、数字证书、生物技术和设备指纹等两种或两种以上组合的鉴别技术对用户身份进行鉴别,如口令教字证书Ukey、令牌、指纹等,是否有一种鉴别方法在鉴别过程中使用了密码技术。
2、除了输入密码登录还有什么方式能够进行身份鉴别,这个方法有没有采用密码技术。
二、访问控制
a) 应对登录的用户分配账户和权限
指引:查看more /etc/passwd文件中可登录用户,并访谈配合人员各个账户的用途及权限。
1、查看more /etc/passwd文件中可登录用户,并访谈配合人员各个账户的用途及权限。
more /etc/shadow
//查看命令返回结果 第二字段为(!*)表示该账户已锁定
//uucp、nuucp、lp、adm、shutdown均为默认账户
2、查看文件的权限合理性
ls -l /etc/passwd
ls -l /etc/shadow
ls -l /etc/profile
ls -l /etc/inet.conf
ls -l /etc/rc3.d
//(开头D为目录、L为链接、B设备文件)
//配置文件不大于644、可执行文件不大于755(r读、w写、x执行)
b)应重命名或删除默认账户,修改默认账户的默认口令
指引:1.查看more /etc/passwd文件中,默认账户是否禁用或者重命名。2.利用命令cat /etc/ssh/sshd_config | grep PermitRootLogin查看root是否已禁止远程登录,并访谈配合人员默认账户口令组成。
1、应核查是否已经重命名默认账户或默认账户已被删除
more /etc/shadow
//查看命令结果,是否存在adm、lp、sync、shutdown、halt、mail、uucp、
operator、games、gopher、ftp等默认无用账户,默认情况下都没有更改。
2、应核查是否已修改默认账户的默认口令
询问管理员是否重命名默认账户与更改默认口令。
3、查看root账户能否远程登录
cat /etc/ssh/sshd_config | grep PermitRootLogin
//查看命令结果,应该为 PermitRootLogin NO(命令前面不能带#号,否则就算是有也是无效,#代表注释改行。)
c)应及时删除或停用多余的、过期的账户.避免共享账户的存在
指引:查看more /etc/passwd文件中可登录用户,并访谈配合人员各个账户的用途及权限。
1、应核查是否不存在多余或过期账户,管理员用户与账户之间是否一一对应
//询问管理员,是否每个账号对应到个人
more /etc/shadow
//禁用或删除不需要的系统默认账户,如games,news,ftp,lp,halt,shutdown等
//特权账户halt、shutdown是否已被删除
2、避免账户共用现象存在
询问管理员,是否一人一号登录系统
d)应授予管理用户所需的最小权限,实现管理用户的权限分离
指引:查看more /etc/passwd文件中可登录用户,并访谈配合人员各个账户的用途及权限。
1、应核查是否进行角色划分
询问管理员是否建立了,系统管理员、安全管理员、审计管理员账户
2、应核查管理用户的权限是否已进行分离
more /etc/passwd
//第一个段用户名
第二个段密码标志
第三个字段用户ID(0代表超级用户)
第四个字段用户组ID
第五个字段用户字端说明
第六个字段用户家目录
第七个字段用户的命令解释器
查看是否有除root账户外的第三个字段是0的
3、应核查管理用户权限是否为其工作任务所需的最小权限
more /etc/sudoers
//Allow root to run any commands anywhere
root ALL=(ALL) ALL
系统管理员权限只分配了root用户
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访间规则
指引:访谈系统管理员,是否指定授权人对操作系统访问控制权限进行配置
1、应核查是否由授权主体(如管理用户)负责配置访问控制策略
// 询问系统管理员, 核查是否由指定授权人对操作系统的访问控制权限进行配置。
2、应核查授权主体是否依据安全策略配置了主体对客体的访问规则
// 核查账户权限配置, 了解是否依据安全策略配置各账户的访问规则
3、应测试验证用户是否有可越权访问情形
f)访间控制的粒度应达到主体为用户级或进程级, 客体为文件 、数据库表级
指引:1.使用“ls -1文件名”命令,查看重要文件和目录权限设置是否合理。(对于Linux系统已经对一些默认账户和系统文件分配了不同的权限,也就是说主体已经达到了用户级,客体已经达到了文件级,该项主要检查新建用户和文件是否存在权限过大、权限滥用的情况。)
1、应核查访问控制策略的控制粒度是否达到主体为用户级别或进程级,客体为文件、数据库表、记录或字段级。
ls –l /etc
ls –l /tmp
ls –l /etc/passwd
ls –l /etc/shadow
ls –l /etc/security/passwd
ls –l /etc/security/login.cfg
ls –l /etc/security/user
ls -l /etc/profile
2、使用普通用户去编辑/etc/passwd文件看是否成功。
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访间 。
指引:核查操作系统中SELinux的状态(more /etc/selinux/config | grep SELINUX)
1、应核查是否对主体、客体设置了安全标记
ls -Z /etc/passwd
//-rw-r--r--. root root system_u:object_r:passwd_file_t:s0 /etc/passwd
//服务器对重要主体和客体设置安全标记
//第一部分身份标识system_u表示系统程序方面的标识
//user_u表示一般用户相关身份标识;第二部分角色定义文件进程和用户用途
//object_r表示文件或目录等资源
//system_r表示进程
//第三部分数据类型
//第四部分限制访问的需要(0-15级)(要求3级)
psswd_file_t:s0(此处起码需要3级)
2、应测试验证是否依据主体、客体安全标记控制主体对客体访问的强制访问控制策略。
more /etc/selinux/config | grep SELINUX
//查看SELinux是否开启
//SELinux配置
SELINUX=disable 表示Selinux关闭
=ecforcing 强制模式
=permissive 宽容模式
三、安全审计
a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
指引:1.利用命令service rsyslog status查看日志服务状态是否开启。2.利用命令service auditd status查看审计服务状态是否开启。3.利用命令auditctl –l 查看审计规则 。
1、应核查是否开启了安全审计功能
service rsyslog status(日志服务状态)
//查看命令结果Active: active (running) 表示正在运行
service auditd status(安全审计服务状态)
//查看命令结果Active: active (running) 表示正在运行
ps -ef |grep auditd(安全审计守护进程)
//查看命令结果发现有audit进程表示进程正在开启
auditctl -s(查看audit模块是否开启)
//查看命令结果(enabled 1“开启” 0“关闭”)
利用命令auditctl -l 查看审计规则
2、应核查安全审计范围是否覆盖到每个用户
查看配置
日志审核:more /etc/rsyslog.conf
//文件有相关的审计策略
(安全事件配more/etc/audit/filter.conf)(通常情况下没得这个文件夹)
//文件有相关的审计策略
(日志审核策more/etc/audit/audit.rules)(通常情况下显示—D -bXXX(xxx代表内存))
//文件里面有相关的安全审计策略
3、应核查是否对重要的用户行为和重要安全事件进行审计
日志总览:
aureport -i
//Range of time in logs:XXXXXXXXXX(日志中的时间范围)
Selected time for report:XXXXXXXXXX(选定的报告时间)
b)审计记录应包括事件的日期和时间 、用户、事件类型 、事件是否成功及其他与审计相关的信息
指引:利用命令cat /var/log/audit/audit.log查看系统记录的日志内容。
1、应核查审计记录信息是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。(tail -20 /var/log/audit/audit.log(查看最近20行日志)
//审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果
type(消息类型),msg(时间、事件ID),syscall(系统调用类型),success(此次syscall是否成功),exe(进程文件的执行路径)。
c)应对审计记录进行保护,定期备份 ,避免受到未预期的删除 、修改或覆盖等
指引:访谈配合人员审计记录的存储、备份和保护的措施,是否将操作系统日志定时发送到日志服务器上等,并使用syslog方式或snmp方式将日志发送到日志服务器。如果部署了日志服务器,登录日志服务器查看操作系统的日志是否在收集的范围内,备份保留时长最少要达到六个月。(查看有没有配置syslog:/etc/rsyslog.conf)
1、应核查是否采取了保护措施对审计记录进行保护
(ls -l /var/log/audit)查看审计文件权限
(ls -l /var/log) 查看目录权限
//文件可以有读取权限,但不允许有写入权限。
2、应核查是否采取技术措施对审计记录进行定期备份,并核查其备份策略
访谈配合人员审计记录的存储、备份和保护的措施,是否将操作系统日志定时发送到日志服务器上等,并使用syslog方式或snmp方式将日志发送到日志服务器。如果部署了日志服务器,登录日志服务器查看操作系统的日志是否在收集的范围内,备份保留时长最少要达到六个月。(查看有没有配置syslog:/etc/rsyslog.conf)
3、查看日志文件是否有6个月
(more /var/log/audit/audit.log.X)(X代表变量,具体看系统存在几个日志文件)
(head -10 /var/log/audit/audit.log.X)
(tail -10 /var/log/audit/audit.log.X)
//可以使用head(查看前几行)、tail(查看末尾几行)两个命令
(msg=audit(1626333001)
//查询时间戳,找到最远记录
//https://tool.lu/timestamp/(时间戳查询器)
d)应对审计进程进行保护,防止未经授权的中断
指引:1)访谈对审计进程监控和保护的措施。2)测试使用非安全审计员中断审计进程,查看审计进程的访问权限是否设置合理。3)查看是否有第三方系统对被测操作系统的审计进程进行监控和保护。
1、应测试验证通过非审计管理员的其他账户来中断审计进程,验证审计进程是否受到保护
(切换普通用户:service auditd stop停止守护进程)
//使用普通用户,结束审计进程失败
//部署了第三方审计工具, 可以实时记录审计日志, 管理员不可以对日志进行删除操作
四、入侵防范
a) 应遵循最小安装的原则,仅安装需耍的组件和应用程序
指引:利用命令yum list installed查看安装的插件和软件包。(Linux一般都是最小安装,询问有没有安装和业务无关的软件)
1、应核查是否遵循最小安装原则
利用命令yum list installed查看安装的插件和软件包
//询问管理员当前的安装包是否存在多余、无用的服务
2、应核查是否未安装非必要的组件和应用程序;
cat /etc/redhat-release
//查看系统版本
b) 应关闭不需要的系统服务 、默认共享和高危端口
指引:1.利用命令netstat -ntlp查看开启的端口。2.利用命令systemctl | grep running查看正在运行的服务。
1、应核查是否关闭了非必要的系统服务和默认共享
命令 systemctl list-units --type=service --all 或者 systemctl | grep running
//询问管理员是否存在多余服务(关闭了shell、login、echo、talk、ntalk、sendmail服务。)
2、应核查是否不存在非必要的高危端口
netstat -ntlp或者netstat -anp //询问管理员是否存在多余端口
c)应通过设定终端接入方式或网络地址范即对通过网络进行管理的管理终端进行限制
要求:操作系统通过堡垒机白名单对服务器接入范围进行了限制,仅固定网段能够远程管理设备。
1、应核查配置文件或参数是否对终端接入范围进行限制
指引:采用查看方式,在root权限下,使用命令more、cat或vi查看/etc/ hosts.deny 中是否有“ALL: ALL”(禁止所有的请求)查看/etc/hosts.allow中,是否有如下配置(举例):sshd:192.168.1.10/255.255.255.0;http://gate.openarch.com限制ip及其访问方式。
etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。
我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。
$ cat /etc/hosts.deny |head -n 20
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
all:all:deny //拒绝所有服务
设置完拒绝所有人连接后,设置只允许管理员连接
[root@localhost ~]# more /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
sshd:192.168.1.*:allow //表示允许192.168.1.*一个ip段连接sshd服务
all:192.168.1.11 //表示接受11这个ip的所有请求!
注:当hosts.allow和 host.deny相冲突时,以hosts.allow设置为准。
2、是否采用了从防火墙设置了对接入终端的限制
systemctl status firewalld
//查看防火墙是否开启(Active: active (running)正在运行 )
firewall-cmd --zone=public --list-rich-rules
//查看防火墙是否有策略
rule family IP类型
source address IP地址
port 端口号
protocol 协议
reject 限制
accept 接触限制
linux的firewall添加和限制策略
Linux防火墙策略管理
d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求
合规实践:应对在应用系统输入、上传、传输的数据进行校验,防止XSS、SQL注入、可执行文件上传等安全事件发生,可通过代码层面或应用框架进行过滤限制,或通过高可用性的WEB应用防护措施进行防护。
e)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞
指引:询问配合人员有没有定期做漏洞扫描,如果有需要他提供漏扫报告,查看有没有高风险问题,如果有,看有没有进行修复。
1、应通过漏洞扫描、渗透测试等方式核查是否不存在高风险漏洞
//WEB的服务使用工具进行扫描
2、应核查是否在经过充分测试评估后及时修补漏洞
more /var/log/secure | grep refused
3、访谈补丁升级机制,查看补丁安装情况
rpm -qa |grep patch //查看patch版本是多久,去官网核对
f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警
指引:询问配合人员是否安装了主机入侵检测软件,查看已安装的主机入侵检查系统的配置情况,是否具备报警功能。询问并查看是否有第三方入侵检测系统,如IDS、IPS,查看主机防火墙状态systemctl status firewalld(是否开启防火墙)。
五、恶意代码防范
a)应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为.并将其有效阻断
指引:询问并查看系统中安装了什么防病毒软件。询问配合人员病毒库是否经常更新。查看病毒库的最新版本更新日期是否超过一个月。应核查是否采用主动免疫可信验证技术及时识别入侵和病毒行为,应核查当识别入侵和病毒行为时是否将其有效阻断。
六、可信验证
a)可基于可信根对计算设备的系统引导程序 、系统程序 、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心
指引:询问配合人员有没有在硬件层面用到可信根芯片或硬件。
七、数据完整性
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限千鉴别数据、重 要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等
指引:1.采用本地登录方式,不存在鉴别信息在网络传输时被窃听的风险。2.登录(堡垒机/VPN)使用(HTTPS/HTTP)协议,对远程传输的鉴别信息进行加密;3.Linux远程管理采用SSH协议,则支持完整性保护。
1、应核查系统设计文档,鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在传输过程中是否采用了校验技术和密码技术保证完整性
2、应测试验证在传输过程中对鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等进行篡改、是否能否检测到数据在传输过程中的完整性受到破坏并能够及时恢复
//询问管理员,重要数据在传输的时候使用什么协议(Linux一般使用SSH协议),是否有检查机制。
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限千鉴别数据、重要业务数据、重要审计数据 、重要配置数据、重要视频数据和重要个人信息等
指引: Linux操作系统鉴别数据和配置数据存储默认满足存储完整性要求。
1、业务应用系统、数据库管理系统、中间件、系统管理软件及系统设计文档、数据安全保护系统、终端和服务器等设备中的操作系统及网络设备和安全设备中的重要配置数据等。
//用校验技术或密码技术保证重要数据在存储过程中的完整性
八、数据保密性
a) 应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等
1、应核查系统设计文档,鉴别数据、重要业务数据和重要个人信息等在传输过程中是否采用密码技术保证保密性
2、应通过嗅探等方式抓取传输过程中的数据包,鉴别数据、重要业务数据和重要个人信息等在传输过程中是否进行了加密处理
//询问管理员,重要数据在传输的时候使用什么协议(Linux一般使用SSH协议),是否有检查机制。
b) 应采用密码技术保证重要数据在存储过程中的保密性,包括但不限千鉴别数据、重要业务数据和重要个人信息等。
指引:cat /etc/shadow:核查用户口令是否加密存储,以及所使用的加密算法。
九、数据备份恢复
a)应提供重要数据的本地数据备份与恢复功能
指引:询问配合人员:
1)重要数据的备份和恢复策略是什么;
2)核查备份策略设置是否合理、配置是否正确;
3)核查备份结果是否与备份策略一致;
4)核查近期恢复测试记录,查看是否能够进保正常的数据恢复。
b)应提供异地实时备份功能 ,利用通信网络将重要数据实时备份至备份场地
指引:1.访谈和查看操作系统配置数据的异地备份措施、存储位置、备份频率、保留时长等;
2..访谈和查看数据恢复措施和恢复演练记录。
//询问管理员是否有异地备份,备份策略是什么(时间、备份地点、策略(全量、增量))
c)应提供重要数据处理系统的热冗余,保证系统的高可用性
指引:检查拓补图和资产表,涉及重要数据处理的主机是否有热备机器或集群等。
1、访谈主机管理员哪些是重要数据处理系统, 数据处理系统是否有备份机制,是否采用本地热备份站点备份或异地活动互援备份
2、核查设备列表,重要数据处理系统是否采用热备服务器
//应核查重要数据处理系统(包括边界路由器、边界防火墙、核心交换机、应用服务器和数据库服务器等)是否采用热冗余方式部署。
十、剩余信息保护
a) 应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除
1、应核查相关配置信息或系统设计文档,用户的鉴别信息所在的存储空间被释放或重新分配前是否得到完全清除
//linux默认符合
b) 应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除
1、应核查相关配置信息或系统设计文档,敏感数据所在的存储空间被释放或重新分配给其他用户前是否得到完全清除
//linux默认符合
十一、个人信息保护
a) 应仅采集和保存业务必需的用户个人信息
1、应核查采集的用户个人信息是否是业务应用必须的
2、应核查是否制定了相关用户个人信息保护的管理制度和流程
b) 应禁止未授权访问和非法使用用户个人信息
1、应核查是否采用技术措施限制对用户个人信息的访问和使用
2、应核查是否制定了有关用户个人信息保护的管理制度和流程
审计的相关资料
1、/etc/audit/auditd.conf 配置例子
#vi /etc/audit/auditd.conf
#第 5 行设置日志文件
log_file = /var/log/audit/audit.log
#第 11 行设置日志文件轮询的数目,它是 0~99 之间的数。如果设置为小于 2,则不会循环日志。如果没有设置 num_logs 值,它就默认为 0,意味着从来不循环日志文件
num_logs = 5
#第 14 行设置日志文件是否使用主机名称,一般选 NONE
name_format = NONE
#第五行设置日志文件大小,以兆字节表示的最大日志文件容量。当达到这个容量时,会执行 max_log_file _action 指定的动作
max_log_file = 6
#第 17 行设置日志文件到达最大值后的动作,这里选择 ROTATE(轮询)
max_log_file_action = ROTATE
2、auditctl 命令简介
auditctl 命令是 Linux 用户空间审计系统的最主要的部分,命令格式:
auditctl [选项] filter,action -S syscall -F condition -k label
主要参数说明见下表,auditctl 命令选项
| 项目 | 可选参数 | 说明 |
| -----------| ------------ | ------------ |
| filter | user,exit,task,exclude | filter 详细说明哪个内核规则匹配过滤器应用在事件中。以下是其中之一的与规则匹配的过滤器: task、exit、user 以及 exclude |
| action | always, never | 是否审核事件(always 表示是)(never 表示否) |
| syscall | all, 2, open 等 | 所有的系统调用都可以在/usr/include/asm/unistd_64.h 文件中找到。许多系统调用都能形成一个规则 |
| condition | euid=0, arch=b64 | 详细说明其他选项,进一步修改规则来与以特定架构、组 ID、进程 ID 和其他内容为基础的事件相匹配 |
| label | 任意文字 | 标记审核事件并检索日志 |
-S 表示系统调用号或名字
-F 表示规则域。
-k 表示设置审计规则上的过滤关键
3、audit 审计规则分成三个部分:
控制规则:这些规则用于更改审计系统本身的配置和设置。
文件系统规则:这些是文件或目录监视。 使用这些规则,我们可以审核对特定文件或目录的任何类型的访问。
系统调用规则:这些规则用于监视由任何进程或特定用户进行的系统调用。
控制规则可以在/etc/audit/audit.rules 中设置。主要包括:
-D #删除所有当前装载的审核规则#
-b 8192 #在内核中设定最大数量的已存在的审核缓冲区为 8Mb#
-e 2 #锁定审核配置#
文件系统规则可以通过 auditctl 命令设置。监控文件系统行为(依靠文件、目录的权限属性来识别)
规则格式:
-w 路径
-p 权限
-k 关键字
其中-p 权限的动作分为四种
r — 读取文件或者目录。
w — 写入文件或者目录。
x — 运行文件或者目录。
a — 改变在文件或者目录中的属性。
例如要监控/etc/passwd 文件的修改行为,可以使用这个命令: #auditctl -w /etc/passwd -p wa
也可以自己将上述内容加入到文件/etc/audit/rules.d/audit.rules 中即可实现对该文件的监视。