SCW图标
英雄背景无分隔线
博客

Coders Conquer Security OWASP Top 10 API-Serie — Sicherheitsfunktionen deaktiviert/Debug-Funktionen aktiviert/Unzulässige Berechtigungen

马蒂亚斯-马杜博士
出版日期: 2020 年 11 月 11 日
最后更新于 2026年3月9日

虽然这个名单上的大多数漏洞都是针对API的,但禁用安全功能/启用调试功能/不当权限问题是一个可以在任何地方发生的问题。它在API中可能更普遍一些,但攻击者通常会试图在网络中的任何地方找到未修补的缺陷和未受保护的文件或目录。遇到一个启用了调试功能或禁用了安全功能的API,就会使他们的邪恶工作更容易一些。更糟糕的是,自动工具可以检测和利用安全错误配置,所以如果你的环境中有这些配置,它们很有可能被利用,这就是为什么这个漏洞被列入OWASP的危险API缺陷名单。

在我们进入乐趣之前,看看你是否能解决这个调试难题。

被禁用的安全功能/启用的调试功能/不恰当的权限缺陷是如何潜入API的?

为了了解这个多维的API缺陷是如何被添加到网络中的,我们必须把它分解成各个组成部分。让我们从启用调试功能的问题开始。调试是一个有用的工具,它可以帮助开发者弄清楚为什么应用程序不能正确执行或出现错误。启用调试功能后,错误和异常会生成详细的错误页面,这样开发人员就可以看到出错的地方并解决问题。当一个应用程序仍在开发中时,将其激活是完全可以的。

然而,大多数框架都有关于在生产环境中运行调试模式的警告,这是有原因的,可能就在激活调试的代码中。比如说。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

在这个例子中,调试已经被激活。当出现异常时,Django应用程序将生成详细的错误页面。如果这是在生产环境中进行的,那么对手就可以接触到这些错误页面,其中包括关于环境的元数据信息。尽管大多数框架默认关闭了调试功能,但如果在漫长的开发过程中激活了调试功能,很容易忘记将其重新关闭。那么当应用程序转移到生产环境时,它就为攻击者提供了大量关于如何破坏应用程序,甚至是整个服务器或网络的信息。

虽然启用调试模式大多是一个独立的问题,但不适当的权限和禁用的安全功能漏洞往往会一起发挥作用。例如,在OWASP提供的一个真实场景中,一个攻击者使用搜索引擎找到了一个意外连接到互联网的数据库。因为这个流行的数据库管理系统使用的是其默认配置,认证被禁用。因此,通过结合不当的权限和禁用的安全功能漏洞,攻击者获得了对数百万条记录的访问权,其中包括PII、个人喜好和认证数据。

消除禁用的安全功能/启用的调试功能/不当的权限漏洞

在消除这个漏洞方面,你可能需要双管齐下。要消除问题的启用调试部分,只需在开发过程中增加一个检查,以确保在将API或应用程序转移到生产环境之前禁用调试。从我们的例子来看,这样做的正确命令如下。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

现在,Django应用程序的调试功能被禁用,DEBUG标志被配置为False。没有错误页面会被生成以应对错误。如果对手仍然获得了对错误页面的访问,它们不会包含任何有用的元数据,也不会对应用程序构成风险。

消除被禁用的安全功能和不适当的权限漏洞要困难一些,因为它们可能包含了广泛的具体漏洞。阻止它们的最好方法是开发一个标准的、可重复的流程,以便快速、方便地将锁定的资产部署到生产环境中。

即使如此,你也应该创建一个流程,对协调文件、API组件和云服务(如Amazon S3桶的权限)进行不断的审查和更新。这种审查也应该随着时间的推移对整个环境的安全设置的整体有效性进行评级,以确保组织一直在改进其API安全。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试一下 Secure Code Warrior 培训平台的演示,以保持你所有网络安全技能的磨练和更新。


查看资源
查看资源

