Schlimmster Albtraum 27.09.2012, 19:25 Uhr

Software Bugs

Warum enthält Microsofts Windows 8 noch so viele Fehler? Und welches mobile OS ist wirklich sicher? CW sprach mit den SQS-Sicherheitsexperten Daniel Spirig und Karsten Pech.
Daniel Spirig, Managing Director Switzerland bei SQS, sieht Schweizer Kunden in der Pflicht.
Microsofts grosser Hoffnungsträger Windows 8 sei noch gar nicht fertig, mutmasst Intel Chef Paul Otellini. Das neue Betriebssystem benötige immer noch Verbesserungen. Vor allem ist Redmond dabei, möglichst viele Software-Bugs zu entfernen. Denn nichts schadet dem Image und zerstört das Vertrauen der Kunden mehr, als die fiesen Software-Fehler. Auch viele mobile Devices haben ein Sicherheitsproblem, die einen mehr, die anderen weniger. Wie testet man Software richtig, und worauf sollten Endkunden ein besonderes Augenmerk legen? CW sprach mit den SQS-Sicherheitsexperten Daniel Spirig und Karsten Pech. Daniel Spirig ist Managing Director Switzerland bei SQS Software Quality Systems (Schweiz), Karsten Pech verantwortet den Markt in der Schweiz und Deutschland.  
CW: Herr Spirig, Herr Pech, der Wettlauf zwischen Sicherheitsexperten und Cyberkriminellen glich lange Zeit einem endlosen Wettbewerb zwischen Hase und Igel. Der kriminelle Hase missbrauchte eine Sicherheitslücke so lange, bis der sicherheitsbewusste Igel sie stopfte. Trotzdem kommt der Igel immer zu spät. Ist das heute immer noch so, oder hat Software-Testing in den letzten Jahren Fortschritte gemacht?
Spirig: Software-Testing ist heute effizienter und wirksamer als noch vor zehn Jahren. Heute verfolgt man einen risikobasierten Ansatz, priorisiert also sicherheitsrelevante Fehler und testet sie ab. Bei nicht kritischen Fehlern, die keine wesentlichen Auswirkungen auf das Image, Umsatz/Kosten oder die Kundenzufriedenheit haben, zeigen Firmen Mut zur Lücke. Je nachdem, wie geschäftskritisch die getestete Applikation ist.
Das läuft in Abhängigkeit von Applikation und Geschäftsfeld auf eine Anwendung der 80:20-Regel hinaus: Man konzentriert sich auf das grösste Risiko und fährt es entsprechend der Kritikalität der Anwendung auf ein vertretbares Mass herunter. Das Risiko wird minimiert. Die sicherheitssensitive Medizinbranche etwa deckt sämtliche Risiken ab und verfährt nach einer 100-Prozent-Regel. Unternehmen wie Online-Portale wenden die 80:20-Regel an.
Haben die Fortschritte im Software-Testing die Software heute sicherer gemacht?
Pech: Die Verfahrensweisen haben sich tatsächlich verfeinert. Ethical Hacking wird immer noch angewendet...
Aber die Hacker ihrerseits sind ja auch raffinierter geworden...
Pech: Heute beginnt man den Testprozess viel früher, als es vor fünf bis zehn Jahren zum Beispiel durch Penetrationstests üblich war. Heute startet man bereits während der Anforderungsanalyse, um Sicherheitslücken prospektiv auszuschliessen. Dann geht es weiter bei Design und Implementierung mit statischen Security-Analysen auf Basis des entwickelten Codes. Im nächsten Schritt folgt das sogenannte "Fuzzing". Darunter versteht man letztendlich Hacker-Angriffe, aber von innen aus dem Code heraus, gegen die Schnittstellen, also die möglichen Angriffspunkte. Am Ende des Testzyklus stehen die bewährten Penetrationstests, dass heisst Attacken von aussen. Nächste Seite: So testet Microsoft 
Microsoft veranstaltet in unregelmässigen Abständen seine PatchDays. Selbst eine sehr erfahrene, Knowhow-starke Firma wie Microsoft schafft es offensichtlich nicht, ihre Software so sicher zu machen, dass die Lösungen mal für ein Jahr den Eindringlingen standhalten. Woran mag das liegen?
Spirig: Microsoft und andere Applikationssoftware-Anbieter testen heute sehr eingehend und nach bestem Wissen und Gewissen. Security hat heute ein viel grösseres Gewicht als früher. Sie haben vorhin das Katz-und-Maus-Spiel erwähnt. Ich glaube, die Distanz zwischen Katze und Maus ist heute kleiner geworden. Aber wer Software auf den Markt bringt, ist natürlich in einem proaktiven Modus und gibt dem anderen Zeit, zu investieren, Lücken zu suchen, daran zu arbeiten. Der Anbieter ist immer ein wenig hinten dran, das kann man glaube ich nicht verhindern.
 
