Bessere Software per Crowdtesting

Wie sich mithilfe externer Test-Plattformen die Qualität und die Sicherheit von Anwendungen steigern lassen. [...]

Foto: mohamedHassan/Pixabay

Wiederholte Angriffe auf Lieferketten in der Software-Distribution belegen eindrücklich, welche Bedeutung der Qualität und der Sicherheit von Anwendungen heute zukommt. Moderne Software besteht nicht mehr nur aus Einzelapplikationen, die von einer Handvoll Programmierern bei einem einzigen Unternehmen entwickelt werden.

Vielmehr ist sie zu einem komplexen Ökosystem geworden, dessen Elemente eng verknüpft sind und das zahllose andere Bibliotheken, Frameworks und Bestandteile einbindet, die wiederum auf weitere Komponenten angewiesen sind.

Wenn es an einer Stelle dieser Supply Chain zu einem Fehler kommt, kann das komplette Strukturen in den Abgrund reißen. Vielen Unternehmen ist wegen der nicht mehr überschaubaren Komplexität nicht bewusst, in welcher Gefahr sie sich befinden.

Komplexität erzeugt Probleme

Zu den bekanntesten Beispielen für solche Gefahren gehört die Attacke auf Solarwinds. Im Dezember 2020 kamen erste Berichte auf, dass mehrere amerikanische Behörden durch einen Fehler in der Orion-Plattform des Anbieters gehackt wurden.

Später stellte sich heraus, dass mindestens 18.000 der damals über 33.000 Orion-Kunden betroffen waren. Bei den Angriffen wurde eine Sicherheitslücke ausgenutzt, die über ein Update an die Nutzer verteilt wurde und zur Installation einer Backdoor missbraucht werden konnte.

„Hacker nutzen häufig Schwachstellen in der Lieferkette aus.“

Lothar Geuenich – Regional Director Central Europe/DACH bei Check Point

Ein weiterer verheerender Bug wurde Ende vergangenen Jahres in der zum Logging von Ereignissen eingesetzten Bibliothek Log4j gefunden. Auch von dieser Lücke waren zahllose Unternehmen betroffen, die die Software mehr oder weniger wissentlich in ihren Umgebungen einsetzten. Damals gingen Experten sogar davon aus, dass das Internet „in Flammen“ stehe.

Bis heute ist nicht klar, wie groß der durch den Fehler in Log4j angerichtete Schaden wirklich ist, da viele Attacken im Verborgenen blieben.

Die Zahl der Angriffe auf Software-Lieferketten ist 2021 im Vergleich zum Vorjahr um 650 Prozent gestiegen, erklärt Lothar Geuenich, Regional Director Central Europe/DACH beim israelischen-amerikanischen Sicherheitsanbieter Check Point.

„Hacker nutzen häufig Schwachstellen in der Lieferkette aus, um Malware in das Zielunternehmen zu schleusen“, sagt Geuenich. Er empfiehlt Unternehmen daher eine Least-Privilege-Policy, also nicht benötigte Berechtigungen gar nicht erst zuzulassen. Außerdem müssten Sicherheitsaspekte in den Entwicklungsprozess integriert werden.

„Vorbeugen ist besser als Nachsorge“, so Geuenich.

Mehr testen, besser testen

Um die Qualität der Software in Unternehmen zu verbessern, werden mehr und vor allem bessere Tests benötigt. Bislang ist nach Aussage von Thomas Wittbecker, geschäftsführender Gesellschafter und Mitgründer des Cloud-Spezialisten Adacor Hosting, das Durchführen von manuellen Tests am bekanntesten.

In einem Blog-Beitrag beschreibt er, wie die Tester beim sogenannten Black-Box-Testing eine Anwendung Schritt für Schritt durchgehen und dabei überprüfen, ob alle Features wie vorgesehen funktionieren. „Damit der Tester aufgrund seiner eigenen Entwicklung nicht unbewusst Annahmen über die Nutzung der Software trifft, sollte ein Entwickler nicht gleichzeitig auch Tester sein“, betont Wittbecker.