Es ist wahrscheinlich etwas häufiger in APIs, aber Angreifer versuchen oft, ungepatchte Fehler und ungeschützte Dateien oder Verzeichnisse überall in einem Netzwerk zu finden. Wenn sie auf eine API stoßen, bei der Debugging aktiviert oder Sicherheitsfunktionen deaktiviert sind, wird ihre schändliche Arbeit nur ein wenig einfacher.

想了解更多吗?

Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

了解更多

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
马蒂亚斯-马杜博士
发表于2020年11月11日

Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。

马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。

分享到:
领英品牌社交x 标志

虽然这个名单上的大多数漏洞都是针对API的,但禁用安全功能/启用调试功能/不当权限问题是一个可以在任何地方发生的问题。它在API中可能更普遍一些,但攻击者通常会试图在网络中的任何地方找到未修补的缺陷和未受保护的文件或目录。遇到一个启用了调试功能或禁用了安全功能的API,就会使他们的邪恶工作更容易一些。更糟糕的是,自动工具可以检测和利用安全错误配置,所以如果你的环境中有这些配置,它们很有可能被利用,这就是为什么这个漏洞被列入OWASP的危险API缺陷名单。

在我们进入乐趣之前,看看你是否能解决这个调试难题。

被禁用的安全功能/启用的调试功能/不恰当的权限缺陷是如何潜入API的?

为了了解这个多维的API缺陷是如何被添加到网络中的,我们必须把它分解成各个组成部分。让我们从启用调试功能的问题开始。调试是一个有用的工具,它可以帮助开发者弄清楚为什么应用程序不能正确执行或出现错误。启用调试功能后,错误和异常会生成详细的错误页面,这样开发人员就可以看到出错的地方并解决问题。当一个应用程序仍在开发中时,将其激活是完全可以的。

然而,大多数框架都有关于在生产环境中运行调试模式的警告,这是有原因的,可能就在激活调试的代码中。比如说。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

在这个例子中,调试已经被激活。当出现异常时,Django应用程序将生成详细的错误页面。如果这是在生产环境中进行的,那么对手就可以接触到这些错误页面,其中包括关于环境的元数据信息。尽管大多数框架默认关闭了调试功能,但如果在漫长的开发过程中激活了调试功能,很容易忘记将其重新关闭。那么当应用程序转移到生产环境时,它就为攻击者提供了大量关于如何破坏应用程序,甚至是整个服务器或网络的信息。

虽然启用调试模式大多是一个独立的问题,但不适当的权限和禁用的安全功能漏洞往往会一起发挥作用。例如,在OWASP提供的一个真实场景中,一个攻击者使用搜索引擎找到了一个意外连接到互联网的数据库。因为这个流行的数据库管理系统使用的是其默认配置,认证被禁用。因此,通过结合不当的权限和禁用的安全功能漏洞,攻击者获得了对数百万条记录的访问权,其中包括PII、个人喜好和认证数据。

消除禁用的安全功能/启用的调试功能/不当的权限漏洞

在消除这个漏洞方面,你可能需要双管齐下。要消除问题的启用调试部分,只需在开发过程中增加一个检查,以确保在将API或应用程序转移到生产环境之前禁用调试。从我们的例子来看,这样做的正确命令如下。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

现在,Django应用程序的调试功能被禁用,DEBUG标志被配置为False。没有错误页面会被生成以应对错误。如果对手仍然获得了对错误页面的访问,它们不会包含任何有用的元数据,也不会对应用程序构成风险。

消除被禁用的安全功能和不适当的权限漏洞要困难一些,因为它们可能包含了广泛的具体漏洞。阻止它们的最好方法是开发一个标准的、可重复的流程,以便快速、方便地将锁定的资产部署到生产环境中。

即使如此,你也应该创建一个流程,对协调文件、API组件和云服务(如Amazon S3桶的权限)进行不断的审查和更新。这种审查也应该随着时间的推移对整个环境的安全设置的整体有效性进行评级,以确保组织一直在改进其API安全。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试一下 Secure Code Warrior 培训平台的演示,以保持你所有网络安全技能的磨练和更新。


查看资源
查看资源

请填写下方表格以下载报告

我们恳请您允许我们向您发送有关我们产品及/或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会为营销目的将其出售给其他企业。

