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

„Links von links“ beginnen: Ist Sicherheitscode immer Qualitätscode?

马蒂亚斯-马杜博士
发布于 2021 年 2 月 10 日
最后更新于 2026年3月9日

Eine Version dieses Artikels erschien in Dunkle Lektüre. Es wurde hier aktualisiert und syndiziert.

Wenn ich mit Entwicklern über Sicherheit spreche, lautet eines meiner Mantras, dass „der einzige Qualitätscode der sichere Code ist“. Das ist immer noch wahr; wir sind vielleicht einer Katastrophe entkommen, als anfällige Software in den 90er Jahren in der Wildnis herumlief, aber heute ist es das Risiko nicht wert. Viele haben im Laufe der Jahre hart daran gearbeitet, Entwicklern eine sicherheitsbewusste Denkweise zu vermitteln, und auf diese Weise hoffentlich Sicherheit zum Synonym für Qualität gemacht, wenn es um die Selbsteinschätzung ihres Codes geht.

Nach reiflicher Überlegung (und einigen Diskussionen unter meinen Kollegen) wird das Konzept jedoch möglicherweise zu stark vereinfacht. Es ist durchaus möglich, Code zu erstellen, der in der Tat sicher ist, aber Anzeichen einer neuen Entwicklungstechnik oder andere Problembereiche aufweist, die ihn nicht ideal machen.

Unsere Branche spricht ausführlich über den Begriff „Linksverschiebung“. Meiner Meinung nach geht es vor allem darum, links zu beginnen, indem die Ingenieurskohorten in die Lage versetzt werden, die Verantwortung für Sicherheit gemeinsam zu übernehmen (was ein Aspekt der Qualität ist), und ihnen die Möglichkeit zu geben, häufig auftretende Sicherheitslücken mit ihren (wörtlichen) Fingerspitzen zu beseitigen. Angesichts dieses aktuellen Rätsels scheint es jedoch, dass die Grenzen noch ein wenig weiter verschoben werden müssen.

Code mit einem bestimmten Qualitätsniveau ist per Definition auch sicher, aber jeder sichere Code ist nicht unbedingt von guter Qualität. Ist das Starten von „links von links“ die Formel, um reine sichere Codierungsstandards zu gewährleisten?

Wie sieht ein Sicherheitscode von „schlechter Qualität“ aus?

Lassen Sie uns die Lupe über diesen Codeausschnitt legen:

Wenn wir diesen Code aus Sicherheitsgründen analysieren, ist dieses Snippet in der Tat sicher und kein Einstiegspunkt für einen Angreifer, um eine SQL Injection-Schwachstelle auszunutzen.

Ist es ein Beispiel für hochwertigen Code? Leider nicht wirklich. Eine einfache Änderung des Arguments von einem Minze (Heger) zu einem Schnur Wert ermöglicht eine freie Benutzereingabe, um die Abfrage zu manipulieren, im Gegensatz zu einer Zahl, die dies nicht kann. Diese Änderung — oder ein zufälliges Kopieren und Einfügen der Zeichenfolge sql von einer anderen Stelle — schafft sofort eine Umgebung, in der SQL-Injection-Schwachstellen mit allen damit verbundenen Risiken möglich sind:

Die Sicherheitsmaßnahmen hatten hier einen sehr begrenzten Anwendungsbereich, wohingegen ein gründlicherer (oder erfahrener) Entwickler möglicherweise einen anderen Ansatz gewählt und die Auswirkungen einer ineffizienten Argumentationsstruktur berücksichtigt hat. Ein solcher Code ist nicht nur eine schlechte Praxis, er ist auch ein schlechtes Beispiel für andere in der Entwicklungskohorte.

Die Software „Triple Threat“: Form, Funktion, festungsartig?

Eine „dreifache Bedrohung“ in der Unterhaltungsindustrie ist eine Person, die mit ebenso hohem Können schauspielern, tanzen und singen kann. Sie sind die Menschen, die bei jedem Vorsingen gefürchtet und beneidet werden, und sie sind die Einhörner eines ohnehin schon hart umkämpften Raums. Jede Branche hat ihre eigene Version eines erstklassigen, außergewöhnlichen Beispiels ihrer Produkte und Dienstleistungen, wobei Software keine Ausnahme bildet.

Wenn wir an drei Schlüsselelemente in Anwendungen denken, die bei gleicher (hoher) Qualität schwer auszubalancieren sind, könnten das Funktionalität/Eleganz plus uneingeschränkte Sicherheit sowie Wirtschaftlichkeit sein, wenn man die erforderliche Liefergeschwindigkeit berücksichtigt. Nun, dieses letzte Merkmal ist zweifellos ein entscheidender Faktor dafür, wie gut die anderen beiden Optionen angewendet werden, und es kann ein Katalysator dafür sein, dass die Gesamtqualität im Laufe der Zeit abnimmt.

Muss jedoch die gesamte Software wie Hugh Jackman funktionieren, oder können wir mit Nicolas Cage durchkommen? Sagen wir es so: Wenn du Wolverine in dein Team holen kannst, dann gibst du dein Bestes.

