Forrester-Review-Ergebnis als Infografik

Darum ist das frühe Evaluieren von Softwarefehlern so wichtig

In Zeiten von unsicheren Software-Applikationen, die aufgrund von Schwachstellen unerwünschten Eindringlingen wie Hackern zahlreiche Angriffspunkte bieten, wird der Sicherheitscheck von selbst programmierten Anwendungen immer wichtiger. Hierbei werden Firmen von speziellen Tools wie der CAST Application Intelligence Platform (AIP) unterstützt, die innerhalb der gesamten Entwicklungsphase eingesetzt werden können.

Das Ganze nennt sich Static Application Security Testing (SAST) und ist im besten Fall Teil des Software Development Life Cycle (SDLC), was im Deutschen für Software-Entwicklungs-Lebenszyklus steht. Dabei kommt es vor allem darauf an, die entsprechenden SAST-Tools in einem möglichst frühen Entwicklungsstadium der Anwendungssoftware einzusetzen. Denn das erlaubt ein rasches Aufspüren von vorhandenen Schwachstellen und Programmierfehlern, die die Sicherheit von Applikationen gefährden können.

SAST-Tools wie die CAST AIP im Fokus von Sicherheitsexperten und CIOs

Daher verwundert es nicht, dass immer mehr Sicherheitsverantwortliche größerer Firmen die Implementierung von SAST-Werkzeugen in den Software-Entwicklungszyklus entweder bereits realisiert haben oder planen, dies zu tun. Zu diesem Ergebnis kommt zumindest das Marktforschungsinstitut Forrester Research in seiner Umfrage mit dem Titel „Forrester Data Global Business Technographics Security Survey, 2017“.

Dabei stellte sich nämlich heraus, dass schon zahlreiche Unternehmen SAST-Tools einsetzen oder planen dies zu tun. Etwas unverständlich dabei ist allerdings, warum sie damit in vielen Fällen erst zu einem recht späten Zeitpunkt innerhalb des Entwicklungszyklus‘ beginnen, und zwar erst während der Test- bzw. Produktionsphase. Dabei ist das Evaluieren von möglichen Schwachstellen zu einem früheren Zeitpunkt sehr viel sinnvoller.

Forrester-Umfrage zur Implementierung von SAST-Tools

10 Probanden und wichtige Erkenntnisse des Forrester SAST-Reviews

Dasselbe Unternehmen hat ebenfalls erst kürzlich eine umfangreiche Marktbetrachtung samt Funktionstest veröffentlicht, in dem es die zehn bekanntesten SAST-Tools unter die Lupe nimmt. Zu diesem erlesenen Feld gehören unter anderem CA Veracode, CAST, Ceckmarx, Micro Focus, Synopsys und andere Probanden. Der Name diese Studie lautet The Forrester Wave: Static Application Security Testing, Q4 2017.

Download-Tipp: Die detaillierte Auswertung der Studie steht mithilfe einer kurzen Registrierung als Download auf der CAST-Webseite zu Verfügung.

Wichtig dabei war, ob die SAST-Tools Dinge wie das Scannen von Quellcode beherrschen, und das auf möglichst breiter Programmiersprachen-Basis, inkrementelle Scans unterstützen, Meilensteine vorsehen sowie die Integration des SAST-Tools innerhalb der Entwicklungsumgebung ermöglichen, und das alles „Out of the Box“, also ab Werk quasi. Darüber hinaus wurde die aktuelle Vermarktungsstrategie sowie der Marktanteil des jeweiligen SAST-Tools betrachtet und bewertet. Herausgekommen bei dieser Evaluierung sind zahlreiche interessante Erkenntnisse:

Die CAST AIP punktet vor allem in Spezialdisziplinen

Hinter den „Platzhirschen“ Synopsys und CA Veracode tummeln sich drei ernstzunehmende Alternativen, die ihre Stärken vor allem in speziellen Bereichen ausspielen. Im Falle der CAST AIP betrifft dies unter anderem den breiten Support an Programmiersprachen, weswegen die CAST AIP eine sehr gute Option für Unternehmen darstellt, in denen Sprachen wie Javascript, .NET, Java, Python, C++, etc. zum Einsatz kommen.