提交
scw 成功图标
SCW 错误图标
要提交表单,请启用“Analytics”Cookie。完成后,您可随时将其关闭。

虽然这个名单上的大多数漏洞都是针对API的,但禁用安全功能/启用调试功能/不当权限问题是一个可以在任何地方发生的问题。它在API中可能更普遍一些,但攻击者通常会试图在网络中的任何地方找到未修补的缺陷和未受保护的文件或目录。遇到一个启用了调试功能或禁用了安全功能的API,就会使他们的邪恶工作更容易一些。更糟糕的是,自动工具可以检测和利用安全错误配置,所以如果你的环境中有这些配置,它们很有可能被利用,这就是为什么这个漏洞被列入OWASP的危险API缺陷名单。

在我们进入乐趣之前,看看你是否能解决这个调试难题。

被禁用的安全功能/启用的调试功能/不恰当的权限缺陷是如何潜入API的?

为了了解这个多维的API缺陷是如何被添加到网络中的,我们必须把它分解成各个组成部分。让我们从启用调试功能的问题开始。调试是一个有用的工具,它可以帮助开发者弄清楚为什么应用程序不能正确执行或出现错误。启用调试功能后,错误和异常会生成详细的错误页面,这样开发人员就可以看到出错的地方并解决问题。当一个应用程序仍在开发中时,将其激活是完全可以的。

然而,大多数框架都有关于在生产环境中运行调试模式的警告,这是有原因的,可能就在激活调试的代码中。比如说。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

在这个例子中,调试已经被激活。当出现异常时,Django应用程序将生成详细的错误页面。如果这是在生产环境中进行的,那么对手就可以接触到这些错误页面,其中包括关于环境的元数据信息。尽管大多数框架默认关闭了调试功能,但如果在漫长的开发过程中激活了调试功能,很容易忘记将其重新关闭。那么当应用程序转移到生产环境时,它就为攻击者提供了大量关于如何破坏应用程序,甚至是整个服务器或网络的信息。

虽然启用调试模式大多是一个独立的问题,但不适当的权限和禁用的安全功能漏洞往往会一起发挥作用。例如,在OWASP提供的一个真实场景中,一个攻击者使用搜索引擎找到了一个意外连接到互联网的数据库。因为这个流行的数据库管理系统使用的是其默认配置,认证被禁用。因此,通过结合不当的权限和禁用的安全功能漏洞,攻击者获得了对数百万条记录的访问权,其中包括PII、个人喜好和认证数据。

消除禁用的安全功能/启用的调试功能/不当的权限漏洞

在消除这个漏洞方面,你可能需要双管齐下。要消除问题的启用调试部分,只需在开发过程中增加一个检查,以确保在将API或应用程序转移到生产环境之前禁用调试。从我们的例子来看,这样做的正确命令如下。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

现在,Django应用程序的调试功能被禁用,DEBUG标志被配置为False。没有错误页面会被生成以应对错误。如果对手仍然获得了对错误页面的访问,它们不会包含任何有用的元数据,也不会对应用程序构成风险。

消除被禁用的安全功能和不适当的权限漏洞要困难一些,因为它们可能包含了广泛的具体漏洞。阻止它们的最好方法是开发一个标准的、可重复的流程,以便快速、方便地将锁定的资产部署到生产环境中。

即使如此,你也应该创建一个流程,对协调文件、API组件和云服务(如Amazon S3桶的权限)进行不断的审查和更新。这种审查也应该随着时间的推移对整个环境的安全设置的整体有效性进行评级,以确保组织一直在改进其API安全。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试一下 Secure Code Warrior 培训平台的演示,以保持你所有网络安全技能的磨练和更新。


观看网络研讨会
开始吧
了解更多

请点击下方链接下载该资源的PDF文件。

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

查看报告预约演示
下载PDF文件
查看资源
分享到:
领英品牌社交x 标志
想了解更多吗?

分享到:
领英品牌社交x 标志
作者
马蒂亚斯-马杜博士
发表于2020年11月11日

Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