Martin Fowler stellte die Frage, Ist hohe Qualität die Kosten wert? in der Softwareentwicklung und kam zu dem Schluss, dass es sich nicht nur „gelohnt“ hat, sondern im Laufe der Zeit sogar billiger wurde. Die meisten Benutzer werden nicht unter die Haube schauen, um zu beurteilen, ob der Code ein Chaos ist oder ob Sicherheit genauso wichtig für alles andere gemacht wurde. Diejenigen, die die Tools verwenden, werden jedoch wertvolle Zeit damit verschwenden, schlampigen Code zu überarbeiten, um neue Funktionen hinzuzufügen, oder große Teile des Projekts zu durchsuchen, um zu verstehen, was vor sich geht, oder, im schlimmsten Fall: das Beheben einer Sicherheitslücke, die vom AppSec-Team zurückgekehrt ist und die Produktion verzögert hat. Jetzt Zeit damit zu verbringen, Code sowohl sicher als auch qualitativ hochwertig zu machen, erspart eine Menge zukünftiger Herzschmerz, ganz zu schweigen von den Kosten, die entstehen, wenn schlecht ausgeführte Arbeit enträtselt wird.

Erfahrene sicherheitsbewusste Entwickler schreiben Code, der ihre kreative, problemlösende Vision bei der Bereitstellung von Funktionen beibehält. Dabei wird darauf geachtet, die üblichen Sicherheitslücken zu beseitigen, die Ingenieure in ihrer Phase des Prozesses kontrollieren können. Sicherer Code ist für sich genommen nicht besonders effektiv. Aus diesem Grund trägt die Idee, „links von links“ zu beginnen, dazu bei, eine Sicherheitskultur zu fördern, die für Entwickler eine Selbstverständlichkeit ist und die in ihre Fähigkeit integriert ist, erstaunliche Funktionen mit reduziertem Risiko bereitzustellen.

Für eine sichere Benutzererfahrung ist es wichtig, „links von links“ zu beginnen.

Sicherheit spielt bei der Benutzererfahrung von Software seit langem eine wichtige Rolle, führte aber eindeutig zu gemischten Erfolgen. Fehlkonfigurationen im Sicherheitsbereich wurden berücksichtigt 21% der Cloud-basierten Datenschutzverletzungen im vergangenen Jahr, als Amateurfehler wie das Speichern von Passwörtern im Klartext zu schwerwiegenden Produktivitäts-, Umsatz- und Kundenvertrauensverlusten für die betroffenen Unternehmen führten.

Das, und die Benutzer selbst können ihr eigener schlimmster Feind sein, wenn es darum geht, ihre eigenen Daten zu schützen. Viel zu viele Leute verwenden immer noch „Passwort“ als Passwort oder verwenden dieselbe Kombination für mehrere vertrauliche Konten.

Ich kenne keinen Entwickler, der mit der Faust Luft macht, wenn ihnen gesagt wird, dass sie an einem Anmeldebildschirm arbeiten müssen, und das ist kein Wunder: Es ist ein empfindliches Gleichgewicht, einen Sicherheitsfluss zu entwerfen, der robust und funktional ist und in dem die Benutzer so navigieren können, wie es für sie sinnvoll ist, mit der geringsten Störung.

Wenn Sie zu viele komplexe Schritte und Einschränkungen einplanen, schalten Benutzer möglicherweise ab, um nie wieder zurückzukehren (eine Katastrophe für eine neue App), machen Sie es zu verwirrend, und Sie könnten das Support-Team am Ende kollektiv verunsichern, wenn sie Anfragen von Benutzern beantworten, die versuchen, auf ihre Konten zuzugreifen. Wenn Sie es zu einfach machen, versagen Sie irgendwie im Sicherheitsbereich.

Eine erfolgreiche sichere Benutzererfahrung muss strenge Sicherheitsvorkehrungen in einen sinnvollen Ablauf integrieren, der auf eine Weise präsentiert wird, die nicht von allem anderen ablenkt, was an der Software überzeugend ist. Sie können sicherlich das Ziel erreichen, eine sichere Anmeldefunktion zu programmieren, indem Sie alle möglichen komplexen Passwortanforderungen, CAPTCHA, Mini-Bosse und vier Wellen von Zombies eingeben, aber wenn es ein totales Durcheinander ist, das Benutzer abschreckt, verfehlt es das Ziel.

Legen Sie den Grundstein für Software-Exzellenz.

Da ich selbst Entwickler bin, weiß ich, dass die überwiegende Mehrheit von uns stolz auf unsere Arbeit ist und das Richtige tun möchte. Lästige Hindernisse wie Zeitbeschränkungen, plötzliche Änderungen des aktuellen Ziels oder dringende Hotfixes können den Arbeitsablauf stören und zu Fehlern führen, aber die harte Wahrheit ist, dass viele Softwareentwickler nicht auf Erfolg vorbereitet sind.

„Links von links“ zu beginnen ist ein Konzept, bei dem die Entwickler an erster Stelle stehen, und Unternehmen müssen ernsthaft daran arbeiten, ihre technische Kohorte zu verbessern. Sicherheitsbewusste Entwickler sind Gold wert, und Unterstützung in Form von Schulungen, der Bereitstellung der richtigen Tools und der Möglichkeit, von erfahreneren Entwicklern betreut zu werden, wird eine Umgebung fördern, in der Code mit einer sicherheitsorientierten Denkweise erstellt wird, mit der Präzision und Liebe zum Detail, die erforderlich sind, um Software auf die nächste Stufe zu heben.

Bist du bereit, das sichere Codierungsfeuer in dir selbst zu entfachen? Stellen Sie sich der Herausforderung.

查看资源
查看资源