Man muss erst einmal eine Lücke entdecken, bevor man sie stopfen kann...
Pech: Entscheidend ist der Zeitpunkt, wann diese Lücken entdeckt werden, um noch geeignete Gegenmassnahmen ergreifen zu können. Die typischen Gegenmassnahmen, wie man sie in der Software-Entwicklung heute noch anwendet, kommen eindeutig zu spät. Dazu gehört das "Fuzing", das sehr spät im Software-Entwicklungszyklus stattfindet, oder Penetrationstests nach Fertigstellung der Software.
Unternehmen wie HP und SAP machen Programmierer schon während der Software-Entwicklung auf potenziell riskante Programmierkonstrukte aufmerksam, indem sie eine Art Sicherheits-Parser mitlaufen lassen. Nach Fertigstellung eines Software-Moduls werden dann im zweiten Schritt die von Ihnen erwähnten Penetrationstests gefahren. Ist das noch State-of-the-Art?
Pech: Das ist State-of-the-Art, jedoch haben wir diese Methoden deutlich verfeinert. Die Software-Parser laufen entlang des Kompilerungs- und Build-Prozesses über Nacht mit. Die Grundsätze der SQS Security Services beginnen viel früher: durch Threat-Modelling während der Anforderungsanalyse, gefolgt von Architektur-Reviews...
Ist es möglich, bereits in der Software-Architektur riskante Entwürfe zu identifizieren?
Pech: Sie müssen bedenken, dass auch noch unternehmensinterne Policies hinzukommen, die beachtet werden müssen. Das von Ihnen erwähnte 2-Ways-Testing würden wir als dritte Stufe eines SQS Security Services sehen. In der ersten Stufe, dem Threat-Modelling, werden zukünftige Angriffsszenarien simuliert. Dadurch werden Sicherheitslücken geschlossen, bevor sie überhaupt entstehen können.
Nächste Seite: Vorsicht - riskanten Architekturen
Welche Software-Architekturen sind unsicher, können Sie Beispiele nennen?
Pech: Das wären zum Beispiel Logging-Mechanismen, also die ungefilterte Behandlung von Benutzereingaben, Verschlüsselung und Abkapselung. Modifikationen müssten in der dann zu ändernden Systemarchitektur abgebildet werden. An dritter Stelle steht bei uns die "static security analysis", dass heisst die Sourcecode-Analyse, ihre erste Stufe. Die statischen Analyzer prüfen den Code, der in einem Programmierzyklus, zum Beispiel einem Sprint, entsteht, gegen diverse Sicherheitskriterien. Danach kommt bei uns das oben erwähnte sogenannte "Fuzzing" von innen gegen die Schnittstellen, und als fünfte Stufe Penetrationstests, ausschliesslich von aussen und unter Realbedingungen. Wir empfehlen, Penetrationstests gegen die Produktivumgebung auszuf¨hren, nicht gegen eine Testumgebung.
Ist das Testen der Software dann schlussendlich nicht aufwendiger als die Entwicklung? Wie viel Zeit und Manpower verschlingen die Tests?
Spirig: Wenn heute eine grosse Firma budgetiert, dann entfallen etwa 25 Prozent von Projektbudget auf das Testing. Vor fünf Jahren waren das noch 15 bis 18 Prozent, heute sind es definitiv 25 Prozent. Grossfirmen folgen diesem Richtwert.
Man spricht heute viel von Cloud Computing. Infrastructure-as-a-Service gilt mittlerweile als Commodity, Software-as-a-Service kommt stark. Wäre ein Cloud-Angebot Testing-as-a-Service nicht eine gute Idee, also automatisiertes Testen aus der Cloud?
Pech: Heute werden bereits gewisse Test-Ressourcen in der Cloud angeboten, zum Beispiel Lastgeneratoren für Performance-Tests. Eine Serverlast müssen Sie also nicht zwingend selbst bereitstellen. Das ist heute schon gängige Praxis.
OK, zumindest teilweise. Gibt es Software, die prinzipiell unsicherer ist als andere? Ich denke an Open-Source-Angebote, und in Folge zum Beispiel an das mobile Betriebssystem Android. In der Geschäftswelt von heute hat Android einen riskanteren Beigeschmack als zum Beispiel Apple.
Spirig: Aus meiner Sicht kann man das bejahen: Es gibt sicherere und unsicherere Plattformen. Der Kunde ist auch ein Stück weit selbst für die Sicherheit der Software, die er einsetzt, verantwortlich. Er sollte nicht Software unter einer Lizenz herunterladen und davon ausgehen: Alles ist ok. Sicherheit untersteht der Eigenverantwortung des Kunden.
Als Unternehmenskunde würde ich schon den Anspruch stellen: Der Software-Anbieter hat mir sichere Software zu liefern. Warum bin ich dafür verantwortlich?
Spirig: Es gibt sicher Unternehmen die testen besser, und andere testen schlechter. Der Bankenbereich zum Beispiel, also Anbieter von Bankenlösungen, stellt sehr hohe Anforderungen punkto Sicherheit und weist auch aus, was er getestet hat, und was nicht. Aber der Kunde ist auch in der Eigenverantwortung. Viele Kunden kommen auf uns zu und sagen: Unser Software-Lieferant hat geliefert, könnt ihr das fertige Produkt mal beurteilen. Auf der einen Seite gibt es die Dokumentation des Herstellers, auf der anderen Seite die Compliance-Anforderungen des Kunden, gegen die zusätzliche Security-Tests durchgeführt werden.
Nächste Seite: So sichern Sie ihre Software
Gibt es Best Practices, die Sie Firmen, die eine Software neu einführen, empfehlen können? Was sollte man auf jeden Fall machen?
Pech: Je nach Grad der Kritikalität und des Sicherheitsbedarfes empfehlen sich zusätzliche Penetrationstests, um den Nachweis zu erbringen, dass die Software tatsächlich sicher ist. Ausserdem das oben erwähnte "Fuzzing" gegen Systemschnittstellen. Wir als SQS bieten Test- und Beratungsdienstleistungen an, führen die Tests auch bis zur letzten Konsequenz durch.
Wie ist es um das Sicherheitsbewusstsein von Schweizer Unternehmen bestellt?
Pech: Das Sicherheitsbewusstsein ist definitiv vorhanden, und im mitteleuropäischen Vergleich würde ich die Schweiz ganz weit vorne positionieren, nicht zuletzt wegen der Finanzindustrie und deren Regulatorien. Allerdings ist das Bewusstsein, Massnahmen weit vorne im Software-Entwicklungszyklus anzusiedeln, vielleicht noch nicht ganz so stark ausgeprägt.
Je früher man ansetzt, desto leichter ist es, Sicherheit zu schaffen...
Pech: Die Wahrscheinlichkeit, sicherheitskritische Fehler beseitigen zu können, ist dann deutlich höher.
Welche Firmen in der Schweiz zählen zu ihren Kunden?
Spirig: Die Schweizer Grossbank UBS hat kürzlich einen Vertrag mit einer Laufzeit von zunächst zweieinhalb Jahren bei SQS unterschrieben. SQS stellt ein Team von etwa 50 Experten zur Verfügung und führt qualitätssichernde Massnahmen vor Ort bei der UBS in Zürich durch.
Kommen heute noch Totalkatastrophen vor?
Spirig: Totalkatastrophen dürfen wir ihnen nicht nennen. Aber der Umsatz- und vor allem der Imageverlust, der mit erfolgreich ausgeführten Angriffen einhergeht, hat die Firmen schon sehr stark sensibilisiert.
Nächste Seite: Diese mobilen OS sind sicher
Cyberkriminelle suchen den geldwerten Vorteil. Sind unter dieser Perspektive exotischere, nicht so stark verbreitete Systeme nicht sicherer, weil sie für Hacker weniger attraktiv erscheinen?
Pech: Bei mobilen Betriebssystemen könnte man eine solche Hierarchie aufstellen: Symbian etwa ist ein noch in Asien verbreitetes, sehr lange auf dem Markt befindliches Betriebssystem. Hacker hatten viel Zeit, Malware für Symbian zu programmieren. Symbian ist daher sehr unsicher. Als zweites, sicherheitskritisches mobiles OS würde ich, aufgrund der offenen Architektur, Android sehen. Auch sind die Sicherheitsprozeduren von Google Store noch nicht so ausgereift. Jeder kann seinen eigenen App Store betreiben. An dritter Stelle, nach oben aufsteigend, rangiert Apples iOS. Das originale Apple iOS ist sicher, aber Jailbreaks ermöglichen Veränderungen des Betriebssystem. Als sicherer als die bereits erwähnten drei Systeme beurteile ich Windows. Windows bietet zwar sehr viel Funktionalität, ist aber auch sehr gekapselt, was die Sicherheit erhöht. Sicherheitskritische Risiken beziehen sich jedoch zunehmend auf den Versand von SMS, die mein Adressbuch verwenden. Am sichersten ist Blackberry, auch wegen der aktuell geringeren Verbreitung. Insofern bewahrheitet sich ihre anfängliche Vermutung über exotische, sichere Systeme. Blackberry gilt mittlerweile als exotisch.



Das könnte Sie auch interessieren