马蒂亚斯是一名研究员和开发人员,拥有超过15年的软件安全实践经验。他曾为Fortify Software和他自己的公司Sensei Security等公司开发解决方案。在他的职业生涯中,马蒂亚斯领导了多个应用安全研究项目,并将其转化为商业产品,他拥有超过10项专利。当他离开办公桌时,Matias曾担任高级应用安全培训courses ,并定期在全球会议上发言,包括RSA会议、黑帽、DefCon、BSIMM、OWASP AppSec和BruCon。

马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。

分享到:
领英品牌社交x 标志

虽然这个名单上的大多数漏洞都是针对API的,但禁用安全功能/启用调试功能/不当权限问题是一个可以在任何地方发生的问题。它在API中可能更普遍一些,但攻击者通常会试图在网络中的任何地方找到未修补的缺陷和未受保护的文件或目录。遇到一个启用了调试功能或禁用了安全功能的API,就会使他们的邪恶工作更容易一些。更糟糕的是,自动工具可以检测和利用安全错误配置,所以如果你的环境中有这些配置,它们很有可能被利用,这就是为什么这个漏洞被列入OWASP的危险API缺陷名单。

在我们进入乐趣之前,看看你是否能解决这个调试难题。

被禁用的安全功能/启用的调试功能/不恰当的权限缺陷是如何潜入API的?

为了了解这个多维的API缺陷是如何被添加到网络中的,我们必须把它分解成各个组成部分。让我们从启用调试功能的问题开始。调试是一个有用的工具,它可以帮助开发者弄清楚为什么应用程序不能正确执行或出现错误。启用调试功能后,错误和异常会生成详细的错误页面,这样开发人员就可以看到出错的地方并解决问题。当一个应用程序仍在开发中时,将其激活是完全可以的。

然而,大多数框架都有关于在生产环境中运行调试模式的警告,这是有原因的,可能就在激活调试的代码中。比如说。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

在这个例子中,调试已经被激活。当出现异常时,Django应用程序将生成详细的错误页面。如果这是在生产环境中进行的,那么对手就可以接触到这些错误页面,其中包括关于环境的元数据信息。尽管大多数框架默认关闭了调试功能,但如果在漫长的开发过程中激活了调试功能,很容易忘记将其重新关闭。那么当应用程序转移到生产环境时,它就为攻击者提供了大量关于如何破坏应用程序,甚至是整个服务器或网络的信息。

虽然启用调试模式大多是一个独立的问题,但不适当的权限和禁用的安全功能漏洞往往会一起发挥作用。例如,在OWASP提供的一个真实场景中,一个攻击者使用搜索引擎找到了一个意外连接到互联网的数据库。因为这个流行的数据库管理系统使用的是其默认配置,认证被禁用。因此,通过结合不当的权限和禁用的安全功能漏洞,攻击者获得了对数百万条记录的访问权,其中包括PII、个人喜好和认证数据。

消除禁用的安全功能/启用的调试功能/不当的权限漏洞

在消除这个漏洞方面,你可能需要双管齐下。要消除问题的启用调试部分,只需在开发过程中增加一个检查,以确保在将API或应用程序转移到生产环境之前禁用调试。从我们的例子来看,这样做的正确命令如下。

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

现在,Django应用程序的调试功能被禁用,DEBUG标志被配置为False。没有错误页面会被生成以应对错误。如果对手仍然获得了对错误页面的访问,它们不会包含任何有用的元数据,也不会对应用程序构成风险。

消除被禁用的安全功能和不适当的权限漏洞要困难一些,因为它们可能包含了广泛的具体漏洞。阻止它们的最好方法是开发一个标准的、可重复的流程,以便快速、方便地将锁定的资产部署到生产环境中。

即使如此,你也应该创建一个流程,对协调文件、API组件和云服务(如Amazon S3桶的权限)进行不断的审查和更新。这种审查也应该随着时间的推移对整个环境的安全设置的整体有效性进行评级,以确保组织一直在改进其API安全。

请查看 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试一下 Secure Code Warrior 培训平台的演示,以保持你所有网络安全技能的磨练和更新。


目录

下载PDF文件
查看资源
想了解更多吗?

Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

了解更多

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多文章
资源中心

入门资源

更多文章