通用异常消息是否会被视为安全风险?

信息安全 渗透测试 审计 披露
2021-09-06 04:52:21

例如,如果访问一个网页,您会收到以下响应:

Error in exception handler.

这很有可能网站正在使用Laravel请问这个类作为信息泄露吗?

我猜不是,但我想我会问。我们小组之间存在矛盾的意见。

1个回答

应该向用户显示异常吗?

不。

显示异常消息是不好的做法。异常应该用于调试代码,它们不应该用于向用户显示某些内容。

如果您对这两个任务使用相同的机制 - 异常 - 将很难将它们分开。最终,您将显示一条信息过多的异常消息,或者您将记录一个信息不足的异常。

此外,异常消息通常不会带来良好的可用性。为什么用户会关心异常处理程序中有错误?他们应该如何处理这些信息?大多数用户不知道异常处理程序是什么,并且会对这样的消息感到困惑。

这是信息泄露吗?

正如您所指出的,您确实通过此消息披露了信息(您正在使用 Laravel)。而且它也可以通过 google 搜索,因此如果发现 Laravel 中的一个新漏洞,有人可能会在 google 上搜索此错误消息以找到许多要攻击的 Laravel 安装。这意味着通过此消息,理论上您可能会引起对您的注意和攻击。

另一方面,披露使用过的软件(没有确切版本)通常很难防止,有时甚至是不希望的。

这个信息披露要不要叫,真的是一个判断。例如,如果您采用CWE-200的定义:

信息暴露是有意或无意向未明确授权访问该信息的行为者披露信息。

信息要么

  1. 在产品自身功能中被视为敏感信息,例如私人消息;或者

  2. 提供有关产品或其环境的信息,这些信息可能对攻击有用,但攻击者通常无法获得,例如可远程访问的产品的安装路径。

所以问题是你是否认为用户无权知道你正在使用 Laravel,以及你是否认为这些信息通常不可用。

结论

您确实会无缘无故地泄露一些(非常少的)信息,这可能对安全性和可用性产生很小的影响。

如果可能,您应该改为显示有用的错误消息,或者如果没有,则显示一般错误消息。