
コーダーがセキュリティインフラストラクチャを征服するコードシリーズ:セキュリティの設定ミス-不適切な権限
如今,网络安全的威胁无处不在,而且无情。情况已经变得如此糟糕,以至于在程序部署后试图跟上它们的步伐已经变得几乎不可能。相反,精明的组织正在接受 "基础设施即代码 "的概念,即开发人员在创建安全应用程序的同时为其做出贡献。这个系列的内容是让你做好安全准备,这样你就可以了解你作为一个开发人员可以采取的步骤,开始在你自己的组织中部署安全的基础设施即代码。
安全错误配置,特别是那些不恰当的权限种类,最常发生在开发者为了完成一项任务而创建一个新的用户或授予一个应用程序作为工具的权限。例如,这可能是为了从一个数据库中收集信息。但是,如果新用户的权限设置得太高,或者没有为手头的任务进行默认配置,就会在代码中引入严重的漏洞。
在我们开始讨论之前,为什么不现在就测试一下你的技能呢?试着找到并修复一些不当的权限漏洞。
你的表现如何?让我们再深入挖掘一下。
给予一个用户或应用程序完整的权限,或者干脆从不费心去定义新用户应该能够完成什么,哪些行为受到限制,这当然是让新代码到位的最快方式。如果一切顺利的话,应用程序将利用这些权限来完成其指定的任务。危险的是,黑客会发现这个过程,然后危害到这个用户。即使该用户是为了完成特定应用程序的特定功能而创建的,但如果被破坏,它可以让攻击者危及其他应用程序、数据甚至是网络。
安全错误配置是如何被利用的?
为了直观地了解这种危险,让我们看看一个普通的任务有时是如何在Docker云环境中编码的。比方说,一个开发者正在使用Prometheus MySQL Exporter服务从数据库中收集信息。允许这种情况发生的最简单方法是授予导出器访问数据库的权限。因此,代码可能是这样的。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%。
这当然会使出口者能够完成其任务。然而,由于权限没有被定义,出口者实际上有能力做几乎任何事情。显然,出口商本身绝不会在其编程的行为之外采取行动。但是,如果一个攻击者能够破坏出口器服务,会发生什么?在这种情况下,由于它被赋予了完全的权限,攻击者可以对SQL服务执行各种未经授权的任务。
确保和消除不正当的权限
在这里,我们再次转向基础设施即代码的概念。如果你在创建应用程序时就将安全写入其中,那么当涉及到网络安全时,网络总是会处于一个更好的整体基础上。
在上面的Docker例子中,如果开发者希望Prometheus MySQL Exporter能够查询数据库,他们可以通过定义它应该被允许完成的任务来使之更安全地发生。这方面的一个好例子是。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
在这种情况下,为Prometheus MySQL Exporter服务配置的MySQL用户对MySQL服务只有有限的权限。具体来说,只允许PROCESS和REPLIATION CLIENT权限。这将防止恶意的用户利用被破坏的Prometheus MySQL导出器服务。
在代码层面上限制权限可以确保用户和应用程序只拥有足够的权限来完成手头的工作。这对确保你的网络安全和接受基础设施即代码的概念有很大帮助。
。 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试我们的 Secure Code Warrior 培训平台的展示,以保持你所有的网络安全技能的磨练和最新的。


セキュリティの設定ミス、特に不適切な権限の設定は、開発者がタスクを実行するために新しいユーザーを作成したり、ツールとしてアプリケーションに権限を付与したりする場合に発生することがほとんどです。
马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。
预约演示马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。
马蒂亚斯是一位拥有15年以上软件安全实践经验的研究员兼开发者。他曾为Fortify Software、其创立的Sensei Security等企业开发解决方案。在职业生涯中,马蒂亚斯主导了多个应用安全研究项目,这些项目最终转化为商用产品,并获得了10余项专利。在离开办公桌时,马蒂亚斯担任高级应用安全培训课程讲师,并定期在RSA大会、黑帽大会、DefCon、BSIMM、OWASP应用安全大会、BruCon等全球性会议上发表演讲。
马蒂亚斯在根特大学获得计算机工程博士学位,期间学习了通过程序混淆技术隐藏应用程序内部运作机制的应用程序安全技术。


