SCW Icons
hero bg no divider
Blog

程序员以代码的形式征服安全基础架构系列:缺少功能级别访问控制

Matias Madou, Ph.D.
Published May 11, 2020
Last updated on Mar 09, 2026

现在是我们的 “基础设施即代码” 系列的下一期的时候了,这些博客将带领像您这样的开发人员在自己的组织中部署安全基础架构时提高到一个全新的安全意识水平。

哦,顺便说一句... 你对前一篇博客中的安全配置错误挑战的表现如何?如果你想立即解决缺失的功能级别访问控制漏洞,请前往该平台:

(上面的链接将带你进入Kubernetes挑战赛,但进入平台后,也可以使用下拉菜单从Ansible、CloudFormation、Terraform或Docker中进行选择。你的选择。)

当今部署的几乎每个应用程序都有某种访问控制机制,该机制可以检查用户是否有权执行所请求的功能。在创建应用程序时,它几乎是良好安全性和功能性的基石。实际上,所有 Web 应用程序都需要访问控制才能允许具有不同权限的用户使用该程序。

但是,当没有在基础架构级别执行相同的访问控制验证功能或配置错误时,可能会出现问题。如果基础设施级别的访问控制不完善,整个企业就会向黑客敞开大门,黑客可以利用该漏洞作为进行未经授权的窥探或全面攻击的门户。

实际上,利用缺失或配置错误的功能访问控制漏洞非常容易。攻击者甚至不需要过于熟练。他们只需要知道哪些命令在支持应用程序的框架内执行功能。如果他们这样做了,那只是反复试验的问题。他们可以持续提交不应允许的请求,一旦成功,目标网站、应用程序、服务器甚至整个网络都可能被暴露。

缺失的功能级别访问控制漏洞如何运作?

职能级别访问控制可以通过多种方式渗透到组织中。例如,功能级别的访问权限可以留给应用程序,而不由底层基础设施进行验证。或者,基础设施级别的访问控制可能配置不正确。在某些情况下,管理员假设未经授权的用户不知道如何获得只有更高级别的用户才能看到的基础架构资源,并使用很少起作用的 “隐蔽安全” 模型。

举一个通过隐蔽性实现安全的示例,以下 URL 可能容易受到攻击:

http://companywebsite.com/app/NormalUserHomepage

如果经过身份验证的用户使用一种名为 “强制 URL 浏览” 的技术,他们可能会尝试访问仅向管理员显示的页面。一个例子可能是:

http://companywebsite.com/app/AdminPages

如果不存在服务器端验证,他们将只显示管理页面(如果其名称与请求相符),然后就可以访问管理员在新页面上执行的任何其他功能。如果服务器向攻击者返回 “页面未找到” 错误,他们可以继续尝试,直到找出管理页面的名称。

对于攻击者来说,利用 缺少功能级别访问控制 是一个类似的过程。他们不是尝试浏览未经授权的页面,而是发送函数请求。例如,他们可能会尝试创建一个具有管理员权限的新用户。因此,根据框架的不同,他们的请求看起来像这样:

帖子/操作/创建用户名=hacker&pw=密码&角色=管理员

如果不存在功能级别的访问控制,则上面的示例将成功创建新的管理员帐户。一旦攻击者以新管理员身份重新登录,他们将拥有与该网络或服务器上的任何其他管理员相同的访问权限和权限。

修复缺少功能级别访问控制的问题

由于攻击者很容易利用缺失的功能级别访问控制漏洞,因此发现、修复和预防这些漏洞至关重要。值得庆幸的是,有了一些专业知识和基本的基础设施,这并不难 代码安全培训

主要的保护措施将来自于在基础架构级别实现基于角色的授权。永远不要相信应用程序可以处理该功能。即使他们这样做了,获得基础设施方面的授权也能确保不会遗漏任何东西。理想情况下,授权应来自一个集中位置(例如 AWS IAM、Azure IAM 等),该位置内置于组织的例程中并应用于每个新应用程序。这些授权过程可以来自框架本身,也可以来自任意数量的易于使用的外部模块。

最后,您的组织应采用最低权限的概念。默认情况下,所有操作和功能都应被拒绝,授权过程用于授予有效用户执行所需操作的权限。他们只应获得足够的权限来执行所需的功能,并且只能在需要的时间内有效。

缺少功能级别访问控制可能会造成灾难性的后果。但值得庆幸的是,通过在组织中建立良好的基础架构级授权实践,您可以轻松防止此问题发生。

