SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

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

Matias Madou, Ph.D.
Veröffentlicht Mai 11, 2020
Zuletzt aktualisiert am 09. März 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 代码片段;一个易受攻击,一个安全:


Anfällig:

来自 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”]

Sicherheit:

来自 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”]

了解更多,挑战自我

Besuchen Sie die Blog-Seite von Security Code Warrior, um mehr über diese Sicherheitslücke zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor anderen Sicherheitslücken und Schwachstellen schützen können.

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

敬请关注下一章!

Ressourcen anzeigen
Ressourcen anzeigen

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

Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

mehr erfahren

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Demo buchen
Teilen auf:
LinkedIn-MarkenSozialx Logo
作者
Matias Madou, Ph.D.
Veröffentlicht Mai 11, 2020

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und kann auf über 10 Patente verweisen. Wenn er nicht am Schreibtisch sitzt, ist Matias als Ausbilder für fortgeschrittene Anwendungssicherheitstrainings courses tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat einen Doktortitel in Computertechnik von der Universität Gent, wo er die Sicherheit von Anwendungen durch Programmverschleierung untersuchte, um die innere Funktionsweise einer Anwendung zu verbergen.

Teilen auf:
LinkedIn-MarkenSozialx 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 代码片段;一个易受攻击,一个安全:


Anfällig:

来自 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”]

Sicherheit:

来自 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”]

了解更多,挑战自我

Besuchen Sie die Blog-Seite von Security Code Warrior, um mehr über diese Sicherheitslücke zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor anderen Sicherheitslücken und Schwachstellen schützen können.

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

敬请关注下一章!

Ressourcen anzeigen
Ressourcen anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen.

Wir möchten Ihre Erlaubnis einholen, Ihnen Informationen über unsere Produkte und/oder relevante Themen zur Sicherheit von Codes zuzusenden. Wir werden Ihre personenbezogenen Daten stets mit größter Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Einreichen
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte die „Analyse“-Cookies. Nach Abschluss können Sie diese wieder deaktivieren.

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

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

(上面的链接将带你进入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 代码片段;一个易受攻击,一个安全:


Anfällig:

来自 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”]

Sicherheit:

来自 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”]

了解更多,挑战自我

Besuchen Sie die Blog-Seite von Security Code Warrior, um mehr über diese Sicherheitslücke zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor anderen Sicherheitslücken und Schwachstellen schützen können.

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

敬请关注下一章!

Webinar ansehen
Fangen wir an.
mehr erfahren

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Bericht anzeigenDemo buchen
Ressourcen anzeigen
Teilen auf:
LinkedIn-MarkenSozialx Logo
Interessiert an mehr?

Teilen auf:
LinkedIn-MarkenSozialx Logo
作者
Matias Madou, Ph.D.
Veröffentlicht Mai 11, 2020

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und kann auf über 10 Patente verweisen. Wenn er nicht am Schreibtisch sitzt, ist Matias als Ausbilder für fortgeschrittene Anwendungssicherheitstrainings courses tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat einen Doktortitel in Computertechnik von der Universität Gent, wo er die Sicherheit von Anwendungen durch Programmverschleierung untersuchte, um die innere Funktionsweise einer Anwendung zu verbergen.

Teilen auf:
LinkedIn-MarkenSozialx 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 代码片段;一个易受攻击,一个安全:


Anfällig:

来自 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”]

Sicherheit:

来自 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”]

了解更多,挑战自我

Besuchen Sie die Blog-Seite von Security Code Warrior, um mehr über diese Sicherheitslücke zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor anderen Sicherheitslücken und Schwachstellen schützen können.

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

敬请关注下一章!

Verzeichnis

PDF herunterladen
Ressourcen anzeigen
Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

mehr erfahren

Secure Code Warrior kann Ihrem Unternehmen dabei helfen, Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, Chief Information Security Officer oder in einem anderen sicherheitsrelevanten Bereich tätig sind – wir können Ihrem Unternehmen dabei helfen, die mit unsicherem Code verbundenen Risiken zu minimieren.

Demo buchen下载
Teilen auf:
LinkedIn-MarkenSozialx Logo
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge
Ressourcenzentrum

Ressourcen, die Ihnen den Einstieg erleichtern

Weitere Beiträge