Aber auch im Bereich „Akkuratesse“ kann die CAST AIP punkten. Hiermit kann der „Gesundheitszustand“ einer Anwendung ermittelt werden, und das runter bis auf Systemebene. Dabei wird vor allem die Qualität der einzelnen Softwarekomponenten sowie deren Verbindungen zueinander gemessen und bewertet.

CAST Application Intelligence Platform (AIP)

Bemerkenswert finden die Marktanalysten von Forrester auch das Dashboard der CAST AIP, mit dessen Hilfe Sicherheitsexperten, Software-Entwickler und CIOs die Qualitätsmerkmale ihrer Software auf einen Blick visualisieren können. Dazu gehören Kriterien wie Robustheit, Effizienz, Anpassbarkeit und Sicherheit der Anwendung. Aus diesen und weiteren Gründen kommt Forrester zu dem Schluss, dass die CAST AIP im Segment „Strong Performers“ anzusiedeln ist, und das wegen einer klaren Marktstrategie und einem soliden Produkt, mit dem sich Schwachstellen innerhalb von Quellcode ausfindig machen lassen.

Forrester-Review-Ergebnis als Infografik

Disclaimer: Dieser Blogbeitrag ist im Auftrag der Firma CAST entstanden, die mir bei der Ausgestaltung und Formulierung nahezu freie Hand lässt.

CAST Application Intelligence Platform (AIP)

Softwarequalität bewerten: Wissenswertes zu CISQ und OMG

Stellen Sie sich einmal vor, Sie möchten eine Ihrer selbst entwickelten Anwendungen auf deren Qualität hin überprüfen. Um eine möglichst zuverlässige Aussage über die Effizienz, Stabilität und Sicherheit der Applikation zu bekommen, setzen Sie beispielsweise ein Analysetool wie CAST AIP (Application Intelligence Platform) ein. Doch woher nehmen Sie die Gewissheit, dass das Analysewerkzeug auch auf die richtigen Methoden und Standards setzt, mit denen die Zuverlässigkeit einer Software sichergestellt werden kann?

Genau für diesen Zweck gibt es umfassende Regelwerke, auf denen Analysetools wie die CAST AIP basieren. So werden für die Beurteilung einer Anwendung bis zu 1.200 Bewertungskriterien herangezogen, die die Software anhand bestimmter Qualitätsindikatoren bemisst und bewertet. Hierbei werden vor allem Kriterien überprüft wie Leistungseffizienz, Zuverlässigkeit, Sicherheit, Administration und Anpassungsfähigkeit .

Leistungseffizienz: Besonders der Quellcode und die Eigenschaften der zugehörigen Software-Architektur stellen die Leistungseffizienz einer Anwendung sicher. Die Effizienz einer Applikation spielt vor allem in Hochleistungsumgebungen eine große Rolle, da es hier auf schnelle Transaktionen ankommt und ein möglichst verlustfreies Ausführen des Quellcodes im Vordergrund steht. Damit gibt die Analyse dieses Kriteriums Aufschluss darüber, wie sich fehlerhafter Code negativ auf die Unternehmensziele einer Firma auswirken kann. So spielt die Leistungseffizienz beispielsweise bei kundenorientierten Applikationen wie einem Onlineshop eine große Rolle.

Zuverlässigkeit: Elastizität und Stabilität sagen etwas über die Zuverlässigkeit einer Software-Anwendung aus. Denn nichts ist gravierender und schwerwiegender als mögliche Programmausfälle oder -abbrüche, mit denen Anwender konfrontiert werden. So wird anhand bekannter ISO-Kennzahlen eine Anwendung unter anderem daran bemessen, wie viele Mängel sich aufgrund von Programmierfehlern nachträglich eingeschlichen haben, was die Anwendung insgesamt instabiler macht. Daher werden in diesem Fall Kriterien wie Softwarecrashes, Softwareausfälle und Softwarefehler betrachtet, die einen direkten Einfluss auf Anwender haben.

Sicherheit: Die schlechte Programmierung und eine unzureichende Anwendung der zugrunde liegenden Software-Architektur sind maßgeblich für mögliche Sicherheitsverletzungen verantwortlich. Das Ergebnis der Software-Analyse dieses Kriteriums stellt eine Risikoabschätzung dar, mit welchem Aufwand sich unternehmenskritische Software-Schwachstellen identifizieren und beheben lassen.

Transferierbarkeit: Software lässt sich vor allem dann mit einem angemessenen Aufwand kontinuierlich verbessern, wenn sich der zugehörige Quellcode möglichst gut verwalten lässt. Damit lässt sich der Aufwand recht gut einschätzen, der notwendig ist, um die betreffenden Stellen im Quellcode zu identifizieren und zu eliminieren. Das sorgt gleichzeitig für einen geringen Unabhängigkeitsgrad von einzelnen Software-Entwicklern, die an der Programmierung der Anwendung beteiligt waren.

Änderbarkeit: Wie viel Aufwand ist nötig, um den Quellcode einer Anwendung gemäß der erforderlichen oder gewünschten Anforderungen seitens der Anwender/Kunden anzupassen? Anhand des Kriteriums „Anpassungsfähigkeit“ wird genau diese Frage beantwortet.

Organisationen wie CISQ und ISO geben die Qualitätstandards vor

Doch auf welchen Qualitätskriterien beruhen die genannten Analysemethoden, die von Vereinigungen und Organisationen wie dem Software Engineering Institute (SEI), der International Standards Organizations (ISO), dem Consortium for IT Software Quality (CISQ) und IEEE (International Electrical und Electronics Engineers) entwickelt und verabschiedet wurden und werden?

Organisationen wie CISQ und OMG sorgen für fehlerfreie Anwendungssoftware

Nun, um diese Frage zu beantworten, reicht ein Besuch der CISQ-Webseite, auf der unter anderem all die 86 Software-Schwachstellen aufgeführt werden, anhand derer die Leistung, Zuverlässigkeit, Sicherheit, Leistungseffizienz und Administration einer Software bewertet werden können. Dazu gehören ganz triviale Fehler wie Buffer Overflow genauso wie die Umwandlung in einen kompatiblen Datentyp. Schön an dieser Liste sind die zahlreichen Lösungsvorschläge, die für jede einzelne Software-Schwachstelle angeboten werden.

Automatisierte Function Point-Methode zur quantitativen Beurteilung von Sourcecode

Neben den qualitativen Softwarekriterien, die sich mithilfe der CISQ-Standards überprüfen lassen, kommt auch der quantitativen Bewertung einer Anwendung eine immer größere Rolle zu. So ließen sich bis Mitte 2000 keine automatisierten Aussagen über den Umfang eines Sourcecodes treffen. Diesen Misstand behob die im Jahr 2014 verabschiedete Spezifikation „Automated Function Points“, die ein gemeinsames Projekt der Object Management Group (OMG) und CISQ darstellt. Hierbei werden anhand der ISO-Norm 20926 zahlreiche Regeln zurate gezogen.

So stehen zur quantitativen Bewertung einer Anwendung insgesamt fünf Elementarprozesse zur Verfügung, die einzeln bewertet werden. Das sind laut Spezifikation IFPUG-CPM 4.3.1 Eingaben (External Input, EI), Ausgaben (External Output, EO), Abfragen (External Inquiry, EQ), interne Datenbestände (Internal Logical File, ILF) und Referenzdaten (External Interface File, EIF).

Disclaimer: Dieser Blogbeitrag ist im Auftrag der Firma CAST entstanden, die mir bei der Ausgestaltung und Formulierung nahezu freie Hand lässt.

So gelingt der Umzug in die Cloud mithilfe eines 5-Tage-Workshops

Nicht erst seit gestern gibt es sie, diese Tendenz vieler Unternehmen, ihre IT-Infrastruktur in die Cloud zu transferieren, denn dieser Ansatzes birgt zahlreiche Vorteile:

HäkchenDie eigene IT-Landschaft muss nicht mehr aufwändig administriert und permanent aktuell gehalten werden. Das spart viel Zeit und Geld.

