Iconos SCW
héroe bg sin separador
Blog

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

Doctor Matias Madou
Publicado el 11 de mayo de 2020
Última actualización el 9 de marzo de 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 代码片段;一个易受攻击,一个安全:


Vulnerable:

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

Seguridad:

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

了解更多,挑战自我

Visite la página del blog de Security Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes frente a otras vulnerabilidades y fallos de seguridad.

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

敬请关注下一章!

Ver recursos
Ver recursos

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

¿Te interesa saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Reservar una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Doctor Matias Madou
Publicado el 11 de mayo de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:
marcas de LinkedInSocialx logotipo

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

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

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


Vulnerable:

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

Seguridad:

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

了解更多,挑战自我

Visite la página del blog de Security Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes frente a otras vulnerabilidades y fallos de seguridad.

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

敬请关注下一章!

Ver recursos
Ver recursos

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación de seguridad. Trataremos su información personal con el máximo cuidado y nunca la venderemos a otras empresas con fines comerciales.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, habilite las cookies de análisis. Una vez completado, puede desactivarlas nuevamente si lo desea.

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

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

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


Vulnerable:

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

Seguridad:

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

了解更多,挑战自我

Visite la página del blog de Security Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes frente a otras vulnerabilidades y fallos de seguridad.

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

敬请关注下一章!

Ver el seminario web
Empecemos.
Más información

Haga clic en el siguiente enlace y descargue el PDF de este recurso.

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Ver informeReservar una demostración
Ver recursos
Compartir en:
marcas de LinkedInSocialx logotipo
¿Te interesa saber más?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Doctor Matias Madou
Publicado el 11 de mayo de 2020

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Matías es un investigador y desarrollador con más de 15 años de experiencia práctica en seguridad de software. Ha desarrollado soluciones para empresas como Fortify Software y su propia empresa Sensei Security. A lo largo de su carrera, Matías ha dirigido múltiples proyectos de investigación sobre seguridad de aplicaciones que han dado lugar a productos comerciales y cuenta con más de 10 patentes en su haber. Cuando está lejos de su escritorio, Matias ha servido como instructor para la formación de seguridad de aplicaciones avanzadas courses y regularmente habla en conferencias mundiales como la Conferencia RSA, Black Hat, DefCon, BSIMM, OWASP AppSec y BruCon.

Matías es doctor en Ingeniería Informática por la Universidad de Gante, donde estudió la seguridad de las aplicaciones mediante la ofuscación de programas para ocultar el funcionamiento interno de una aplicación.

Compartir en:
marcas de LinkedInSocialx logotipo

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

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

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


Vulnerable:

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

Seguridad:

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

了解更多,挑战自我

Visite la página del blog de Security Code Warrior para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes frente a otras vulnerabilidades y fallos de seguridad.

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

敬请关注下一章!

Índice

Descargar PDF
Ver recursos
¿Te interesa saber más?

Matias Madou, Ph.D. es experto en seguridad, investigador y CTO y cofundador de Secure Code Warrior. Matias obtuvo su doctorado en Seguridad de Aplicaciones en la Universidad de Gante, centrándose en soluciones de análisis estático. Más tarde se incorporó a Fortify en EE.UU., donde se dio cuenta de que no bastaba con detectar problemas de código sin ayudar a los desarrolladores a escribir código seguro. Esto le inspiró para desarrollar productos que ayuden a los desarrolladores, alivien la carga de la seguridad y superen las expectativas de los clientes. Cuando no está en su escritorio como parte de Team Awesome, le gusta estar en el escenario presentando en conferencias como RSA Conference, BlackHat y DefCon.

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Reservar una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones