
Coder Conquer Security OWASP Top 10 API-Serie — Massenzuweisung
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 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示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。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。


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 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 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
查看报告预约演示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。
马蒂亚斯拥有根特大学的计算机工程博士学位,在那里他研究了通过程序混淆来隐藏应用程序的内部工作的应用安全。
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.
目录
Matias Madou, Ph.D.是一位安全专家、研究员和CTO,也是Secure Code Warrior 的联合创始人。Matias在根特大学获得了应用安全的博士学位,主要研究静态分析解决方案。后来他加入了美国的Fortify公司,在那里他意识到,仅仅检测代码问题而不帮助开发人员编写安全代码是不够的。这激发了他开发产品的热情,帮助开发人员,减轻安全的负担,并超越客户的期望。当他不在办公桌前作为Awesome团队的一员时,他喜欢站在舞台上,在包括RSA会议、BlackHat和DefCon等会议上发表演讲。

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



%20(1).avif)
.avif)