如今,网络安全的威胁无处不在,而且无情。情况已经变得如此糟糕,以至于在程序部署后试图跟上它们的步伐已经变得几乎不可能。相反,精明的组织正在接受 "基础设施即代码 "的概念,即开发人员在创建安全应用程序的同时为其做出贡献。这个系列的内容是让你做好安全准备,这样你就可以了解你作为一个开发人员可以采取的步骤,开始在你自己的组织中部署安全的基础设施即代码。
安全错误配置,特别是那些不恰当的权限种类,最常发生在开发者为了完成一项任务而创建一个新的用户或授予一个应用程序作为工具的权限。例如,这可能是为了从一个数据库中收集信息。但是,如果新用户的权限设置得太高,或者没有为手头的任务进行默认配置,就会在代码中引入严重的漏洞。
在我们开始讨论之前,为什么不现在就测试一下你的技能呢?试着找到并修复一些不当的权限漏洞。
你的表现如何?让我们再深入挖掘一下。
给予一个用户或应用程序完整的权限,或者干脆从不费心去定义新用户应该能够完成什么,哪些行为受到限制,这当然是让新代码到位的最快方式。如果一切顺利的话,应用程序将利用这些权限来完成其指定的任务。危险的是,黑客会发现这个过程,然后危害到这个用户。即使该用户是为了完成特定应用程序的特定功能而创建的,但如果被破坏,它可以让攻击者危及其他应用程序、数据甚至是网络。
安全错误配置是如何被利用的?
为了直观地了解这种危险,让我们看看一个普通的任务有时是如何在Docker云环境中编码的。比方说,一个开发者正在使用Prometheus MySQL Exporter服务从数据库中收集信息。允许这种情况发生的最简单方法是授予导出器访问数据库的权限。因此,代码可能是这样的。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%。
这当然会使出口者能够完成其任务。然而,由于权限没有被定义,出口者实际上有能力做几乎任何事情。显然,出口商本身绝不会在其编程的行为之外采取行动。但是,如果一个攻击者能够破坏出口器服务,会发生什么?在这种情况下,由于它被赋予了完全的权限,攻击者可以对SQL服务执行各种未经授权的任务。
确保和消除不正当的权限
在这里,我们再次转向基础设施即代码的概念。如果你在创建应用程序时就将安全写入其中,那么当涉及到网络安全时,网络总是会处于一个更好的整体基础上。
在上面的Docker例子中,如果开发者希望Prometheus MySQL Exporter能够查询数据库,他们可以通过定义它应该被允许完成的任务来使之更安全地发生。这方面的一个好例子是。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
在这种情况下,为Prometheus MySQL Exporter服务配置的MySQL用户对MySQL服务只有有限的权限。具体来说,只允许PROCESS和REPLIATION CLIENT权限。这将防止恶意的用户利用被破坏的Prometheus MySQL导出器服务。
在代码层面上限制权限可以确保用户和应用程序只拥有足够的权限来完成手头的工作。这对确保你的网络安全和接受基础设施即代码的概念有很大帮助。
。 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试我们的 Secure Code Warrior 培训平台的展示,以保持你所有的网络安全技能的磨练和最新的。

