知识宝库在此藏,一键关注获宝藏
七、数据完整性
b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等
我们再来看存储完整性,这里可以看一下以前客户现场的一张截图,下面有期望版本与当前版本两列
判断数据是否被篡改,其实就是需要一个比对过程,一般采用哈希算法进行完整性比对。哈希值的特点就是原数据改变(即使在一串字符中加入了一个1),所计算出来的哈希值也会有天差地别。所以这条的要求是要有比对的手段,来判断其是否具有存储完整性校验措施,而与数据存储采用的算法无关,比如鉴别数据采用MD5,但是没有比对过程,是与该条完整性校验没有任何关系的。
Linux 常见免费的完整性检测软件一般有两个:aide和tripwire,aide 相关情况可以看下我之前的2022能力验证—linux系统配置核查(四)这篇文章,这里就介绍下tripwire
1. centos7上安装tripwire
yum -y update
yum -y install epel-release
① site-key:它用于保护Tripwire配置。 因此,除非我们再次生成配置,否则对tripwire配置所做的任何更改都不会生效,我们会提示您输入“site-key”密码。
② local-key:它用于验证tripwire二进制文件。 当我们想要更新tripwire系统数据库时,我们需要运行tripwire命令,并且会提示我们输入'local-key'的密码。
使用下面的命令生成新的tripwire密钥文件(站点和本地密钥)。
该命令将生成两个密钥文件“site-key”和“local-key”,并且您将被要求输入每个密码。
输入您自己的“ 网站密钥 ”密码,然后按Enter键。
输入您自己的“ 本地密钥 ”密码并再次按Enter键。
接下来,使用'site-key'签署tripwire配置。
现在,为了签署Tripwire政策,请输入您的“ 本地密钥 ”密码。
Tripwire已安装在CentOS 7上,新的tripwire配置和密钥位于 /etc/tripwire 目录中。
![等保2.0测评深入理解—Linux操作系统(十) 等保2.0测评深入理解—Linux操作系统(十)]()
1.2 为CentOS配置Tripwire策略
初始化tripwire数据库并确保没有错误,使用下面的tripwire 命令初始化tripwire数据库。
您将被问到“local-key”密码短语,您可能会收到错误消息“no such directory”。因为系统没有在tripwire配置中已经定义的目录和文件。 为了解决这个错误,我们需要编辑tripwire配置’twpol.txt’并重新签署tripwire配置。
现在使用下面的命令从tripwire生成日志错误。
sh -c "tripwire --check | grep Filename > no-directory.txt"
所有不存在于CentOS系统上的目录和文件都列在文件’no-directory.txt’中
使用以下bash脚本编辑tripwire配置’twpol.txt’ - 在终端上运行此脚本。
for f in $(grep "Filename:" no-directory.txt | cut -f2 -d:); do sed -i "s|($f) |#\1|g" /etc/tripwire/twpol.txt;
我们需要使用twadmin命令重新生成并重新签署tripwire配置,如下所示。
twadmin -m P /etc/tripwire/twpol.txt
重新初始化tripwire数据库,并确保没有错误。
![等保2.0测评深入理解—Linux操作系统(十) 等保2.0测评深入理解—Linux操作系统(十)]()
1.3 验证Tripwire配置和检查系统
要验证tripwire配置,我们可以运行系统检查命令如下。
所以这意味着在我们的系统上没有发现错误和系统违规。
现在我们将尝试在根目录下添加一个新文件,并使用tripwire再次检查。
转到/root目录并创建一个新文件'test.txt'或者删除一些文件。
您将在系统中得到严重程度为100的新违规的结果,如下所示。
![等保2.0测评深入理解—Linux操作系统(十) 等保2.0测评深入理解—Linux操作系统(十)]()
1.4 将新规则添加到Tripwire策略
Twpol.txt 文件是重要配置文件,定义了所有的检查策略
tripwire所定义的文件类型
SEC_CRIT = $(IgnoreNone)-SHa ;
SEC_SUID = $(IgnoreNone)-SHa ;
#这个是设置SUID和SGID的二进制文件,例如/usr/sbin/里的文件。
SEC_CONFIG = $(Dynamic) ;
# 经常写的文件,但是属性一般固定,较多见于日志文件。
这些文件的定义都是默认的,也可以根据自己需求进行定义。
(
rulename = "Tripwire Binaries",
#这是规则名称。
severity = $(SIG_HI)
#这里是安全级别。
)
{
#这一部分写的是具体策略。
$(TWBIN)/siggen -> $(SEC_BIN) ;
#下边是文件和对应的级别。
$(TWBIN)/tripwire -> $(SEC_BIN) ;
$(TWBIN)/twadmin -> $(SEC_BIN) ;
$(TWBIN)/twprint -> $(SEC_BIN) ;
在实际应用中,我们往往要添加新的策略来满足要求。可以通过修改twpol.txt文件来实现。需要定义规则名称,严重程度,也就是级别,要监控的目录和文件类型。在这里,我创建一个新的规则叫web,严重程度为100(SIG_HI),文件类型为 SEC_CRIT,即重要文件,不能被修改。
(
rulename = "web",
severity= $(SIG_HI)
)
{
/var/www ->$(SEC_CRIT);
twadmin -m P /etc/tripwire/twpol.txt
在 /var/www/html 目录下创建1.html
Tripwire检测后生成的报告放在/var/lib/tripwire/report 中,文件是加密的。如果要查看的话,需要用到Tripwire的解密工具:twprint,进入到/var/lib/tripwire/report 目录中,执行以下命令:
twprint --print-report --twrfile AY16-20221110-143654.twr > /root/test.txt
八、数据保密性
a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等
针对于操作系统,数据保密性这里我们需要考虑的主要是鉴别数据。我们使用netstat -tuanp 查看监听端口中是否有telnet(一般没人这么干)等。
b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等
Linux 口令存储在 /etc/shadow 文件中,我们查看该文件
第二列:加密后的password字段,$6代表采用SHA-512($1代表MD5,$2代表SHA-256),$ASdUaZ2O代表盐,$OynRX1SkB···加盐后哈希值”;普通用户未设置密码时为!!,代表禁止登录
也可使用命令 passwd -S username 来查看当前用户使用哪种算法存储口令
使用SHA512对密码进行存储时,实际上是将密码的哈希值存储在系统中。当用户输入密码时,系统会将输入的密码再次转换为哈希值,然后与存储的哈希值进行比较来验证密码的正确性。虽然SHA512算法本身是公开的,但通过使用哈希函数和“盐值”(salt)来增加密码的复杂性,可以提高密码的安全性。"盐值"是在计算哈希值时与密码结合使用的随机值,它可以防止利用预先计算的哈希值进行彩虹表攻击。
SHA512算法是一种哈希算法,用于存储密码的哈希值。作为密码存储算法的一种实现,它被广泛用于将密码转换为安全的存储形式。
哈希算法本身并不直接属于密码算法。密码算法通常是指用于加密和解密数据的算法,如对称加密(AES、DES)、非对称加密(RSA、ECC)和散列算法(MD5、SHA1)。这些算法用于保护数据的机密性和完整性。
在密码学中,密码存储算法是一种用于存储用户密码的方式,其目标是保护用户密码的安全性。哈希算法在其中扮演了重要角色,通过将密码转换为哈希值来存储,以防止明文密码被泄露。
因此,尽管SHA512算法本身不是密码算法,但它是一种用于密码存储的安全哈希算法。通过合理的使用和管理(如添加“盐值”),可以增加密码的安全性,从而达到一定程度上的保密性。
原文始发于微信公众号(等保不好做啊):等保2.0测评深入理解—Linux操作系统(十)
评论