服务器等保测试漏洞修复

摘要:若依框架通过定时任务执行危险操作,专门的测试公司会通过创建定时任务指令来进行测试,例如一些危险执行如:system、eval、exec等命令,如果不禁止会导致攻击者成功反弹shell获取服务器的权限执行操作。

导读:许多项目需要过等级评审的时候都需要做服务器漏洞测试,那么今天就来详细讲一下经常出现的漏洞如何进行修改:

前置条件:

项目是微服务项目是以若依为基础框架服务器有nginx

问题发生及解决方案

若依框架通过定时任务执行危险操作,专门的测试公司会通过创建定时任务指令来进行测试,例如一些危险执行如:system、eval、exec等命令,如果不禁止会导致攻击者成功反弹shell获取服务器的权限执行操作。

测试建立的任务

通过命令直接把文件下载下来了

设置黑名单,禁用危险字符串验证输入仅包含字符数字字符,不包含其他语法和空格

直接关闭创建定时按钮

由于业务变动,定时任务取消,所以我把创建定时任务的功能直接取消,防止操作。

swagger导致信息泄露漏洞

通过访问swagger-ui.html或者v2/api-docs来达到暴露api接口的

标准解决方案

1. 在生产节点上禁用swagger2,并在maven中禁用所有关于swagger包

将swagger-ui添加到认证和授权过滤链中,当用户访问swagger对应资源时,只有通过认证授权的用户才能访问

实际解决方案:

本地用的nginx,所以对swagger-ui 的访问,我添加了如下配置:

# 避免swagger安全问题 if ($request_uri ~ "/swagger-ui.html"){return 403;}

同时对于v2/api-docs的访问,在若依框架里添加了如下:

# Swagger配置swagger:# 是否开启swaggerenabled: false

这样就不能访问了。

actuator未授权访问

actuator是Spring Boot提供的服务监控和管理中间件,默认配置会出现接⼝未授权访问。

“Actuator 未授权访问”是一个在当今数字化时代中不容忽视的严峻问题。

从技术层面来看,Actuator 作为系统中的关键组件,通常负责执行各种重要的操作和任务。然而,当未授权的访问发生时,就如同为黑客和不法分子打开了一扇通往系统核心的秘密之门。例如,在一些企业的网络系统中,由于安全防护措施的疏漏,Actuator 被未授权访问,导致敏感数据被窃取,业务运营受到严重干扰。

解决方案:

nginx的配置中添加:

# 避免端点安全问题if ($request_uri ~ "/actuator"){return 403;}

在微服务的配置中添加:

management:endpoints:enabled: falseweb:exposure:include: '' exclude:- health

将所有endpoints.enabled=false,这样可以禁止大部分的actuator的api接口,同时还得使用management.endpoints.web.exclude=-health,这样页面就干净了,有人会问既然在nginx添加了,为什么还要在微服务中添加,等保测评的时候,既要测外网也测内网,所以都得加。

关于nacos的身份认证绕过漏洞

开源服务管理平台 Nacos在默认配置下未对 token.secret.key 进行修改,导致远程攻击者可以绕过密钥认证进入后台造成系统受控等后果,为了防止这种现象必须进行启动的时候进行手动配置。

项目中的硬编码

nohup java -Dnacos.core.auth.server.identity.key=serverKey -Dnacos.core.auth.server.identity.value=securityValue -Dnacos.core.auth.plugin.nacos.token.secret.key=SecretKey -jar register.jar > /home/workspace/register.out 2>&1 &如果nacos的版本过低,也需要升级。

总结:

这些都是典型的漏洞,其中有标准解决方法,同时也有自己实际解决的,当然标准的最好,实际的有些事根据实际情况自己本地设置的,请各位同僚酌情考虑。

来源:瞎搞制作

相关推荐