Ein Nachteil dieser Methode sei allerdings, dass dabei nur Fehlerbilder geliefert würden, aber keine Ursachen.

White-Box-Tests werden dagegen laut Wittbecker eingesetzt, um Fehler in größeren Projekten einer bestimmten Komponente zuzuweisen. Dabei werde auch der Quellcode selbst getestet.

Bei solchen Projekten würden mittlerweile vor allem automatisierte Tests genutzt, da manuelle Verfahren dafür zu aufwendig seien. Bei Modultests etwa werde dabei für jedes zu testende Modul ein eigenes Testprogramm bereitgestellt. Ein Problem sei aber, dass so nur Fehler gefunden würden, die bei der Konzeption der Tests berücksichtigt wurden.

„Um diesen Nachteil auszugleichen, werden in der Praxis manuelle Black-Box-Tests von einem unabhängigen Team mit automatisierten White-Box-Tests zur Fehlersuche kombiniert“, so Wittbecker.

„Ein Entwickler sollte nicht gleichzeitig Tester sein.“

Thomas Wittbecker – Geschäftsführender Gesellschafter und Mitgründer von Adacor Hosting

Viele Unternehmen würden daher zusätzlich noch Betatests durchführen, bei denen die Teilnehmer aufgerufen werden, von ihnen gefundene Fehler an die Entwickler zu melden. „Damit kann der Anbieter auch Fehler finden, die nur in speziellen Situationen auftreten oder die beim internen Testen übersehen wurden.“

Dieses Verfahren ist allerdings nur bei Software möglich, die eine breite Nutzerbasis hat. Ein kleiner Spezialist für bestimmte Bereiche kann deswegen nur unter Einschränkungen so vorgehen.

Anwendung und Testszenarien

Zuhilfenahme der Crowd

Eine Alternative ist das sogenannte Crowdtesting, das eng mit aktuellen Trends wie Cloud-Computing und Crowdsourcing zusammenhängt. Letzteres ist an das traditionelle Outsourcing angelehnt, also an das Auslagern bestimmter Aufgaben an Dritte. Das ist auch beim Crowdtesting der Fall.

Auch hier wird die essenzielle Aufgabe des Testens einer Anwendung oder eines Produkts an externe Tester ausgelagert, die sich dafür bezahlen lassen. Solche Analysen werden auch als „Tests in the Wild“ bezeichnet.

Julian Mascaro, Test Engineer beim Testing-Spezialisten Applause, beschreibt auf der Webseite des Unternehmens, warum intern durchgeführte Tests heute in vielen Fällen an ihre Grenzen stoßen. So könne es etwa vorkommen, dass selbst gewonnene Testergebnisse „nicht immer der Wirklichkeit entsprechen oder gar lückenhaft sind“.

Das liege unter anderem daran, dass dabei nicht „alle Kombinationen aus Geräten und Betriebssystemen der Benutzer sowie mögliche Szenarien“ abgedeckt werden. Als Beispiel nennt Mascaro Schwierigkeiten bei der Konnektivität. Diese könnten die Funktionsfähigkeit eines Produkts erheblich beeinträchtigen, würden bei internen Tests aber möglicherweise nicht ausreichend berücksichtigt.

Crowdtesting ermögliche es dagegen, „weitaus mehr Szenarien zu reproduzieren, denen die Benutzer im täglichen Leben gegenüberstehen“. Das Testen mit Crowdtestern ersetze aber nicht die interne Quality-Assurance-Abteilung, sondern ergänze sie sinnvoll mit zusätzlichen Geräten und Testern, die sich an mehr Orten und in verschiedensten Szenarien befinden.