如今,网络安全的威胁无处不在,而且无情。情况已经变得如此糟糕,以至于在程序部署后试图跟上它们的步伐已经变得几乎不可能。相反,精明的组织正在接受 "基础设施即代码 "的概念,即开发人员在创建安全应用程序的同时为其做出贡献。这个系列的内容是让你做好安全准备,这样你就可以了解你作为一个开发人员可以采取的步骤,开始在你自己的组织中部署安全的基础设施即代码。
安全错误配置,特别是那些不恰当的权限种类,最常发生在开发者为了完成一项任务而创建一个新的用户或授予一个应用程序作为工具的权限。例如,这可能是为了从一个数据库中收集信息。但是,如果新用户的权限设置得太高,或者没有为手头的任务进行默认配置,就会在代码中引入严重的漏洞。
在我们开始讨论之前,为什么不现在就测试一下你的技能呢?试着找到并修复一些不当的权限漏洞。
你的表现如何?让我们再深入挖掘一下。
给予一个用户或应用程序完整的权限,或者干脆从不费心去定义新用户应该能够完成什么,哪些行为受到限制,这当然是让新代码到位的最快方式。如果一切顺利的话,应用程序将利用这些权限来完成其指定的任务。危险的是,黑客会发现这个过程,然后危害到这个用户。即使该用户是为了完成特定应用程序的特定功能而创建的,但如果被破坏,它可以让攻击者危及其他应用程序、数据甚至是网络。
安全错误配置是如何被利用的?
为了直观地了解这种危险,让我们看看一个普通的任务有时是如何在Docker云环境中编码的。比方说,一个开发者正在使用Prometheus MySQL Exporter服务从数据库中收集信息。允许这种情况发生的最简单方法是授予导出器访问数据库的权限。因此,代码可能是这样的。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%。
这当然会使出口者能够完成其任务。然而,由于权限没有被定义,出口者实际上有能力做几乎任何事情。显然,出口商本身绝不会在其编程的行为之外采取行动。但是,如果一个攻击者能够破坏出口器服务,会发生什么?在这种情况下,由于它被赋予了完全的权限,攻击者可以对SQL服务执行各种未经授权的任务。
确保和消除不正当的权限
在这里,我们再次转向基础设施即代码的概念。如果你在创建应用程序时就将安全写入其中,那么当涉及到网络安全时,网络总是会处于一个更好的整体基础上。
在上面的Docker例子中,如果开发者希望Prometheus MySQL Exporter能够查询数据库,他们可以通过定义它应该被允许完成的任务来使之更安全地发生。这方面的一个好例子是。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
在这种情况下,为Prometheus MySQL Exporter服务配置的MySQL用户对MySQL服务只有有限的权限。具体来说,只允许PROCESS和REPLIATION CLIENT权限。这将防止恶意的用户利用被破坏的Prometheus MySQL导出器服务。
在代码层面上限制权限可以确保用户和应用程序只拥有足够的权限来完成手头的工作。这对确保你的网络安全和接受基础设施即代码的概念有很大帮助。
。 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试我们的 Secure Code Warrior 培训平台的展示,以保持你所有的网络安全技能的磨练和最新的。

