8 Minuten Lesezeit Mit Insights von Martin Scheck Lead Consultant Security martin.scheck@zuehlke.com Reto Stähli Advanced Security Engineer reto.staehli@zuehlke.com Das Ziel von Low-Code ist, Software-Entwicklung zugänglicher zu machen, die Dauer von der Idee bis zur Produktivsetzung zu verkürzen und die Kosten für die Digitalisierung von Geschäftsprozessen deutlich zu senken. Gemäss Gartner werden in naher Zukunft 70% aller neuen Applikationen mit Low-Code entwickelt. Dafür werden je nach Zielanwendung Plattformen unterschiedlicher Kategorien verwendet wie beispielsweise Mendix, Simplifier, Microsoft Power Platform, Appian, Service Now, Microsoft Dynamics oder Salesforce. Mit zunehmender Verbreitung von Low-Code-Applikationen wird auch der Fokus auf die Sicherheit immer relevanter. In diesem Artikel zeigen wir anhand eigener Analysen der Applikationssicherheit, was es bei Low-Code gegenüber der Individualentwicklung in zwei der meistverwendeten Low-Code Plattformen besonders zu beachten gilt: Spezifische Schulungen in Bezug auf die Applikationssicherheit scheinen bei Low-Code wichtiger als bei klassischer Software-Entwicklung, weil ein breiterer Teil der Mitarbeitenden an der Software-Entwicklung partizipiert (Citizen Developer). Die Abstraktion von Low-Code hilft, Geschäftsprozesse schneller abzubilden, aber nicht zwingend sicherer. Deswegen müssen bewährte Sicherheitsprinzipien auch bei Low-Code-Applikationen angewendet werden. Fremdcode sollte auch bei Low-Code-Applikationen zwingend umfangreichen Sicherheitsprüfungen unterzogen werden. Für die Sicherstellung der Applikationssicherheit ist die Anwendung eines wohldefinierten Secure Development Lifecycles auch bei Low-Code zentral. Herausforderungen hinsichtlich Sicherheitsarchitektur bleiben auch bei Low-Code-Applikationen bestehen. Eine frühe Auseinandersetzung mit der Thematik empfiehlt sich daher genauso in Low-Code-Projekten. Verglichen mit herkömmlicher Individualentwicklung lässt sich also feststellen, dass es viele Überschneidungen bei den Empfehlungen gibt. Jedoch insbesondere auf die Sensibilisierung und Ausbildung von Citizen Developers muss ein besonderes Augenmerk gelegt werden. Im Folgenden betrachten wir die oben genannten Punkte etwas ausführlicher. Die Ausbildung von Citizen Developers ist entscheidend Die Entwicklerinnen und Entwickler von Low-Code-Applikationen müssen nicht zwingend über einen grossen technischen Hintergrund oder mehrjährige Erfahrung in der Software-Entwicklung verfügen. Vielmehr steht bei Low-Code eine effiziente Abbildung der Geschäftsprozesse im Fokus. Da auch bei Software-Entwicklern mit langjähriger Erfahrung Lücken im Wissen rund um die Sicherheit anzutreffen sind, ist bei Low-Code Entwicklerinnen und Entwickler tendenziell mit einem grösseren Defizit zu rechnen, insbesondere wenn wie bei Low-Code-Projekten üblich weniger zeitliche Ressourcen eingeplant werden. Baut man beispielsweise eine Geschäftsanwendung, so reicht es nicht, Input-Validierungen nur im Frontend vorzunehmen. Für die Sicherheit sind Validierungen im Backend besonders relevant. Eine führende Low-Code-Plattform bietet beispielsweise die Möglichkeit, typen-basierte Validierungen im Frontend und Backend durchzuführen. Diese muss man jedoch explizit aktivieren, konfigurieren und testen. Werden Inhalte nicht korrekt validiert, riskiert man die Verarbeitung von schädlichem Input, was zu ungewolltem Verhalten der Geschäftsanwendung führt und nicht selten Datenschutzverletzungen und Erpressung durch Cyber-Kriminelle nach sich zieht. Daher ist es entscheidend, dass Low-Code-Entwicklerinnen und Entwickler ebenfalls über ein Basiswissen zur Sicherheit von Anwendungen verfügen. Zühlke bietet einen dedizierten Web Security Workshop an, der speziell für Entwicklerinnen und Entwickler mit Erfahrung in der Web-Entwicklung ausgerichtet ist. Security lernt man am besten, indem man selber hackt! Erfahren Sie mehr über unseren "Web Security Workshop" Hoher Abstraktionsgrad Low-Code bietet einen hohen Abstraktionsgrad, damit Geschäftsprozesse schneller in Software abgebildet werden können. Grosse Teile der Logik werden mittels der zur Verfügung gestellten Bausteine modelliert. Dies führt häufig zum Irrglauben, die Bausteine können nach Belieben eingefügt und miteinander verknüpft werden, während die Sicherheit der Applikation standardmässig gewährleistet sei. Dabei können diese Bausteine aber immer noch individuell konfiguriert werden. Die Menge an Optionen ist dabei je nach Plattform beträchtlich. Wie oben erwähnt, gibt es bei manchen Low-Code-Plattformen im Bereich der Frontend- und Backend-Validierung die Möglichkeit, Datentypen zu validieren. Nehmen wir an, wir verwenden zwei Bausteine, die Daten entgegennehmen, validieren, verarbeiten und einen bestimmten Output weitergeben sollen. Damit Input und Output eines Services validiert werden, muss dies in einer Plattform, die wir genauer betrachtet haben, explizit aktiviert werden. Folglich müssen die Konfiguration der Bausteine sowie deren Verknüpfungen zwingend auf die Sicherheit im jeweiligen Anwendungskontext überprüft werden, um die Angriffsfläche zu reduzieren. Positiv hervorzuheben ist wie im oben genannten Beispiel, dass Plattformen dies unterstützen – aber die Konfiguration muss richtig eingestellt sein. Überprüfung von Fremdcode Oft können über die jeweiligen Markplätze der Low-Code-Plattformen neue Werkzeuge und Bausteine per Knopfdruck hinzugefügt werden. Der Inhalt eines Bausteins muss jedoch nicht immer aus vertrauenswürdigen Quellen stammen. Bei vielen Plattformen ist es möglich, selbst entwickelte Bausteine auf dem Marktplatz zu publizieren und anderen Entwicklern zur Verfügung zu stellen. Die Sicherheitsprüfungen der Plattformbetreiber sind nicht immer transparent. Grundsteine für die heute sehr populären «Supply Chain Attacks», wobei Angreifer Schadcode in verwendete Komponenten einschleusen oder solche anbieten, sind damit gelegt. Für manche Low-Code-Plattformen existieren Portale mit unzähligen, vordefinierten Bausteinen bzw. Modulen, die für die Entwicklung der eigenen Geschäftsanwendung verwendet werden können. So gibt es beispielsweise Module, welche es Benutzern erlauben, ein vereinfachtes Login mittels eines einfachen Links durchzuführen, ohne Authentifizierungsfaktoren wie ein Passwort vorzuweisen. Solche Funktionen haben sehr hohe Anforderungen an die Informationssicherheit und sollten vor der Verwendung genau betrachtet und sorgfältig eingebaut werden. Nebst der Verifizierung, ob die Einbettung keine Sicherheitslücken aufweist, empfiehlt es sich je nach Möglichkeit den Quellcode zu überprüfen. Diese Prüfungen können manuell und mittels automatisierter statischer und dynamischer Analysen vollzogen werden. Ergänzend können Abhängigkeiten zusätzlich auf Schwachstellen überprüft werden, worauf im nächsten Abschnitt weiter eingegangen wird. Secure Development Lifecycle Die Entwicklung basierend auf einem wohldefinierten “Secure Development Lifecycle” ist für Low-Code-Applikationen genauso wichtig wie für herkömmlich entwickelte Applikationen. Angefangen beim Threat Modelling und den abgeleiteten Sicherheitsanforderungen ist auch der Entwurf einer sicheren Architektur notwendig. Ein Blick auf die publizierten Schwachstellen zeigt, dass bestimmte Bausteine gravierende Schwachstellen aufweisen. So wurde beispielsweise im Baustein «Passwort vergessen» einer früheren Version einer führenden Low-Code-Plattform eine Schwachstelle entdeckt. Diese Schwachstelle erlaubte es Angreifern, die Konten anderer Anwender zu übernehmen. Die Schwachstelle wurde in einer neuen Version behoben und betroffene Versionen wurden vom Portal entfernt. Den Entwicklern wurde zu einem Update geraten. Nicht nur die Bausteine, sondern die Plattformen selbst können Schwachstellen enthalten und müssen dementsprechend regelmässig aktualisiert werden. Wir haben 1 Million Webseiten nach Merkmalen einer führenden Low-Code-Plattform gescannt und mit Informationen von publicwww.com erweitert. Von den 95 identifizierten und verfügbaren Webseiten dieser Plattform verwendeten 60% eine Version mit bekannten Schwachstellen, weil die Betreiber die Plattform nicht auf die neuste Version aktualisierten. Ähnlich wie bei Apps auf einem Smartphone oder bei Libraries und Frameworks in klassischer Individualentwicklung ist die Aktualisierung der eingesetzten Bausteine enorm wichtig für die Sicherheit der Applikation. Hier ist positiv hervorzuheben, dass die Dokumentationen einiger Low-Code Plattformen auf «Best Practices» im Zusammenhang mit der Sicherheit eingehen. Das Befolgen dieser bewährten Methoden ist ein guter Anfang zu einem schlussendlich sichereren Produkt. Sicherheitsarchitektur ist entscheidend Anforderungen an eine sichere Anwendungsarchitektur sind auch für Low-Code-Applikationen relevant. Aspekte wie Authentifizierung, Autorisierung, sichere Handhabung von Daten oder das Protokollieren von Ereignissen müssen auch bei Low-Code-Applikationen berücksichtigt werden. Mehrere Anbieter setzen auf rollenbasierte Zugriffskontrolle. Bei einer betrachteten Plattform müssen die Entwicklerinnen und Entwickler die Rollen für die Zugriffsberechtigungen auf die Bausteine selbst definieren. Diese Rollen können für die Berechtigungen innerhalb der Bausteine verwendet werden. Die Zuordnung einer falschen Benutzerrolle oder eine fehlerhafte Definition führt zu ungewolltem Zugriff auf Funktionen und Daten. Daher sollten auch bei Low-Code-Projekten erfahrene Software-Architekten und Entwickler sowie Sicherheitsexperten mit einbezogen werden, besonders intensiv in den frühen Phasen des Vorhabens, um beispielsweise Authentifizierungs- und Autorisierungskonzepte zu erarbeiten und bei der Umsetzung zu unterstützen. Ein «Center of Excellence» für Low-Code Bei Low-Code Software-Entwicklung ist Security genauso wichtig wie bei herkömmlicher Individualentwicklung. Das Risiko bezüglich Sicherheitslücken verschärft sich jedoch zusätzlich, weil mithilfe einer Low-Code-Plattform Applikationen besonders einfach und schnell erstellt werden können. Deshalb ist es entscheidend, dass solche Risiken frühzeitig adressiert werden – insbesondere auch auf organisatorischer Ebene. Wenn mehr Mitarbeitende an der Software-Entwicklung partizipieren, sind Sicherheitslücken wahrscheinlich. Grund dafür ist der tendenziell geringere Kenntnisstand von Citizen Developers in Bezug auf Best Practices. Der Aufbau eines Kompetenzzentrums (CoE – Center of Excellence) für Low-Code im Unternehmen kann dabei helfen, diese Risiken zu adressieren. Das CoE trägt als zentrale Einheit die Verantwortung für die Low-Code-Plattformen. Dazu gehört auch die Befähigung der Entwicklerinnen und Entwickler sowie Citizen Developers in Sachen Software-Entwicklung und Security. Das CoE ist die zentrale Anlaufstelle, übernimmt die Überwachung der gebauten Applikationen sowie den Betrieb der Plattform und informiert Entwicklerinnen und Entwickler über neue Versionen mit Sicherheitsupdates und stellt sicher, dass alle Applikationen den definierten Standards. Weiter kann ein CoE beispielsweise durch gezielte Risikoanalysen proaktiv Applikationen prüfen und dies auch bereits vor einer Applikationsentwicklung von den (Citizen) Developers einfordern. Durch externe Penetration-Tests kann ein CoE besonders exponierte Applikationen einer detaillierteren Untersuchung unterziehen und gegebenenfalls weitere Schritte planen. Weiter kann das CoE über regelmässige Informationsveranstaltungen und Community Building sicherstellen, dass die (Citizen) Developers was die Sicherheit der Low-Code-Plattformen betrifft auf dem neusten Stand bleiben. Mit unserer Erfahrung und der Expertise in Cyber-Security und der Entwicklung von Low-Code-Applikationen begleiten wir Sie gerne auf dem Weg zu sicheren Low-Code-Applikationen. Gern beraten Sie umfassend zum Einsatz von Low-Code in Ihrem Business-Kontext. Erfahren Sie mehr über unsere Expertise mit Low-Code. Ansprechpartner für die Schweiz Silvan Stich Head of Low-Code Silvan Stich hat per Januar 2022 die Rolle als Head of Low-Code übernommen. Dabei liegt sein Fokus auf der Teamführung und verantwortet den Aufbau und Weiterentwicklung des Themas Application Platforms innerhalb der Cloud Practice. Erfahrungen mit Application Platforms sammelte Silvan als Project Manager in verschiedenen Projekten und Angebotsphasen. Die grosse Flexibilität gepaart mit schneller Umsetzung begeistert ihn für die Technologien. Kontakt Silvan.Stich@zuehlke.com +41 43 216 6858 Schreiben Sie uns eine Nachricht You must have JavaScript enabled to use this form. Vorname Nachname E-Mail Telefonnummer Message Absenden Bitte dieses Feld leer lassen Schreiben Sie uns eine Nachricht Vielen Dank für Ihre Nachricht.
Digitalisierung und Disruption – Die Passwort-Falle: Wenn der Mensch zum Risikofaktor wird Mehr erfahren