Von Trend Micro

Anwendungen spielen heute eine integrale Rolle, und viele Unternehmen und Benutzer sind auf eine breite Palette von Anwendungen für Arbeit, Bildung, Unterhaltung, Einzelhandel und andere Zwecke angewiesen. Daher spielen Entwicklungsteams eine Schlüsselrolle, um sicherzustellen, dass Anwendungen den Benutzern eine hohe Benutzerfreundlichkeit und Leistung sowie Sicherheit vor Bedrohungsakteuren bieten, die immer auf der Suche nach Schwachstellen, Verwundbarkeiten, Fehlkonfigurationen und anderen Sicherheitslücken sind, die sie zur Durchführung böswilliger Aktivitäten missbrauchen können. Die Sicherheitsrisiken sind sogar noch ausgeprägter geworden, da die Unternehmen Anwendungen schnell auf den Markt bringen müssen, um ihre geschäftlichen und Umsatz generierenden Prozesse aufrechtzuerhalten.
Die schwerwiegenden Risiken, die von unsicheren Anwendungen ausgehen, verdeutlichen die Notwendigkeit der Anwendungssicherheit in der Design-, Entwicklungs- und Bereitstellung-Phase. Deswegen ist es nötig, die Sicherheitsrisiken und -bedrohungen zu erörtern, denen Anwendungen ausgesetzt sein könnten, sowie die Möglichkeiten für Organisationen angemessene Cybersicherheitsschutzmaßnahmen in ihre DevOps-Pipeline zu integrieren.
Sicherheitsrisiken für Anwendungen
Die zunehmende Komplexität der Anwendungen und ihre Abhängigkeit von Drittbibliotheken machen sie u.a. anfällig für Sicherheitsbedrohungen. Ein Forrester-Bericht von 2020 stellt fest, dass die Mehrzahl der externen Angriffe durch Ausnutzung einer Software-Schwachstelle oder einer Web-Anwendung erfolgt. Der Bericht nennt Open-Source-Software als ein Hauptproblem für die Sicherheit von Anwendungen und verweist auf den 50%igen Anstieg von Open-Source-Sicherheitslücken seit dem letzten Jahr.
Auch die zunehmende Verbreitung von Containern und die erforderlichen APIs bringen zusätzliche Risiken. Ein 2020 Snyk Report stellt fest, dass neun von zehn der Top-10 offiziellen Container-Images mehr als 50 Schwachstellen umfassen. Ein F5 Report von 2019 fand heraus, dass API-Einbrüche entweder bedingt durch große Plattformen zustande kommen, die viele Drittanbieter-Integrationen enthalten, oder durch mobile Applikationen und infolge der Fehlkonfigurationen der Anwendungen.
Die Open Web Application Security Project (OWASP) Foundation stellt eine umfassende Liste der Risiken für Webanwendungen und APIs zur Verfügung. Es ist wichtig, dass sich die Entwickler der häufigsten Anwendungssicherheitsrisiken bewusst sind - in der Regel durch unsicheren Code entstanden - damit sie die Bereiche überprüfen können, die sie in jeder Phase der Entwicklungspipeline abdecken müssen. Dies sind die häufigsten Risiken für Anwendungen:
- Einsatz von Komponenten mit bekannten Schwachstellen. Entwickler verwenden Komponenten wie Bibliotheken, Frameworks und andere Softwaremodule in ihren Anwendungen, um redundante Arbeit zu vermeiden und die benötigte Funktionalität bereitzustellen. Bedrohungsakteure wiederum suchen nach bekannten Schwachstellen in diesen Komponenten, um die Abwehr von Anwendungen zu untergraben und verschiedene Angriffe durchzuführen.
- Daten-Lecks und Exponierung. Webanwendungen und APIs mit nur ungenügendem Schutz für sensible Daten könnten Bedrohungsakteuren böswillige Aktivitäten ermöglichen, wie Daten- oder Identitätsdiebstahl und Kreditkartenbetrug.
- Schwache Zugangskontrolle zum Backend. Schwache Backend-Zugangskontrollen sind das Ergebnis unsachgemäß durchgesetzter Einschränkungen der für authentifizierte Benutzer erlaubten Aktionen. Bedrohungsakteure können diese Schwachstellen ausnutzen, um auf nicht autorisierte Funktionen zuzugreifen. Dazu gehören der Zugriff auf andere Benutzerkonten, die Anzeige sensibler Dateien, die Änderung anderer Benutzerdaten und die Änderung von Zugriffsrechten..
- Injection. SQL, NoSQL, OS und LDAP sind für Einschleusungstaktiken anfällig, die für Angriffe missbraucht werden können, wenn nicht vertrauenswürdige Daten über eine Formulareingabe oder andere Datenübertragungsmethoden an einen Code-Interpreter gesendet werden. Bedrohungsakteure können „feindliche“ Daten verwenden, um den Interpreter dazu zu bringen, bösartige Befehle auszuführen oder nicht autorisierten Datenzugriff zu ermöglichen.
- Sicherheitsfehlkonfiguration. Dies ist die häufigste Sorge hinsichtlich der Sicherheit von Webanwendungen. Diesbezügliche Probleme treten aufgrund unsicherer Standardkonfigurationen, falsch konfigurierter HTTP-Header, unvollständiger oder Ad-hoc-Konfigurationen, Open-Cloud-Speicher und zu wortreicher Fehlermeldungen auf, die sensible Informationen enthalten. Betriebssysteme, Bibliotheken, Frameworks und Anwendungen sollten aber auch rechtzeitig gepatcht werden.
- Nicht korrekte Authentifizierung und Autorisierung. Wenn Anwendungsfunktionen hinsichtlich Authentifizierung und Session-Management nicht korrekt implementiert sind, können Bedrohungsakteure diese missbrauchen, um Passwörter und Schlüssel oder Session-Token zu kompromittieren. Sie können auch Benutzer- oder Administratorkonten kapern, über die ein ganzes System kompromittiert werden könnte.
- Cross-Site Scripting XSS. Angreifer können XSS-Fehler dazu missbrauchen, Skripts in einem Browser auszuführen und Benutzer-Sessions zu kapern, Websites zu entstellen oder den Benutzer auf bösartige Websites umzuleiten. XSS-Fehler treten auf, wenn eine Anwendung nicht vertrauenswürdige Daten in eine neue Webseite einfügt ohne ordnungsgemäße Validierung. Sie können auch zustande kommen, wenn eine Anwendung eine bestehende Webseite mit vom Benutzer bereitgestellten Daten über ein HTML- oder JavaScript-erzeugendes Browser-API aktualisiert.
- Unichere Deserialisierung. Dieser Fehler, d.h. die unsachgemäße Rückkonvertierung serialisierter Daten in Objekte, die von der Anwendung verwendet werden können, führt häufig zu Remote Code Execution (RCE). Dadurch können Bedrohungsakteure auch Replay-, Injection- und Privilegieneskalations-Angriffe durchführen.
- Unzureichendes Logging und Monitoring. Beides unterstützt Angreifer dabei, Daten zu ändern, zu extrahieren oder zu vernichten sowie weitere Systeme zu attackieren, Persistenz aufrecht zu erhalten und weitere Systeme ins Visier zu nehmen.
Integration adäquater Sicherheitsebenen in die DevOps-Pipeline
Entwickler, die in traditionellen Entwicklungsteams arbeiten, tendieren dazu, Sicherheit erst im Nachhinein zu bedenken, weil sie sich zu sehr auf die Erstellung von Anwendungen und die Einhaltung von Terminen konzentrieren. Herkömmliche Prozesse führen zu unzureichender Sicherheit und Kommunikationslücken zwischen Entwicklungs- und Sicherheitsteams. Die Behebung von Schwachstellen, die in der Implementierungsphase aufgedeckt werden, kann zudem mehr als sechsmal so teuer sein wie die der in der Entwurfsphase festgestellten, so eine Untersuchung von IBM.
Entwicklungsteams sollten deshalb adäquate Cybersecurity Layer integrieren, die unter anderem Container, Source Code und Abhängigkeiten analysieren. Vor allem die folgenden Aufgaben sind wichtig:
- Container Scanning. Container-Technologie bringt bei allen Vorteilen auch eine Vielfalt an potenziellen Risiken und Gefahren mit. Werkzeuge zur Analyse von Container-Images können Entwicklungsteams dabei helfen, in allen Phasen des Software-Entwicklungslebenszyklus (SDLC) nach bekannten Schwachstellen, geheimen Schlüsseln, Compliance-Checklisten und Malware-Varianten zu suchen. Solche Tools können Einsichten in die Sicherheitsbelange innerhalb des Containers liefern, bevor diese in die Produktionsumgebung übertragen werden. Um die Risiken weiter zu minimieren, sollte auch der Einsatz von nicht verifizierbarer Software von Drittanbietern reduziert werden, um sicherzustellen, dass keine Schadsoftware in die Container-Umgebung eindringt.
- Analyse der Software-Zusammensetzung. Code-Blöcke, die möglicherweise von außerhalb der Organisation stammen und im Allgemeinen während der statischen Analysephase nicht überprüft wurden, sind häufig in die DevOps-Umgebung integriert und werden dort ausgeführt. Mit Tools wie OWASP Dependency-Check lässt sich nach veralteten oder angreifbaren Bibliotheken im Code suchen. Snyk liefert ebenfalls kostenlose Drittanbieter-Verifizierung für quelloffene Projekte.
- Statisches Application Security Testing (SAST). Auch als Security Code Review oder Code Auditing bekannt, unterstützt SAST Entwickler dabei, in einer frühen Phase Schwachstellen und andere Sicherheitsprobleme im Anwendungscode zu finden.
- Dynamic Application Security Testing (DAST). DAST, auch Black-Box-Tests genannt, kann Sicherheitslücken und Schwachstellen in Anwendungen finden, und zwar durch den Einsatz von Fault Injection-Techniken wie SQL Injection, Cross-Site Scripting (XSS) und Cross-Site Request Forgery (CSRF). DAST-Lösungen können dazu beitragen, die Belastbarkeit von Anwendungen, Containern und Clustern zu testen, wenn sie bösartigen Techniken ausgesetzt sind.
- Interactive Application Security Testing (IAST). IAST führt Laufzeittests für Webanwendungen durch, um Sicherheitslücken zu erkennen. Bereiche, die SAST und DAST möglicherweise nicht abdecken können, lassen sich durch IAST bearbeiten, da dieses Testen Elemente beider Ansätze kombiniert und dadurch mehr Code abdecken, genauere Ergebnisse liefern und eine breitere Palette von Sicherheitsregeln überprüfen kann. Die IAST-Lösungen führen ihre gesamte Analyse in der Anwendung in Echtzeit und überall in den folgenden Bereichen durch: Entwicklungsprozess IDE, QA, kontinuierliche integrierte Umgebung oder sogar in der Produktion.
Best Practices
Im Folgenden sind einige Best Practices über die gewährleistet werden kann, dass Anwendungen sicher entwickelt werden.
- Anwenden des Prinzips der Least Privilege (PLOP). Diese Richtlinie begrenzt die Zugriffsrechte für Benutzer auf die Berechtigungen, die für die Erfüllung ihrer Aufgaben erforderlich sind, wodurch das Risiko des Kontomissbrauchs oder der Entführung von Konten und der Preisgabe sensibler Daten verringert wird.
- Anwenden automatisierten Testens. Die Zahl der Software-Schwachstellen hat sich seit 2017 erhöht. Deshalb ist automatisiertes Testen bereits früh im Entwicklungsprozess sehr wichtig, weil damit Fehler oder Lücken gefunden werden, solange sie noch einfach zu beheben sind.
- Regelmäßiges Scannen nach Schwachstellen. Entwickler verwenden häufig externe Bibliotheken oder Packages aus Open-Source-Projekten, wenn sie Software entwickeln. Diese Bibliotheken aber enthalten bekannte Schwachstellen. Um diese so früh wie möglich zu erkennen undzu beheben, sollten sie regelmäßig gescannt werden.
- Einsatz von Runtime Application Self-Protection (RASP)-Lösungen. Diese Lösungen überwachen den Verkehr der Anwendungen, Container und serverlosen Architekturen, um Angriffe in Echtzeit zu erkennen. Der Einsatz von RASP-Lösungen ermöglicht das Abfangen aller Arten von Datenverkehr, einschließlich solchen, der auf böswilliges Verhalten hinweist, wie SQL-Injection, Cross-Site-Scripting (XSS), Schwachstellen, Bots und andere Angriffe auf Webanwendungen.
- Schulungen für funktionsübergreifende Teams bezüglich einer DevSecOps-Kultur. Die DevSecOps-Kultur sollte innerhalb der Organisationen gefördert werden. Dies kann durch die Bildung funktionsübergreifender Teams erreicht werden, die sich auf die Schulung von Entwicklern auf dem Gebiet der Sicherheitsdisziplin sowie auf die Schulung von Sicherheitsexperten zum Software-Entwicklungsprozess spezialisieren. Dadurch können Sicherheitsteams Programmiersprachen besser verstehen und mehr darüber erfahren, wie APIs zur Automatisierung einfacher Prozesse eingesetzt werden können. Solche Fertigkeiten reduzieren zudem letztlich ihre Arbeitsbelastung.
- Einbeziehen der Anwendungssicherheit in die Datenschutz-Compliance-Strategie. Anwendungssicherheit ist Teil der allgemeinen Bestrebungen einer Organisation, Datenschutzbestimmungen und IT-Standards einzuhalten. Unternehmen können eine effiziente Compliance-Strategie anwenden, die dem "Privacy by Design"-Ansatz folgt. Beispielsweise schließt eine adäquate Compliance-Strategie für die Europäische Datenschutz-Grundverordnung (DSGVO) die Durchführung von Vertraulichkeits- und Sicherheitsüberprüfungen mit ein, über die Implementierung von Identitäts- und Authentifizierungs-Maßnahmen sowie geeignete Zugangskontrollen, Datenschutz über PLOP und Verschlüsselung u.a.
Regelmäßiges Scannen und der Einsatz von fortschrittlichen Sicherheits-Tools, um Malware, Schwachstellen und andere Bedrohungen zu erkennen, ist von entscheidender Bedeutung. Ebenso müssen Unternehmen Richtlinien einführen, die eine strenge Sicherheitskultur ermöglichen.
Trend Micro-Lösungen
Die Service-Plattform Trend Micro Cloud One™, die Trend Micro™ Hybrid Cloud Security unterstützt, ermöglicht es Entwicklern, Anwendungen auf ihre Art zu entwickeln und zu betreiben. Sie umfasst Mechanismen, die über vorhandene Infrastruktur, Tool-Ketten und Anforderungen hinweg arbeiten.
Application Security von Cloud One liefert diagnostische Einzelheiten zu Code-Schwachstellen sowie Schutz vor automatisierten Angriffen über Bedrohungen wie SQL Injection und RCE zur Laufzeit. Darüber hinaus gibt es eine vollständige Abdeckung und Berichterstattung über jede Angriffsinstanz sowie Einblicke in die Identität eines Angreifers und die Angriffsmethodik.
Cloud One bietet außerdem die folgenden Cloud-Sicherheitstechnologien an:
- Workload Security: Schutz für Workloads zur Laufzeit
- Container Security: automatisiertes Scannen von Container Image und Registry
- File Storage Security: Sicherheit für Cloud Datei- und Objektspeicher-Services
- Network Security: Cloud IPS Security für die Netzwerkschicht
- Conformity: Echtzeit-Sicherheit für Cloud-Infrastrukturen - sichern, optimieren, Vorschriften einhalten