认为你已经准备好在野外发现访问控制错误了吗?比较这些 Docker 代码片段;一个易受攻击,一个安全:


易受攻击:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户 root
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

安全:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户没人
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

了解更多,挑战自我

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞和漏洞的破坏。

如果你之前错过了,你可以 试试 iaC 游戏化安全挑战 在 Secure Code Warrior 平台上,让您的所有网络安全技能不断磨练并保持最新状态。

敬请关注下一章!

查看资源
查看资源

如果基础设施级别的访问控制不完善,它就会向攻击者开放整个企业,攻击者可以利用该漏洞作为未经授权的窥探或全面攻击的门户。

对更多感兴趣?

Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示
分享到:
linkedin brandsSocialx logo
作者
Matias Madou, Ph.D.
Published May 11, 2020

Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

Matias is a researcher and developer with more than 15 years of hands-on software security experience. He has developed solutions for companies such as Fortify Software and his own company Sensei Security. Over his career, Matias has led multiple application security research projects which have led to commercial products and boasts over 10 patents under his belt. When he is away from his desk, Matias has served as an instructor for advanced application security training courses and regularly speaks at global conferences including RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec and BruCon.

Matias holds a Ph.D. in Computer Engineering from Ghent University, where he studied application security through program obfuscation to hide the inner workings of an application.

分享到:
linkedin brandsSocialx logo

现在是我们的 “基础设施即代码” 系列的下一期的时候了,这些博客将带领像您这样的开发人员在自己的组织中部署安全基础架构时提高到一个全新的安全意识水平。

哦,顺便说一句... 你对前一篇博客中的安全配置错误挑战的表现如何?如果你想立即解决缺失的功能级别访问控制漏洞,请前往该平台:

(上面的链接将带你进入Kubernetes挑战赛,但进入平台后,也可以使用下拉菜单从Ansible、CloudFormation、Terraform或Docker中进行选择。你的选择。)

当今部署的几乎每个应用程序都有某种访问控制机制,该机制可以检查用户是否有权执行所请求的功能。在创建应用程序时,它几乎是良好安全性和功能性的基石。实际上,所有 Web 应用程序都需要访问控制才能允许具有不同权限的用户使用该程序。

但是,当没有在基础架构级别执行相同的访问控制验证功能或配置错误时,可能会出现问题。如果基础设施级别的访问控制不完善,整个企业就会向黑客敞开大门,黑客可以利用该漏洞作为进行未经授权的窥探或全面攻击的门户。

实际上,利用缺失或配置错误的功能访问控制漏洞非常容易。攻击者甚至不需要过于熟练。他们只需要知道哪些命令在支持应用程序的框架内执行功能。如果他们这样做了,那只是反复试验的问题。他们可以持续提交不应允许的请求,一旦成功,目标网站、应用程序、服务器甚至整个网络都可能被暴露。

缺失的功能级别访问控制漏洞如何运作?

职能级别访问控制可以通过多种方式渗透到组织中。例如,功能级别的访问权限可以留给应用程序,而不由底层基础设施进行验证。或者,基础设施级别的访问控制可能配置不正确。在某些情况下,管理员假设未经授权的用户不知道如何获得只有更高级别的用户才能看到的基础架构资源,并使用很少起作用的 “隐蔽安全” 模型。

举一个通过隐蔽性实现安全的示例,以下 URL 可能容易受到攻击:

http://companywebsite.com/app/NormalUserHomepage

如果经过身份验证的用户使用一种名为 “强制 URL 浏览” 的技术,他们可能会尝试访问仅向管理员显示的页面。一个例子可能是:

http://companywebsite.com/app/AdminPages

如果不存在服务器端验证,他们将只显示管理页面(如果其名称与请求相符),然后就可以访问管理员在新页面上执行的任何其他功能。如果服务器向攻击者返回 “页面未找到” 错误,他们可以继续尝试,直到找出管理页面的名称。

对于攻击者来说,利用 缺少功能级别访问控制 是一个类似的过程。他们不是尝试浏览未经授权的页面,而是发送函数请求。例如,他们可能会尝试创建一个具有管理员权限的新用户。因此,根据框架的不同,他们的请求看起来像这样:

帖子/操作/创建用户名=hacker&pw=密码&角色=管理员

如果不存在功能级别的访问控制,则上面的示例将成功创建新的管理员帐户。一旦攻击者以新管理员身份重新登录,他们将拥有与该网络或服务器上的任何其他管理员相同的访问权限和权限。

修复缺少功能级别访问控制的问题

由于攻击者很容易利用缺失的功能级别访问控制漏洞,因此发现、修复和预防这些漏洞至关重要。值得庆幸的是,有了一些专业知识和基本的基础设施,这并不难 代码安全培训

主要的保护措施将来自于在基础架构级别实现基于角色的授权。永远不要相信应用程序可以处理该功能。即使他们这样做了,获得基础设施方面的授权也能确保不会遗漏任何东西。理想情况下,授权应来自一个集中位置(例如 AWS IAM、Azure IAM 等),该位置内置于组织的例程中并应用于每个新应用程序。这些授权过程可以来自框架本身,也可以来自任意数量的易于使用的外部模块。

最后,您的组织应采用最低权限的概念。默认情况下,所有操作和功能都应被拒绝,授权过程用于授予有效用户执行所需操作的权限。他们只应获得足够的权限来执行所需的功能,并且只能在需要的时间内有效。

缺少功能级别访问控制可能会造成灾难性的后果。但值得庆幸的是,通过在组织中建立良好的基础架构级授权实践,您可以轻松防止此问题发生。

认为你已经准备好在野外发现访问控制错误了吗?比较这些 Docker 代码片段;一个易受攻击,一个安全:


易受攻击:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户 root
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

安全:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户没人
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

了解更多,挑战自我

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞和漏洞的破坏。

如果你之前错过了,你可以 试试 iaC 游戏化安全挑战 在 Secure Code Warrior 平台上,让您的所有网络安全技能不断磨练并保持最新状态。

敬请关注下一章!

查看资源
查看资源

填写下面的表格下载报告

我们希望获得您的许可,以便向您发送有关我们的产品和/或相关安全编码主题的信息。我们将始终非常谨慎地对待您的个人信息,绝不会出于营销目的将其出售给其他公司。

提交
scw success icon
scw error icon
要提交表单,请启用 “分析” Cookie。完成后,可以随意再次禁用它们。

现在是我们的 “基础设施即代码” 系列的下一期的时候了,这些博客将带领像您这样的开发人员在自己的组织中部署安全基础架构时提高到一个全新的安全意识水平。

哦,顺便说一句... 你对前一篇博客中的安全配置错误挑战的表现如何?如果你想立即解决缺失的功能级别访问控制漏洞,请前往该平台:

(上面的链接将带你进入Kubernetes挑战赛,但进入平台后,也可以使用下拉菜单从Ansible、CloudFormation、Terraform或Docker中进行选择。你的选择。)

当今部署的几乎每个应用程序都有某种访问控制机制,该机制可以检查用户是否有权执行所请求的功能。在创建应用程序时,它几乎是良好安全性和功能性的基石。实际上,所有 Web 应用程序都需要访问控制才能允许具有不同权限的用户使用该程序。

但是,当没有在基础架构级别执行相同的访问控制验证功能或配置错误时,可能会出现问题。如果基础设施级别的访问控制不完善,整个企业就会向黑客敞开大门,黑客可以利用该漏洞作为进行未经授权的窥探或全面攻击的门户。

实际上,利用缺失或配置错误的功能访问控制漏洞非常容易。攻击者甚至不需要过于熟练。他们只需要知道哪些命令在支持应用程序的框架内执行功能。如果他们这样做了,那只是反复试验的问题。他们可以持续提交不应允许的请求,一旦成功,目标网站、应用程序、服务器甚至整个网络都可能被暴露。

缺失的功能级别访问控制漏洞如何运作?

职能级别访问控制可以通过多种方式渗透到组织中。例如,功能级别的访问权限可以留给应用程序,而不由底层基础设施进行验证。或者,基础设施级别的访问控制可能配置不正确。在某些情况下,管理员假设未经授权的用户不知道如何获得只有更高级别的用户才能看到的基础架构资源,并使用很少起作用的 “隐蔽安全” 模型。

举一个通过隐蔽性实现安全的示例,以下 URL 可能容易受到攻击:

http://companywebsite.com/app/NormalUserHomepage

如果经过身份验证的用户使用一种名为 “强制 URL 浏览” 的技术,他们可能会尝试访问仅向管理员显示的页面。一个例子可能是:

http://companywebsite.com/app/AdminPages

如果不存在服务器端验证,他们将只显示管理页面(如果其名称与请求相符),然后就可以访问管理员在新页面上执行的任何其他功能。如果服务器向攻击者返回 “页面未找到” 错误,他们可以继续尝试,直到找出管理页面的名称。

