In this article
Interaktive Anwendungssicherheitstests (IAST)
Beim Entwickeln einer neuen Art von Service oder Anwendung ist es entscheidend, die Sicherheit im Blick zu behalten. Schließlich können Sicherheitsverletzungen Ihr Unternehmen im Handumdrehen unkalkulierbare Summen kosten. Es gibt viele verschiedene Möglichkeiten, die Sicherheit Ihrer Anwendungen zu überprüfen. Auch wenn keine Methode hundertprozentige Sicherheit garantieren kann, sollten Sie stets daran arbeiten, Ihre Apps zu schützen und Ihre Anwendungssicherheit kontinuierlich zu verbessern. Die Anwendungssicherheitslösung von Snyk hilft Ihnen, Schwachstellen einen Schritt voraus zu sein, indem sie Entwickler dabei unterstützt, sichere Anwendungen zu entwickeln.
Was ist interaktives Anwendungssicherheitstesten?
Interaktives Anwendungssicherheitstesten (IAST) ist eine Testmethode für Anwendungssicherheit, bei der Ihre Anwendung während der Ausführung auf Schwachstellen geprüft wird, während sie tatsächlich genutzt wird – entweder von einem echten Nutzer oder von einem automatisierten Test-Runner. Einige IAST-Tools bieten sogar IDE-Integrationen, mit denen Sie die Sicherheitsanalyse während der Entwicklung der Anwendung ausführen können.
Das Herzstück eines IAST-Tools sind Sensormodule – Softwarebibliotheken, die in den Anwendungscode eingebunden werden. Diese Sensormodule erfassen das Verhalten der Anwendung, während die interaktiven Tests laufen. Wird eine Schwachstelle erkannt, wird eine Warnung ausgegeben.
Beispiele für solche Schwachstellen sind fest im Klartext codierte API-Schlüssel, nicht bereinigte Nutzereingaben oder Verbindungen ohne SSL-Verschlüsselung.
Worin unterscheidet sich IAST von anderen Sicherheitstestmethoden?
Um beurteilen zu können, ob eine bestimmte Sicherheitstestmethode zu Ihrer Anwendungstestumgebung passt, sollten Sie sowohl ihre Vorteile als auch ihre Einschränkungen berücksichtigen. Sehen wir uns die Unterschiede zwischen den einzelnen Testmethoden an.
Statische Anwendungssicherheitstests (SAST) konzentrieren sich auf den Code. Sie kommen früh in der CI-Pipeline zum Einsatz und prüfen Quellcode, Bytecode oder Binärcode, um problematische Codierungsmuster zu erkennen, die nicht den Best Practices entsprechen. SAST ist von der Programmiersprache abhängig.
Dynamische Anwendungssicherheitstests (DAST) sind eine Black-Box-Testmethode, bei der Anwendungen während der Laufzeit geprüft werden. Sie kommt später in der CI-Pipeline zum Einsatz. DAST eignet sich gut, um Regressionen zu verhindern, und ist nicht von einer bestimmten Programmiersprache abhängig.
IAST ähnelt DAST, da sich beide auf das Verhalten der Anwendung während der Laufzeit konzentrieren. Die IAST-Analyse basiert jedoch eher auf einer Kombination aus Black-Box-Tests, Scans und der Analyse interner Anwendungsabläufe. IAST hat den Vorteil, DAST-ähnliche Befunde wie bei SAST mit dem Quellcode verknüpfen zu können. Ein Nachteil dieses Ansatzes ist, dass IAST von der Programmiersprache abhängig ist und erst später in der CI-Pipeline ausgeführt werden kann.
Software-Kompositionsanalyse (SCA) konzentriert sich auf Abhängigkeiten von Drittanbieter-Code, die in der Anwendung verwendet werden. SCA ist besonders effektiv bei Anwendungen, die viele Open-Source-Bibliotheken nutzen. Auch diese Methode ist von der Programmiersprache abhängig.
Vorteile und Nachteile von IAST
IAST ist im Wesentlichen eine Kombination aus SAST und DAST. Die IAST-Methode analysiert wie DAST nur den Code, der in Ihren Tests ausgeführt wird. Wie bei SAST zeigt sie aber auch genau die Stelle im Code an, an der die Schwachstelle gefunden wurde.
IAST unterscheidet sich von DAST und SAST – aber warum sollten Sie es einsetzen? Sehen wir uns die wichtigsten Vorteile von IAST an:
Prüft Code in der Produktionsumgebung: Der größte Vorteil von IAST ist, dass es Code prüfen kann, der tatsächlich in der Produktionsumgebung verwendet wird. SAST-Tools belasten Entwickler oft mit falsch positiven Ergebnissen. Manchmal deutet eine Codezeile auf ein Sicherheitsproblem hin, das an anderer Stelle in der Codebasis behoben wurde. IAST konzentriert sich auf die wirklich relevanten Probleme.
Prüft Code während der Entwicklung: Die Prüfung von Produktionscode ist ein großer Vorteil, doch IAST lässt sich auch während der Entwicklung einsetzen. Einige IAST-Tools bieten eine IDE-Integration, die Entwickler schnell zu den Funktionen informiert, an denen sie gerade arbeiten. So werden Sicherheitsprüfungen im Entwicklungslebenszyklus nach links verlagert – also in eine frühere Phase, in der sich Probleme kostengünstiger beheben lassen.
Schnelle Behebung: IAST verknüpft Probleme mit den jeweiligen Code-Stellen und unterscheidet sich dadurch von DAST. Mit IAST können Sie sich durch Ihre Anwendung klicken, um Probleme zu finden, und erhalten Empfehlungen zu ihrer schnellen Behebung. Das ist nicht ohne Risiko: Nur weil Sie den Code noch nie getestet haben, heißt das nicht, dass er in der Produktionsumgebung keine Sicherheitslücken aufweist. Andererseits ist die Zeit von Entwicklern begrenzt und sollte sinnvoll eingesetzt werden.
IAST hat auch Nachteile:
Von der Programmiersprache abhängig: Die Abhängigkeit von der Programmiersprache ist ein erheblicher Nachteil von IAST. Manche Tools erfordern zwar keine Änderungen am Code, um ihre Sensormodule einzubinden, sind aber dennoch auf bestimmte Technologien beschränkt. Wenn Sie eine weniger verbreitete Technologie verwenden, weil sie genau zu Ihrem Anwendungsfall passt, ist IAST möglicherweise nicht die richtige Wahl für Sie.
Zeitaufwendig: Bei der IAST-Testmethode müssen Sie Ihre Anwendung erstellen und ausführen – anders als bei SAST. Deshalb ist sie langfristig mit einem erheblichen Zeitaufwand verbunden. Bei Problemen, die während der Entwicklung mithilfe von IDE-Plugins erkannt werden, ist das dank des schnellen Feedbacks möglicherweise kein Problem. Wenn Sie jedoch umfangreiche Testsuiten erstellen möchten, die bei jeder Produktionsversion ausgeführt werden müssen, kann sich der Prozess verlangsamen.
Keine vollständige Codeabdeckung: Wenn nur tatsächlich ausgeführter Code geprüft wird, kann IAST nicht den gesamten Code erfassen. Dadurch werden zwar viele falsch positive Ergebnisse vermieden, aber auch Code ignoriert, den die Qualitätssicherung in ihren Tests nicht ausgeführt hat. Nur weil Sie nicht daran gedacht haben, heißt das nicht, dass der Code in der Produktionsumgebung nicht ausgeführt wird.
Kennen Sie Ihre Anforderungen, bevor Sie sich für IAST entscheiden
Wie bei jeder Anwendungssicherheitstestmethode sollten Sie Ihren Technologie-Stack und Ihre Prozesse analysieren, bevor Sie sich für eine Methode entscheiden. Je nach gewählter Programmiersprache kommt IAST für Sie möglicherweise nicht infrage. In diesem Fall müssen Sie auf DAST zurückgreifen, das lediglich die Ein- und Ausgaben Ihrer Anwendung prüft und den Code nicht scannt.
IAST kann zwar wichtige Erkenntnisse zur Anwendungssicherheit liefern, die sich mit SAST-Ansätzen nicht gewinnen lassen, aber auch Ihre CI-Pipeline erheblich verlangsamen. SAST-basierte Lösungen könnten daher im Alltag die bessere Wahl für Ihre Anwendung sein.
Sorgen Sie für effiziente und umsetzbare Entwicklungsarbeit. Snyk Code, eine SAST-Lösung mit Entwicklerfokus, basiert auf KI und nutzt die eigens kuratierte Schwachstellendatenbank von Snyk sowie Referenz-Commits als Trainingsmaterial, um Ihnen beim Programmieren die besten Sicherheitstipps zu geben.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.