Code mit einem bestimmten Qualitätsniveau ist per Definition auch sicher, aber jeder sichere Code ist nicht unbedingt von guter Qualität. Ist das Starten von „links von links“ die Formel, um reine sichere Codierungsstandards zu gewährleisten?

想了解更多吗?

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

了解更多

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

预约演示
分享到:
领英品牌社交x 标志
作者
马蒂亚斯-马杜博士
2021年2月10日出版

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

Eine Version dieses Artikels erschien in Dunkle Lektüre. Es wurde hier aktualisiert und syndiziert.

Wenn ich mit Entwicklern über Sicherheit spreche, lautet eines meiner Mantras, dass „der einzige Qualitätscode der sichere Code ist“. Das ist immer noch wahr; wir sind vielleicht einer Katastrophe entkommen, als anfällige Software in den 90er Jahren in der Wildnis herumlief, aber heute ist es das Risiko nicht wert. Viele haben im Laufe der Jahre hart daran gearbeitet, Entwicklern eine sicherheitsbewusste Denkweise zu vermitteln, und auf diese Weise hoffentlich Sicherheit zum Synonym für Qualität gemacht, wenn es um die Selbsteinschätzung ihres Codes geht.

Nach reiflicher Überlegung (und einigen Diskussionen unter meinen Kollegen) wird das Konzept jedoch möglicherweise zu stark vereinfacht. Es ist durchaus möglich, Code zu erstellen, der in der Tat sicher ist, aber Anzeichen einer neuen Entwicklungstechnik oder andere Problembereiche aufweist, die ihn nicht ideal machen.

Unsere Branche spricht ausführlich über den Begriff „Linksverschiebung“. Meiner Meinung nach geht es vor allem darum, links zu beginnen, indem die Ingenieurskohorten in die Lage versetzt werden, die Verantwortung für Sicherheit gemeinsam zu übernehmen (was ein Aspekt der Qualität ist), und ihnen die Möglichkeit zu geben, häufig auftretende Sicherheitslücken mit ihren (wörtlichen) Fingerspitzen zu beseitigen. Angesichts dieses aktuellen Rätsels scheint es jedoch, dass die Grenzen noch ein wenig weiter verschoben werden müssen.

Code mit einem bestimmten Qualitätsniveau ist per Definition auch sicher, aber jeder sichere Code ist nicht unbedingt von guter Qualität. Ist das Starten von „links von links“ die Formel, um reine sichere Codierungsstandards zu gewährleisten?

Wie sieht ein Sicherheitscode von „schlechter Qualität“ aus?

Lassen Sie uns die Lupe über diesen Codeausschnitt legen:

Wenn wir diesen Code aus Sicherheitsgründen analysieren, ist dieses Snippet in der Tat sicher und kein Einstiegspunkt für einen Angreifer, um eine SQL Injection-Schwachstelle auszunutzen.

Ist es ein Beispiel für hochwertigen Code? Leider nicht wirklich. Eine einfache Änderung des Arguments von einem Minze (Heger) zu einem Schnur Wert ermöglicht eine freie Benutzereingabe, um die Abfrage zu manipulieren, im Gegensatz zu einer Zahl, die dies nicht kann. Diese Änderung — oder ein zufälliges Kopieren und Einfügen der Zeichenfolge sql von einer anderen Stelle — schafft sofort eine Umgebung, in der SQL-Injection-Schwachstellen mit allen damit verbundenen Risiken möglich sind:

Die Sicherheitsmaßnahmen hatten hier einen sehr begrenzten Anwendungsbereich, wohingegen ein gründlicherer (oder erfahrener) Entwickler möglicherweise einen anderen Ansatz gewählt und die Auswirkungen einer ineffizienten Argumentationsstruktur berücksichtigt hat. Ein solcher Code ist nicht nur eine schlechte Praxis, er ist auch ein schlechtes Beispiel für andere in der Entwicklungskohorte.

Die Software „Triple Threat“: Form, Funktion, festungsartig?

Eine „dreifache Bedrohung“ in der Unterhaltungsindustrie ist eine Person, die mit ebenso hohem Können schauspielern, tanzen und singen kann. Sie sind die Menschen, die bei jedem Vorsingen gefürchtet und beneidet werden, und sie sind die Einhörner eines ohnehin schon hart umkämpften Raums. Jede Branche hat ihre eigene Version eines erstklassigen, außergewöhnlichen Beispiels ihrer Produkte und Dienstleistungen, wobei Software keine Ausnahme bildet.

Wenn wir an drei Schlüsselelemente in Anwendungen denken, die bei gleicher (hoher) Qualität schwer auszubalancieren sind, könnten das Funktionalität/Eleganz plus uneingeschränkte Sicherheit sowie Wirtschaftlichkeit sein, wenn man die erforderliche Liefergeschwindigkeit berücksichtigt. Nun, dieses letzte Merkmal ist zweifellos ein entscheidender Faktor dafür, wie gut die anderen beiden Optionen angewendet werden, und es kann ein Katalysator dafür sein, dass die Gesamtqualität im Laufe der Zeit abnimmt.

Muss jedoch die gesamte Software wie Hugh Jackman funktionieren, oder können wir mit Nicolas Cage durchkommen? Sagen wir es so: Wenn du Wolverine in dein Team holen kannst, dann gibst du dein Bestes.