对于攻击者来说,利用 缺少功能级别访问控制 是一个类似的过程。他们不是尝试浏览未经授权的页面,而是发送函数请求。例如,他们可能会尝试创建一个具有管理员权限的新用户。因此,根据框架的不同,他们的请求看起来像这样:

帖子/操作/创建用户名=hacker&pw=密码&角色=管理员

如果不存在功能级别的访问控制,则上面的示例将成功创建新的管理员帐户。一旦攻击者以新管理员身份重新登录,他们将拥有与该网络或服务器上的任何其他管理员相同的访问权限和权限。

修复缺少功能级别访问控制的问题

由于攻击者很容易利用缺失的功能级别访问控制漏洞,因此发现、修复和预防这些漏洞至关重要。值得庆幸的是,有了一些专业知识和基本的基础设施,这并不难 代码安全培训

主要的保护措施将来自于在基础架构级别实现基于角色的授权。永远不要相信应用程序可以处理该功能。即使他们这样做了,获得基础设施方面的授权也能确保不会遗漏任何东西。理想情况下,授权应来自一个集中位置(例如 AWS IAM、Azure IAM 等),该位置内置于组织的例程中并应用于每个新应用程序。这些授权过程可以来自框架本身,也可以来自任意数量的易于使用的外部模块。

最后,您的组织应采用最低权限的概念。默认情况下,所有操作和功能都应被拒绝,授权过程用于授予有效用户执行所需操作的权限。他们只应获得足够的权限来执行所需的功能,并且只能在需要的时间内有效。

缺少功能级别访问控制可能会造成灾难性的后果。但值得庆幸的是,通过在组织中建立良好的基础架构级授权实践,您可以轻松防止此问题发生。

认为你已经准备好在野外发现访问控制错误了吗?比较这些 Docker 代码片段;一个易受攻击,一个安全:


易受攻击:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户 root
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

安全:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户没人
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

了解更多,挑战自我

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞和漏洞的破坏。

如果你之前错过了,你可以 试试 iaC 游戏化安全挑战 在 Secure Code Warrior 平台上,让您的所有网络安全技能不断磨练并保持最新状态。

敬请关注下一章!

观看网络研讨会
开始吧
learn more

点击下面的链接并下载此资源的PDF。

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

查看报告预订演示
查看资源
分享到:
linkedin brandsSocialx logo
对更多感兴趣?

分享到:
linkedin brandsSocialx logo
作者
Matias Madou, Ph.D.
Published May 11, 2020

Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

Matias is a researcher and developer with more than 15 years of hands-on software security experience. He has developed solutions for companies such as Fortify Software and his own company Sensei Security. Over his career, Matias has led multiple application security research projects which have led to commercial products and boasts over 10 patents under his belt. When he is away from his desk, Matias has served as an instructor for advanced application security training courses and regularly speaks at global conferences including RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec and BruCon.

Matias holds a Ph.D. in Computer Engineering from Ghent University, where he studied application security through program obfuscation to hide the inner workings of an application.

分享到:
linkedin brandsSocialx logo

现在是我们的 “基础设施即代码” 系列的下一期的时候了,这些博客将带领像您这样的开发人员在自己的组织中部署安全基础架构时提高到一个全新的安全意识水平。

哦,顺便说一句... 你对前一篇博客中的安全配置错误挑战的表现如何?如果你想立即解决缺失的功能级别访问控制漏洞,请前往该平台:

(上面的链接将带你进入Kubernetes挑战赛,但进入平台后,也可以使用下拉菜单从Ansible、CloudFormation、Terraform或Docker中进行选择。你的选择。)

当今部署的几乎每个应用程序都有某种访问控制机制,该机制可以检查用户是否有权执行所请求的功能。在创建应用程序时,它几乎是良好安全性和功能性的基石。实际上,所有 Web 应用程序都需要访问控制才能允许具有不同权限的用户使用该程序。

但是,当没有在基础架构级别执行相同的访问控制验证功能或配置错误时,可能会出现问题。如果基础设施级别的访问控制不完善,整个企业就会向黑客敞开大门,黑客可以利用该漏洞作为进行未经授权的窥探或全面攻击的门户。

实际上,利用缺失或配置错误的功能访问控制漏洞非常容易。攻击者甚至不需要过于熟练。他们只需要知道哪些命令在支持应用程序的框架内执行功能。如果他们这样做了,那只是反复试验的问题。他们可以持续提交不应允许的请求,一旦成功,目标网站、应用程序、服务器甚至整个网络都可能被暴露。

