Doch das ist längst nicht alles! Hacker hinterlassen auch in der “echten” Welt gravierende Spuren: Mittlerweile sind Industrieanlagen ein beliebtes Ziel von Schadsoftware geworden. So wurde 2014 das Kontrollzentrum eines Hochofens in einem deutschen Stahlunternehmen massiv beschädigt. Selbst der Deutsche Bundestag wurde schon gehackt. Und sogar Krankenhäuser wurden zeitweise durch Cyberangriffe lahmgelegt. Die Beispiele zeigen, wie schwerwiegend – teuer bis lebensgefährlich – Softwarefehler sein können. Und genau deshalb ist Software Testing bzw. Security Testing so wichtig! Um die Sicherheit von Software, Unternehmen und Menschen zu gewährleisten.
Was ist Software Testing?
Bevor ich auf näher auf Security Testing eingehe, möchte ich Funktion und Ziele von Software Testing noch einmal kurz zusammenfassen.
Software Testing ist ein wichtiger Teil der Software-Entwicklung und spielt eine entscheidende Rolle für die Softwarequalität. Denn durch das Testen können Software-Fehler im Vorfeld erkannt und rechtzeitig behoben werden. Zudem wird überprüft, ob das System die spezifizierten Anforderungen erfüllt, einschließlich Funktionalität, Leistung und Zuverlässigkeit. So ist bereits vor dem Live-Gang der Anwendung gecheckt: Wurde programmiert, was angefordert war? Und funktioniert die Software einwandfrei?
Vorteile von Software Testing auf einen Blick
Kosteneffizienz
Rechtzeitiges und kontinuierliches Testen in der Entwicklung spart langfristig Geld. Denn das Beheben von Fehlern in der früheren Phase kostet i. d. R. weniger als später – ganz zu schweigen von finanziellen Auswirkungen an Dritten.
Produktqualität
Jedes Softwareprodukt zielt auf eine hohe Qualität ab. Testen stellt sicher, dass ein Qualitätsprodukt entwickelt und terminiert wird. Besonders wichtig ist hier das organisierte Software Testing.
Sicherheit
Das Testen von Software schafft Vertrauen und Sicherheit auf sämtlichen Ebenen. Software-seitige Risiken, Bedrohungen und Probleme werden frühzeitig behoben und die korrekte Anwendbarkeit gesichert.
Softwaretests können sowohl manuell als auch automatisiert durchgeführt werden. Beim manuellen Testen werden Testfälle manuell durch einen Menschen und ohne Unterstützung durch Werkzeuge oder Skripte ausgeführt. Beim automatisierten Testen werden Tests durch Tools und spezifische Software ausgeführt. Im letzteren Fall schreiben die Entwickler Code, der sicherstellt, dass der Software-Code funktioniert. Es gibt vielzählige Verfahren, um Software zu testen. Zu den gängigsten gehören:
- Unit-Tests (Modultests)
- Integrationtests
- End-to-End-tests
- Performance tests
- Smoke tests
Die Art der Prüfung hängt von verschiedenen Faktoren ab. Dazu zählen unter anderem Projektanforderungen, Budget, Zeit und Know-how. Ziel ist, von der Installation über die Funktion und Anwendung bis zur Wartung eine möglichst hohe Testabdeckung zu erreichen. Doch Vorsicht: Nur weil eine Software die Qualitätsanforderungen in Bezug auf Funktionalität und Leistung erfüllt, bedeutet dies nicht unbedingt, dass die Software sicher ist.
Security Testing: Warum Sicherheitstests so wichtig sind
Security Testing ist eine Art des Software Testing. Es umfasst sämtliche Tests, um das ordnungsgemäße und einwandfreie Funktionieren einer Software bzw. Anwendung in der Software-Entwicklung sicherzustellen. Mit Sicherheitstests lassen sich Bedrohungen und Risiken jeglicher Art im System identifizieren und potenzielle Schwachstellen punktgenau ausloten. Software-Entwickler können dann sicher und schnell reagieren, um die Sicherheitsrisiken durch entsprechende Codierung zu beheben. Und das ist heutzutage wichtiger denn je: Moderne Betriebsabläufe, die wachsende Mobilität und riesige Datenmengen bieten eine Vielzahl an Angriffsmöglichkeiten für Hacker.
Softwaresicherheit: Banken und Versicherungen im Fokus von Hackern
Gerade Unternehmen wie Banken und Versicherungen stehen hier im Fokus, da sie über enorm wichtige und hochsensible Daten (bspw. von Kunden) verfügen. Mit dieser hohen Verantwortung geht die angemessene Softwaresicherheit hier also weit über den notwendigen eigenen Schutz hinaus. Zudem gefährdet unsichere Software die Integrität der Daten sowie die Verfügbarkeit von Anwendungen. Das Ziel von Security Testing ist es also, Unternehmen sowie Anwender vor Risiken zu schützen, die durch das Verwenden fehlerhafter Software entstehen können.
Sicherheit im Unternehmen: Wann ist eine Software sicher?
Die Sicherheit von Software ist für die Sicherheit von Unternehmen ein entscheidender Faktor. Sie muss einwandfrei funktionieren und darf dabei keine Sicherheitslücken aufweisen. Doch solange Software noch von Menschen programmiert wird, lassen sich Fehler nicht grundsätzlich ausschließen. Umso wichtiger ist das professionelle Security Testing auf allen Ebenen. Zum Prüfen von
- Integrität,
- Authentizität,
- Vertraulichkeit,
- Verwundbarkeit und
- Kontinuität.
Neben einer allgemeingültigen Code-Kultur und einer guten Teamorganisation sollten vor allem entsprechende Sicherheitswerkzeuge eingesetzt werden. Mit den richtigen Tools wird die Software-Sicherheit in der Entwicklung sowie im anschließenden Betrieb hoch gehalten.
Setup Beispiel: Bitbucket Pipelines mit SonarCloud
Wie die Sicherheits-Software SonarCloud in einen bestehenden Workflow integriert werden kann, zeigt das nachfolgende Beispiel. Dabei seht ihr, wie schnell und einfach das Ganze funktioniert. Das Beispiel könnt ihr ebenso gut als Anleitung nutzen, um SonarCloud in Bitbucket Pipelines zu integrieren. Außerdem gibt es noch einige weitere nützliche Features, die SonarCloud mit sich bringt.
Kurze Info für alle, die SonarCloud noch nicht kennen:SonarCloud ist ein von SonarSource angebotener Cloud-Service, der auf der Open-Source-Plattform SonarQube basiert. Er dient der Überprüfung und Erkennung von Schwachstellen, Bugs und Code smells im Source Code und unterstützt dabei mehr als 20 Programmiersprachen.
Typischerweise wird SonarCloud in den Deployment Workflow eingebaut und dient als sogenanntes Quality Gate, bevor ein neues Release live geht.
Beispiel und Leitfaden: So funktioniert’s:
Link zu unserem Git Respository auf Bitbucket
- Öffne die SonarCloud Webseite
- Logge dich mit deinen Atlassian Zugangsdaten ein
- Füge ein neues Projekt hinzu
- Wähle ein Projekt aus
- Wähle deine Analysemethode aus
- Klicke auf ‘I need a pipeline’
- Gehe in die Einstellungen deines Bitbucket-Repositorys und aktiviere Pipelines
- Gehe zu den Repository variables und füge den SonarCloud Token hinzu
- Füge Folgendes in deine Bitbucket Pipeline ein:
image: python:3.8.3 # Choose an image matching your project needs
clone:
depth: full
definitions:
caches:
sonar: ~/.sonar/cache
services:
docker:
memory: 2048
steps:
– step: &build-test-sonarcloud
name: Build, test and analyze on SonarCloud
caches:
– pip
– sonar
– docker
script:
– pipe: sonarsource/sonarcloud-scan:1.2.1
variables:
DEBUG: ‚true‘
services:
– docker
– step: &check-quality-gate-sonarcloud
name: Check the Quality Gate on SonarCloud
script:
– pipe: sonarsource/sonarcloud-quality-gate:0.1.4
services:
– docker
pipelines:
branches:
master:
– step: *build-test-sonarcloud
– step: *check-quality-gate-sonarcloud
pull-requests:
‚**‘:
– step: *build-test-sonarcloud
– step: *check-quality-gate-sonarcloud
Tipp
- Unterhalb der definitions müssen wir Docker 2048mb RAM geben
- Unterhalb der steps müssen wir Docker explizit als Service bekannt machen
- Während Pipeline ausgeführt wird, analysiert SonarCloud-Analyse deinen Quellcode im Repository. Findet SonarCloud einen der oben aufgeführten Punkte, etwa einen Code Smell, schlägt das bauen der Pipeline fehl und du erhältst innerhalb von SonarCloud auf deinem Dashboard eine Auswertung:
- Die hier gefundenen Probleme könnten jetzt mittels Automatisierungen innerhalb von SonarCloud noch einzeln als Defects oder Bugs innerhalb von Jira erstellt werden.
- Fertig!
Zusammenfassung
Mit der zunehmenden Digitalisierung steigt die Angriffsfläche für Hacker. Gleichermaßen wachsen auch die Möglichkeiten, um sich bestmöglich abzusichern. Besonders Unternehmen, die über viele und sensible Daten verfügen, sollten ihre Systeme optimal schützen. Und auch für Hacker vermeintlich uninteressante Unternehmen sollten mit Ihrer Software-Sicherheit nicht leichtfertig umgehen. Mit einem professionellen Security Testing lässt sich das ordnungsgemäße und einwandfreie Funktionieren einer Software bzw. Anwendung in der Software-Entwicklung sicherzustellen. So können softwareseitige Sicherheitslücken frühzeitig erkannt und behoben werden. Eine schnelle und einfache Option von vielen für Security Testing ist die Integration von SonarCloud in Bitbucket. Sie bietet zwar noch nicht die hundertprozentige Sicherheit, dient aber als zusätzliches Quality Gate. Das Beispiel aus diesem Blogbeitrag kann euch als Anleitung dienen. Gern helfen wir auch persönlich weiter, um eine höhere Softwaresicherheit – und damit die Sicherheit des Unternehmens – zu verbessern.
Die Jodocus GmbH ist als Atlassian Platinum Solution Partner auf das Optimieren von ITSM- und Digitalisieren von Geschäftsprozessen mit den Atlassian-Produkten spezialisiert. Von den Standorten in Hamburg, Hörstel, Düsseldorf, Kiel und Kulmbach aus bedient das eingespielte Team aus IT- und Cloudexperten sowie Spezialisten für Prozess- und Projektmanagement eine Vielzahl an Branchen: von deutschen mittelständischen Unternehmen und Großunternehmen wie Banken und Versicherungen bis zu internationalen Big Playern.
Eficode Germany GmbH
Bergeshöveder Str. 64
48477 Hörstel
Telefon: +49 (5454) 4073463
Telefax: +49 (5454) 4073464
http://eficode.com/de
Marketing
E-Mail: saskia.thelen@jodocus.io