Martin Fowler stellte die Frage, Ist hohe Qualität die Kosten wert? in der Softwareentwicklung und kam zu dem Schluss, dass es sich nicht nur „gelohnt“ hat, sondern im Laufe der Zeit sogar billiger wurde. Die meisten Benutzer werden nicht unter die Haube schauen, um zu beurteilen, ob der Code ein Chaos ist oder ob Sicherheit genauso wichtig für alles andere gemacht wurde. Diejenigen, die die Tools verwenden, werden jedoch wertvolle Zeit damit verschwenden, schlampigen Code zu überarbeiten, um neue Funktionen hinzuzufügen, oder große Teile des Projekts zu durchsuchen, um zu verstehen, was vor sich geht, oder, im schlimmsten Fall: das Beheben einer Sicherheitslücke, die vom AppSec-Team zurückgekehrt ist und die Produktion verzögert hat. Jetzt Zeit damit zu verbringen, Code sowohl sicher als auch qualitativ hochwertig zu machen, erspart eine Menge zukünftiger Herzschmerz, ganz zu schweigen von den Kosten, die entstehen, wenn schlecht ausgeführte Arbeit enträtselt wird.

Erfahrene sicherheitsbewusste Entwickler schreiben Code, der ihre kreative, problemlösende Vision bei der Bereitstellung von Funktionen beibehält. Dabei wird darauf geachtet, die üblichen Sicherheitslücken zu beseitigen, die Ingenieure in ihrer Phase des Prozesses kontrollieren können. Sicherer Code ist für sich genommen nicht besonders effektiv. Aus diesem Grund trägt die Idee, „links von links“ zu beginnen, dazu bei, eine Sicherheitskultur zu fördern, die für Entwickler eine Selbstverständlichkeit ist und die in ihre Fähigkeit integriert ist, erstaunliche Funktionen mit reduziertem Risiko bereitzustellen.

Für eine sichere Benutzererfahrung ist es wichtig, „links von links“ zu beginnen.

Sicherheit spielt bei der Benutzererfahrung von Software seit langem eine wichtige Rolle, führte aber eindeutig zu gemischten Erfolgen. Fehlkonfigurationen im Sicherheitsbereich wurden berücksichtigt 21% der Cloud-basierten Datenschutzverletzungen im vergangenen Jahr, als Amateurfehler wie das Speichern von Passwörtern im Klartext zu schwerwiegenden Produktivitäts-, Umsatz- und Kundenvertrauensverlusten für die betroffenen Unternehmen führten.

Das, und die Benutzer selbst können ihr eigener schlimmster Feind sein, wenn es darum geht, ihre eigenen Daten zu schützen. Viel zu viele Leute verwenden immer noch „Passwort“ als Passwort oder verwenden dieselbe Kombination für mehrere vertrauliche Konten.

Ich kenne keinen Entwickler, der mit der Faust Luft macht, wenn ihnen gesagt wird, dass sie an einem Anmeldebildschirm arbeiten müssen, und das ist kein Wunder: Es ist ein empfindliches Gleichgewicht, einen Sicherheitsfluss zu entwerfen, der robust und funktional ist und in dem die Benutzer so navigieren können, wie es für sie sinnvoll ist, mit der geringsten Störung.

Wenn Sie zu viele komplexe Schritte und Einschränkungen einplanen, schalten Benutzer möglicherweise ab, um nie wieder zurückzukehren (eine Katastrophe für eine neue App), machen Sie es zu verwirrend, und Sie könnten das Support-Team am Ende kollektiv verunsichern, wenn sie Anfragen von Benutzern beantworten, die versuchen, auf ihre Konten zuzugreifen. Wenn Sie es zu einfach machen, versagen Sie irgendwie im Sicherheitsbereich.

Eine erfolgreiche sichere Benutzererfahrung muss strenge Sicherheitsvorkehrungen in einen sinnvollen Ablauf integrieren, der auf eine Weise präsentiert wird, die nicht von allem anderen ablenkt, was an der Software überzeugend ist. Sie können sicherlich das Ziel erreichen, eine sichere Anmeldefunktion zu programmieren, indem Sie alle möglichen komplexen Passwortanforderungen, CAPTCHA, Mini-Bosse und vier Wellen von Zombies eingeben, aber wenn es ein totales Durcheinander ist, das Benutzer abschreckt, verfehlt es das Ziel.

Legen Sie den Grundstein für Software-Exzellenz.

Da ich selbst Entwickler bin, weiß ich, dass die überwiegende Mehrheit von uns stolz auf unsere Arbeit ist und das Richtige tun möchte. Lästige Hindernisse wie Zeitbeschränkungen, plötzliche Änderungen des aktuellen Ziels oder dringende Hotfixes können den Arbeitsablauf stören und zu Fehlern führen, aber die harte Wahrheit ist, dass viele Softwareentwickler nicht auf Erfolg vorbereitet sind.

„Links von links“ zu beginnen ist ein Konzept, bei dem die Entwickler an erster Stelle stehen, und Unternehmen müssen ernsthaft daran arbeiten, ihre technische Kohorte zu verbessern. Sicherheitsbewusste Entwickler sind Gold wert, und Unterstützung in Form von Schulungen, der Bereitstellung der richtigen Tools und der Möglichkeit, von erfahreneren Entwicklern betreut zu werden, wird eine Umgebung fördern, in der Code mit einer sicherheitsorientierten Denkweise erstellt wird, mit der Präzision und Liebe zum Detail, die erforderlich sind, um Software auf die nächste Stufe zu heben.

