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

Coder Conquer Security OWASP Top 10 API-Serie — Massenzuweisung

马蒂亚斯-马杜博士
发表于 2020 年 10 月 21 日
最后更新于 2026年3月9日

Die Sicherheitslücke bei Massenzuweisungen entstand, weil viele moderne Frameworks Entwickler dazu ermutigen, Funktionen zu verwenden, die Eingaben von Clients automatisch in Codevariablen und interne Objekte binden. Dies wird getan, um den Code zu vereinfachen und Operationen zu beschleunigen.

Angreifer können diese Methode verwenden, um Änderungen an Objekteigenschaften zu erzwingen, die niemals von einem Client aktualisiert werden sollten. Normalerweise führt dies zu unternehmensspezifischen Problemen, z. B. wenn ein Benutzer sich selbst Administratorrechte zuweist, anstatt eine Website herunterzufahren oder Unternehmensgeheimnisse zu stehlen. Angreifer müssen auch eine Vorstellung von den Beziehungen zwischen Objekten und der Geschäftslogik der Anwendung haben, die sie ausnutzen.

Nichts davon macht die Sicherheitslücke durch Massenzuweisungen in den Händen eines cleveren und böswilligen Benutzers jedoch weniger gefährlich.

Bevor wir mit der vollständigen Anleitung beginnen, spielen Sie unsere spielerische Herausforderung und sehen Sie, wie es Ihnen geht:

Wie können Angreifer die Sicherheitslücke bei Massenzuweisungen ausnutzen?

Das von OWASP vorgeschlagene (und von uns leicht modifizierte) Szenario geht von einer Mitfahranwendung aus, die verschiedene Eigenschaften enthält, die mithilfe von Massenzuweisungen an Objekte im Code gebunden sind. Dazu gehören berechtigungsbezogene Eigenschaften, die Benutzer ändern können, und prozessabhängige Eigenschaften, die nur intern von der Anwendung festgelegt werden sollten. Beide verwenden Massenzuweisungen, um Eigenschaften an Objekte zu binden.

In diesem Szenario ermöglicht die Mitfahr-App Benutzern, ihre Profile zu aktualisieren, wie es in vielen benutzerorientierten Anwendungen üblich ist. Dies erfolgt mithilfe eines an PUT gesendeten API-Aufrufs, der das folgende JSON-Objekt zurückgibt:

