freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

等保能力验证—2022 Linux主机(四)
2023-09-28 10:51:43

由于篇幅的关系,文章主要介绍一下能力验证需要查看的点,详细的技术知识可能不会写的特别详细,有需要的小伙伴可以关注一下公众号,不定期更新针对于等保2.0测评条款技术细节文章,例如pam模块详解、Linux文件扩展权限ACL等,并可免费获取2022能力验证作业指导书以及Linux虚拟机环境文件,配合文章模拟分析复现食用更佳。

续上篇,这篇主要分析能力验证中 Linux 主机的剩余访问控制条款

四、  入侵防范

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

1695868687_6514e70f5c32abe947fd9.png!small?1695868689268

这个也没想到,考的是非常细,当时没看,所以也没现场的截图,有的兄弟可以截图发我一下,万分感谢。根据答案的话docker ps -a、docker ps命令查看一下,应该就是没有容器在运行,所以判断为多余。或者通过systemctl list-units --type=service 列出系统上安装的所有服务单元,判断多余。

1695868720_6514e73018c11a61ead73.png!small?1695868721083

rlogin估计也是类似,有服务运行着,但没用

1695868738_6514e7423b54939020c6e.png!small?1695868739415

查看开机自启服务 systemctl list-unit-files | grep enabled

1695868754_6514e7520bbee1ef80b39.png!small?1695868754982

总得来说这种多余服务个人感觉比较难查,也比较容易失分,可能能力不太够,得看运气。

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

1695868826_6514e79a53e3db1cb8d32.png!small?1695868827957

1695868834_6514e7a29d6a8d68cd4fa.png!small?1695868836379

这条的话就不多加赘述了,上文有描述

centos 7 是修改 /usr/lib/systemd/system/telnet.socket 文件 ListenStream 参数

1695868845_6514e7ada72cdcc7fbab4.png!small?1695868846816

1695868852_6514e7b4a952bb798c72d.png!small?1695868853698

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

1695868864_6514e7c09cc6ac96193d6.png!small?1695868865978

先看相关安全策略

1695868874_6514e7ca4c42f2f13d417.png!small?1695868875742

然后这里我们介绍一下设置远程地址限制的常见方式有哪几种

1.  防火墙

查看当前防火墙是否开启

systemctl status firewalld.service

1695868914_6514e7f2a1b971c7a3860.png!small?1695868916278

firewall-cmd --state

1695868925_6514e7fd69b44bfae69c2.png!small?1695868926574

开启情况下,查看对应策略

1695868937_6514e8093d914ffc185fe.png!small?1695868938433

其实我不太明白它是个centos 7.x的系统版本,用的东西好多是6的,正常来说应该用firewalld的。

那么针对iptables,首先先看服务是否正常运行

1695868947_6514e813d196589e89a6e.png!small?1695868949035

再查看cat /etc/sysconfig/iptables 文件确认相关配置(此图不为实际环境,为模拟配置环境)

1695868958_6514e81ec0560da2f4107.png!small?1695868959939

-A:add,添加规则(添加的规则放到最后)

INPUT:进站请求(出站:output)

-p:protocol,指定协议(icmp/tcp/udp)

--dport:指定端口号

-j:指定行为结果,允许(accept)/禁止(reject)

-s:指定源端口号或范围

-m:指定要使用的模块

ACCEPT:代表允许

2.  hosts.allow与hosts.deny文件

hosts.deny中添加设置 sshd : ALL,再次使用ssh连接,会出现:ssh_exchange_identification: read: Connection reset 的错误,但是已经连接上的ssh是不会中断的,说明 hosts.deny时在连接时查询的配置文件。

然后在hosts.allow中添加设置sshd : 192.168.56.1,再次使用ssh可以成功连接。

1695868982_6514e83649ef320ad41dd.png!small?1695868983804

在设置屏蔽所有ssh后,在单独允许192.168.56.1这个ip地址,ssh是允许的,那么就存在优先级问题。优先级为先检查hosts.deny,再检查hosts.allow。

两个配置文件的格式如下:

服务进程名:主机列表:当规则匹配时可选的命令操作。

为了安全可以在hosts.deny文件中配置拒绝所有的访问ALL:ALL,然后在hosts.allow文件中逐个开放访问许可,增强安全性。

sshd可以换成其他服务进程名,比如httpd、telnetd等等。

3.  sshd_config文件

只允许指定用户进行登录(白名单):