Bist du bereit, das sichere Codierungsfeuer in dir selbst zu entfachen? Stellen Sie sich der Herausforderung.

查看资源
查看资源

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

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

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

Eine Version dieses Artikels erschien in Dunkle Lektüre. Es wurde hier aktualisiert und syndiziert.

Wenn ich mit Entwicklern über Sicherheit spreche, lautet eines meiner Mantras, dass „der einzige Qualitätscode der sichere Code ist“. Das ist immer noch wahr; wir sind vielleicht einer Katastrophe entkommen, als anfällige Software in den 90er Jahren in der Wildnis herumlief, aber heute ist es das Risiko nicht wert. Viele haben im Laufe der Jahre hart daran gearbeitet, Entwicklern eine sicherheitsbewusste Denkweise zu vermitteln, und auf diese Weise hoffentlich Sicherheit zum Synonym für Qualität gemacht, wenn es um die Selbsteinschätzung ihres Codes geht.

Nach reiflicher Überlegung (und einigen Diskussionen unter meinen Kollegen) wird das Konzept jedoch möglicherweise zu stark vereinfacht. Es ist durchaus möglich, Code zu erstellen, der in der Tat sicher ist, aber Anzeichen einer neuen Entwicklungstechnik oder andere Problembereiche aufweist, die ihn nicht ideal machen.

Unsere Branche spricht ausführlich über den Begriff „Linksverschiebung“. Meiner Meinung nach geht es vor allem darum, links zu beginnen, indem die Ingenieurskohorten in die Lage versetzt werden, die Verantwortung für Sicherheit gemeinsam zu übernehmen (was ein Aspekt der Qualität ist), und ihnen die Möglichkeit zu geben, häufig auftretende Sicherheitslücken mit ihren (wörtlichen) Fingerspitzen zu beseitigen. Angesichts dieses aktuellen Rätsels scheint es jedoch, dass die Grenzen noch ein wenig weiter verschoben werden müssen.

Code mit einem bestimmten Qualitätsniveau ist per Definition auch sicher, aber jeder sichere Code ist nicht unbedingt von guter Qualität. Ist das Starten von „links von links“ die Formel, um reine sichere Codierungsstandards zu gewährleisten?

Wie sieht ein Sicherheitscode von „schlechter Qualität“ aus?

Lassen Sie uns die Lupe über diesen Codeausschnitt legen:

Wenn wir diesen Code aus Sicherheitsgründen analysieren, ist dieses Snippet in der Tat sicher und kein Einstiegspunkt für einen Angreifer, um eine SQL Injection-Schwachstelle auszunutzen.

Ist es ein Beispiel für hochwertigen Code? Leider nicht wirklich. Eine einfache Änderung des Arguments von einem Minze (Heger) zu einem Schnur Wert ermöglicht eine freie Benutzereingabe, um die Abfrage zu manipulieren, im Gegensatz zu einer Zahl, die dies nicht kann. Diese Änderung — oder ein zufälliges Kopieren und Einfügen der Zeichenfolge sql von einer anderen Stelle — schafft sofort eine Umgebung, in der SQL-Injection-Schwachstellen mit allen damit verbundenen Risiken möglich sind:

Die Sicherheitsmaßnahmen hatten hier einen sehr begrenzten Anwendungsbereich, wohingegen ein gründlicherer (oder erfahrener) Entwickler möglicherweise einen anderen Ansatz gewählt und die Auswirkungen einer ineffizienten Argumentationsstruktur berücksichtigt hat. Ein solcher Code ist nicht nur eine schlechte Praxis, er ist auch ein schlechtes Beispiel für andere in der Entwicklungskohorte.

Die Software „Triple Threat“: Form, Funktion, festungsartig?

Eine „dreifache Bedrohung“ in der Unterhaltungsindustrie ist eine Person, die mit ebenso hohem Können schauspielern, tanzen und singen kann. Sie sind die Menschen, die bei jedem Vorsingen gefürchtet und beneidet werden, und sie sind die Einhörner eines ohnehin schon hart umkämpften Raums. Jede Branche hat ihre eigene Version eines erstklassigen, außergewöhnlichen Beispiels ihrer Produkte und Dienstleistungen, wobei Software keine Ausnahme bildet.

Wenn wir an drei Schlüsselelemente in Anwendungen denken, die bei gleicher (hoher) Qualität schwer auszubalancieren sind, könnten das Funktionalität/Eleganz plus uneingeschränkte Sicherheit sowie Wirtschaftlichkeit sein, wenn man die erforderliche Liefergeschwindigkeit berücksichtigt. Nun, dieses letzte Merkmal ist zweifellos ein entscheidender Faktor dafür, wie gut die anderen beiden Optionen angewendet werden, und es kann ein Katalysator dafür sein, dass die Gesamtqualität im Laufe der Zeit abnimmt.

Muss jedoch die gesamte Software wie Hugh Jackman funktionieren, oder können wir mit Nicolas Cage durchkommen? Sagen wir es so: Wenn du Wolverine in dein Team holen kannst, dann gibst du dein Bestes.