HäkchenGerade am Anfang wachsen Unternehmen eher unkontrolliert, was zum Beispiele mit unerwarteten Aufträgen zu tun hat, die unter anderem die IT-Infrastruktur vor Herausforderungen stellen kann. Mit einer Cloud-Infrastruktur kann jede benötigte Ressource wie zusätzliche Server- und Speicherkapazitäten einfach hinzugebucht werden. Damit gehören IT-Anschaffungen der Vergangenheit an.

Das sind nur zwei von zahlreichen Cloud-Vorteilen, die immer mehr Unternehmen für sich entdecken, doch genau an dieser Stelle kommt die schlechte Nachricht: Die große Mehrheit dieser RZ-Cloud-Migrationsprojekte scheitern, und das aus ganz unterschiedlichen Gründen. Entweder, weil es den Verantwortlichen am fundamentalen Verständnis für das Thema Cloud mangelte oder weil der Migrationsaufwand schlichtweg unterschätzt wurde oder weil es keine geeigneten Prozesse für das Überführen eigener Anwendungen in die Cloud existierten.

Dabei scheint die Materie nur auf den ersten Blick kompliziert zu sein. Denn mit den richtigen Fragen und den passenden Antworten samt einer zielführenden Unterstützung gelingt auch die Cloud-Migration. Zu den möglichen Fragen samt Antworten zählen unter anderem:

FRAGE: Was ist bei der Cloud-Migration zu berücksichtigen?

ANTWORT: IT-Umgebungen müssen immer agiler werden, um neue Anforderungen der Fachabteilungen möglichst gerecht werden zu können. In diesem Kontext spielt das Cloud Computing eine immer wichtigere Rolle. Mögliche Ansätze sind hierbei sehr vielfältig und reichen von der vollständigen Migration in die Cloud bis zum partiellen Umzug.

FRAGE: Was ist eine hybride Cloud?

ANTWORT: Eine hybride Cloud stellt beispielsweise eine Kombination aus dem eigenen Rechenzentrum und dem öffentlichen Zugriff auf Cloud-Services dar, die auf dem Server bereit gestellt werden.

FRAGE: Welche Aspekte sind beim Umzug in die Cloud zu beachten?

ANTWORT: Hierbei wird unterschieden zwischen betriebswirtschaftlichen, technischen und rechtlichen Aspekten, die bei der Migration in die Cloud berücksichtigt werden müssen.

FRAGE: Mit welchen Sicherheitsaspekten wird man  konfrontiert?

ANTWORT: Hierbei sollte man sich vor allem mit den Daten eingehend beschäftigen, die durch den Umzug in der Cloud landen. Vor allem mit denen, die qua Gesetz da eigentlich gar nicht hingehören und verschärften Sicherheitsbestimmungen unterworfen sind.

FRAGE: Wie lassen sich Applikationen in die Cloud migrieren?

ANTWORT: Wichtig in diesem Fall ist eine genaue Bewertung der Anwendungen, die in die Cloud umgezogen werden sollen. Denn nur wenn man die genauen Anforderungen der Applikationen hinsichtlich Bandbreite, Latenzzeiten, Speicherbedarf und Rechenleistung kennt, kann der Umzug der Anwendungen die Cloud gelingen.

FRAGE: Wie lassen sich Anwendungen auf deren Cloud-Readiness hin überprüfen?

ANTWORT: Mithilfe der CAST-Tools Highlight lassen sich eigene Applikation auf ihre Cloud-Readiness hin untersuchen. Damit kann man anhand detaillierter Analysen feststellen, ob und wie sich eine Anwendung in die Cloud migrieren lässt.

CAST Highlight ermittelt die Cloud-Readiness einer Anwendung

Fünf Tage, ein Workshop: So gelingt die Migration in die Cloud

Um all diese und viele weitere Fragen ausführlich beantworten zu können, haben die Firmen CAST, Microsoft und Noventum Consulting gemeinsam einen Workshop entwickelt, der sich intensiv mit dem Umzug in die Cloud beschäftigt.  Dabei steht vor allem der praktische Ansatz im Vordergrund, mit dessen Hilfe Wissen dergestalt vermittelt werden soll, dass am Ende handfeste Ergebnisse in Form eines Cloud-Umzugs stehen. Aber auch für Strategen, die sich intensiv mit der Migration in die Cloud beschäftigen wollen, wurde dieser Workshop konzipiert.