/etc/ssh/sshd_config配置文件中设置AllowUsers选项:

AllowUsers      test             test1@192.168.1.1

允许test和从192.168.1.1登录的test1账户通过SSH登录系统

只拒绝指定用户进行登录(黑名单):

/etc/ssh/sshd_config配置文件中设置DenyUsers选项:

DenyUsers  test   test1

拒绝test test1账户通过SSH登录系统

那么这里能力验证采用的就是iptables的方式,查看到ssh入站规则多设置了一个日志审计地址的ip所以不符合,同时未针对telnet服务设置相应的入站规则。

五、  数据完整性

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

1695869066_6514e88a0a778c9dd4c24.png!small?1695869067204

这条就没啥好分析的,传输过程中一般是通过ssl 来保证完整性的,telnet不具备这个特性,所以不符合

具体的https建立安全连接的过程(SSL原理),可以参考一下这篇文章

https://blog.csdn.net/xiaopang_yan/article/details/78709574

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

1695869088_6514e8a0d9c5f72c7a837.png!small?1695869090765

看下对应的安全策略,发现说了等于没说

1695869098_6514e8aa628d3e7cfdf0f.png!small?1695869099666

这里的当时没注意到另外的账户有对应的计划任务,所以只能进行相应的复现了。

像这类的条款,基本上都是通过计划任务去实现的,由于之前能力验证用的是tripwire 来验证操作系统完整性功能,然后本次我先是看了/etc/crontab和crontab -l,然后用tripwire对应命令,发现没有相关命令,就以为没有完整性检测了,所以这里失分了,正确的方法应该进入到/var/spool/cron目录下去查看有哪些用户的计划任务

1695869108_6514e8b44a05ddbd8c3e0.png!small?1695869109943

上面我们看到有root和securityM01账户执行了计划任务,那么我们就具体看看执行了什么任务,root之前是有看过的,所以我草率的认为没做完整性的计划任务

1695869124_6514e8c40c736a4d7c247.png!small?1695869125428

再看securityM01的对应计划任务(下面图为模拟搭建环境测试截图)

1695869133_6514e8cd8270b44619c95.png!small?1695869134472

1695869138_6514e8d2a8f6cee48a096.png!small?1695869140104

发现此次使用了aide来校验完整性

1695869148_6514e8dcddd7653bd0a75.png!small?1695869150824

在/var/lib/aide存储的是完整性校验基准模版。

1695869158_6514e8e674bb1b511fd49.png!small?1695869159414

随意找一个可以看到如下日志结果,发现修改过的为/etc/shadow、/etc/sysconfig/iptables

1695869174_6514e8f65c109e638b715.png!small?1695869175627

问题预设点:配置文件中少了对重要文件的完整性检测

配置文件 /etc/aide.conf,猜测配置应该是这样的

1695869205_6514e91592949475ebbf5.png!small?1695869206870

! 表示不监控的文件

估计实际配置也是类似情况,未对/etc/group、/etc/pam/.*~、/etc/sudoers等重要文件进行完整性检测。

六、  数据备份与恢复

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

1695869228_6514e92c0b2a9072c315c.png!small?1695869229304

然后我们找到对应的安全策略

1695869238_6514e93650a860cf9f4cd.png!small?1695869239401

发现并没有明确指出备份单机配置数据的对应安全策略,仅给了日志文件的备份策略,那么这条就按我们正常的测评流程来查看。

首先备份一般是通过计划任务完成,或者第三方软件实现。使用crontab -l 查看到当前root用户的计划任务,发现存在两个计划任务。

1695869246_6514e93ef1c10bc1180f2.png!small?1695869248126

log_bak.sh已在安全审计中有对应的解释,这里就不过多赘述。生成文件正常即可

1695869256_6514e9487290966e218d8.png!small?1695869258009

咱们直接看etc_bak.sh中的内容

1695869267_6514e953b6de7275e37b9.png!small?1695869269193

在每日的凌晨3点,对/etc/整个目录进行备份压缩保存,保存至/root/etcbak/目录下,我们去查看是有对应备份文档生成即可。

1695869280_6514e96000e4e99fe1a76.png!small?1695869280967

没问题所以该条符合。

以上就是2022年能力验证配置核查Linux操作系统的大致情况了,今年的能力验证马上也马上要开始了,争取将mysql数据库也更新出来!

# 等保测评 # 等保安全 # 等保2.0 # 等保合规 # 等保要求
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录