等保那些事

01 引言

公司上市之后,安全性变得尤为重要。定期每年都会有等保部门的人才扫描系统漏铜,针对高危漏洞必须修复。

随着对等保相关事宜的了解,才发现互联网众多公司都在调整着安全策略。还记得当年申请的网易邮箱简单的用纯数字密码,结果每次登录都会以拿钱登记较低,建议修改密码,密码中必须包含数字、字母以及特殊字符;还有GitHub强制开启了二次验证,把自己的账号都搞丢了…

02 等保的简介

这里的等保指三级等保(等保2.0),三级等保”全称为“网络安全等级保护第三级”,也被称为“监督保护级”。它源自中国的 《网络安全法》 和 《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-2019)*等一系列国家标准,是国家对非银行机构的最高级别认证(第一级为自主保护,第二级为指导保护,第三级为监督保护,第四级为强制保护,第五级为专控保护)。

三级等保适用于涉及国家安全、社会秩序、公共利益的重要网络和信息系统。一旦遭到破坏,会对相关方面造成严重损害。通常涉及单位有政府机关、金融行业、能源行业、佳通运输、公共服务以及互联网平台等。

等保的具体详细事宜我们不做讨论,我们聊聊等保中我们系统暴漏的问题。

03 问题暴漏

image-20251120184705531

等保扫描之后,会整理出类似的渗透报告,按照漏洞的安全程度分别列出高、中、低的整改项。高危漏洞是必须要要整改的。

3.1 Xss漏铜

这个漏洞很常见,也很容易忽略。就是攻击者用脚本伪装参数来攻击系统,导致系统不能按照预期的展示,甚至中毒。我们在做表单提交的时候,或者评论提交的时候,没有做录入项的校验。攻击者就可以通过嵌入脚本,破坏系统。如:

<script>alert(123)<script>

内容提交后,每次打开页面就会出现123的弹框。如果是一个死循环的脚本,就会知道页面直接不可用。也可以伪装成视频等其他脚本。

解决方案也很简单:

就是通过服务端直接过略掉可疑的标签。jsoup框架已经帮我们封装好了,直接调用即可。

public class XssUtil {

	/**
	 * 使用自带的 basicWithImages 白名单
	 */
	private static final Safelist WHITE_LIST = Safelist.relaxed();

	/** 配置过滤化参数, 不对代码进行格式化 */
	private static final Document.OutputSettings OUTPUT_SETTINGS = new Document.OutputSettings().prettyPrint(false);
	static {
		// 富文本编辑时一些样式是使用 style 来进行实现的
		// 比如红色字体 style="color:red;"
		// 所以需要给所有标签添加 style 属性
		WHITE_LIST.addAttributes(":all", "style");
	}

	public static String clean(String content) {
		return Jsoup.clean(content, "", WHITE_LIST, OUTPUT_SETTINGS);
	}

}

依赖:

<dependency>
   <groupId>org.jsoup</groupId>
   <artifactId>jsoup</artifactId>
   <version>1.21.2</version>
</dependency>

3.2 枚举用户

我们在做登录的时候,为了友好的提示用户登录的错误信息:

  • 账户不存在
  • 密码错误
  • 账户已封停

现在还记得,当时测试人员还提了BUG,说你笼统的提示用户,用户会一头雾水,不知道账户怎么了。还特意改的精确的信息提示。然后等保来了之后,却是存在安全问题,说详细的提示,会导致攻击者枚举账户,最后直到系统中有哪些账户。

这个看似不起眼的小东西,平时可能不在意。反正你又登不进去,知道了也没有。但是等保不这么认为。

解决方案也很简单:就是直接提示类似"用户名或密码错误"这样的混淆提示即可,在加上验证码。提高枚举的难度。

3.3 明文传输

尤其用户名和密码参数。我们都可以网络传输的数据是可以被拦截的。登录名和密码属于敏感信息,被截获后可能会造成财产损失。对然被定义的安全级别较低,但是却是一个不得不修的问题。

解决方案也很简单:参数提交的时候通过AES加密算法加密,然后服务端在解密验证即可。

3.4 密码长度

世界上最简单的密码:123456

密码安全等级较低,攻击者就可以通过字典、枚举的方式撞库,最后攻破系统。看过红客联盟的公开课,说每一个黑客都有自己独属的密码本,密码等级弱的话,很容易就被攻破。

解决方案也很简单:增加复杂度如密码必须包含大小写、特殊字符等、或者增加长度。

04 小结

你们的系统有没有类似的问题,快去修复吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智_永无止境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值