缺失的功能级别访问控制漏洞如何运作?

职能级别访问控制可以通过多种方式渗透到组织中。例如,功能级别的访问权限可以留给应用程序,而不由底层基础设施进行验证。或者,基础设施级别的访问控制可能配置不正确。在某些情况下,管理员假设未经授权的用户不知道如何获得只有更高级别的用户才能看到的基础架构资源,并使用很少起作用的 “隐蔽安全” 模型。

举一个通过隐蔽性实现安全的示例,以下 URL 可能容易受到攻击:

http://companywebsite.com/app/NormalUserHomepage

如果经过身份验证的用户使用一种名为 “强制 URL 浏览” 的技术,他们可能会尝试访问仅向管理员显示的页面。一个例子可能是:

http://companywebsite.com/app/AdminPages

如果不存在服务器端验证,他们将只显示管理页面(如果其名称与请求相符),然后就可以访问管理员在新页面上执行的任何其他功能。如果服务器向攻击者返回 “页面未找到” 错误,他们可以继续尝试,直到找出管理页面的名称。

对于攻击者来说,利用 缺少功能级别访问控制 是一个类似的过程。他们不是尝试浏览未经授权的页面,而是发送函数请求。例如,他们可能会尝试创建一个具有管理员权限的新用户。因此,根据框架的不同,他们的请求看起来像这样:

帖子/操作/创建用户名=hacker&pw=密码&角色=管理员

如果不存在功能级别的访问控制,则上面的示例将成功创建新的管理员帐户。一旦攻击者以新管理员身份重新登录,他们将拥有与该网络或服务器上的任何其他管理员相同的访问权限和权限。

修复缺少功能级别访问控制的问题

由于攻击者很容易利用缺失的功能级别访问控制漏洞,因此发现、修复和预防这些漏洞至关重要。值得庆幸的是,有了一些专业知识和基本的基础设施,这并不难 代码安全培训

主要的保护措施将来自于在基础架构级别实现基于角色的授权。永远不要相信应用程序可以处理该功能。即使他们这样做了,获得基础设施方面的授权也能确保不会遗漏任何东西。理想情况下,授权应来自一个集中位置(例如 AWS IAM、Azure IAM 等),该位置内置于组织的例程中并应用于每个新应用程序。这些授权过程可以来自框架本身,也可以来自任意数量的易于使用的外部模块。

最后,您的组织应采用最低权限的概念。默认情况下,所有操作和功能都应被拒绝,授权过程用于授予有效用户执行所需操作的权限。他们只应获得足够的权限来执行所需的功能,并且只能在需要的时间内有效。

缺少功能级别访问控制可能会造成灾难性的后果。但值得庆幸的是,通过在组织中建立良好的基础架构级授权实践,您可以轻松防止此问题发生。

认为你已经准备好在野外发现访问控制错误了吗?比较这些 Docker 代码片段;一个易受攻击,一个安全:


易受攻击:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户 root
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

安全:

来自 quay.io/prometheus/busybox: latest
ARG 版本=0.12.1
ARG 文件名=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL = https://github.com/prometheus/mysqld_exporter/releases/download/v
运行 wget $url$version/$filename.tar.gz &&\
tar-xvf $fileName.tar.gz &&\
mv $文件名/mysqld_exporter /bin/mysqld_exporter
复制 .my.cnf /home/.my.cnf
复制。/scripts/entrypoint.sh ~/entrypoint.sh
用户没人
暴露 9104
入口点 [“sh”,“~/entrypoint.sh”]
CMD [“/bin/mysqld_exporter”]

了解更多,挑战自我

来看看 安全代码勇士 博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞和漏洞的破坏。

如果你之前错过了,你可以 试试 iaC 游戏化安全挑战 在 Secure Code Warrior 平台上,让您的所有网络安全技能不断磨练并保持最新状态。

敬请关注下一章!

目录

下载PDF
查看资源
对更多感兴趣?

Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

learn more

Secure Code Warrior可以帮助您的组织在整个软件开发生命周期中保护代码,并营造一种将网络安全放在首位的文化。无论您是 AppSec 经理、开发人员、首席信息安全官还是任何与安全相关的人,我们都可以帮助您的组织降低与不安全代码相关的风险。

预订演示下载
分享到:
linkedin brandsSocialx logo
资源中心

帮助您入门的资源

更多帖子
资源中心

帮助您入门的资源

更多帖子