SCW 아이콘
영웅 배경, 구분선 없음
블로그

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

마티아스 마두, Ph.
게시됨 Feb 10, 2021
마지막 업데이트: 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. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시됨 Feb 10, 2021

Matias Madou, Ph.D. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung in der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und verfügt über mehr als 10 Patente. Wenn er nicht an seinem Schreibtisch ist, war Matias als Ausbilder für fortgeschrittene Schulungen zur Anwendungssicherheit tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat an der Universität Gent in Computertechnik promoviert, wo er Anwendungssicherheit durch Programmverschleierung studierte, um das Innenleben einer Anwendung zu verbergen.

공유하기:
링크드인 브랜드사회적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 오류 아이콘
양식을 제출하려면 '분석' 쿠키를 활성화해 주십시오. 완료 후에는 언제든지 다시 비활성화할 수 있습니다.

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 . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시됨 Feb 10, 2021

Matias Madou, Ph.D. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Matias ist Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung in der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und verfügt über mehr als 10 Patente. Wenn er nicht an seinem Schreibtisch ist, war Matias als Ausbilder für fortgeschrittene Schulungen zur Anwendungssicherheit tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat an der Universität Gent in Computertechnik promoviert, wo er Anwendungssicherheit durch Programmverschleierung studierte, um das Innenleben einer Anwendung zu verbergen.

공유하기:
링크드인 브랜드사회적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. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

더 알아보세요

Secure Code Warrior 소프트웨어 개발 주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 귀사를 Secure Code Warrior . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 허브

시작을 위한 자료

더 많은 글
자원 허브

시작을 위한 자료

더 많은 글