Martin Fowler stellte die Frage, Ist hohe Qualität die Kosten wert? in der Softwareentwicklung und kam zu dem Schluss, dass es sich nicht nur „gelohnt“ hat, sondern im Laufe der Zeit sogar billiger wurde. Die meisten Benutzer werden nicht unter die Haube schauen, um zu beurteilen, ob der Code ein Chaos ist oder ob Sicherheit genauso wichtig für alles andere gemacht wurde. Diejenigen, die die Tools verwenden, werden jedoch wertvolle Zeit damit verschwenden, schlampigen Code zu überarbeiten, um neue Funktionen hinzuzufügen, oder große Teile des Projekts zu durchsuchen, um zu verstehen, was vor sich geht, oder, im schlimmsten Fall: das Beheben einer Sicherheitslücke, die vom AppSec-Team zurückgekehrt ist und die Produktion verzögert hat. Jetzt Zeit damit zu verbringen, Code sowohl sicher als auch qualitativ hochwertig zu machen, erspart eine Menge zukünftiger Herzschmerz, ganz zu schweigen von den Kosten, die entstehen, wenn schlecht ausgeführte Arbeit enträtselt wird.

Erfahrene sicherheitsbewusste Entwickler schreiben Code, der ihre kreative, problemlösende Vision bei der Bereitstellung von Funktionen beibehält. Dabei wird darauf geachtet, die üblichen Sicherheitslücken zu beseitigen, die Ingenieure in ihrer Phase des Prozesses kontrollieren können. Sicherer Code ist für sich genommen nicht besonders effektiv. Aus diesem Grund trägt die Idee, „links von links“ zu beginnen, dazu bei, eine Sicherheitskultur zu fördern, die für Entwickler eine Selbstverständlichkeit ist und die in ihre Fähigkeit integriert ist, erstaunliche Funktionen mit reduziertem Risiko bereitzustellen.

Für eine sichere Benutzererfahrung ist es wichtig, „links von links“ zu beginnen.

Sicherheit spielt bei der Benutzererfahrung von Software seit langem eine wichtige Rolle, führte aber eindeutig zu gemischten Erfolgen. Fehlkonfigurationen im Sicherheitsbereich wurden berücksichtigt 21% der Cloud-basierten Datenschutzverletzungen im vergangenen Jahr, als Amateurfehler wie das Speichern von Passwörtern im Klartext zu schwerwiegenden Produktivitäts-, Umsatz- und Kundenvertrauensverlusten für die betroffenen Unternehmen führten.

Das, und die Benutzer selbst können ihr eigener schlimmster Feind sein, wenn es darum geht, ihre eigenen Daten zu schützen. Viel zu viele Leute verwenden immer noch „Passwort“ als Passwort oder verwenden dieselbe Kombination für mehrere vertrauliche Konten.

Ich kenne keinen Entwickler, der mit der Faust Luft macht, wenn ihnen gesagt wird, dass sie an einem Anmeldebildschirm arbeiten müssen, und das ist kein Wunder: Es ist ein empfindliches Gleichgewicht, einen Sicherheitsfluss zu entwerfen, der robust und funktional ist und in dem die Benutzer so navigieren können, wie es für sie sinnvoll ist, mit der geringsten Störung.

Wenn Sie zu viele komplexe Schritte und Einschränkungen einplanen, schalten Benutzer möglicherweise ab, um nie wieder zurückzukehren (eine Katastrophe für eine neue App), machen Sie es zu verwirrend, und Sie könnten das Support-Team am Ende kollektiv verunsichern, wenn sie Anfragen von Benutzern beantworten, die versuchen, auf ihre Konten zuzugreifen. Wenn Sie es zu einfach machen, versagen Sie irgendwie im Sicherheitsbereich.

Eine erfolgreiche sichere Benutzererfahrung muss strenge Sicherheitsvorkehrungen in einen sinnvollen Ablauf integrieren, der auf eine Weise präsentiert wird, die nicht von allem anderen ablenkt, was an der Software überzeugend ist. Sie können sicherlich das Ziel erreichen, eine sichere Anmeldefunktion zu programmieren, indem Sie alle möglichen komplexen Passwortanforderungen, CAPTCHA, Mini-Bosse und vier Wellen von Zombies eingeben, aber wenn es ein totales Durcheinander ist, das Benutzer abschreckt, verfehlt es das Ziel.

Legen Sie den Grundstein für Software-Exzellenz.

Da ich selbst Entwickler bin, weiß ich, dass die überwiegende Mehrheit von uns stolz auf unsere Arbeit ist und das Richtige tun möchte. Lästige Hindernisse wie Zeitbeschränkungen, plötzliche Änderungen des aktuellen Ziels oder dringende Hotfixes können den Arbeitsablauf stören und zu Fehlern führen, aber die harte Wahrheit ist, dass viele Softwareentwickler nicht auf Erfolg vorbereitet sind.

„Links von links“ zu beginnen ist ein Konzept, bei dem die Entwickler an erster Stelle stehen, und Unternehmen müssen ernsthaft daran arbeiten, ihre technische Kohorte zu verbessern. Sicherheitsbewusste Entwickler sind Gold wert, und Unterstützung in Form von Schulungen, der Bereitstellung der richtigen Tools und der Möglichkeit, von erfahreneren Entwicklern betreut zu werden, wird eine Umgebung fördern, in der Code mit einer sicherheitsorientierten Denkweise erstellt wird, mit der Präzision und Liebe zum Detail, die erforderlich sind, um Software auf die nächste Stufe zu heben.

Bist du bereit, das sichere Codierungsfeuer in dir selbst zu entfachen? Stellen Sie sich der Herausforderung.

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

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

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

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