Aber wie sieht das „Testen in der Wildnis“ konkret aus? Nach Aussage von Mascaro setzt Applause dafür ein dezentrales Team aus Testern ein, das eine Anwendung, eine Webseite oder ein angeschlossenes Gerät „unter realen Bedingungen“ testet. Wichtig sei dabei, dass die Tester das zu prüfende Objekt so nutzen, „wie es ihrer Meinung nach richtig ist“. Alternativ seien aber auch Testfälle möglich, die vorgegeben werden.

Beim Crowdtesting sollen Tests vornehmlich im Alltag der Teilnehmer erfolgen, also beispielsweise in öffentlichen Verkehrsmitteln, bei einer Interaktion in einem Geschäft oder während sportlicher Aktivitäten. Ergänzend lassen sich laut Mascaro auch „Szenario-Tests“ durchführen, bei denen gezielt einzelne oder mehrere kritische Punkte unter die Lupe genommen werden.

Die Beispiele zeigen, dass es beim Crowdtesting nicht nur um Software, sondern um vielfältige Produkte geht, die vor oder nach ihrer Markteinführung zusätzlichen Tests unterzogen werden sollen.

Testszenarien aus der Praxis

Mascaro beschreibt eine Reihe realer Testszenarien. So lasse sich mit Crowdtesting etwa herausfinden, wie gut oder schlecht die Planung von Fahrtwegen und der Verkauf von Fahrkarten bei einem Verkehrsunternehmen funktioniere.

Zunächst werde geprüft, ob alle benötigten Funktionen ordnungsgemäß ablaufen. Danach gehe es darum, ob die Tester ihren Fahrtweg mit der Anwendung planen, Tickets kaufen und erfolgreich von einem Punkt zum anderen fahren können. Mit einem Test in the Wild lässt sich „somit das gesamte digitale Erlebnis eines Produkts auf die Probe stellen“, erläutert Mascaro.

Eines wird an diesem Beispiel auch klar: Meist geht es beim Crowdtesting weniger um die Sicherheit eines Produkts, sondern um Probleme beim Einsatz, also etwa um Tests der Bedienoberflächen.

Die Grundlagen für das moderne Crowdtesting wurden bereits vor mehr als einem Jahrzehnt gelegt. So hat sich schon 2010 Ewald Roodenrijs, heute Associate Director beim amerikanischen IT-Konzern Cognizant, mit den Grundlagen des Crowdtestings beschäftigt. Dabei hat er mehrere Prinzipien formuliert, die immer noch gelten.

Roodenrijs ist zum Beispiel davon überzeugt, dass Crowdtesting abhängig ist von der Qualität der Crowd. Eine Gruppe sollte nicht nur aus Experten und Profis, sondern auch aus Einsteigern und anderen Menschen bestehen. „Eine kleine Gruppe von zehn Personen mit ein und demselben Hintergrund bringt dem Crowdtesting keinen zusätzlichen Nutzen“, unterstreicht Roodenrijs.

Je mehr Unterschiede es bei den Testern gebe, desto besser. Das Ziel der Tests müsse zudem sein, ein besseres Produkt oder zumindest neue Erkenntnisse über seine Risiken zu erhalten. Crowdtesting solle „normale“ Tests zudem nicht ersetzen, sondern nur ergänzen.


Mehr Artikel

Die Teilnehmer des Roundtables (v.l.n.r.): Roswitha Bachbauer (CANCOM Austria), Thomas Boll (Boll Engineering AG), Manfred Weiss (ITWelt.at) und Udo Schneider (Trend Micro). (c) timeline/Rudi Handl
News

Security in der NIS2-Ära

NIS2 ist mehr ein organisatorisches Thema als ein technisches. Und: Von der Richtlinie sind via Lieferketten wesentlich mehr Unternehmen betroffen als ursprünglich geplant, womit das Sicherheitsniveau auf breiter Basis gehoben wird. Beim ITWelt.at Roundtable diskutierten drei IT-Experten und -Expertinnen über die Herausforderungen und Chancen von NIS2. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*