Die Vorgehensweise während des Workshops sieht wie folgt aus: Ziele, Wirkung, Transformationsstrategie und Hybrid-Cloud.

Cloud-Migrations-Workshop - Vorgehensweise

Für eine optimale Ausnutzung der fünf Tage haben sich die drei durchführenden Unternehmen für folgenden Aufbau entschieden:

Cloud-Migrations-Workshop - Aufteilung

Falls diese Herangehensweise in Form eines 5-Tage-Workshops für Sie infrage kommt, können Sie sich hierfür mithilfe des weiterführenden Links anmelden. Und für weitere Informationen dürfen Sie sich gerne das verlinkte Video ansehen, in dem die Ziele, die Methoden und der Aufbau des Workshops genau erklärt wird.

Disclaimer: Dieser Blogbeitrag ist im Auftrag der Firma CAST entstanden, die mir bei der Ausgestaltung und Formulierung nahezu freie Hand lässt.

CAST Application Intelligence Platform (AIP)

Darum kommen CAST Software-Analysetools verstärkt in DevOps-Projekten zum Einsatz

Am 20. Oktober diesen Jahres war ich auf einem IDC-Event, der sich einen ganzen Vormittag lang mit dem Thema DevOps beschäftigte. Dabei habe ich eine ganze Menge gelernt:

HäkchenLaut einer IDC-Studie sind zwar 75 Prozent der befragten Unternehmen bereit für eine funktionierende DevOps-Organisation, davon sehen sich allerdings gerade einmal 13 Prozent bereits am DevOps-Ziel. Womit klar ist: Es gibt noch viel zu tun!

HäkchenEs existieren vor allem vier Bereiche, in denen für eine funktionierende DevOps-Organisation die richtigen Maßnahmen ergriffen werden müssen: Firmenkultur & Firmenleitung, Technik & Automatisierung, Metriken & Messungen sowie Zusammenarbeit & Teamwork.

HäkchenImmer noch fehlt es vielen Firmen an der Erkenntnis, dass zu funktionierenden DevOps-Prozessen „Fehler machen“ und „scheitern“ genauso dazu gehört wie das Implementieren der notwendigen Abläufe. Aber auch die Unternehmenskommunikation muss an DevOps-Prozesse angepasst werden.

HäkchenDie Praxis zeigt: Dort, wo DevOps-Strukturen aufgebaut wurden und funktionieren, konnten Release-Zeiten von Software-Updates von Monaten auf Wochen reduziert werden, und das bei gleichzeitiger Verbesserung der gesamten Applikationssicherheit.

Was ist eigentlich dieses DevOps?

DevOps ist ein Kunstbegriff, der sich aus den Bezeichnungen „Development“ (Entwicklung) und „Operations“ (IT-Betrieb) zusammensetzt. Damit soll in einem Unternehmen eine Organisation implementiert werden, mit deren Hilfe die verschiedenen Prozesse von IT-Teams und Softwareentwicklung weitestgehend automatisiert werden können.

Auf dieser Basis lässt sich zuverlässige Software permanent weiterentwickeln, testen, modifizieren und mit hoher Geschwindigkeit aktualisieren. Dabei steht vor allem das Verschmelzen von einzelnen Teams im Vordergrund, die kritische Probleme schneller lösen und ungeplante Arbeiten besser bewältigen können.

DevOps-Zyklus

Wer braucht dieses DevOps?

Anwender wollen vor allem eins: immer schnellere Software-Update-Zyklen. Und genau darauf müssen sich Software-Firmen einstellen, damit sie die Nachfrage an permanent neuen und verbesserten Funktionen befriedigen können. Doch dieses Tempo hat seinen Preis, der oft zu Ungunsten von Qualität und Sicherheit geht. Und genau dieses Dilemma gilt es aufzulösen: Wie stelle ich sicher, bei ständig zunehmenden Update-Zyklen die Qualität und Sicherheit nicht aus den Augen zu verlieren?