分享到:
领英品牌社交x 标志
作者
马蒂亚斯-马杜博士
2021年2月10日出版

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

Eine Version dieses Artikels erschien in Dunkle Lektüre. Es wurde hier aktualisiert und syndiziert.

Wenn ich mit Entwicklern über Sicherheit spreche, lautet eines meiner Mantras, dass „der einzige Qualitätscode der sichere Code ist“. Das ist immer noch wahr; wir sind vielleicht einer Katastrophe entkommen, als anfällige Software in den 90er Jahren in der Wildnis herumlief, aber heute ist es das Risiko nicht wert. Viele haben im Laufe der Jahre hart daran gearbeitet, Entwicklern eine sicherheitsbewusste Denkweise zu vermitteln, und auf diese Weise hoffentlich Sicherheit zum Synonym für Qualität gemacht, wenn es um die Selbsteinschätzung ihres Codes geht.

Nach reiflicher Überlegung (und einigen Diskussionen unter meinen Kollegen) wird das Konzept jedoch möglicherweise zu stark vereinfacht. Es ist durchaus möglich, Code zu erstellen, der in der Tat sicher ist, aber Anzeichen einer neuen Entwicklungstechnik oder andere Problembereiche aufweist, die ihn nicht ideal machen.

Unsere Branche spricht ausführlich über den Begriff „Linksverschiebung“. Meiner Meinung nach geht es vor allem darum, links zu beginnen, indem die Ingenieurskohorten in die Lage versetzt werden, die Verantwortung für Sicherheit gemeinsam zu übernehmen (was ein Aspekt der Qualität ist), und ihnen die Möglichkeit zu geben, häufig auftretende Sicherheitslücken mit ihren (wörtlichen) Fingerspitzen zu beseitigen. Angesichts dieses aktuellen Rätsels scheint es jedoch, dass die Grenzen noch ein wenig weiter verschoben werden müssen.

Code mit einem bestimmten Qualitätsniveau ist per Definition auch sicher, aber jeder sichere Code ist nicht unbedingt von guter Qualität. Ist das Starten von „links von links“ die Formel, um reine sichere Codierungsstandards zu gewährleisten?

Wie sieht ein Sicherheitscode von „schlechter Qualität“ aus?

Lassen Sie uns die Lupe über diesen Codeausschnitt legen:

Wenn wir diesen Code aus Sicherheitsgründen analysieren, ist dieses Snippet in der Tat sicher und kein Einstiegspunkt für einen Angreifer, um eine SQL Injection-Schwachstelle auszunutzen.

Ist es ein Beispiel für hochwertigen Code? Leider nicht wirklich. Eine einfache Änderung des Arguments von einem Minze (Heger) zu einem Schnur Wert ermöglicht eine freie Benutzereingabe, um die Abfrage zu manipulieren, im Gegensatz zu einer Zahl, die dies nicht kann. Diese Änderung — oder ein zufälliges Kopieren und Einfügen der Zeichenfolge sql von einer anderen Stelle — schafft sofort eine Umgebung, in der SQL-Injection-Schwachstellen mit allen damit verbundenen Risiken möglich sind:

Die Sicherheitsmaßnahmen hatten hier einen sehr begrenzten Anwendungsbereich, wohingegen ein gründlicherer (oder erfahrener) Entwickler möglicherweise einen anderen Ansatz gewählt und die Auswirkungen einer ineffizienten Argumentationsstruktur berücksichtigt hat. Ein solcher Code ist nicht nur eine schlechte Praxis, er ist auch ein schlechtes Beispiel für andere in der Entwicklungskohorte.

Die Software „Triple Threat“: Form, Funktion, festungsartig?

Eine „dreifache Bedrohung“ in der Unterhaltungsindustrie ist eine Person, die mit ebenso hohem Können schauspielern, tanzen und singen kann. Sie sind die Menschen, die bei jedem Vorsingen gefürchtet und beneidet werden, und sie sind die Einhörner eines ohnehin schon hart umkämpften Raums. Jede Branche hat ihre eigene Version eines erstklassigen, außergewöhnlichen Beispiels ihrer Produkte und Dienstleistungen, wobei Software keine Ausnahme bildet.

Wenn wir an drei Schlüsselelemente in Anwendungen denken, die bei gleicher (hoher) Qualität schwer auszubalancieren sind, könnten das Funktionalität/Eleganz plus uneingeschränkte Sicherheit sowie Wirtschaftlichkeit sein, wenn man die erforderliche Liefergeschwindigkeit berücksichtigt. Nun, dieses letzte Merkmal ist zweifellos ein entscheidender Faktor dafür, wie gut die anderen beiden Optionen angewendet werden, und es kann ein Katalysator dafür sein, dass die Gesamtqualität im Laufe der Zeit abnimmt.

Muss jedoch die gesamte Software wie Hugh Jackman funktionieren, oder können wir mit Nicolas Cage durchkommen? Sagen wir es so: Wenn du Wolverine in dein Team holen kannst, dann gibst du dein Bestes.