请点击以下链接下载此资源的PDF文件。
Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。
显示报告预约演示马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。
马蒂亚斯是一位拥有15年以上软件安全实践经验的研究员兼开发者。他曾为Fortify Software、其创立的Sensei Security等企业开发解决方案。在职业生涯中,马蒂亚斯主导了多个应用安全研究项目,这些项目最终转化为商用产品,并获得了10余项专利。在离开办公桌时,马蒂亚斯担任高级应用安全培训课程讲师,并定期在RSA大会、黑帽大会、DefCon、BSIMM、OWASP应用安全大会、BruCon等全球性会议上发表演讲。
马蒂亚斯在根特大学获得计算机工程博士学位,期间学习了通过程序混淆技术隐藏应用程序内部运作机制的应用程序安全技术。
如今,网络安全的威胁无处不在,而且无情。情况已经变得如此糟糕,以至于在程序部署后试图跟上它们的步伐已经变得几乎不可能。相反,精明的组织正在接受 "基础设施即代码 "的概念,即开发人员在创建安全应用程序的同时为其做出贡献。这个系列的内容是让你做好安全准备,这样你就可以了解你作为一个开发人员可以采取的步骤,开始在你自己的组织中部署安全的基础设施即代码。
安全错误配置,特别是那些不恰当的权限种类,最常发生在开发者为了完成一项任务而创建一个新的用户或授予一个应用程序作为工具的权限。例如,这可能是为了从一个数据库中收集信息。但是,如果新用户的权限设置得太高,或者没有为手头的任务进行默认配置,就会在代码中引入严重的漏洞。
在我们开始讨论之前,为什么不现在就测试一下你的技能呢?试着找到并修复一些不当的权限漏洞。
你的表现如何?让我们再深入挖掘一下。
给予一个用户或应用程序完整的权限,或者干脆从不费心去定义新用户应该能够完成什么,哪些行为受到限制,这当然是让新代码到位的最快方式。如果一切顺利的话,应用程序将利用这些权限来完成其指定的任务。危险的是,黑客会发现这个过程,然后危害到这个用户。即使该用户是为了完成特定应用程序的特定功能而创建的,但如果被破坏,它可以让攻击者危及其他应用程序、数据甚至是网络。
安全错误配置是如何被利用的?
为了直观地了解这种危险,让我们看看一个普通的任务有时是如何在Docker云环境中编码的。比方说,一个开发者正在使用Prometheus MySQL Exporter服务从数据库中收集信息。允许这种情况发生的最简单方法是授予导出器访问数据库的权限。因此,代码可能是这样的。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%。
这当然会使出口者能够完成其任务。然而,由于权限没有被定义,出口者实际上有能力做几乎任何事情。显然,出口商本身绝不会在其编程的行为之外采取行动。但是,如果一个攻击者能够破坏出口器服务,会发生什么?在这种情况下,由于它被赋予了完全的权限,攻击者可以对SQL服务执行各种未经授权的任务。
确保和消除不正当的权限
在这里,我们再次转向基础设施即代码的概念。如果你在创建应用程序时就将安全写入其中,那么当涉及到网络安全时,网络总是会处于一个更好的整体基础上。
在上面的Docker例子中,如果开发者希望Prometheus MySQL Exporter能够查询数据库,他们可以通过定义它应该被允许完成的任务来使之更安全地发生。这方面的一个好例子是。
FROM mysql:new
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
在这种情况下,为Prometheus MySQL Exporter服务配置的MySQL用户对MySQL服务只有有限的权限。具体来说,只允许PROCESS和REPLIATION CLIENT权限。这将防止恶意的用户利用被破坏的Prometheus MySQL导出器服务。
在代码层面上限制权限可以确保用户和应用程序只拥有足够的权限来完成手头的工作。这对确保你的网络安全和接受基础设施即代码的概念有很大帮助。
。 Secure Code Warrior博客页面,了解有关这一漏洞的更多见解,以及如何保护你的组织和客户免受其他安全缺陷的蹂躏。你也可以尝试我们的 Secure Code Warrior 培训平台的展示,以保持你所有的网络安全技能的磨练和最新的。
目录
马蒂亚斯·马杜博士是安全专家、研究员、首席技术官,以及安全代码战士的联合创始人。马蒂亚斯在根特大学以静态分析解决方案为核心,获得了应用安全领域的博士学位。此后他加入美国Fortify公司,并意识到仅检测代码问题而未协助开发者编写安全代码是远远不够的。这一认知促使他致力于开发能帮助开发者减轻安全负担、超越客户期望的产品。作为Team Awesome成员,当他不在办公桌前时,最享受在RSA大会、BlackHat、DefCon等技术会议上登台演讲的时刻。

Secure Code Warrior致力于在整个软件开发生命周期中保护代码,并协助构建将网络安全置于首位的文化。无论您是应用程序安全经理、开发人员、首席信息安全官还是安全相关人员,我们都能帮助您降低与不安全代码相关的风险。
预约演示[下载]开始所需的资源
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText 应用程序安全性的强大功能 + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.