{"user_name“: „SneakySnake“, „Seite“: 17, „is_admin“: falsch}

Da der Angreifer, in diesem Fall Mr. SneakySnake, die Beziehung zwischen den Eigenschaften und den Objekten herausgefunden hat, kann er seine ursprüngliche Anfrage zur Aktualisierung seines Profils mit der folgenden Zeichenfolge erneut senden:

{"user_name“: „SneakySnake“, „Alter“ :24, „is_admin“: true}

Da der Endpunkt anfällig für Massenzuweisungen ist, akzeptiert er die neue Eingabe als gültig. Unser Hacker hat seinem Profil nicht nur ein paar Jahre hinzugefügt, sondern sich auch selbst Administratorrechte zugewiesen.

Beseitigung der Sicherheitslücke bei Massenzuweisungen

So praktisch es auch sein mag, die Massenzuweisungsfunktion in einigen Frameworks zu verwenden, Sie sollten dies vermeiden, wenn Sie Ihre APIs schützen möchten. Analysieren Sie stattdessen die Anforderungswerte, anstatt sie direkt an ein Objekt zu binden. Sie können auch ein reduziertes Datenübertragungsobjekt verwenden, das fast den gleichen Komfort bietet wie das direkte Binden an das Objekt selbst, nur ohne das damit verbundene Risiko.

Als zusätzliche Vorsichtsmaßnahme könnten vertrauliche Eigenschaften wie Administratorrechte aus dem obigen Beispiel verweigert werden, sodass sie bei einem API-Aufruf niemals vom Server akzeptiert werden. Eine noch bessere Idee könnte darin bestehen, standardmäßig jede Eigenschaft zu verweigern und dann bestimmte, nicht vertrauliche Eigenschaften zuzulassen, die Benutzer aktualisieren oder ändern können sollen. Wenn Sie eines dieser Dinge tun, können Sie APIs sperren und die Sicherheitslücke durch Massenzuweisungen in Ihrer Umgebung beseitigen.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

查看资源
查看资源

Die Sicherheitslücke bei Massenzuweisungen entstand, weil viele moderne Frameworks Entwickler dazu ermutigten, Funktionen zu verwenden, die Eingaben von Clients automatisch in Codevariablen und interne Objekte binden.

想了解更多吗?

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

了解更多

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

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

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 标志

Die Sicherheitslücke bei Massenzuweisungen entstand, weil viele moderne Frameworks Entwickler dazu ermutigen, Funktionen zu verwenden, die Eingaben von Clients automatisch in Codevariablen und interne Objekte binden. Dies wird getan, um den Code zu vereinfachen und Operationen zu beschleunigen.

Angreifer können diese Methode verwenden, um Änderungen an Objekteigenschaften zu erzwingen, die niemals von einem Client aktualisiert werden sollten. Normalerweise führt dies zu unternehmensspezifischen Problemen, z. B. wenn ein Benutzer sich selbst Administratorrechte zuweist, anstatt eine Website herunterzufahren oder Unternehmensgeheimnisse zu stehlen. Angreifer müssen auch eine Vorstellung von den Beziehungen zwischen Objekten und der Geschäftslogik der Anwendung haben, die sie ausnutzen.

Nichts davon macht die Sicherheitslücke durch Massenzuweisungen in den Händen eines cleveren und böswilligen Benutzers jedoch weniger gefährlich.

Bevor wir mit der vollständigen Anleitung beginnen, spielen Sie unsere spielerische Herausforderung und sehen Sie, wie es Ihnen geht:

Wie können Angreifer die Sicherheitslücke bei Massenzuweisungen ausnutzen?

Das von OWASP vorgeschlagene (und von uns leicht modifizierte) Szenario geht von einer Mitfahranwendung aus, die verschiedene Eigenschaften enthält, die mithilfe von Massenzuweisungen an Objekte im Code gebunden sind. Dazu gehören berechtigungsbezogene Eigenschaften, die Benutzer ändern können, und prozessabhängige Eigenschaften, die nur intern von der Anwendung festgelegt werden sollten. Beide verwenden Massenzuweisungen, um Eigenschaften an Objekte zu binden.

In diesem Szenario ermöglicht die Mitfahr-App Benutzern, ihre Profile zu aktualisieren, wie es in vielen benutzerorientierten Anwendungen üblich ist. Dies erfolgt mithilfe eines an PUT gesendeten API-Aufrufs, der das folgende JSON-Objekt zurückgibt:

{"user_name“: „SneakySnake“, „Seite“: 17, „is_admin“: falsch}

Da der Angreifer, in diesem Fall Mr. SneakySnake, die Beziehung zwischen den Eigenschaften und den Objekten herausgefunden hat, kann er seine ursprüngliche Anfrage zur Aktualisierung seines Profils mit der folgenden Zeichenfolge erneut senden:

{"user_name“: „SneakySnake“, „Alter“ :24, „is_admin“: true}

Da der Endpunkt anfällig für Massenzuweisungen ist, akzeptiert er die neue Eingabe als gültig. Unser Hacker hat seinem Profil nicht nur ein paar Jahre hinzugefügt, sondern sich auch selbst Administratorrechte zugewiesen.

Beseitigung der Sicherheitslücke bei Massenzuweisungen

So praktisch es auch sein mag, die Massenzuweisungsfunktion in einigen Frameworks zu verwenden, Sie sollten dies vermeiden, wenn Sie Ihre APIs schützen möchten. Analysieren Sie stattdessen die Anforderungswerte, anstatt sie direkt an ein Objekt zu binden. Sie können auch ein reduziertes Datenübertragungsobjekt verwenden, das fast den gleichen Komfort bietet wie das direkte Binden an das Objekt selbst, nur ohne das damit verbundene Risiko.

Als zusätzliche Vorsichtsmaßnahme könnten vertrauliche Eigenschaften wie Administratorrechte aus dem obigen Beispiel verweigert werden, sodass sie bei einem API-Aufruf niemals vom Server akzeptiert werden. Eine noch bessere Idee könnte darin bestehen, standardmäßig jede Eigenschaft zu verweigern und dann bestimmte, nicht vertrauliche Eigenschaften zuzulassen, die Benutzer aktualisieren oder ändern können sollen. Wenn Sie eines dieser Dinge tun, können Sie APIs sperren und die Sicherheitslücke durch Massenzuweisungen in Ihrer Umgebung beseitigen.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

查看资源
查看资源

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

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

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

Die Sicherheitslücke bei Massenzuweisungen entstand, weil viele moderne Frameworks Entwickler dazu ermutigen, Funktionen zu verwenden, die Eingaben von Clients automatisch in Codevariablen und interne Objekte binden. Dies wird getan, um den Code zu vereinfachen und Operationen zu beschleunigen.

Angreifer können diese Methode verwenden, um Änderungen an Objekteigenschaften zu erzwingen, die niemals von einem Client aktualisiert werden sollten. Normalerweise führt dies zu unternehmensspezifischen Problemen, z. B. wenn ein Benutzer sich selbst Administratorrechte zuweist, anstatt eine Website herunterzufahren oder Unternehmensgeheimnisse zu stehlen. Angreifer müssen auch eine Vorstellung von den Beziehungen zwischen Objekten und der Geschäftslogik der Anwendung haben, die sie ausnutzen.

Nichts davon macht die Sicherheitslücke durch Massenzuweisungen in den Händen eines cleveren und böswilligen Benutzers jedoch weniger gefährlich.

Bevor wir mit der vollständigen Anleitung beginnen, spielen Sie unsere spielerische Herausforderung und sehen Sie, wie es Ihnen geht:

Wie können Angreifer die Sicherheitslücke bei Massenzuweisungen ausnutzen?

Das von OWASP vorgeschlagene (und von uns leicht modifizierte) Szenario geht von einer Mitfahranwendung aus, die verschiedene Eigenschaften enthält, die mithilfe von Massenzuweisungen an Objekte im Code gebunden sind. Dazu gehören berechtigungsbezogene Eigenschaften, die Benutzer ändern können, und prozessabhängige Eigenschaften, die nur intern von der Anwendung festgelegt werden sollten. Beide verwenden Massenzuweisungen, um Eigenschaften an Objekte zu binden.

In diesem Szenario ermöglicht die Mitfahr-App Benutzern, ihre Profile zu aktualisieren, wie es in vielen benutzerorientierten Anwendungen üblich ist. Dies erfolgt mithilfe eines an PUT gesendeten API-Aufrufs, der das folgende JSON-Objekt zurückgibt:

{"user_name“: „SneakySnake“, „Seite“: 17, „is_admin“: falsch}

Da der Angreifer, in diesem Fall Mr. SneakySnake, die Beziehung zwischen den Eigenschaften und den Objekten herausgefunden hat, kann er seine ursprüngliche Anfrage zur Aktualisierung seines Profils mit der folgenden Zeichenfolge erneut senden:

{"user_name“: „SneakySnake“, „Alter“ :24, „is_admin“: true}

Da der Endpunkt anfällig für Massenzuweisungen ist, akzeptiert er die neue Eingabe als gültig. Unser Hacker hat seinem Profil nicht nur ein paar Jahre hinzugefügt, sondern sich auch selbst Administratorrechte zugewiesen.

Beseitigung der Sicherheitslücke bei Massenzuweisungen

So praktisch es auch sein mag, die Massenzuweisungsfunktion in einigen Frameworks zu verwenden, Sie sollten dies vermeiden, wenn Sie Ihre APIs schützen möchten. Analysieren Sie stattdessen die Anforderungswerte, anstatt sie direkt an ein Objekt zu binden. Sie können auch ein reduziertes Datenübertragungsobjekt verwenden, das fast den gleichen Komfort bietet wie das direkte Binden an das Objekt selbst, nur ohne das damit verbundene Risiko.

Als zusätzliche Vorsichtsmaßnahme könnten vertrauliche Eigenschaften wie Administratorrechte aus dem obigen Beispiel verweigert werden, sodass sie bei einem API-Aufruf niemals vom Server akzeptiert werden. Eine noch bessere Idee könnte darin bestehen, standardmäßig jede Eigenschaft zu verweigern und dann bestimmte, nicht vertrauliche Eigenschaften zuzulassen, die Benutzer aktualisieren oder ändern können sollen. Wenn Sie eines dieser Dinge tun, können Sie APIs sperren und die Sicherheitslücke durch Massenzuweisungen in Ihrer Umgebung beseitigen.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

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

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

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

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

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

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 标志

Die Sicherheitslücke bei Massenzuweisungen entstand, weil viele moderne Frameworks Entwickler dazu ermutigen, Funktionen zu verwenden, die Eingaben von Clients automatisch in Codevariablen und interne Objekte binden. Dies wird getan, um den Code zu vereinfachen und Operationen zu beschleunigen.

Angreifer können diese Methode verwenden, um Änderungen an Objekteigenschaften zu erzwingen, die niemals von einem Client aktualisiert werden sollten. Normalerweise führt dies zu unternehmensspezifischen Problemen, z. B. wenn ein Benutzer sich selbst Administratorrechte zuweist, anstatt eine Website herunterzufahren oder Unternehmensgeheimnisse zu stehlen. Angreifer müssen auch eine Vorstellung von den Beziehungen zwischen Objekten und der Geschäftslogik der Anwendung haben, die sie ausnutzen.

Nichts davon macht die Sicherheitslücke durch Massenzuweisungen in den Händen eines cleveren und böswilligen Benutzers jedoch weniger gefährlich.

Bevor wir mit der vollständigen Anleitung beginnen, spielen Sie unsere spielerische Herausforderung und sehen Sie, wie es Ihnen geht:

Wie können Angreifer die Sicherheitslücke bei Massenzuweisungen ausnutzen?

Das von OWASP vorgeschlagene (und von uns leicht modifizierte) Szenario geht von einer Mitfahranwendung aus, die verschiedene Eigenschaften enthält, die mithilfe von Massenzuweisungen an Objekte im Code gebunden sind. Dazu gehören berechtigungsbezogene Eigenschaften, die Benutzer ändern können, und prozessabhängige Eigenschaften, die nur intern von der Anwendung festgelegt werden sollten. Beide verwenden Massenzuweisungen, um Eigenschaften an Objekte zu binden.

In diesem Szenario ermöglicht die Mitfahr-App Benutzern, ihre Profile zu aktualisieren, wie es in vielen benutzerorientierten Anwendungen üblich ist. Dies erfolgt mithilfe eines an PUT gesendeten API-Aufrufs, der das folgende JSON-Objekt zurückgibt:

{"user_name“: „SneakySnake“, „Seite“: 17, „is_admin“: falsch}

Da der Angreifer, in diesem Fall Mr. SneakySnake, die Beziehung zwischen den Eigenschaften und den Objekten herausgefunden hat, kann er seine ursprüngliche Anfrage zur Aktualisierung seines Profils mit der folgenden Zeichenfolge erneut senden:

{"user_name“: „SneakySnake“, „Alter“ :24, „is_admin“: true}

Da der Endpunkt anfällig für Massenzuweisungen ist, akzeptiert er die neue Eingabe als gültig. Unser Hacker hat seinem Profil nicht nur ein paar Jahre hinzugefügt, sondern sich auch selbst Administratorrechte zugewiesen.

Beseitigung der Sicherheitslücke bei Massenzuweisungen

So praktisch es auch sein mag, die Massenzuweisungsfunktion in einigen Frameworks zu verwenden, Sie sollten dies vermeiden, wenn Sie Ihre APIs schützen möchten. Analysieren Sie stattdessen die Anforderungswerte, anstatt sie direkt an ein Objekt zu binden. Sie können auch ein reduziertes Datenübertragungsobjekt verwenden, das fast den gleichen Komfort bietet wie das direkte Binden an das Objekt selbst, nur ohne das damit verbundene Risiko.

Als zusätzliche Vorsichtsmaßnahme könnten vertrauliche Eigenschaften wie Administratorrechte aus dem obigen Beispiel verweigert werden, sodass sie bei einem API-Aufruf niemals vom Server akzeptiert werden. Eine noch bessere Idee könnte darin bestehen, standardmäßig jede Eigenschaft zu verweigern und dann bestimmte, nicht vertrauliche Eigenschaften zuzulassen, die Benutzer aktualisieren oder ändern können sollen. Wenn Sie eines dieser Dinge tun, können Sie APIs sperren und die Sicherheitslücke durch Massenzuweisungen in Ihrer Umgebung beseitigen.

Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere eine Demo der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

目录

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

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

了解更多

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

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

入门资源

更多文章
资源中心

入门资源

更多文章