Martin Fowler stellte die Frage, Ist hohe Qualität die Kosten wert? in der Softwareentwicklung und kam zu dem Schluss, dass es sich nicht nur „gelohnt“ hat, sondern im Laufe der Zeit sogar billiger wurde. Die meisten Benutzer werden nicht unter die Haube schauen, um zu beurteilen, ob der Code ein Chaos ist oder ob Sicherheit genauso wichtig für alles andere gemacht wurde. Diejenigen, die die Tools verwenden, werden jedoch wertvolle Zeit damit verschwenden, schlampigen Code zu überarbeiten, um neue Funktionen hinzuzufügen, oder große Teile des Projekts zu durchsuchen, um zu verstehen, was vor sich geht, oder, im schlimmsten Fall: das Beheben einer Sicherheitslücke, die vom AppSec-Team zurückgekehrt ist und die Produktion verzögert hat. Jetzt Zeit damit zu verbringen, Code sowohl sicher als auch qualitativ hochwertig zu machen, erspart eine Menge zukünftiger Herzschmerz, ganz zu schweigen von den Kosten, die entstehen, wenn schlecht ausgeführte Arbeit enträtselt wird.

Erfahrene sicherheitsbewusste Entwickler schreiben Code, der ihre kreative, problemlösende Vision bei der Bereitstellung von Funktionen beibehält. Dabei wird darauf geachtet, die üblichen Sicherheitslücken zu beseitigen, die Ingenieure in ihrer Phase des Prozesses kontrollieren können. Sicherer Code ist für sich genommen nicht besonders effektiv. Aus diesem Grund trägt die Idee, „links von links“ zu beginnen, dazu bei, eine Sicherheitskultur zu fördern, die für Entwickler eine Selbstverständlichkeit ist und die in ihre Fähigkeit integriert ist, erstaunliche Funktionen mit reduziertem Risiko bereitzustellen.

Für eine sichere Benutzererfahrung ist es wichtig, „links von links“ zu beginnen.

Sicherheit spielt bei der Benutzererfahrung von Software seit langem eine wichtige Rolle, führte aber eindeutig zu gemischten Erfolgen. Fehlkonfigurationen im Sicherheitsbereich wurden berücksichtigt 21% der Cloud-basierten Datenschutzverletzungen im vergangenen Jahr, als Amateurfehler wie das Speichern von Passwörtern im Klartext zu schwerwiegenden Produktivitäts-, Umsatz- und Kundenvertrauensverlusten für die betroffenen Unternehmen führten.

Das, und die Benutzer selbst können ihr eigener schlimmster Feind sein, wenn es darum geht, ihre eigenen Daten zu schützen. Viel zu viele Leute verwenden immer noch „Passwort“ als Passwort oder verwenden dieselbe Kombination für mehrere vertrauliche Konten.

Ich kenne keinen Entwickler, der mit der Faust Luft macht, wenn ihnen gesagt wird, dass sie an einem Anmeldebildschirm arbeiten müssen, und das ist kein Wunder: Es ist ein empfindliches Gleichgewicht, einen Sicherheitsfluss zu entwerfen, der robust und funktional ist und in dem die Benutzer so navigieren können, wie es für sie sinnvoll ist, mit der geringsten Störung.

Wenn Sie zu viele komplexe Schritte und Einschränkungen einplanen, schalten Benutzer möglicherweise ab, um nie wieder zurückzukehren (eine Katastrophe für eine neue App), machen Sie es zu verwirrend, und Sie könnten das Support-Team am Ende kollektiv verunsichern, wenn sie Anfragen von Benutzern beantworten, die versuchen, auf ihre Konten zuzugreifen. Wenn Sie es zu einfach machen, versagen Sie irgendwie im Sicherheitsbereich.

Eine erfolgreiche sichere Benutzererfahrung muss strenge Sicherheitsvorkehrungen in einen sinnvollen Ablauf integrieren, der auf eine Weise präsentiert wird, die nicht von allem anderen ablenkt, was an der Software überzeugend ist. Sie können sicherlich das Ziel erreichen, eine sichere Anmeldefunktion zu programmieren, indem Sie alle möglichen komplexen Passwortanforderungen, CAPTCHA, Mini-Bosse und vier Wellen von Zombies eingeben, aber wenn es ein totales Durcheinander ist, das Benutzer abschreckt, verfehlt es das Ziel.

Legen Sie den Grundstein für Software-Exzellenz.

Da ich selbst Entwickler bin, weiß ich, dass die überwiegende Mehrheit von uns stolz auf unsere Arbeit ist und das Richtige tun möchte. Lästige Hindernisse wie Zeitbeschränkungen, plötzliche Änderungen des aktuellen Ziels oder dringende Hotfixes können den Arbeitsablauf stören und zu Fehlern führen, aber die harte Wahrheit ist, dass viele Softwareentwickler nicht auf Erfolg vorbereitet sind.

„Links von links“ zu beginnen ist ein Konzept, bei dem die Entwickler an erster Stelle stehen, und Unternehmen müssen ernsthaft daran arbeiten, ihre technische Kohorte zu verbessern. Sicherheitsbewusste Entwickler sind Gold wert, und Unterstützung in Form von Schulungen, der Bereitstellung der richtigen Tools und der Möglichkeit, von erfahreneren Entwicklern betreut zu werden, wird eine Umgebung fördern, in der Code mit einer sicherheitsorientierten Denkweise erstellt wird, mit der Präzision und Liebe zum Detail, die erforderlich sind, um Software auf die nächste Stufe zu heben.

Bist du bereit, das sichere Codierungsfeuer in dir selbst zu entfachen? Stellen Sie sich der Herausforderung.

目录

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

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

了解更多

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

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

入门资源

更多文章
资源中心

入门资源

更多文章