Hierbei helfen die verschiedenen DevOps-Methoden, die sich sehr stark an den Methoden der agilen Software-Entwicklung orientieren. Nur dass im DevOps-Falle die Software-Entwicklung und der IT-Betrieb dieselben Methoden anwenden. Damit wird sichergestellt, dass es keinen Bruch gibt zwischen Software-Erstellung und Software-Bereitstellung.

So funktioniert die DevOps-Werkzeugkette

Eine DevOps-Werkzeugkette ist ein System von zahlreichen Tools, mit deren Hilfe die Software-Entwicklung und das Ausliefern der fertigen Anwendungen automatisiert werden kann. Folgende Schritte umfasst eine typische DevOps-Toolchain: Coding (Entwicklung, Review, Management), Build (durchgehende Integration), Testen (kontinuierliches Testen und Feedback), Packaging, Freigabe (Automatisierung und Verwaltung), Konfigurieren sowie das Monitoring (Leistung, Zufriedenheit).

Exkurs: Das sind die wesentlichen Unterschiede von agilen und DevOps-Softwareprojekten

Agile und DevOps-basierte Software-Projekte sind sich recht ähnlich, allerdings gibt es diverse Unterschiede. Zu den wesentlichen gehören drei: Fertigstellung, Teamgröße und Zeitplanung. Bei der Fertigstellung gehen agile Projekte davon aus, dass mit Erreichen des Tags X das Projekt abgeschlossen ist. DevOps-Projekte hingegen verhalten sich wie ein Perpetuum Mobile: Die Entwicklung und das Bereitstellen von Software ist ein fortlaufender Prozess.

In Sachen Teamgröße setzen agile Projekte eher auf kleinere Teams von wenigen Personen, die einzelne Teile eines Projektes schnell finalisieren können, woraus am Schluss das große Ganze entsteht. Bei DevOps-Projekten hingegen arbeiten größere Teams zusammen, die auf dasselbe Ziele hinarbeiten. Hinsichtlich der Zeitplanung werden agile Projekte in Sprints zerlegt, die nur kurze Abschnitte von meist wenigen Tagen kennen. DevOps-Projekte hingegen weisen keine festen Zeitpläne auf, da stets das bestmögliche Produkt im Vordergrund steht.

So kommt CAST-Analysesoftware in DevOps-Projekten zum Einsatz

Gerade im Hinblick auf die kontinuierliche Entwicklung und Veröffentlichung von Software lässt sich die Qualität der Applikation sehr gut mit CAST-Software überprüfen. So erstellen die CAST-Analysetools ein exaktes Fehlerbild der Software, auf dessen Basis die Anwendungsentwickler die identifizierten Schwachstellen und Bugs eliminieren können. Dazu zählt namentlich die CAST Application Intelligence Platform (AIP), mit deren Hilfe eine Anwendung vollständig auf ihre Code-Qualität untersucht werden kann, und das über sämtliche Ebenen der Software hinweg.

CAST Application Intelligence Platform (AIP)

Das führt bei großen Unternehmen wie Fannie Mae dazu, das im Rahmen von mehr als 150 Scrum-Projekten (die über 4.000 Builds und über 12.000 Deployments pro Monat generieren) fast 50 Prozent weniger kritische Verstöße vorkommen, eine über 25 Prozent höhere Effizienz erzielt und die Kosten um mehr als 30 Prozent gesenkt werden konnten. Das hat unter anderem mit der sehr anschaulichen Darstellung der Analyseergebnisse mithilfe der zahlreichen Dashboards zu tun, aber auch mit der automatisierten Überprüfung der Software-Qualität während des Produktionsprozesses der Applikation.

Videoexkurs: So setzt die US-Hypothekenbank Fannie Mae die CAST Application Intelligence Platform zu Qualitätssicherungszwecken bei der Software-Entwicklung

httpss://www.youtube.com/watch?time_continue=8&v=bTpUHJ9F2vs

 

Disclaimer: Dieser Blogbeitrag ist im Auftrag der Firma CAST entstanden, die mir bei der Ausgestaltung und Formulierung nahezu freie Hand lässt.